Project

General

Profile

Submit #3265 » 1-add.diff

Anonymous, 01/30/2021 02:12 AM

View differences:

sys/cpu/x86_64/include/specialreg.h
#define _CPU_SPECIALREG_H_
/*
* Bits in 386 special registers:
* Bits in CR0 special register
*/
#define CR0_PE 0x00000001 /* Protected mode Enable */
#define CR0_MP 0x00000002 /* "Math" (fpu) Present */
#define CR0_EM 0x00000004 /* EMulate FPU instructions. (trap ESC only) */
#define CR0_TS 0x00000008 /* Task Switched (if MP, trap ESC and WAIT) */
#define CR0_PG 0x80000000 /* Paging enable */
/*
* Bits in 486 special registers:
*/
#define CR0_ET 0x00000010 /* Extension Type (387 (if set) vs 287) */
#define CR0_NE 0x00000020 /* Numeric Error enable (EX16 vs IRQ13) */
#define CR0_WP 0x00010000 /* Write Protect (honor page protect in all modes) */
#define CR0_AM 0x00040000 /* Alignment Mask (set to enable AC flag) */
#define CR0_NW 0x20000000 /* Not Write-through */
#define CR0_CD 0x40000000 /* Cache Disable */
#define CR0_NW 0x20000000 /* Not Write-through */
#define CR0_CD 0x40000000 /* Cache Disable */
#define CR0_PG 0x80000000 /* Paging enable */
/*
* Bits in CR4 special register
......
#define CR4_PCE 0x00000100 /* Performance monitoring counter enable */
#define CR4_FXSR 0x00000200 /* Fast FPU save/restore used by OS */
#define CR4_XMM 0x00000400 /* Enable SIMD/MMX2 to use except 16 */
#define CR4_UMIP 0x00000800 /* User-mode instruction prevention */
#define CR4_LA57 0x00001000 /* 57-bit linear addresses */
#define CR4_VMXE 0x00002000 /* Enables VMX - Intel specific */
#define CR4_SMXE 0x00004000 /* Enable SMX - Intel specific */
#define CR4_FSGSBASE 0x00010000 /* Enable *FSBASE and *GSBASE insns */
#define CR4_PCIDE 0x00020000 /* Enable Process Context IDentifiers */
#define CR4_XSAVE 0x00040000 /* Enable XSave (for AVX Instructions)*/
#define CR4_SMEP 0x00100000 /* Supervisor-Mode Execution Prevent */
#define CR4_SMAP 0x00200000 /* Supervisor-Mode Access Prevent */
#define CR4_PKE 0x00400000 /* Protection Keys Enable */
#define CR4_PKE 0x00400000 /* Protection Keys Enable for user pages */
#define CR4_CET 0x00800000 /* Enable CET */
#define CR4_PKS 0x01000000 /* Protection Keys Enable for kern pages */
/*
* Bits in x86_64 special registers. EFER is 64 bits wide.
*/
#define EFER_SCE 0x000000001 /* System Call Extensions (R/W) */
#define EFER_LME 0x000000100 /* Long mode enable (R/W) */
#define EFER_LMA 0x000000400 /* Long mode active (R) */
#define EFER_NXE 0x000000800 /* PTE No-Execute bit enable (R/W) */
#define EFER_SVME 0x000001000 /* SVM Enable (R/W) */
#define EFER_SCE 0x00000001 /* System Call Extensions (R/W) */
#define EFER_LME 0x00000100 /* Long mode enable (R/W) */
#define EFER_LMA 0x00000400 /* Long mode active (R) */
#define EFER_NXE 0x00000800 /* PTE No-Execute bit enable (R/W) */
#define EFER_SVME 0x00001000 /* SVM Enable (R/W) */
#define EFER_LMSLE 0x00002000 /* Long Mode Segment Limit Enable */
#define EFER_FFXSR 0x00004000 /* Fast FXSAVE/FXRSTOR Enable */
#define EFER_TCE 0x00008000 /* Translation Cache Ext. */
#define EFER_MCOMMIT 0x00020000 /* MCOMMIT Enable */
#define EFER_INTWB 0x00040000 /* Intr WBINVD/WBNOINVD Enable */
/*
* CPUID instruction features register
(1-1/2)