Cleanup EFLAGS related definitions
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 38s
Builds / ExectOS (i686) (push) Successful in 37s

This commit is contained in:
Rafal Kupiec 2024-05-14 16:22:10 +02:00
parent 01d127f49e
commit efef3cb80d
Signed by: belliash
GPG Key ID: 4E829243E0CFE6B4
4 changed files with 41 additions and 68 deletions

View File

@ -93,29 +93,31 @@
#define X86_MSR_EFER_SVME (1 << 12)
/* X86 EFLAG bit masks definitions */
#define X86_EFLAGS_CF_MASK 0x00000001
#define X86_EFLAGS_PF_MASK 0x00000004
#define X86_EFALGS_AF_MASK 0x00000010
#define X86_EFLAGS_ZF_MASK 0x00000040
#define X86_EFLAGS_SF_MASK 0x00000080
#define X86_EFLAGS_TF_MASK 0x00000100
#define X86_EFLAGS_IF_MASK 0x00000200
#define X86_EFLAGS_DF_MASK 0x00000400
#define X86_EFLAGS_OF_MASK 0x00000800
#define X86_EFLAGS_IOPL_MASK 0x00003000
#define X86_EFLAGS_NT_MASK 0x00004000
#define X86_EFLAGS_RF_MASK 0x00010000
#define X86_EFLAGS_VM_MASK 0x00020000
#define X86_EFLAGS_AC_MASK 0x00040000
#define X86_EFLAGS_VIF_MASK 0x00080000
#define X86_EFLAGS_VIP_MASK 0x00100000
#define X86_EFLAGS_ID_MASK 0x00200000
#define X86_EFLAGS_NF_MASK 0x00000000 /* None */
#define X86_EFLAGS_CF_MASK 0x00000001 /* Carry */
#define X86_EFLAGS_PF_MASK 0x00000004 /* Parity */
#define X86_EFALGS_AF_MASK 0x00000010 /* Aux Carry */
#define X86_EFLAGS_ZF_MASK 0x00000040 /* Zero */
#define X86_EFLAGS_SF_MASK 0x00000080 /* Sign */
#define X86_EFLAGS_TF_MASK 0x00000100 /* Trap */
#define X86_EFLAGS_IF_MASK 0x00000200 /* Interrupt */
#define X86_EFLAGS_DF_MASK 0x00000400 /* Direction */
#define X86_EFLAGS_OF_MASK 0x00000800 /* Overflow */
#define X86_EFLAGS_IOPL_MASK 0x00003000 /* I/O Privilege */
#define X86_EFLAGS_NT_MASK 0x00004000 /* Nested Task */
#define X86_EFLAGS_SIGN_MASK 0x00008000 /* Sign */
#define X86_EFLAGS_RF_MASK 0x00010000 /* Resume */
#define X86_EFLAGS_V86_MASK 0x00020000 /* Virtual 8086 */
#define X86_EFLAGS_AC_MASK 0x00040000 /* Alignment Check */
#define X86_EFLAGS_VIF_MASK 0x00080000 /* Virtual Interrupt */
#define X86_EFLAGS_VIP_MASK 0x00100000 /* Virtual Interrupt Pending */
#define X86_EFLAGS_ID_MASK 0x00200000 /* Identification */
/* CPU vendor enumeration list */
typedef enum _CPU_VENDOR
{
CPU_VENDOR_AMD = 0x68747541,
CPU_VENDOR_INTEL = 0x756e6547,
CPU_VENDOR_INTEL = 0x756E6547,
CPU_VENDOR_UNKNOWN = 0xFFFFFFFF
} CPU_VENDOR, *PCPU_VENDOR;

View File

@ -67,31 +67,6 @@
#define AMD64_INTERRUPT_GATE 0xE
#define AMD64_TRAP_GATE 0xF
/* EFLAGS bits definitions */
#define EFLAGS_NF_MASK 0x00000000L /* None */
#define EFLAGS_CF_MASK 0x00000001L /* Carry */
#define EFLAGS_PF_MASK 0x00000004L /* Parity */
#define EFLAGS_AF_MASK 0x00000010L /* Aux Carry */
#define EFLAGS_ZF_MASK 0x00000040L /* Zero */
#define EFLAGS_SF_MASK 0x00000080L /* Sign */
#define EFLAGS_TF 0x00000100L /* Trap */
#define EFLAGS_INTERRUPT_MASK 0x00000200L /* Interrupt */
#define EFLAGS_DF_MASK 0x00000400L /* Direction */
#define EFLAGS_OF_MASK 0x00000800L /* Overflow */
#define EFLAGS_IOPL_MASK 0x00003000L /* I/O Privilege */
#define EFLAGS_NT 0x00004000L /* Nested Task */
#define EFLAGS_SIGN_MASK 0x00008000L /* Sign */
#define EFLAGS_RF 0x00010000L /* Resume */
#define EFLAGS_V86_MASK 0x00020000L /* Virtual 8086 */
#define EFLAGS_ALIGN_CHECK 0x00040000L /* Alignment Check */
#define EFLAGS_VIF 0x00080000L /* Virtual Interrupt */
#define EFLAGS_VIP 0x00100000L /* Virtual Interrupt Pending */
#define EFLAGS_ID_MASK 0x00200000L /* Identification */
/* EFLAGS sanitize masks */
#define EFLAGS_KERNELMODE 0x00210FD5L
#define EFLAGS_USERMODE 0x00010DD5L
/* Context control flags */
#define CONTEXT_ARCHITECTURE 0x00100000
#define CONTEXT_CONTROL (CONTEXT_ARCHITECTURE | 0x01)

View File

@ -62,6 +62,27 @@
#define SEGMENT_FS 0x64
#define SEGMENT_GS 0x65
/* X86 EFLAG bit masks definitions */
#define X86_EFLAGS_NF_MASK 0x00000000 /* None */
#define X86_EFLAGS_CF_MASK 0x00000001 /* Carry */
#define X86_EFLAGS_PF_MASK 0x00000004 /* Parity */
#define X86_EFALGS_AF_MASK 0x00000010 /* Aux Carry */
#define X86_EFLAGS_ZF_MASK 0x00000040 /* Zero */
#define X86_EFLAGS_SF_MASK 0x00000080 /* Sign */
#define X86_EFLAGS_TF_MASK 0x00000100 /* Trap */
#define X86_EFLAGS_IF_MASK 0x00000200 /* Interrupt */
#define X86_EFLAGS_DF_MASK 0x00000400 /* Direction */
#define X86_EFLAGS_OF_MASK 0x00000800 /* Overflow */
#define X86_EFLAGS_IOPL_MASK 0x00003000 /* I/O Privilege */
#define X86_EFLAGS_NT_MASK 0x00004000 /* Nested Task */
#define X86_EFLAGS_SIGN_MASK 0x00008000 /* Sign */
#define X86_EFLAGS_RF_MASK 0x00010000 /* Resume */
#define X86_EFLAGS_V86_MASK 0x00020000 /* Virtual 8086 */
#define X86_EFLAGS_AC_MASK 0x00040000 /* Alignment Check */
#define X86_EFLAGS_VIF_MASK 0x00080000 /* Virtual Interrupt */
#define X86_EFLAGS_VIP_MASK 0x00100000 /* Virtual Interrupt Pending */
#define X86_EFLAGS_ID_MASK 0x00200000 /* Identification */
/* CPU vendor enumeration list */
typedef enum _CPU_VENDOR
{

View File

@ -95,31 +95,6 @@
#define I686_INTERRUPT_GATE 0xE
#define I686_TRAP_GATE 0xF
/* EFlags bits definitions */
#define EFLAGS_NF_MASK 0x00000000L /* None */
#define EFLAGS_CF_MASK 0x00000001L /* Carry */
#define EFLAGS_PF_MASK 0x00000004L /* Parity */
#define EFLAGS_AF_MASK 0x00000010L /* Aux Carry */
#define EFLAGS_ZF_MASK 0x00000040L /* Zero */
#define EFLAGS_SF_MASK 0x00000080L /* Sign */
#define EFLAGS_TF 0x00000100L /* Trap */
#define EFLAGS_INTERRUPT_MASK 0x00000200L /* Interrupt */
#define EFLAGS_DF_MASK 0x00000400L /* Direction */
#define EFLAGS_OF_MASK 0x00000800L /* Overflow */
#define EFLAGS_IOPL_MASK 0x00003000L /* I/O Privilege */
#define EFLAGS_NT 0x00004000L /* Nested Task */
#define EFLAGS_SIGN_MASK 0x00008000L /* Sign */
#define EFLAGS_RF 0x00010000L /* Resume */
#define EFLAGS_V86_MASK 0x00020000L /* Virtual 8086 */
#define EFLAGS_ALIGN_CHECK 0x00040000L /* Alignment Check */
#define EFLAGS_VIF 0x00080000L /* Virtual Interrupt */
#define EFLAGS_VIP 0x00100000L /* Virtual Interrupt Pending */
#define EFLAGS_ID_MASK 0x00200000L /* Identification */
/* EFLAGS sanitize masks */
#define EFLAGS_KERNELMODE 0x003F0FD7L
#define EFLAGS_USERMODE 0x003F4DD7L
/* Context control flags */
#define CONTEXT_ARCHITECTURE 0x00010000
#define CONTEXT_CONTROL (CONTEXT_ARCHITECTURE | 0x01)