Revision c0c41a4b hw/tcx.c
b/hw/tcx.c | ||
---|---|---|
378 | 378 |
qemu_console_resize(s->ds, s->width, s->height); |
379 | 379 |
} |
380 | 380 |
|
381 |
static void tcx_save(QEMUFile *f, void *opaque)
|
|
381 |
static int vmstate_tcx_after_load(void *opaque)
|
|
382 | 382 |
{ |
383 | 383 |
TCXState *s = opaque; |
384 | 384 |
|
385 |
qemu_put_be16s(f, &s->height); |
|
386 |
qemu_put_be16s(f, &s->width); |
|
387 |
qemu_put_be16s(f, &s->depth); |
|
388 |
qemu_put_buffer(f, s->r, 256); |
|
389 |
qemu_put_buffer(f, s->g, 256); |
|
390 |
qemu_put_buffer(f, s->b, 256); |
|
391 |
qemu_put_8s(f, &s->dac_index); |
|
392 |
qemu_put_8s(f, &s->dac_state); |
|
393 |
} |
|
394 |
|
|
395 |
static int tcx_load(QEMUFile *f, void *opaque, int version_id) |
|
396 |
{ |
|
397 |
TCXState *s = opaque; |
|
398 |
uint32_t dummy; |
|
399 |
|
|
400 |
if (version_id != 3 && version_id != 4) |
|
401 |
return -EINVAL; |
|
402 |
|
|
403 |
if (version_id == 3) { |
|
404 |
qemu_get_be32s(f, &dummy); |
|
405 |
qemu_get_be32s(f, &dummy); |
|
406 |
qemu_get_be32s(f, &dummy); |
|
407 |
} |
|
408 |
qemu_get_be16s(f, &s->height); |
|
409 |
qemu_get_be16s(f, &s->width); |
|
410 |
qemu_get_be16s(f, &s->depth); |
|
411 |
qemu_get_buffer(f, s->r, 256); |
|
412 |
qemu_get_buffer(f, s->g, 256); |
|
413 |
qemu_get_buffer(f, s->b, 256); |
|
414 |
qemu_get_8s(f, &s->dac_index); |
|
415 |
qemu_get_8s(f, &s->dac_state); |
|
416 | 385 |
update_palette_entries(s, 0, 256); |
417 | 386 |
if (s->depth == 24) { |
418 | 387 |
tcx24_set_dirty(s); |
... | ... | |
423 | 392 |
return 0; |
424 | 393 |
} |
425 | 394 |
|
395 |
static const VMStateDescription vmstate_tcx = { |
|
396 |
.name ="tcx", |
|
397 |
.version_id = 4, |
|
398 |
.minimum_version_id = 4, |
|
399 |
.minimum_version_id_old = 4, |
|
400 |
.run_after_load = vmstate_tcx_after_load, |
|
401 |
.fields = (VMStateField []) { |
|
402 |
VMSTATE_UINT16(height, TCXState), |
|
403 |
VMSTATE_UINT16(width, TCXState), |
|
404 |
VMSTATE_UINT16(depth, TCXState), |
|
405 |
VMSTATE_BUFFER(r, TCXState), |
|
406 |
VMSTATE_BUFFER(g, TCXState), |
|
407 |
VMSTATE_BUFFER(b, TCXState), |
|
408 |
VMSTATE_UINT8(dac_index, TCXState), |
|
409 |
VMSTATE_UINT8(dac_state, TCXState), |
|
410 |
VMSTATE_END_OF_LIST() |
|
411 |
} |
|
412 |
}; |
|
413 |
|
|
426 | 414 |
static void tcx_reset(void *opaque) |
427 | 415 |
{ |
428 | 416 |
TCXState *s = opaque; |
... | ... | |
572 | 560 |
tcx_screen_dump, NULL, s); |
573 | 561 |
} |
574 | 562 |
|
575 |
register_savevm("tcx", -1, 4, tcx_save, tcx_load, s);
|
|
563 |
vmstate_register(-1, &vmstate_tcx, s);
|
|
576 | 564 |
qemu_register_reset(tcx_reset, s); |
577 | 565 |
tcx_reset(s); |
578 | 566 |
qemu_console_resize(s->ds, s->width, s->height); |
Also available in: Unified diff