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