diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2008-05-02 13:00:30 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-05-12 15:28:05 -0400 |
commit | 2e0884362d1fe36ef2d673d763d6ce35e2044e66 (patch) | |
tree | 587d5b134106ac68029c47f19137a75f7d352d52 /include/asm-x86/hw_irq.h | |
parent | 6859a8402945cf1d74af75a2e1aa4e327a506ab4 (diff) |
x86: move common declarations to hw_irq.h
Move the common declarations from hw_irq_32/64 into hw_irq.h
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include/asm-x86/hw_irq.h')
-rw-r--r-- | include/asm-x86/hw_irq.h | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/include/asm-x86/hw_irq.h b/include/asm-x86/hw_irq.h index bf025399d939..38af08ed43cf 100644 --- a/include/asm-x86/hw_irq.h +++ b/include/asm-x86/hw_irq.h | |||
@@ -1,5 +1,86 @@ | |||
1 | #ifndef _ASM_HW_IRQ_H | ||
2 | #define _ASM_HW_IRQ_H | ||
3 | |||
4 | /* | ||
5 | * (C) 1992, 1993 Linus Torvalds, (C) 1997 Ingo Molnar | ||
6 | * | ||
7 | * moved some of the old arch/i386/kernel/irq.h to here. VY | ||
8 | * | ||
9 | * IRQ/IPI changes taken from work by Thomas Radke | ||
10 | * <tomsoft@informatik.tu-chemnitz.de> | ||
11 | * | ||
12 | * hacked by Andi Kleen for x86-64. | ||
13 | * unified by tglx | ||
14 | */ | ||
15 | |||
16 | #define NMI_VECTOR 0x02 | ||
17 | |||
18 | #ifndef __ASSEMBLY__ | ||
19 | |||
20 | #include <linux/percpu.h> | ||
21 | #include <linux/profile.h> | ||
22 | #include <linux/smp.h> | ||
23 | |||
24 | #include <asm/atomic.h> | ||
25 | #include <asm/irq.h> | ||
26 | #include <asm/sections.h> | ||
27 | |||
28 | #define platform_legacy_irq(irq) ((irq) < 16) | ||
29 | |||
30 | /* Interrupt handlers registered during init_IRQ */ | ||
31 | extern void apic_timer_interrupt(void); | ||
32 | extern void error_interrupt(void); | ||
33 | extern void spurious_interrupt(void); | ||
34 | extern void thermal_interrupt(void); | ||
35 | extern void reschedule_interrupt(void); | ||
36 | |||
37 | extern void invalidate_interrupt(void); | ||
38 | extern void invalidate_interrupt0(void); | ||
39 | extern void invalidate_interrupt1(void); | ||
40 | extern void invalidate_interrupt2(void); | ||
41 | extern void invalidate_interrupt3(void); | ||
42 | extern void invalidate_interrupt4(void); | ||
43 | extern void invalidate_interrupt5(void); | ||
44 | extern void invalidate_interrupt6(void); | ||
45 | extern void invalidate_interrupt7(void); | ||
46 | |||
47 | extern void irq_move_cleanup_interrupt(void); | ||
48 | extern void threshold_interrupt(void); | ||
49 | |||
50 | extern void call_function_interrupt(void); | ||
51 | |||
52 | /* PIC specific functions */ | ||
53 | extern void disable_8259A_irq(unsigned int irq); | ||
54 | extern void enable_8259A_irq(unsigned int irq); | ||
55 | extern int i8259A_irq_pending(unsigned int irq); | ||
56 | extern void make_8259A_irq(unsigned int irq); | ||
57 | extern void init_8259A(int aeoi); | ||
58 | |||
59 | /* IOAPIC */ | ||
60 | #define IO_APIC_IRQ(x) (((x) >= 16) || ((1<<(x)) & io_apic_irqs)) | ||
61 | extern unsigned long io_apic_irqs; | ||
62 | |||
63 | extern void init_VISWS_APIC_irqs(void); | ||
64 | extern void setup_IO_APIC(void); | ||
65 | extern void disable_IO_APIC(void); | ||
66 | extern void print_IO_APIC(void); | ||
67 | extern int IO_APIC_get_PCI_irq_vector(int bus, int slot, int fn); | ||
68 | extern void setup_ioapic_dest(void); | ||
69 | |||
70 | /* IPI functions */ | ||
71 | extern void send_IPI_self(int vector); | ||
72 | extern void send_IPI(int dest, int vector); | ||
73 | |||
74 | /* Statistics */ | ||
75 | extern atomic_t irq_err_count; | ||
76 | extern atomic_t irq_mis_count; | ||
77 | |||
78 | #endif /* !ASSEMBLY_ */ | ||
79 | |||
1 | #ifdef CONFIG_X86_32 | 80 | #ifdef CONFIG_X86_32 |
2 | # include "hw_irq_32.h" | 81 | # include "hw_irq_32.h" |
3 | #else | 82 | #else |
4 | # include "hw_irq_64.h" | 83 | # include "hw_irq_64.h" |
5 | #endif | 84 | #endif |
85 | |||
86 | #endif | ||