Revision 23e39294 hw/ssd0303.c
b/hw/ssd0303.c | ||
---|---|---|
261 | 261 |
s->redraw = 1; |
262 | 262 |
} |
263 | 263 |
|
264 |
static void ssd0303_save(QEMUFile *f, void *opaque) |
|
265 |
{ |
|
266 |
ssd0303_state *s = (ssd0303_state *)opaque; |
|
267 |
|
|
268 |
qemu_put_be32(f, s->row); |
|
269 |
qemu_put_be32(f, s->col); |
|
270 |
qemu_put_be32(f, s->start_line); |
|
271 |
qemu_put_be32(f, s->mirror); |
|
272 |
qemu_put_be32(f, s->flash); |
|
273 |
qemu_put_be32(f, s->enabled); |
|
274 |
qemu_put_be32(f, s->inverse); |
|
275 |
qemu_put_be32(f, s->redraw); |
|
276 |
qemu_put_be32(f, s->mode); |
|
277 |
qemu_put_be32(f, s->cmd_state); |
|
278 |
qemu_put_buffer(f, s->framebuffer, sizeof(s->framebuffer)); |
|
279 |
|
|
280 |
i2c_slave_save(f, &s->i2c); |
|
281 |
} |
|
282 |
|
|
283 |
static int ssd0303_load(QEMUFile *f, void *opaque, int version_id) |
|
284 |
{ |
|
285 |
ssd0303_state *s = (ssd0303_state *)opaque; |
|
286 |
|
|
287 |
if (version_id != 1) |
|
288 |
return -EINVAL; |
|
289 |
|
|
290 |
s->row = qemu_get_be32(f); |
|
291 |
s->col = qemu_get_be32(f); |
|
292 |
s->start_line = qemu_get_be32(f); |
|
293 |
s->mirror = qemu_get_be32(f); |
|
294 |
s->flash = qemu_get_be32(f); |
|
295 |
s->enabled = qemu_get_be32(f); |
|
296 |
s->inverse = qemu_get_be32(f); |
|
297 |
s->redraw = qemu_get_be32(f); |
|
298 |
s->mode = qemu_get_be32(f); |
|
299 |
s->cmd_state = qemu_get_be32(f); |
|
300 |
qemu_get_buffer(f, s->framebuffer, sizeof(s->framebuffer)); |
|
301 |
|
|
302 |
i2c_slave_load(f, &s->i2c); |
|
303 |
|
|
304 |
return 0; |
|
305 |
} |
|
306 |
|
|
264 | 307 |
void ssd0303_init(DisplayState *ds, i2c_bus *bus, int address) |
265 | 308 |
{ |
266 | 309 |
ssd0303_state *s; |
... | ... | |
274 | 317 |
ssd0303_invalidate_display, |
275 | 318 |
NULL, NULL, s); |
276 | 319 |
qemu_console_resize(s->console, 96 * MAGNIFY, 16 * MAGNIFY); |
320 |
register_savevm("ssd0303_oled", -1, 1, ssd0303_save, ssd0303_load, s); |
|
277 | 321 |
} |
Also available in: Unified diff