diff options
Diffstat (limited to 'arch/x86/include/asm/trap_pf.h')
| -rw-r--r-- | arch/x86/include/asm/trap_pf.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/arch/x86/include/asm/trap_pf.h b/arch/x86/include/asm/trap_pf.h new file mode 100644 index 000000000000..a23a7b707b64 --- /dev/null +++ b/arch/x86/include/asm/trap_pf.h @@ -0,0 +1,32 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef _ASM_X86_TRAP_PF_H +#define _ASM_X86_TRAP_PF_H + +#include <linux/bits.h> + +/* + * Page fault error code bits: + * + * bit 0 == 0: no page found 1: protection fault + * bit 1 == 0: read access 1: write access + * bit 2 == 0: kernel-mode access 1: user-mode access + * bit 3 == 1: use of reserved bit detected + * bit 4 == 1: fault was an instruction fetch + * bit 5 == 1: protection keys block access + * bit 6 == 1: shadow stack access fault + * bit 15 == 1: SGX MMU page-fault + * bit 31 == 1: fault was due to RMP violation + */ +enum x86_pf_error_code { + X86_PF_PROT = BIT(0), + X86_PF_WRITE = BIT(1), + X86_PF_USER = BIT(2), + X86_PF_RSVD = BIT(3), + X86_PF_INSTR = BIT(4), + X86_PF_PK = BIT(5), + X86_PF_SHSTK = BIT(6), + X86_PF_SGX = BIT(15), + X86_PF_RMP = BIT(31), +}; + +#endif /* _ASM_X86_TRAP_PF_H */ |
