Revision db895a1e hw/misc/pvpanic.c
b/hw/misc/pvpanic.c | ||
---|---|---|
86 | 86 |
}, |
87 | 87 |
}; |
88 | 88 |
|
89 |
static int pvpanic_isa_initfn(ISADevice *dev)
|
|
89 |
static void pvpanic_isa_initfn(Object *obj)
|
|
90 | 90 |
{ |
91 |
PVPanicState *s = ISA_PVPANIC_DEVICE(obj); |
|
92 |
|
|
93 |
memory_region_init_io(&s->io, &pvpanic_ops, s, "pvpanic", 1); |
|
94 |
} |
|
95 |
|
|
96 |
static void pvpanic_isa_realizefn(DeviceState *dev, Error **errp) |
|
97 |
{ |
|
98 |
ISADevice *d = ISA_DEVICE(dev); |
|
91 | 99 |
PVPanicState *s = ISA_PVPANIC_DEVICE(dev); |
92 | 100 |
static bool port_configured; |
93 | 101 |
FWCfgState *fw_cfg; |
94 | 102 |
|
95 |
memory_region_init_io(&s->io, &pvpanic_ops, s, "pvpanic", 1); |
|
96 |
isa_register_ioport(dev, &s->io, s->ioport); |
|
103 |
isa_register_ioport(d, &s->io, s->ioport); |
|
97 | 104 |
|
98 | 105 |
if (!port_configured) { |
99 | 106 |
fw_cfg = fw_cfg_find(); |
... | ... | |
104 | 111 |
port_configured = true; |
105 | 112 |
} |
106 | 113 |
} |
107 |
|
|
108 |
return 0; |
|
109 | 114 |
} |
110 | 115 |
|
111 | 116 |
int pvpanic_init(ISABus *bus) |
... | ... | |
122 | 127 |
static void pvpanic_isa_class_init(ObjectClass *klass, void *data) |
123 | 128 |
{ |
124 | 129 |
DeviceClass *dc = DEVICE_CLASS(klass); |
125 |
ISADeviceClass *ic = ISA_DEVICE_CLASS(klass); |
|
126 | 130 |
|
127 |
ic->init = pvpanic_isa_initfn;
|
|
131 |
dc->realize = pvpanic_isa_realizefn;
|
|
128 | 132 |
dc->no_user = 1; |
129 | 133 |
dc->props = pvpanic_isa_properties; |
130 | 134 |
} |
... | ... | |
133 | 137 |
.name = TYPE_ISA_PVPANIC_DEVICE, |
134 | 138 |
.parent = TYPE_ISA_DEVICE, |
135 | 139 |
.instance_size = sizeof(PVPanicState), |
140 |
.instance_init = pvpanic_isa_initfn, |
|
136 | 141 |
.class_init = pvpanic_isa_class_init, |
137 | 142 |
}; |
138 | 143 |
|
Also available in: Unified diff