linux/arch/x86/include/uapi/asm/processor-flags.h

/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef _UAPI_ASM_X86_PROCESSOR_FLAGS_H
#define _UAPI_ASM_X86_PROCESSOR_FLAGS_H
/* Various flags defined: can be included from assembler. */

#include <linux/const.h>

/*
 * EFLAGS bits
 */
#define X86_EFLAGS_CF_BIT
#define X86_EFLAGS_CF
#define X86_EFLAGS_FIXED_BIT
#define X86_EFLAGS_FIXED
#define X86_EFLAGS_PF_BIT
#define X86_EFLAGS_PF
#define X86_EFLAGS_AF_BIT
#define X86_EFLAGS_AF
#define X86_EFLAGS_ZF_BIT
#define X86_EFLAGS_ZF
#define X86_EFLAGS_SF_BIT
#define X86_EFLAGS_SF
#define X86_EFLAGS_TF_BIT
#define X86_EFLAGS_TF
#define X86_EFLAGS_IF_BIT
#define X86_EFLAGS_IF
#define X86_EFLAGS_DF_BIT
#define X86_EFLAGS_DF
#define X86_EFLAGS_OF_BIT
#define X86_EFLAGS_OF
#define X86_EFLAGS_IOPL_BIT
#define X86_EFLAGS_IOPL
#define X86_EFLAGS_NT_BIT
#define X86_EFLAGS_NT
#define X86_EFLAGS_RF_BIT
#define X86_EFLAGS_RF
#define X86_EFLAGS_VM_BIT
#define X86_EFLAGS_VM
#define X86_EFLAGS_AC_BIT
#define X86_EFLAGS_AC
#define X86_EFLAGS_VIF_BIT
#define X86_EFLAGS_VIF
#define X86_EFLAGS_VIP_BIT
#define X86_EFLAGS_VIP
#define X86_EFLAGS_ID_BIT
#define X86_EFLAGS_ID

/*
 * Basic CPU control in CR0
 */
#define X86_CR0_PE_BIT
#define X86_CR0_PE
#define X86_CR0_MP_BIT
#define X86_CR0_MP
#define X86_CR0_EM_BIT
#define X86_CR0_EM
#define X86_CR0_TS_BIT
#define X86_CR0_TS
#define X86_CR0_ET_BIT
#define X86_CR0_ET
#define X86_CR0_NE_BIT
#define X86_CR0_NE
#define X86_CR0_WP_BIT
#define X86_CR0_WP
#define X86_CR0_AM_BIT
#define X86_CR0_AM
#define X86_CR0_NW_BIT
#define X86_CR0_NW
#define X86_CR0_CD_BIT
#define X86_CR0_CD
#define X86_CR0_PG_BIT
#define X86_CR0_PG

/*
 * Paging options in CR3
 */
#define X86_CR3_PWT_BIT
#define X86_CR3_PWT
#define X86_CR3_PCD_BIT
#define X86_CR3_PCD

#define X86_CR3_PCID_BITS
#define X86_CR3_PCID_MASK

#define X86_CR3_LAM_U57_BIT
#define X86_CR3_LAM_U57
#define X86_CR3_LAM_U48_BIT
#define X86_CR3_LAM_U48
#define X86_CR3_PCID_NOFLUSH_BIT
#define X86_CR3_PCID_NOFLUSH

/*
 * Intel CPU features in CR4
 */
#define X86_CR4_VME_BIT
#define X86_CR4_VME
#define X86_CR4_PVI_BIT
#define X86_CR4_PVI
#define X86_CR4_TSD_BIT
#define X86_CR4_TSD
#define X86_CR4_DE_BIT
#define X86_CR4_DE
#define X86_CR4_PSE_BIT
#define X86_CR4_PSE
#define X86_CR4_PAE_BIT
#define X86_CR4_PAE
#define X86_CR4_MCE_BIT
#define X86_CR4_MCE
#define X86_CR4_PGE_BIT
#define X86_CR4_PGE
#define X86_CR4_PCE_BIT
#define X86_CR4_PCE
#define X86_CR4_OSFXSR_BIT
#define X86_CR4_OSFXSR
#define X86_CR4_OSXMMEXCPT_BIT
#define X86_CR4_OSXMMEXCPT
#define X86_CR4_UMIP_BIT
#define X86_CR4_UMIP
#define X86_CR4_LA57_BIT
#define X86_CR4_LA57
#define X86_CR4_VMXE_BIT
#define X86_CR4_VMXE
#define X86_CR4_SMXE_BIT
#define X86_CR4_SMXE
#define X86_CR4_FSGSBASE_BIT
#define X86_CR4_FSGSBASE
#define X86_CR4_PCIDE_BIT
#define X86_CR4_PCIDE
#define X86_CR4_OSXSAVE_BIT
#define X86_CR4_OSXSAVE
#define X86_CR4_SMEP_BIT
#define X86_CR4_SMEP
#define X86_CR4_SMAP_BIT
#define X86_CR4_SMAP
#define X86_CR4_PKE_BIT
#define X86_CR4_PKE
#define X86_CR4_CET_BIT
#define X86_CR4_CET
#define X86_CR4_LAM_SUP_BIT
#define X86_CR4_LAM_SUP

#ifdef __x86_64__
#define X86_CR4_FRED_BIT
#define X86_CR4_FRED
#else
#define X86_CR4_FRED
#endif

/*
 * x86-64 Task Priority Register, CR8
 */
#define X86_CR8_TPR

/*
 * AMD and Transmeta use MSRs for configuration; see <asm/msr-index.h>
 */

/*
 *      NSC/Cyrix CPU configuration register indexes
 */
#define CX86_PCR0
#define CX86_GCR
#define CX86_CCR0
#define CX86_CCR1
#define CX86_CCR2
#define CX86_CCR3
#define CX86_CCR4
#define CX86_CCR5
#define CX86_CCR6
#define CX86_CCR7
#define CX86_PCR1
#define CX86_DIR0
#define CX86_DIR1
#define CX86_ARR_BASE
#define CX86_RCR_BASE

#define CR0_STATE

#endif /* _UAPI_ASM_X86_PROCESSOR_FLAGS_H */