Revision c9e95029

b/hw/slavio_intctl.c
374 374
    }
375 375
}
376 376

  
377
static void slavio_intctl_save(QEMUFile *f, void *opaque)
377
static int vmstate_intctl_after_load(void *opaque)
378 378
{
379 379
    SLAVIO_INTCTLState *s = opaque;
380
    int i;
381 380

  
382
    for (i = 0; i < MAX_CPUS; i++) {
383
        qemu_put_be32s(f, &s->slaves[i].intreg_pending);
384
    }
385
    qemu_put_be32s(f, &s->intregm_pending);
386
    qemu_put_be32s(f, &s->intregm_disabled);
387
    qemu_put_be32s(f, &s->target_cpu);
381
    slavio_check_interrupts(s, 0);
382
    return 0;
388 383
}
389 384

  
390
static int slavio_intctl_load(QEMUFile *f, void *opaque, int version_id)
391
{
392
    SLAVIO_INTCTLState *s = opaque;
393
    int i;
394

  
395
    if (version_id != 1)
396
        return -EINVAL;
385
static const VMStateDescription vmstate_intctl_cpu = {
386
    .name ="slavio_intctl_cpu",
387
    .version_id = 1,
388
    .minimum_version_id = 1,
389
    .minimum_version_id_old = 1,
390
    .fields      = (VMStateField []) {
391
        VMSTATE_UINT32(intreg_pending, SLAVIO_CPUINTCTLState),
392
        VMSTATE_END_OF_LIST()
393
    }
394
};
397 395

  
398
    for (i = 0; i < MAX_CPUS; i++) {
399
        qemu_get_be32s(f, &s->slaves[i].intreg_pending);
396
static const VMStateDescription vmstate_intctl = {
397
    .name ="slavio_intctl",
398
    .version_id = 1,
399
    .minimum_version_id = 1,
400
    .minimum_version_id_old = 1,
401
    .run_after_load = vmstate_intctl_after_load,
402
    .fields      = (VMStateField []) {
403
        VMSTATE_STRUCT_ARRAY(slaves, SLAVIO_INTCTLState, MAX_CPUS, 1,
404
                             vmstate_intctl_cpu, SLAVIO_CPUINTCTLState),
405
        VMSTATE_UINT32(intregm_pending, SLAVIO_INTCTLState),
406
        VMSTATE_UINT32(intregm_disabled, SLAVIO_INTCTLState),
407
        VMSTATE_UINT32(target_cpu, SLAVIO_INTCTLState),
408
        VMSTATE_END_OF_LIST()
400 409
    }
401
    qemu_get_be32s(f, &s->intregm_pending);
402
    qemu_get_be32s(f, &s->intregm_disabled);
403
    qemu_get_be32s(f, &s->target_cpu);
404
    slavio_check_interrupts(s, 0);
405
    return 0;
406
}
410
};
407 411

  
408 412
static void slavio_intctl_reset(void *opaque)
409 413
{
......
442 446
        s->slaves[i].cpu = i;
443 447
        s->slaves[i].master = s;
444 448
    }
445
    register_savevm("slavio_intctl", -1, 1, slavio_intctl_save,
446
                    slavio_intctl_load, s);
449
    vmstate_register(-1, &vmstate_intctl, s);
447 450
    qemu_register_reset(slavio_intctl_reset, s);
448 451
    slavio_intctl_reset(s);
449 452
    return 0;

Also available in: Unified diff