Blue Swirl <blauwir...@gmail.com> writes: > Convert to qdev. > > Signed-off-by: Blue Swirl <blauwir...@gmail.com> > --- > hw/apic.h | 2 -- > hw/ioapic.c | 45 ++++++++++++++++++++++++++++++--------------- > hw/pc.h | 4 +++- > hw/pc_piix.c | 19 ++++++++++++++++++- > 4 files changed, 51 insertions(+), 19 deletions(-) > > diff --git a/hw/apic.h b/hw/apic.h > index e1954f4..dc41400 100644 > --- a/hw/apic.h > +++ b/hw/apic.h > @@ -1,7 +1,6 @@ > #ifndef APIC_H > #define APIC_H > > -typedef struct IOAPICState IOAPICState; > void apic_deliver_irq(uint8_t dest, uint8_t dest_mode, > uint8_t delivery_mode, > uint8_t vector_num, uint8_t polarity, > @@ -10,7 +9,6 @@ int apic_init(CPUState *env); > int apic_accept_pic_intr(CPUState *env); > void apic_deliver_pic_intr(CPUState *env, int level); > int apic_get_interrupt(CPUState *env); > -qemu_irq *ioapic_init(void); > void apic_reset_irq_delivered(void); > int apic_get_irq_delivered(void); > > diff --git a/hw/ioapic.c b/hw/ioapic.c > index e3f8a46..0336dbd 100644 > --- a/hw/ioapic.c > +++ b/hw/ioapic.c > @@ -25,6 +25,7 @@ > #include "apic.h" > #include "qemu-timer.h" > #include "host-utils.h" > +#include "sysbus.h" > > //#define DEBUG_IOAPIC > > @@ -35,7 +36,6 @@ > #define DPRINTF(fmt, ...) > #endif > > -#define IOAPIC_NUM_PINS 0x18 > #define IOAPIC_LVT_MASKED (1<<16) > > #define IOAPIC_TRIGGER_EDGE 0 > @@ -50,7 +50,10 @@ > #define IOAPIC_DM_SIPI 0x5 > #define IOAPIC_DM_EXTINT 0x7 > > +typedef struct IOAPICState IOAPICState; > + > struct IOAPICState { > + SysBusDevice busdev; > uint8_t id; > uint8_t ioregsel; > > @@ -209,12 +212,14 @@ static const VMStateDescription vmstate_ioapic = { > } > }; > > -static void ioapic_reset(void *opaque) > +static void ioapic_reset(DeviceState *d) > { > - IOAPICState *s = opaque; > + IOAPICState *s = container_of(d, IOAPICState, busdev.qdev);
DO_UPCAST()? I hate it, but it's what the other devices do... [...]