aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm/hw_irq.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/include/asm/hw_irq.h')
-rw-r--r--arch/x86/include/asm/hw_irq.h25
1 files changed, 24 insertions, 1 deletions
diff --git a/arch/x86/include/asm/hw_irq.h b/arch/x86/include/asm/hw_irq.h
index 4b4921d7a28e..6df45f639666 100644
--- a/arch/x86/include/asm/hw_irq.h
+++ b/arch/x86/include/asm/hw_irq.h
@@ -65,7 +65,26 @@ extern unsigned long io_apic_irqs;
65extern void init_VISWS_APIC_irqs(void); 65extern void init_VISWS_APIC_irqs(void);
66extern void setup_IO_APIC(void); 66extern void setup_IO_APIC(void);
67extern void disable_IO_APIC(void); 67extern void disable_IO_APIC(void);
68extern int IO_APIC_get_PCI_irq_vector(int bus, int slot, int fn); 68
69struct io_apic_irq_attr {
70 int ioapic;
71 int ioapic_pin;
72 int trigger;
73 int polarity;
74};
75
76static inline void set_io_apic_irq_attr(struct io_apic_irq_attr *irq_attr,
77 int ioapic, int ioapic_pin,
78 int trigger, int polarity)
79{
80 irq_attr->ioapic = ioapic;
81 irq_attr->ioapic_pin = ioapic_pin;
82 irq_attr->trigger = trigger;
83 irq_attr->polarity = polarity;
84}
85
86extern int IO_APIC_get_PCI_irq_vector(int bus, int devfn, int pin,
87 struct io_apic_irq_attr *irq_attr);
69extern void setup_ioapic_dest(void); 88extern void setup_ioapic_dest(void);
70 89
71extern void enable_IO_APIC(void); 90extern void enable_IO_APIC(void);
@@ -80,7 +99,11 @@ extern void eisa_set_level_irq(unsigned int irq);
80/* SMP */ 99/* SMP */
81extern void smp_apic_timer_interrupt(struct pt_regs *); 100extern void smp_apic_timer_interrupt(struct pt_regs *);
82extern void smp_spurious_interrupt(struct pt_regs *); 101extern void smp_spurious_interrupt(struct pt_regs *);
102extern void smp_generic_interrupt(struct pt_regs *);
83extern void smp_error_interrupt(struct pt_regs *); 103extern void smp_error_interrupt(struct pt_regs *);
104#ifdef CONFIG_X86_IO_APIC
105extern asmlinkage void smp_irq_move_cleanup_interrupt(void);
106#endif
84#ifdef CONFIG_SMP 107#ifdef CONFIG_SMP
85extern void smp_reschedule_interrupt(struct pt_regs *); 108extern void smp_reschedule_interrupt(struct pt_regs *);
86extern void smp_call_function_interrupt(struct pt_regs *); 109extern void smp_call_function_interrupt(struct pt_regs *);