diff options
Diffstat (limited to 'include/asm-x86/io_apic.h')
-rw-r--r-- | include/asm-x86/io_apic.h | 48 |
1 files changed, 30 insertions, 18 deletions
diff --git a/include/asm-x86/io_apic.h b/include/asm-x86/io_apic.h index 14f82bbcb5fd..d35cbd7aa587 100644 --- a/include/asm-x86/io_apic.h +++ b/include/asm-x86/io_apic.h | |||
@@ -1,9 +1,10 @@ | |||
1 | #ifndef __ASM_IO_APIC_H | 1 | #ifndef ASM_X86__IO_APIC_H |
2 | #define __ASM_IO_APIC_H | 2 | #define ASM_X86__IO_APIC_H |
3 | 3 | ||
4 | #include <linux/types.h> | 4 | #include <linux/types.h> |
5 | #include <asm/mpspec.h> | 5 | #include <asm/mpspec.h> |
6 | #include <asm/apicdef.h> | 6 | #include <asm/apicdef.h> |
7 | #include <asm/irq_vectors.h> | ||
7 | 8 | ||
8 | /* | 9 | /* |
9 | * Intel IO-APIC support for SMP and UP systems. | 10 | * Intel IO-APIC support for SMP and UP systems. |
@@ -87,24 +88,22 @@ struct IO_APIC_route_entry { | |||
87 | mask : 1, /* 0: enabled, 1: disabled */ | 88 | mask : 1, /* 0: enabled, 1: disabled */ |
88 | __reserved_2 : 15; | 89 | __reserved_2 : 15; |
89 | 90 | ||
90 | #ifdef CONFIG_X86_32 | ||
91 | union { | ||
92 | struct { | ||
93 | __u32 __reserved_1 : 24, | ||
94 | physical_dest : 4, | ||
95 | __reserved_2 : 4; | ||
96 | } physical; | ||
97 | |||
98 | struct { | ||
99 | __u32 __reserved_1 : 24, | ||
100 | logical_dest : 8; | ||
101 | } logical; | ||
102 | } dest; | ||
103 | #else | ||
104 | __u32 __reserved_3 : 24, | 91 | __u32 __reserved_3 : 24, |
105 | dest : 8; | 92 | dest : 8; |
106 | #endif | 93 | } __attribute__ ((packed)); |
107 | 94 | ||
95 | struct IR_IO_APIC_route_entry { | ||
96 | __u64 vector : 8, | ||
97 | zero : 3, | ||
98 | index2 : 1, | ||
99 | delivery_status : 1, | ||
100 | polarity : 1, | ||
101 | irr : 1, | ||
102 | trigger : 1, | ||
103 | mask : 1, | ||
104 | reserved : 31, | ||
105 | format : 1, | ||
106 | index : 15; | ||
108 | } __attribute__ ((packed)); | 107 | } __attribute__ ((packed)); |
109 | 108 | ||
110 | #ifdef CONFIG_X86_IO_APIC | 109 | #ifdef CONFIG_X86_IO_APIC |
@@ -183,10 +182,23 @@ extern int io_apic_set_pci_routing(int ioapic, int pin, int irq, | |||
183 | extern int (*ioapic_renumber_irq)(int ioapic, int irq); | 182 | extern int (*ioapic_renumber_irq)(int ioapic, int irq); |
184 | extern void ioapic_init_mappings(void); | 183 | extern void ioapic_init_mappings(void); |
185 | 184 | ||
185 | #ifdef CONFIG_X86_64 | ||
186 | extern int save_mask_IO_APIC_setup(void); | ||
187 | extern void restore_IO_APIC_setup(void); | ||
188 | extern void reinit_intr_remapped_IO_APIC(int); | ||
189 | #endif | ||
190 | |||
191 | extern int probe_nr_irqs(void); | ||
192 | |||
186 | #else /* !CONFIG_X86_IO_APIC */ | 193 | #else /* !CONFIG_X86_IO_APIC */ |
187 | #define io_apic_assign_pci_irqs 0 | 194 | #define io_apic_assign_pci_irqs 0 |
188 | static const int timer_through_8259 = 0; | 195 | static const int timer_through_8259 = 0; |
189 | static inline void ioapic_init_mappings(void) { } | 196 | static inline void ioapic_init_mappings(void) { } |
190 | #endif | ||
191 | 197 | ||
198 | static inline int probe_nr_irqs(void) | ||
199 | { | ||
200 | return NR_IRQS; | ||
201 | } | ||
192 | #endif | 202 | #endif |
203 | |||
204 | #endif /* ASM_X86__IO_APIC_H */ | ||