[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 2/7] ioapic: convert to qdev
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH v2 2/7] ioapic: convert to qdev |
Date: |
Mon, 14 Jun 2010 11:33:12 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) |
Blue Swirl <address@hidden> writes:
> Convert to qdev.
>
> Signed-off-by: Blue Swirl <address@hidden>
> ---
> 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...
[...]