Linux 6.9-rc6
[sfrench/cifs-2.6.git] / arch / x86 / include / asm / trap_pf.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _ASM_X86_TRAP_PF_H
3 #define _ASM_X86_TRAP_PF_H
4
5 #include <linux/bits.h>
6
7 /*
8  * Page fault error code bits:
9  *
10  *   bit 0 ==    0: no page found       1: protection fault
11  *   bit 1 ==    0: read access         1: write access
12  *   bit 2 ==    0: kernel-mode access  1: user-mode access
13  *   bit 3 ==                           1: use of reserved bit detected
14  *   bit 4 ==                           1: fault was an instruction fetch
15  *   bit 5 ==                           1: protection keys block access
16  *   bit 6 ==                           1: shadow stack access fault
17  *   bit 15 ==                          1: SGX MMU page-fault
18  *   bit 31 ==                          1: fault was due to RMP violation
19  */
20 enum x86_pf_error_code {
21         X86_PF_PROT     =               BIT(0),
22         X86_PF_WRITE    =               BIT(1),
23         X86_PF_USER     =               BIT(2),
24         X86_PF_RSVD     =               BIT(3),
25         X86_PF_INSTR    =               BIT(4),
26         X86_PF_PK       =               BIT(5),
27         X86_PF_SHSTK    =               BIT(6),
28         X86_PF_SGX      =               BIT(15),
29         X86_PF_RMP      =               BIT(31),
30 };
31
32 #endif /* _ASM_X86_TRAP_PF_H */