diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
---|---|---|
committer | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
commit | c71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch) | |
tree | ecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /arch/x86/include/asm/hw_irq.h | |
parent | ea53c912f8a86a8567697115b6a0d8152beee5c8 (diff) | |
parent | 6a00f206debf8a5c8899055726ad127dbeeed098 (diff) |
Merge branch 'mpi-master' into wip-k-fmlpwip-k-fmlp
Conflicts:
litmus/sched_cedf.c
Diffstat (limited to 'arch/x86/include/asm/hw_irq.h')
-rw-r--r-- | arch/x86/include/asm/hw_irq.h | 43 |
1 files changed, 38 insertions, 5 deletions
diff --git a/arch/x86/include/asm/hw_irq.h b/arch/x86/include/asm/hw_irq.h index c17411503f28..c490d89a9b7b 100644 --- a/arch/x86/include/asm/hw_irq.h +++ b/arch/x86/include/asm/hw_irq.h | |||
@@ -29,7 +29,7 @@ | |||
29 | extern void apic_timer_interrupt(void); | 29 | extern void apic_timer_interrupt(void); |
30 | extern void x86_platform_ipi(void); | 30 | extern void x86_platform_ipi(void); |
31 | extern void error_interrupt(void); | 31 | extern void error_interrupt(void); |
32 | extern void perf_pending_interrupt(void); | 32 | extern void irq_work_interrupt(void); |
33 | 33 | ||
34 | extern void spurious_interrupt(void); | 34 | extern void spurious_interrupt(void); |
35 | extern void thermal_interrupt(void); | 35 | extern void thermal_interrupt(void); |
@@ -45,6 +45,30 @@ extern void invalidate_interrupt4(void); | |||
45 | extern void invalidate_interrupt5(void); | 45 | extern void invalidate_interrupt5(void); |
46 | extern void invalidate_interrupt6(void); | 46 | extern void invalidate_interrupt6(void); |
47 | extern void invalidate_interrupt7(void); | 47 | extern void invalidate_interrupt7(void); |
48 | extern void invalidate_interrupt8(void); | ||
49 | extern void invalidate_interrupt9(void); | ||
50 | extern void invalidate_interrupt10(void); | ||
51 | extern void invalidate_interrupt11(void); | ||
52 | extern void invalidate_interrupt12(void); | ||
53 | extern void invalidate_interrupt13(void); | ||
54 | extern void invalidate_interrupt14(void); | ||
55 | extern void invalidate_interrupt15(void); | ||
56 | extern void invalidate_interrupt16(void); | ||
57 | extern void invalidate_interrupt17(void); | ||
58 | extern void invalidate_interrupt18(void); | ||
59 | extern void invalidate_interrupt19(void); | ||
60 | extern void invalidate_interrupt20(void); | ||
61 | extern void invalidate_interrupt21(void); | ||
62 | extern void invalidate_interrupt22(void); | ||
63 | extern void invalidate_interrupt23(void); | ||
64 | extern void invalidate_interrupt24(void); | ||
65 | extern void invalidate_interrupt25(void); | ||
66 | extern void invalidate_interrupt26(void); | ||
67 | extern void invalidate_interrupt27(void); | ||
68 | extern void invalidate_interrupt28(void); | ||
69 | extern void invalidate_interrupt29(void); | ||
70 | extern void invalidate_interrupt30(void); | ||
71 | extern void invalidate_interrupt31(void); | ||
48 | 72 | ||
49 | extern void irq_move_cleanup_interrupt(void); | 73 | extern void irq_move_cleanup_interrupt(void); |
50 | extern void reboot_interrupt(void); | 74 | extern void reboot_interrupt(void); |
@@ -80,6 +104,13 @@ static inline void set_io_apic_irq_attr(struct io_apic_irq_attr *irq_attr, | |||
80 | irq_attr->polarity = polarity; | 104 | irq_attr->polarity = polarity; |
81 | } | 105 | } |
82 | 106 | ||
107 | struct irq_2_iommu { | ||
108 | struct intel_iommu *iommu; | ||
109 | u16 irte_index; | ||
110 | u16 sub_handle; | ||
111 | u8 irte_mask; | ||
112 | }; | ||
113 | |||
83 | /* | 114 | /* |
84 | * This is performance-critical, we want to do it O(1) | 115 | * This is performance-critical, we want to do it O(1) |
85 | * | 116 | * |
@@ -91,15 +122,17 @@ struct irq_cfg { | |||
91 | cpumask_var_t old_domain; | 122 | cpumask_var_t old_domain; |
92 | u8 vector; | 123 | u8 vector; |
93 | u8 move_in_progress : 1; | 124 | u8 move_in_progress : 1; |
125 | #ifdef CONFIG_INTR_REMAP | ||
126 | struct irq_2_iommu irq_2_iommu; | ||
127 | #endif | ||
94 | }; | 128 | }; |
95 | 129 | ||
96 | extern struct irq_cfg *irq_cfg(unsigned int); | ||
97 | extern int assign_irq_vector(int, struct irq_cfg *, const struct cpumask *); | 130 | extern int assign_irq_vector(int, struct irq_cfg *, const struct cpumask *); |
98 | extern void send_cleanup_vector(struct irq_cfg *); | 131 | extern void send_cleanup_vector(struct irq_cfg *); |
99 | 132 | ||
100 | struct irq_desc; | 133 | struct irq_data; |
101 | extern unsigned int set_desc_affinity(struct irq_desc *, const struct cpumask *, | 134 | int __ioapic_set_affinity(struct irq_data *, const struct cpumask *, |
102 | unsigned int *dest_id); | 135 | unsigned int *dest_id); |
103 | extern int IO_APIC_get_PCI_irq_vector(int bus, int devfn, int pin, struct io_apic_irq_attr *irq_attr); | 136 | extern int IO_APIC_get_PCI_irq_vector(int bus, int devfn, int pin, struct io_apic_irq_attr *irq_attr); |
104 | extern void setup_ioapic_dest(void); | 137 | extern void setup_ioapic_dest(void); |
105 | 138 | ||