From 83c0accc5fb6ade04c93818545d909aefac447b3 Mon Sep 17 00:00:00 2001 From: belliash Date: Thu, 9 Nov 2023 16:12:24 +0100 Subject: [PATCH] Update EFLAGS masks --- sdk/xtdk/amd64/ketypes.h | 44 ++++++++++++++++++++++------------------ sdk/xtdk/i686/ketypes.h | 42 +++++++++++++++++++++----------------- 2 files changed, 47 insertions(+), 39 deletions(-) diff --git a/sdk/xtdk/amd64/ketypes.h b/sdk/xtdk/amd64/ketypes.h index d5b8ab0..ee5bcc3 100644 --- a/sdk/xtdk/amd64/ketypes.h +++ b/sdk/xtdk/amd64/ketypes.h @@ -67,26 +67,30 @@ #define AMD64_INTERRUPT_GATE 0xE #define AMD64_TRAP_GATE 0xF -/* EFlags bits definitions */ -#define EFLAGS_CF_MASK 0x00000001L -#define EFLAGS_PF_MASK 0x00000004L -#define EFLAGS_AF_MASK 0x00000010L -#define EFLAGS_ZF_MASK 0x00000040L -#define EFLAGS_SF_MASK 0x00000080L -#define EFLAGS_TF 0x00000100L -#define EFLAGS_INTERRUPT_MASK 0x00000200L -#define EFLAGS_DF_MASK 0x00000400L -#define EFLAGS_OF_MASK 0x00000800L -#define EFLAGS_IOPL_MASK 0x00003000L -#define EFLAGS_NT 0x00004000L -#define EFLAGS_SIGN_MASK 0x00008000L -#define EFLAGS_RF 0x00010000L -#define EFLAGS_V86_MASK 0x00020000L -#define EFLAGS_ALIGN_CHECK 0x00040000L -#define EFLAGS_VIF 0x00080000L -#define EFLAGS_VIP 0x00100000L -#define EFLAGS_ID_MASK 0x00200000L -#define EFLAGS_USER_SANITIZE 0x003F4DD7L +/* 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 diff --git a/sdk/xtdk/i686/ketypes.h b/sdk/xtdk/i686/ketypes.h index ceb5494..7069eb5 100644 --- a/sdk/xtdk/i686/ketypes.h +++ b/sdk/xtdk/i686/ketypes.h @@ -96,25 +96,29 @@ #define I686_TRAP_GATE 0xF /* EFlags bits definitions */ -#define EFLAGS_CF_MASK 0x00000001L -#define EFLAGS_PF_MASK 0x00000004L -#define EFLAGS_AF_MASK 0x00000010L -#define EFLAGS_ZF_MASK 0x00000040L -#define EFLAGS_SF_MASK 0x00000080L -#define EFLAGS_TF 0x00000100L -#define EFLAGS_INTERRUPT_MASK 0x00000200L -#define EFLAGS_DF_MASK 0x00000400L -#define EFLAGS_OF_MASK 0x00000800L -#define EFLAGS_IOPL_MASK 0x00003000L -#define EFLAGS_NT 0x00004000L -#define EFLAGS_SIGN_MASK 0x00008000L -#define EFLAGS_RF 0x00010000L -#define EFLAGS_V86_MASK 0x00020000L -#define EFLAGS_ALIGN_CHECK 0x00040000L -#define EFLAGS_VIF 0x00080000L -#define EFLAGS_VIP 0x00100000L -#define EFLAGS_ID_MASK 0x00200000L -#define EFLAGS_USER_SANITIZE 0x003F4DD7L +#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