qemu-devel
[Top][All Lists]
Advanced

[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...

[...]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]