0001
0002 #ifndef _UAPI_ASM_X86_PROCESSOR_FLAGS_H
0003 #define _UAPI_ASM_X86_PROCESSOR_FLAGS_H
0004
0005
0006 #include <linux/const.h>
0007
0008
0009
0010
0011 #define X86_EFLAGS_CF_BIT 0
0012 #define X86_EFLAGS_CF _BITUL(X86_EFLAGS_CF_BIT)
0013 #define X86_EFLAGS_FIXED_BIT 1
0014 #define X86_EFLAGS_FIXED _BITUL(X86_EFLAGS_FIXED_BIT)
0015 #define X86_EFLAGS_PF_BIT 2
0016 #define X86_EFLAGS_PF _BITUL(X86_EFLAGS_PF_BIT)
0017 #define X86_EFLAGS_AF_BIT 4
0018 #define X86_EFLAGS_AF _BITUL(X86_EFLAGS_AF_BIT)
0019 #define X86_EFLAGS_ZF_BIT 6
0020 #define X86_EFLAGS_ZF _BITUL(X86_EFLAGS_ZF_BIT)
0021 #define X86_EFLAGS_SF_BIT 7
0022 #define X86_EFLAGS_SF _BITUL(X86_EFLAGS_SF_BIT)
0023 #define X86_EFLAGS_TF_BIT 8
0024 #define X86_EFLAGS_TF _BITUL(X86_EFLAGS_TF_BIT)
0025 #define X86_EFLAGS_IF_BIT 9
0026 #define X86_EFLAGS_IF _BITUL(X86_EFLAGS_IF_BIT)
0027 #define X86_EFLAGS_DF_BIT 10
0028 #define X86_EFLAGS_DF _BITUL(X86_EFLAGS_DF_BIT)
0029 #define X86_EFLAGS_OF_BIT 11
0030 #define X86_EFLAGS_OF _BITUL(X86_EFLAGS_OF_BIT)
0031 #define X86_EFLAGS_IOPL_BIT 12
0032 #define X86_EFLAGS_IOPL (_AC(3,UL) << X86_EFLAGS_IOPL_BIT)
0033 #define X86_EFLAGS_NT_BIT 14
0034 #define X86_EFLAGS_NT _BITUL(X86_EFLAGS_NT_BIT)
0035 #define X86_EFLAGS_RF_BIT 16
0036 #define X86_EFLAGS_RF _BITUL(X86_EFLAGS_RF_BIT)
0037 #define X86_EFLAGS_VM_BIT 17
0038 #define X86_EFLAGS_VM _BITUL(X86_EFLAGS_VM_BIT)
0039 #define X86_EFLAGS_AC_BIT 18
0040 #define X86_EFLAGS_AC _BITUL(X86_EFLAGS_AC_BIT)
0041 #define X86_EFLAGS_VIF_BIT 19
0042 #define X86_EFLAGS_VIF _BITUL(X86_EFLAGS_VIF_BIT)
0043 #define X86_EFLAGS_VIP_BIT 20
0044 #define X86_EFLAGS_VIP _BITUL(X86_EFLAGS_VIP_BIT)
0045 #define X86_EFLAGS_ID_BIT 21
0046 #define X86_EFLAGS_ID _BITUL(X86_EFLAGS_ID_BIT)
0047
0048
0049
0050
0051 #define X86_CR0_PE_BIT 0
0052 #define X86_CR0_PE _BITUL(X86_CR0_PE_BIT)
0053 #define X86_CR0_MP_BIT 1
0054 #define X86_CR0_MP _BITUL(X86_CR0_MP_BIT)
0055 #define X86_CR0_EM_BIT 2
0056 #define X86_CR0_EM _BITUL(X86_CR0_EM_BIT)
0057 #define X86_CR0_TS_BIT 3
0058 #define X86_CR0_TS _BITUL(X86_CR0_TS_BIT)
0059 #define X86_CR0_ET_BIT 4
0060 #define X86_CR0_ET _BITUL(X86_CR0_ET_BIT)
0061 #define X86_CR0_NE_BIT 5
0062 #define X86_CR0_NE _BITUL(X86_CR0_NE_BIT)
0063 #define X86_CR0_WP_BIT 16
0064 #define X86_CR0_WP _BITUL(X86_CR0_WP_BIT)
0065 #define X86_CR0_AM_BIT 18
0066 #define X86_CR0_AM _BITUL(X86_CR0_AM_BIT)
0067 #define X86_CR0_NW_BIT 29
0068 #define X86_CR0_NW _BITUL(X86_CR0_NW_BIT)
0069 #define X86_CR0_CD_BIT 30
0070 #define X86_CR0_CD _BITUL(X86_CR0_CD_BIT)
0071 #define X86_CR0_PG_BIT 31
0072 #define X86_CR0_PG _BITUL(X86_CR0_PG_BIT)
0073
0074
0075
0076
0077 #define X86_CR3_PWT_BIT 3
0078 #define X86_CR3_PWT _BITUL(X86_CR3_PWT_BIT)
0079 #define X86_CR3_PCD_BIT 4
0080 #define X86_CR3_PCD _BITUL(X86_CR3_PCD_BIT)
0081
0082 #define X86_CR3_PCID_BITS 12
0083 #define X86_CR3_PCID_MASK (_AC((1UL << X86_CR3_PCID_BITS) - 1, UL))
0084
0085 #define X86_CR3_PCID_NOFLUSH_BIT 63
0086 #define X86_CR3_PCID_NOFLUSH _BITULL(X86_CR3_PCID_NOFLUSH_BIT)
0087
0088
0089
0090
0091 #define X86_CR4_VME_BIT 0
0092 #define X86_CR4_VME _BITUL(X86_CR4_VME_BIT)
0093 #define X86_CR4_PVI_BIT 1
0094 #define X86_CR4_PVI _BITUL(X86_CR4_PVI_BIT)
0095 #define X86_CR4_TSD_BIT 2
0096 #define X86_CR4_TSD _BITUL(X86_CR4_TSD_BIT)
0097 #define X86_CR4_DE_BIT 3
0098 #define X86_CR4_DE _BITUL(X86_CR4_DE_BIT)
0099 #define X86_CR4_PSE_BIT 4
0100 #define X86_CR4_PSE _BITUL(X86_CR4_PSE_BIT)
0101 #define X86_CR4_PAE_BIT 5
0102 #define X86_CR4_PAE _BITUL(X86_CR4_PAE_BIT)
0103 #define X86_CR4_MCE_BIT 6
0104 #define X86_CR4_MCE _BITUL(X86_CR4_MCE_BIT)
0105 #define X86_CR4_PGE_BIT 7
0106 #define X86_CR4_PGE _BITUL(X86_CR4_PGE_BIT)
0107 #define X86_CR4_PCE_BIT 8
0108 #define X86_CR4_PCE _BITUL(X86_CR4_PCE_BIT)
0109 #define X86_CR4_OSFXSR_BIT 9
0110 #define X86_CR4_OSFXSR _BITUL(X86_CR4_OSFXSR_BIT)
0111 #define X86_CR4_OSXMMEXCPT_BIT 10
0112 #define X86_CR4_OSXMMEXCPT _BITUL(X86_CR4_OSXMMEXCPT_BIT)
0113 #define X86_CR4_UMIP_BIT 11
0114 #define X86_CR4_UMIP _BITUL(X86_CR4_UMIP_BIT)
0115 #define X86_CR4_LA57_BIT 12
0116 #define X86_CR4_LA57 _BITUL(X86_CR4_LA57_BIT)
0117 #define X86_CR4_VMXE_BIT 13
0118 #define X86_CR4_VMXE _BITUL(X86_CR4_VMXE_BIT)
0119 #define X86_CR4_SMXE_BIT 14
0120 #define X86_CR4_SMXE _BITUL(X86_CR4_SMXE_BIT)
0121 #define X86_CR4_FSGSBASE_BIT 16
0122 #define X86_CR4_FSGSBASE _BITUL(X86_CR4_FSGSBASE_BIT)
0123 #define X86_CR4_PCIDE_BIT 17
0124 #define X86_CR4_PCIDE _BITUL(X86_CR4_PCIDE_BIT)
0125 #define X86_CR4_OSXSAVE_BIT 18
0126 #define X86_CR4_OSXSAVE _BITUL(X86_CR4_OSXSAVE_BIT)
0127 #define X86_CR4_SMEP_BIT 20
0128 #define X86_CR4_SMEP _BITUL(X86_CR4_SMEP_BIT)
0129 #define X86_CR4_SMAP_BIT 21
0130 #define X86_CR4_SMAP _BITUL(X86_CR4_SMAP_BIT)
0131 #define X86_CR4_PKE_BIT 22
0132 #define X86_CR4_PKE _BITUL(X86_CR4_PKE_BIT)
0133 #define X86_CR4_CET_BIT 23
0134 #define X86_CR4_CET _BITUL(X86_CR4_CET_BIT)
0135
0136
0137
0138
0139 #define X86_CR8_TPR _AC(0x0000000f,UL)
0140
0141
0142
0143
0144
0145
0146
0147
0148 #define CX86_PCR0 0x20
0149 #define CX86_GCR 0xb8
0150 #define CX86_CCR0 0xc0
0151 #define CX86_CCR1 0xc1
0152 #define CX86_CCR2 0xc2
0153 #define CX86_CCR3 0xc3
0154 #define CX86_CCR4 0xe8
0155 #define CX86_CCR5 0xe9
0156 #define CX86_CCR6 0xea
0157 #define CX86_CCR7 0xeb
0158 #define CX86_PCR1 0xf0
0159 #define CX86_DIR0 0xfe
0160 #define CX86_DIR1 0xff
0161 #define CX86_ARR_BASE 0xc4
0162 #define CX86_RCR_BASE 0xdc
0163
0164 #define CR0_STATE (X86_CR0_PE | X86_CR0_MP | X86_CR0_ET | \
0165 X86_CR0_NE | X86_CR0_WP | X86_CR0_AM | \
0166 X86_CR0_PG)
0167
0168 #endif