xref: /linux/arch/x86/include/asm/trapnr.h (revision 594ce0b8a998aa4d05827cd7c0d0dcec9a1e3ae2)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _ASM_X86_TRAPNR_H
3 #define _ASM_X86_TRAPNR_H
4 
5 /*
6  * Event type codes used by FRED, Intel VT-x and AMD SVM
7  */
8 #define EVENT_TYPE_EXTINT	0	// External interrupt
9 #define EVENT_TYPE_RESERVED	1
10 #define EVENT_TYPE_NMI		2	// NMI
11 #define EVENT_TYPE_HWEXC	3	// Hardware originated traps, exceptions
12 #define EVENT_TYPE_SWINT	4	// INT n
13 #define EVENT_TYPE_PRIV_SWEXC	5	// INT1
14 #define EVENT_TYPE_SWEXC	6	// INTO, INT3
15 #define EVENT_TYPE_OTHER	7	// FRED SYSCALL/SYSENTER, VT-x MTF
16 
17 /* Interrupts/Exceptions */
18 
19 #define X86_TRAP_DE		 0	/* Divide-by-zero */
20 #define X86_TRAP_DB		 1	/* Debug */
21 #define X86_TRAP_NMI		 2	/* Non-maskable Interrupt */
22 #define X86_TRAP_BP		 3	/* Breakpoint */
23 #define X86_TRAP_OF		 4	/* Overflow */
24 #define X86_TRAP_BR		 5	/* Bound Range Exceeded */
25 #define X86_TRAP_UD		 6	/* Invalid Opcode */
26 #define X86_TRAP_NM		 7	/* Device Not Available */
27 #define X86_TRAP_DF		 8	/* Double Fault */
28 #define X86_TRAP_OLD_MF		 9	/* Coprocessor Segment Overrun */
29 #define X86_TRAP_TS		10	/* Invalid TSS */
30 #define X86_TRAP_NP		11	/* Segment Not Present */
31 #define X86_TRAP_SS		12	/* Stack Segment Fault */
32 #define X86_TRAP_GP		13	/* General Protection Fault */
33 #define X86_TRAP_PF		14	/* Page Fault */
34 #define X86_TRAP_SPURIOUS	15	/* Spurious Interrupt */
35 #define X86_TRAP_MF		16	/* x87 Floating-Point Exception */
36 #define X86_TRAP_AC		17	/* Alignment Check */
37 #define X86_TRAP_MC		18	/* Machine Check */
38 #define X86_TRAP_XF		19	/* SIMD Floating-Point Exception */
39 #define X86_TRAP_VE		20	/* Virtualization Exception */
40 #define X86_TRAP_CP		21	/* Control Protection Exception */
41 #define X86_TRAP_VC		29	/* VMM Communication Exception */
42 #define X86_TRAP_IRET		32	/* IRET Exception */
43 
44 #endif
45