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