diff options
author | Tim Deegan <Tim.Deegan@xensource.com> | 2007-01-20 11:17:40 +0000 |
---|---|---|
committer | Tim Deegan <Tim.Deegan@xensource.com> | 2007-01-20 11:17:40 +0000 |
commit | 7a04b0ca7e8949cd87343d1d53f11d681cff64d1 (patch) | |
tree | f16ed9d1e48f56f496fb4ddeaf65b72a4f3a32d8 /xen/include/asm-x86/hvm/vioapic.h | |
parent | 820c0c0735181f2ea3fd80d56a39455a2ae21b66 (diff) | |
download | xen-7a04b0ca7e8949cd87343d1d53f11d681cff64d1.tar.gz xen-7a04b0ca7e8949cd87343d1d53f11d681cff64d1.tar.bz2 xen-7a04b0ca7e8949cd87343d1d53f11d681cff64d1.zip |
[HVM] Save/restore cleanups 03: IRQ
IRQ, PIC, IOAPIC and LAPIC
Signed-off-by: Tim Deegan <Tim.Deegan@xensource.com>
Diffstat (limited to 'xen/include/asm-x86/hvm/vioapic.h')
-rw-r--r-- | xen/include/asm-x86/hvm/vioapic.h | 41 |
1 files changed, 3 insertions, 38 deletions
diff --git a/xen/include/asm-x86/hvm/vioapic.h b/xen/include/asm-x86/hvm/vioapic.h index 6a934b7b39..701bbdf36b 100644 --- a/xen/include/asm-x86/hvm/vioapic.h +++ b/xen/include/asm-x86/hvm/vioapic.h @@ -28,13 +28,7 @@ #include <xen/config.h> #include <xen/types.h> #include <xen/smp.h> - -#ifdef __ia64__ -#define VIOAPIC_IS_IOSAPIC 1 -#define VIOAPIC_NUM_PINS 24 -#else -#define VIOAPIC_NUM_PINS 48 /* 16 ISA IRQs, 32 non-legacy PCI IRQS. */ -#endif +#include <public/hvm/save.h> #if !VIOAPIC_IS_IOSAPIC #define VIOAPIC_VERSION_ID 0x11 /* IOAPIC version */ @@ -58,38 +52,9 @@ #define VIOAPIC_REG_VERSION 0x01 #define VIOAPIC_REG_ARB_ID 0x02 /* x86 IOAPIC only */ -#define domain_vioapic(d) (&(d)->arch.hvm_domain.irq.vioapic) +#define domain_vioapic(d) (&(d)->arch.hvm_domain.vioapic) #define vioapic_domain(v) (container_of((v), struct domain, \ - arch.hvm_domain.irq.vioapic)) - -union vioapic_redir_entry -{ - uint64_t bits; - struct { - uint8_t vector; - uint8_t delivery_mode:3; - uint8_t dest_mode:1; - uint8_t delivery_status:1; - uint8_t polarity:1; - uint8_t remote_irr:1; - uint8_t trig_mode:1; - uint8_t mask:1; - uint8_t reserve:7; -#if !VIOAPIC_IS_IOSAPIC - uint8_t reserved[4]; - uint8_t dest_id; -#else - uint8_t reserved[3]; - uint16_t dest_id; -#endif - } fields; -}; - -struct vioapic { - uint32_t ioregsel, id; - unsigned long base_address; - union vioapic_redir_entry redirtbl[VIOAPIC_NUM_PINS]; -}; + arch.hvm_domain.vioapic)) void vioapic_init(struct domain *d); void vioapic_irq_positive_edge(struct domain *d, unsigned int irq); |