diff options
Diffstat (limited to 'arch/x86/include/asm/entry_arch.h')
| -rw-r--r-- | arch/x86/include/asm/entry_arch.h | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/arch/x86/include/asm/entry_arch.h b/arch/x86/include/asm/entry_arch.h new file mode 100644 index 00000000000..c2e6bedaf25 --- /dev/null +++ b/arch/x86/include/asm/entry_arch.h | |||
| @@ -0,0 +1,59 @@ | |||
| 1 | /* | ||
| 2 | * This file is designed to contain the BUILD_INTERRUPT specifications for | ||
| 3 | * all of the extra named interrupt vectors used by the architecture. | ||
| 4 | * Usually this is the Inter Process Interrupts (IPIs) | ||
| 5 | */ | ||
| 6 | |||
| 7 | /* | ||
| 8 | * The following vectors are part of the Linux architecture, there | ||
| 9 | * is no hardware IRQ pin equivalent for them, they are triggered | ||
| 10 | * through the ICC by us (IPIs) | ||
| 11 | */ | ||
| 12 | #ifdef CONFIG_SMP | ||
| 13 | BUILD_INTERRUPT(reschedule_interrupt,RESCHEDULE_VECTOR) | ||
| 14 | BUILD_INTERRUPT(call_function_interrupt,CALL_FUNCTION_VECTOR) | ||
| 15 | BUILD_INTERRUPT(call_function_single_interrupt,CALL_FUNCTION_SINGLE_VECTOR) | ||
| 16 | BUILD_INTERRUPT(irq_move_cleanup_interrupt,IRQ_MOVE_CLEANUP_VECTOR) | ||
| 17 | |||
| 18 | BUILD_INTERRUPT3(invalidate_interrupt0,INVALIDATE_TLB_VECTOR_START+0, | ||
| 19 | smp_invalidate_interrupt) | ||
| 20 | BUILD_INTERRUPT3(invalidate_interrupt1,INVALIDATE_TLB_VECTOR_START+1, | ||
| 21 | smp_invalidate_interrupt) | ||
| 22 | BUILD_INTERRUPT3(invalidate_interrupt2,INVALIDATE_TLB_VECTOR_START+2, | ||
| 23 | smp_invalidate_interrupt) | ||
| 24 | BUILD_INTERRUPT3(invalidate_interrupt3,INVALIDATE_TLB_VECTOR_START+3, | ||
| 25 | smp_invalidate_interrupt) | ||
| 26 | BUILD_INTERRUPT3(invalidate_interrupt4,INVALIDATE_TLB_VECTOR_START+4, | ||
| 27 | smp_invalidate_interrupt) | ||
| 28 | BUILD_INTERRUPT3(invalidate_interrupt5,INVALIDATE_TLB_VECTOR_START+5, | ||
| 29 | smp_invalidate_interrupt) | ||
| 30 | BUILD_INTERRUPT3(invalidate_interrupt6,INVALIDATE_TLB_VECTOR_START+6, | ||
| 31 | smp_invalidate_interrupt) | ||
| 32 | BUILD_INTERRUPT3(invalidate_interrupt7,INVALIDATE_TLB_VECTOR_START+7, | ||
| 33 | smp_invalidate_interrupt) | ||
| 34 | #endif | ||
| 35 | |||
| 36 | BUILD_INTERRUPT(generic_interrupt, GENERIC_INTERRUPT_VECTOR) | ||
| 37 | |||
| 38 | /* | ||
| 39 | * every pentium local APIC has two 'local interrupts', with a | ||
| 40 | * soft-definable vector attached to both interrupts, one of | ||
| 41 | * which is a timer interrupt, the other one is error counter | ||
| 42 | * overflow. Linux uses the local APIC timer interrupt to get | ||
| 43 | * a much simpler SMP time architecture: | ||
| 44 | */ | ||
| 45 | #ifdef CONFIG_X86_LOCAL_APIC | ||
| 46 | |||
| 47 | BUILD_INTERRUPT(apic_timer_interrupt,LOCAL_TIMER_VECTOR) | ||
| 48 | BUILD_INTERRUPT(error_interrupt,ERROR_APIC_VECTOR) | ||
| 49 | BUILD_INTERRUPT(spurious_interrupt,SPURIOUS_APIC_VECTOR) | ||
| 50 | |||
| 51 | #ifdef CONFIG_PERF_COUNTERS | ||
| 52 | BUILD_INTERRUPT(perf_counter_interrupt, LOCAL_PERF_VECTOR) | ||
| 53 | #endif | ||
| 54 | |||
| 55 | #ifdef CONFIG_X86_MCE_P4THERMAL | ||
| 56 | BUILD_INTERRUPT(thermal_interrupt,THERMAL_APIC_VECTOR) | ||
| 57 | #endif | ||
| 58 | |||
| 59 | #endif | ||
