diff options
author | Igor Mammedov <imammedo@redhat.com> | 2013-04-29 19:03:01 +0200 |
---|---|---|
committer | Andreas Färber <afaerber@suse.de> | 2013-05-01 13:06:07 +0200 |
commit | 53a89e262bd3e97b2da3afec0a60e5466770ae8c (patch) | |
tree | baf6fba30104868f8a3a20f92b0d74b71aa9a4c6 /include/hw | |
parent | 62fc403f11523169eb4264de31279745f48e3ecc (diff) | |
download | qemu-53a89e262bd3e97b2da3afec0a60e5466770ae8c.zip qemu-53a89e262bd3e97b2da3afec0a60e5466770ae8c.tar.gz qemu-53a89e262bd3e97b2da3afec0a60e5466770ae8c.tar.bz2 |
target-i386: Move APIC to ICC bus
It allows APIC to be hotplugged.
* map APIC's mmio at board level if it is present
* do not register mmio region for each APIC, since
only one is used/mapped
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
Diffstat (limited to 'include/hw')
-rw-r--r-- | include/hw/cpu/icc_bus.h | 3 | ||||
-rw-r--r-- | include/hw/i386/apic_internal.h | 6 |
2 files changed, 6 insertions, 3 deletions
diff --git a/include/hw/cpu/icc_bus.h b/include/hw/cpu/icc_bus.h index d728a7d..b550070 100644 --- a/include/hw/cpu/icc_bus.h +++ b/include/hw/cpu/icc_bus.h @@ -22,6 +22,7 @@ #ifndef ICC_BUS_H #define ICC_BUS_H +#include "exec/memory.h" #include "hw/qdev-core.h" #define TYPE_ICC_BUS "icc-bus" @@ -37,6 +38,8 @@ typedef struct ICCBus { /*< private >*/ BusState parent_obj; /*< public >*/ + + MemoryRegion *apic_address_space; } ICCBus; #define ICC_BUS(obj) OBJECT_CHECK(ICCBus, (obj), TYPE_ICC_BUS) diff --git a/include/hw/i386/apic_internal.h b/include/hw/i386/apic_internal.h index aac6290..1b0a7fb 100644 --- a/include/hw/i386/apic_internal.h +++ b/include/hw/i386/apic_internal.h @@ -21,7 +21,7 @@ #define QEMU_APIC_INTERNAL_H #include "exec/memory.h" -#include "hw/sysbus.h" +#include "hw/cpu/icc_bus.h" #include "qemu/timer.h" /* APIC Local Vector Table */ @@ -78,7 +78,7 @@ typedef struct APICCommonState APICCommonState; typedef struct APICCommonClass { - SysBusDeviceClass parent_class; + ICCDeviceClass parent_class; void (*init)(APICCommonState *s); void (*set_base)(APICCommonState *s, uint64_t val); @@ -92,7 +92,7 @@ typedef struct APICCommonClass } APICCommonClass; struct APICCommonState { - SysBusDevice busdev; + ICCDevice busdev; MemoryRegion io_memory; X86CPU *cpu; |