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 #define HYPERCALL_VECTOR 0x82 26 #define LEGACY_SYSCALL_VECTOR 0x80 27 28 /* 29 * Dynamically-allocated vectors available to any driver. Note that the 30 * legacy vector range is a sub-range of this one, re-used on CPUs not 31 * sharing vectors with CPU 0. 32 */ 33 #define FIRST_DYNAMIC_VECTOR 0x20 34 #define LAST_DYNAMIC_VECTOR 0xef 35 #define NR_DYNAMIC_VECTORS (LAST_DYNAMIC_VECTOR - FIRST_DYNAMIC_VECTOR + 1) 36 37 /* There's no IRQ2 at the PIC. */ 38 #define IRQ_MOVE_CLEANUP_VECTOR (FIRST_LEGACY_VECTOR + 2) 39 40 #define FIRST_IRQ_VECTOR FIRST_DYNAMIC_VECTOR 41 #define LAST_IRQ_VECTOR LAST_HIPRIORITY_VECTOR 42 43 #endif /* _ASM_IRQ_VECTORS_H */ 44