Revision db895a1e hw/audio/pcspk.c
b/hw/audio/pcspk.c | ||
---|---|---|
163 | 163 |
}, |
164 | 164 |
}; |
165 | 165 |
|
166 |
static int pcspk_initfn(ISADevice *dev)
|
|
166 |
static void pcspk_initfn(Object *obj)
|
|
167 | 167 |
{ |
168 |
PCSpkState *s = PC_SPEAKER(dev);
|
|
168 |
PCSpkState *s = PC_SPEAKER(obj);
|
|
169 | 169 |
|
170 | 170 |
memory_region_init_io(&s->ioport, &pcspk_io_ops, s, "elcr", 1); |
171 |
isa_register_ioport(dev, &s->ioport, s->iobase);
|
|
171 |
}
|
|
172 | 172 |
|
173 |
pcspk_state = s; |
|
173 |
static void pcspk_realizefn(DeviceState *dev, Error **errp) |
|
174 |
{ |
|
175 |
ISADevice *isadev = ISA_DEVICE(dev); |
|
176 |
PCSpkState *s = PC_SPEAKER(dev); |
|
174 | 177 |
|
175 |
return 0; |
|
178 |
isa_register_ioport(isadev, &s->ioport, s->iobase); |
|
179 |
|
|
180 |
pcspk_state = s; |
|
176 | 181 |
} |
177 | 182 |
|
178 | 183 |
static Property pcspk_properties[] = { |
... | ... | |
184 | 189 |
static void pcspk_class_initfn(ObjectClass *klass, void *data) |
185 | 190 |
{ |
186 | 191 |
DeviceClass *dc = DEVICE_CLASS(klass); |
187 |
ISADeviceClass *ic = ISA_DEVICE_CLASS(klass); |
|
188 | 192 |
|
189 |
ic->init = pcspk_initfn;
|
|
193 |
dc->realize = pcspk_realizefn;
|
|
190 | 194 |
dc->no_user = 1; |
191 | 195 |
dc->props = pcspk_properties; |
192 | 196 |
} |
... | ... | |
195 | 199 |
.name = TYPE_PC_SPEAKER, |
196 | 200 |
.parent = TYPE_ISA_DEVICE, |
197 | 201 |
.instance_size = sizeof(PCSpkState), |
202 |
.instance_init = pcspk_initfn, |
|
198 | 203 |
.class_init = pcspk_class_initfn, |
199 | 204 |
}; |
200 | 205 |
|
Also available in: Unified diff