1 #ifndef _ASM_IRQ_VECTORS_H
2 #define _ASM_IRQ_VECTORS_H
3 
4 /* Processor-initiated interrupts are all high priority. */
5 #define SPURIOUS_APIC_VECTOR	0xff
6 #define ERROR_APIC_VECTOR	0xfe
7 #define INVALIDATE_TLB_VECTOR	0xfd
8 #define EVENT_CHECK_VECTOR	0xfc
9 #define CALL_FUNCTION_VECTOR	0xfb
10 #define LOCAL_TIMER_VECTOR	0xfa
11 #define PMU_APIC_VECTOR 	0xf9
12 /*
13  * High-priority dynamically-allocated vectors. For interrupts that
14  * must be higher priority than any guest-bound interrupt.
15  */
16 #define FIRST_HIPRIORITY_VECTOR	0xf1
17 #define LAST_HIPRIORITY_VECTOR  0xf8
18 /* IRQ0 (timer) is statically allocated but must be high priority. */
19 #define IRQ0_VECTOR             0xf0
20 
21 /* Legacy PIC uses vectors 0x20-0x2f. */
22 #define FIRST_LEGACY_VECTOR     FIRST_DYNAMIC_VECTOR
23 #define LAST_LEGACY_VECTOR      (FIRST_LEGACY_VECTOR + 0xf)
24 
25 #ifdef CONFIG_PV32
26 #define HYPERCALL_VECTOR        0x82
27 #endif
28 
29 #define LEGACY_SYSCALL_VECTOR   0x80
30 
31 /*
32  * Dynamically-allocated vectors available to any driver. Note that the
33  * legacy vector range is a sub-range of this one, re-used on CPUs not
34  * sharing vectors with CPU 0.
35  */
36 #define FIRST_DYNAMIC_VECTOR    0x20
37 #define LAST_DYNAMIC_VECTOR     0xef
38 #define NR_DYNAMIC_VECTORS	(LAST_DYNAMIC_VECTOR - FIRST_DYNAMIC_VECTOR + 1)
39 
40 /* There's no IRQ2 at the PIC. */
41 #define IRQ_MOVE_CLEANUP_VECTOR (FIRST_LEGACY_VECTOR + 2)
42 
43 #define FIRST_IRQ_VECTOR        FIRST_DYNAMIC_VECTOR
44 #define LAST_IRQ_VECTOR         LAST_HIPRIORITY_VECTOR
45 
46 #endif /* _ASM_IRQ_VECTORS_H */
47