blob: f5693c81a1dbfe6b221c71aaef38e00818515c04 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
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 */
Ingo Molnar3e5095d2009-01-27 17:07:08 +010012#ifdef CONFIG_SMP
Linus Torvalds1da177e2005-04-16 15:20:36 -070013BUILD_INTERRUPT(reschedule_interrupt,RESCHEDULE_VECTOR)
Linus Torvalds1da177e2005-04-16 15:20:36 -070014BUILD_INTERRUPT(call_function_interrupt,CALL_FUNCTION_VECTOR)
Jens Axboe3b16cf82008-06-26 11:21:54 +020015BUILD_INTERRUPT(call_function_single_interrupt,CALL_FUNCTION_SINGLE_VECTOR)
Yinghai Lu497c9a12008-08-19 20:50:28 -070016BUILD_INTERRUPT(irq_move_cleanup_interrupt,IRQ_MOVE_CLEANUP_VECTOR)
Andi Kleen4ef702c2009-05-27 21:56:52 +020017BUILD_INTERRUPT(reboot_interrupt,REBOOT_VECTOR)
Tejun Heo02cf94c2009-01-21 17:26:06 +090018
19BUILD_INTERRUPT3(invalidate_interrupt0,INVALIDATE_TLB_VECTOR_START+0,
20 smp_invalidate_interrupt)
21BUILD_INTERRUPT3(invalidate_interrupt1,INVALIDATE_TLB_VECTOR_START+1,
22 smp_invalidate_interrupt)
23BUILD_INTERRUPT3(invalidate_interrupt2,INVALIDATE_TLB_VECTOR_START+2,
24 smp_invalidate_interrupt)
25BUILD_INTERRUPT3(invalidate_interrupt3,INVALIDATE_TLB_VECTOR_START+3,
26 smp_invalidate_interrupt)
27BUILD_INTERRUPT3(invalidate_interrupt4,INVALIDATE_TLB_VECTOR_START+4,
28 smp_invalidate_interrupt)
29BUILD_INTERRUPT3(invalidate_interrupt5,INVALIDATE_TLB_VECTOR_START+5,
30 smp_invalidate_interrupt)
31BUILD_INTERRUPT3(invalidate_interrupt6,INVALIDATE_TLB_VECTOR_START+6,
32 smp_invalidate_interrupt)
33BUILD_INTERRUPT3(invalidate_interrupt7,INVALIDATE_TLB_VECTOR_START+7,
34 smp_invalidate_interrupt)
Linus Torvalds1da177e2005-04-16 15:20:36 -070035#endif
36
Dimitri Sivanichacaabe72009-03-04 12:56:05 -060037BUILD_INTERRUPT(generic_interrupt, GENERIC_INTERRUPT_VECTOR)
38
Linus Torvalds1da177e2005-04-16 15:20:36 -070039/*
40 * every pentium local APIC has two 'local interrupts', with a
41 * soft-definable vector attached to both interrupts, one of
42 * which is a timer interrupt, the other one is error counter
43 * overflow. Linux uses the local APIC timer interrupt to get
44 * a much simpler SMP time architecture:
45 */
46#ifdef CONFIG_X86_LOCAL_APIC
Ingo Molnar1164dd02009-01-28 19:34:09 +010047
Linus Torvalds1da177e2005-04-16 15:20:36 -070048BUILD_INTERRUPT(apic_timer_interrupt,LOCAL_TIMER_VECTOR)
49BUILD_INTERRUPT(error_interrupt,ERROR_APIC_VECTOR)
50BUILD_INTERRUPT(spurious_interrupt,SPURIOUS_APIC_VECTOR)
51
Ingo Molnarcdd6c482009-09-21 12:02:48 +020052#ifdef CONFIG_PERF_EVENTS
Peter Zijlstrab6276f32009-04-06 11:45:03 +020053BUILD_INTERRUPT(perf_pending_interrupt, LOCAL_PENDING_VECTOR)
Ingo Molnar1164dd02009-01-28 19:34:09 +010054#endif
55
Andi Kleen4efc0672009-04-28 19:07:31 +020056#ifdef CONFIG_X86_THERMAL_VECTOR
Linus Torvalds1da177e2005-04-16 15:20:36 -070057BUILD_INTERRUPT(thermal_interrupt,THERMAL_APIC_VECTOR)
58#endif
59
Andi Kleen7856f6c2009-04-28 23:32:56 +020060#ifdef CONFIG_X86_MCE_THRESHOLD
61BUILD_INTERRUPT(threshold_interrupt,THRESHOLD_APIC_VECTOR)
62#endif
63
Andi Kleenc1ebf832009-07-09 00:31:41 +020064#ifdef CONFIG_X86_MCE
Andi Kleenccc3c312009-05-27 21:56:54 +020065BUILD_INTERRUPT(mce_self_interrupt,MCE_SELF_VECTOR)
66#endif
67
Linus Torvalds1da177e2005-04-16 15:20:36 -070068#endif