Commit 63f01a74 authored by Philippe Mathieu-Daudé's avatar Philippe Mathieu-Daudé Committed by Paolo Bonzini
Browse files

hw/isa/pc87312: Inherit from the abstract TYPE_ISA_SUPERIO



Signed-off-by: default avatarPhilippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20180308223946.26784-10-f4bug@amsat.org>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 1854eb28
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -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,
+4 −2
Original line number Diff line number Diff line
@@ -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 */