diff options
Diffstat (limited to 'arch/x86/include/asm/irq_vectors.h')
| -rw-r--r-- | arch/x86/include/asm/irq_vectors.h | 52 | 
1 files changed, 20 insertions, 32 deletions
diff --git a/arch/x86/include/asm/irq_vectors.h b/arch/x86/include/asm/irq_vectors.h index 6af0894dafb..5702d7e3111 100644 --- a/arch/x86/include/asm/irq_vectors.h +++ b/arch/x86/include/asm/irq_vectors.h @@ -1,6 +1,7 @@  #ifndef _ASM_X86_IRQ_VECTORS_H  #define _ASM_X86_IRQ_VECTORS_H +#include <linux/threads.h>  /*   * Linux IRQ vector layout.   * @@ -16,8 +17,8 @@   *  Vectors   0 ...  31 : system traps and exceptions - hardcoded events   *  Vectors  32 ... 127 : device interrupts   *  Vector  128         : legacy int80 syscall interface - *  Vectors 129 ... 237 : device interrupts - *  Vectors 238 ... 255 : special interrupts + *  Vectors 129 ... INVALIDATE_TLB_VECTOR_START-1 except 204 : device interrupts + *  Vectors INVALIDATE_TLB_VECTOR_START ... 255 : special interrupts   *   * 64-bit x86 has per CPU IDT tables, 32-bit has one shared IDT table.   * @@ -96,37 +97,32 @@  #define THRESHOLD_APIC_VECTOR		0xf9  #define REBOOT_VECTOR			0xf8 -/* f0-f7 used for spreading out TLB flushes: */ -#define INVALIDATE_TLB_VECTOR_END	0xf7 -#define INVALIDATE_TLB_VECTOR_START	0xf0 -#define NUM_INVALIDATE_TLB_VECTORS	   8 - -/* - * Local APIC timer IRQ vector is on a different priority level, - * to work around the 'lost local interrupt if more than 2 IRQ - * sources per level' errata. - */ -#define LOCAL_TIMER_VECTOR		0xef -  /*   * Generic system vector for platform specific use   */ -#define X86_PLATFORM_IPI_VECTOR		0xed +#define X86_PLATFORM_IPI_VECTOR		0xf7 + +/* Vector for KVM to deliver posted interrupt IPI */ +#ifdef CONFIG_HAVE_KVM +#define POSTED_INTR_VECTOR		0xf2 +#endif  /*   * IRQ work vector:   */ -#define IRQ_WORK_VECTOR			0xec +#define IRQ_WORK_VECTOR			0xf6 + +#define UV_BAU_MESSAGE			0xf5 -#define UV_BAU_MESSAGE			0xea +/* Vector on which hypervisor callbacks will be delivered */ +#define HYPERVISOR_CALLBACK_VECTOR	0xf3  /* - * Self IPI vector for machine checks + * Local APIC timer IRQ vector is on a different priority level, + * to work around the 'lost local interrupt if more than 2 IRQ + * sources per level' errata.   */ -#define MCE_SELF_VECTOR			0xeb - -/* Xen vector callback to receive events in a HVM domain */ -#define XEN_HVM_EVTCHN_CALLBACK		0xe9 +#define LOCAL_TIMER_VECTOR		0xef  #define NR_VECTORS			 256 @@ -158,19 +154,11 @@ static inline int invalid_vm86_irq(int irq)  #define IO_APIC_VECTOR_LIMIT		( 32 * MAX_IO_APICS )  #ifdef CONFIG_X86_IO_APIC -# ifdef CONFIG_SPARSE_IRQ -#  define CPU_VECTOR_LIMIT		(64 * NR_CPUS) -#  define NR_IRQS					\ +# define CPU_VECTOR_LIMIT		(64 * NR_CPUS) +# define NR_IRQS					\  	(CPU_VECTOR_LIMIT > IO_APIC_VECTOR_LIMIT ?	\  		(NR_VECTORS + CPU_VECTOR_LIMIT)  :	\  		(NR_VECTORS + IO_APIC_VECTOR_LIMIT)) -# else -#  define CPU_VECTOR_LIMIT		(32 * NR_CPUS) -#  define NR_IRQS					\ -	(CPU_VECTOR_LIMIT < IO_APIC_VECTOR_LIMIT ?	\ -		(NR_VECTORS + CPU_VECTOR_LIMIT)  :	\ -		(NR_VECTORS + IO_APIC_VECTOR_LIMIT)) -# endif  #else /* !CONFIG_X86_IO_APIC: */  # define NR_IRQS			NR_IRQS_LEGACY  #endif  | 
