mirror of
https://github.com/qemu/qemu.git
synced 2024-12-03 16:53:53 +08:00
hw/isa/pc87312: Inherit from the abstract TYPE_ISA_SUPERIO
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Message-Id: <20180308223946.26784-10-f4bug@amsat.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
1854eb287e
commit
63f01a74ae
@ -270,6 +270,7 @@ static void pc87312_realize(DeviceState *dev, Error **errp)
|
||||
ISABus *bus;
|
||||
Chardev *chr;
|
||||
DriveInfo *drive;
|
||||
Error *local_err = NULL;
|
||||
char name[5];
|
||||
int i;
|
||||
|
||||
@ -279,6 +280,12 @@ static void pc87312_realize(DeviceState *dev, Error **errp)
|
||||
isa_register_ioport(isa, &s->io, s->iobase);
|
||||
pc87312_hard_reset(s);
|
||||
|
||||
ISA_SUPERIO_GET_CLASS(dev)->parent_realize(dev, &local_err);
|
||||
if (local_err) {
|
||||
error_propagate(errp, local_err);
|
||||
return;
|
||||
}
|
||||
|
||||
if (is_parallel_enabled(s)) {
|
||||
/* FIXME use a qdev chardev prop instead of parallel_hds[] */
|
||||
chr = parallel_hds[0];
|
||||
@ -381,7 +388,9 @@ static Property pc87312_properties[] = {
|
||||
static void pc87312_class_init(ObjectClass *klass, void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||
ISASuperIOClass *sc = ISA_SUPERIO_CLASS(klass);
|
||||
|
||||
sc->parent_realize = dc->realize;
|
||||
dc->realize = pc87312_realize;
|
||||
dc->reset = pc87312_reset;
|
||||
dc->vmsd = &vmstate_pc87312;
|
||||
@ -392,7 +401,7 @@ static void pc87312_class_init(ObjectClass *klass, void *data)
|
||||
|
||||
static const TypeInfo pc87312_type_info = {
|
||||
.name = TYPE_PC87312_SUPERIO,
|
||||
.parent = TYPE_ISA_DEVICE,
|
||||
.parent = TYPE_ISA_SUPERIO,
|
||||
.instance_size = sizeof(PC87312State),
|
||||
.instance_init = pc87312_initfn,
|
||||
.class_init = pc87312_class_init,
|
||||
|
@ -25,14 +25,16 @@
|
||||
#ifndef QEMU_PC87312_H
|
||||
#define QEMU_PC87312_H
|
||||
|
||||
#include "hw/isa/isa.h"
|
||||
#include "hw/isa/superio.h"
|
||||
|
||||
|
||||
#define TYPE_PC87312_SUPERIO "pc87312"
|
||||
#define PC87312(obj) OBJECT_CHECK(PC87312State, (obj), TYPE_PC87312_SUPERIO)
|
||||
|
||||
typedef struct PC87312State {
|
||||
ISADevice dev;
|
||||
/*< private >*/
|
||||
ISASuperIODevice parent_dev;
|
||||
/*< public >*/
|
||||
|
||||
uint16_t iobase;
|
||||
uint8_t config; /* initial configuration */
|
||||
|
Loading…
Reference in New Issue
Block a user