/* SPDX-License-Identifier: GPL-2.0 */ #ifndef _ASM_X86_TRAP_PF_H #define _ASM_X86_TRAP_PF_H #include /* * 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 */