Revision cebbe6d4

b/hw/ide-isa.c
33 33
/***********************************************************/
34 34
/* ISA IDE definitions */
35 35

  
36
typedef struct ISAIDEState {
37
    IDEBus *bus;
38
} ISAIDEState;
39

  
40
static void isa_ide_save(QEMUFile* f, void *opaque)
41
{
42
    ISAIDEState *s = opaque;
43

  
44
    idebus_save(f, s->bus);
45
    ide_save(f, &s->bus->ifs[0]);
46
    ide_save(f, &s->bus->ifs[1]);
47
}
48

  
49
static int isa_ide_load(QEMUFile* f, void *opaque, int version_id)
50
{
51
    ISAIDEState *s = opaque;
52

  
53
    idebus_load(f, s->bus, version_id);
54
    ide_load(f, &s->bus->ifs[0], version_id);
55
    ide_load(f, &s->bus->ifs[1], version_id);
56
    return 0;
57
}
58

  
36 59
void isa_ide_init(int iobase, int iobase2, qemu_irq irq,
37 60
                  BlockDriverState *hd0, BlockDriverState *hd1)
38 61
{
39
    IDEBus *bus;
62
    ISAIDEState *s;
40 63

  
41
    bus = qemu_mallocz(sizeof(*bus));
64
    s = qemu_mallocz(sizeof(*s));
65
    s->bus = qemu_mallocz(sizeof(IDEBus));
42 66

  
43
    ide_init2(bus, hd0, hd1, irq);
44
    ide_init_ioport(bus, iobase, iobase2);
67
    ide_init2(s->bus, hd0, hd1, irq);
68
    ide_init_ioport(s->bus, iobase, iobase2);
69
    register_savevm("isa-ide", 0, 3, isa_ide_save, isa_ide_load, s);
45 70
}

Also available in: Unified diff