Bitdefender Hypervisor Memory Introspection
processor.h File Reference
#include "introdefs.h"

Go to the source code of this file.

Data Structures

struct  _IDT_ENTRY64
 
struct  _IDT_ENTRY32
 

Macros

#define CPU_EFLAGS_CF   BIT(0)
 
#define CPU_EFLAGS_FIXED   BIT(1)
 
#define CPU_EFLAGS_PF   BIT(2)
 
#define CPU_EFLAGS_AF   BIT(4)
 
#define CPU_EFLAGS_ZF   BIT(6)
 
#define CPU_EFLAGS_SF   BIT(7)
 
#define CPU_EFLAGS_TF   BIT(8)
 
#define CPU_EFLAGS_IF   BIT(9)
 
#define CPU_EFLAGS_DF   BIT(10)
 
#define CPU_EFLAGS_OF   BIT(11)
 
#define CPU_EFLAGS_NT   BIT(14)
 
#define CPU_EFLAGS_RF   BIT(16)
 
#define CPU_EFLAGS_VM   BIT(17)
 
#define CPU_EFLAGS_AC   BIT(18)
 
#define CPU_EFLAGS_VIF   BIT(19)
 
#define CPU_EFLAGS_VIP   BIT(20)
 
#define CPU_EFLAGS_ID   BIT(21)
 
#define CR0_PE   BIT(0)
 
#define CR0_MP   BIT(1)
 
#define CR0_EM   BIT(2)
 
#define CR0_TS   BIT(3)
 
#define CR0_ET   BIT(4)
 
#define CR0_NE   BIT(5)
 
#define CR0_WP   BIT(16)
 
#define CR0_AM   BIT(18)
 
#define CR0_NW   BIT(29)
 
#define CR0_CD   BIT(30)
 
#define CR0_PG   BIT(31)
 
#define CR4_VME   BIT(0)
 
#define CR4_PVI   BIT(1)
 
#define CR4_TSD   BIT(2)
 
#define CR4_DE   BIT(3)
 
#define CR4_PSE   BIT(4)
 
#define CR4_PAE   BIT(5)
 
#define CR4_MCE   BIT(6)
 
#define CR4_PGE   BIT(7)
 
#define CR4_PCE   BIT(8)
 
#define CR4_OSFXSR   BIT(9)
 
#define CR4_OSXMMEXCPT   BIT(10)
 
#define CR4_UMIP   BIT(11)
 
#define CR4_LA57   BIT(12)
 
#define CR4_VMXE   BIT(13)
 
#define CR4_SMXE   BIT(14)
 
#define CR4_FSGSBASE   BIT(16)
 
#define CR4_PCIDE   BIT(17)
 
#define CR4_OSXSAVE   BIT(18)
 
#define CR4_SMEP   BIT(20)
 
#define CR4_SMAP   BIT(21)
 
#define CR4_PKE   BIT(22)
 
#define XCR0_X87   BIT(0)
 
#define XCR0_SSE   BIT(1)
 
#define XCR0_YMM_HI128   BIT(2)
 
#define XCR0_BNDREGS   BIT(3)
 
#define XCR0_BNDCSR   BIT(4)
 
#define XCR0_OPMASK   BIT(5)
 
#define XCR0_ZMM_HI256   BIT(6)
 
#define XCR0_HI16_ZMM   BIT(7)
 
#define XCR0_PT   BIT(8)
 
#define XCR0_PKRU   BIT(9)
 
#define XCR0_AVX_512_STATE   (XCR0_ZMM_HI256 | XCR0_HI16_ZMM | XCR0_OPMASK)
 
#define PFEC_P   BIT(0)
 
#define PFEC_RW   BIT(1)
 
#define PFEC_US   BIT(2)
 
#define PFEC_RSVD   BIT(3)
 
#define PFEC_ID   BIT(4)
 
#define PFEC_PK   BIT(5)
 
#define PFEC_SGX   BIT(15)
 
#define EFER_SCE   BIT(0)
 
#define EFER_LME   BIT(8)
 
#define EFER_LMA   BIT(10)
 
#define EFER_NX   BIT(11)
 
#define EFER_SVME   BIT(12)
 
#define EFER_LMSLE   BIT(13)
 
#define EFER_FFXSR   BIT(14)
 
#define DESCRIPTOR_SIZE_32   8
 
#define DESCRIPTOR_SIZE_64   16
 
#define VECTOR_DE   0
 
#define VECTOR_DB   1
 
#define VECTOR_BP   3
 
#define VECTOR_OF   4
 
#define VECTOR_BR   5
 
#define VECTOR_UD   6
 
#define VECTOR_NM   7
 
#define VECTOR_DF   8
 
#define VECTOR_TS   10
 
#define VECTOR_NP   11
 
#define VECTOR_SS   12
 
#define VECTOR_GP   13
 
#define VECTOR_PF   14
 
#define VECTOR_MF   16
 
#define VECTOR_AC   17
 
#define VECTOR_MC   18
 
#define VECTOR_XM   19
 
#define VECTOR_VE   20
 
#define NO_ERRORCODE   ((DWORD)-1)
 

Typedefs

typedef struct _IDT_ENTRY64 IDT_ENTRY64
 
typedef struct _IDT_ENTRY64PIDT_ENTRY64
 
typedef struct _IDT_ENTRY32 IDT_ENTRY32
 
typedef struct _IDT_ENTRY32PIDT_ENTRY32
 

Macro Definition Documentation

◆ CPU_EFLAGS_AC

#define CPU_EFLAGS_AC   BIT(18)

Definition at line 24 of file processor.h.

◆ CPU_EFLAGS_AF

#define CPU_EFLAGS_AF   BIT(4)

Definition at line 14 of file processor.h.

◆ CPU_EFLAGS_CF

#define CPU_EFLAGS_CF   BIT(0)

Definition at line 11 of file processor.h.

Referenced by IntDecEmulatePTWrite(), and IntDecSetFlags().

◆ CPU_EFLAGS_DF

#define CPU_EFLAGS_DF   BIT(10)

Definition at line 19 of file processor.h.

◆ CPU_EFLAGS_FIXED

#define CPU_EFLAGS_FIXED   BIT(1)

Definition at line 12 of file processor.h.

◆ CPU_EFLAGS_ID

#define CPU_EFLAGS_ID   BIT(21)

Definition at line 27 of file processor.h.

◆ CPU_EFLAGS_IF

#define CPU_EFLAGS_IF   BIT(9)

Definition at line 18 of file processor.h.

◆ CPU_EFLAGS_NT

#define CPU_EFLAGS_NT   BIT(14)

Definition at line 21 of file processor.h.

◆ CPU_EFLAGS_OF

#define CPU_EFLAGS_OF   BIT(11)

Definition at line 20 of file processor.h.

Referenced by IntDecSetFlags().

◆ CPU_EFLAGS_PF

#define CPU_EFLAGS_PF   BIT(2)

Definition at line 13 of file processor.h.

Referenced by IntDecSetFlags().

◆ CPU_EFLAGS_RF

#define CPU_EFLAGS_RF   BIT(16)

Definition at line 22 of file processor.h.

◆ CPU_EFLAGS_SF

#define CPU_EFLAGS_SF   BIT(7)

Definition at line 16 of file processor.h.

Referenced by IntDecSetFlags().

◆ CPU_EFLAGS_TF

#define CPU_EFLAGS_TF   BIT(8)

Definition at line 17 of file processor.h.

◆ CPU_EFLAGS_VIF

#define CPU_EFLAGS_VIF   BIT(19)

Definition at line 25 of file processor.h.

◆ CPU_EFLAGS_VIP

#define CPU_EFLAGS_VIP   BIT(20)

Definition at line 26 of file processor.h.

◆ CPU_EFLAGS_VM

#define CPU_EFLAGS_VM   BIT(17)

Definition at line 23 of file processor.h.

◆ CPU_EFLAGS_ZF

#define CPU_EFLAGS_ZF   BIT(6)

Definition at line 15 of file processor.h.

Referenced by IntDecEmulatePTWrite(), and IntDecSetFlags().

◆ CR0_AM

#define CR0_AM   BIT(18)

Definition at line 37 of file processor.h.

◆ CR0_CD

#define CR0_CD   BIT(30)

Definition at line 39 of file processor.h.

◆ CR0_EM

#define CR0_EM   BIT(2)

Definition at line 32 of file processor.h.

◆ CR0_ET

#define CR0_ET   BIT(4)

Definition at line 34 of file processor.h.

◆ CR0_MP

#define CR0_MP   BIT(1)

Definition at line 31 of file processor.h.

◆ CR0_NE

#define CR0_NE   BIT(5)

Definition at line 35 of file processor.h.

◆ CR0_NW

#define CR0_NW   BIT(29)

Definition at line 38 of file processor.h.

◆ CR0_PE

#define CR0_PE   BIT(0)

◆ CR0_PG

◆ CR0_TS

#define CR0_TS   BIT(3)

Definition at line 33 of file processor.h.

◆ CR0_WP

#define CR0_WP   BIT(16)

Definition at line 36 of file processor.h.

◆ CR4_DE

#define CR4_DE   BIT(3)

Definition at line 46 of file processor.h.

◆ CR4_FSGSBASE

#define CR4_FSGSBASE   BIT(16)

Definition at line 58 of file processor.h.

◆ CR4_LA57

#define CR4_LA57   BIT(12)

Definition at line 55 of file processor.h.

Referenced by IntGuestGetPagingMode(), and IntIterateVirtualAddressSpace().

◆ CR4_MCE

#define CR4_MCE   BIT(6)

Definition at line 49 of file processor.h.

◆ CR4_OSFXSR

#define CR4_OSFXSR   BIT(9)

Definition at line 52 of file processor.h.

◆ CR4_OSXMMEXCPT

#define CR4_OSXMMEXCPT   BIT(10)

Definition at line 53 of file processor.h.

◆ CR4_OSXSAVE

#define CR4_OSXSAVE   BIT(18)

Definition at line 60 of file processor.h.

◆ CR4_PAE

#define CR4_PAE   BIT(5)

Definition at line 48 of file processor.h.

Referenced by IntGuestGetPagingMode(), and IntIterateVirtualAddressSpace().

◆ CR4_PCE

#define CR4_PCE   BIT(8)

Definition at line 51 of file processor.h.

◆ CR4_PCIDE

#define CR4_PCIDE   BIT(17)

Definition at line 59 of file processor.h.

◆ CR4_PGE

#define CR4_PGE   BIT(7)

Definition at line 50 of file processor.h.

◆ CR4_PKE

#define CR4_PKE   BIT(22)

Definition at line 63 of file processor.h.

◆ CR4_PSE

#define CR4_PSE   BIT(4)

Definition at line 47 of file processor.h.

◆ CR4_PVI

#define CR4_PVI   BIT(1)

Definition at line 44 of file processor.h.

◆ CR4_SMAP

#define CR4_SMAP   BIT(21)

Definition at line 62 of file processor.h.

Referenced by IntCrLixHandleWrite(), IntCrWinHandleWrite(), and IntExceptGetVictimCr().

◆ CR4_SMEP

#define CR4_SMEP   BIT(20)

Definition at line 61 of file processor.h.

Referenced by IntCrLixHandleWrite(), IntCrWinHandleWrite(), and IntExceptGetVictimCr().

◆ CR4_SMXE

#define CR4_SMXE   BIT(14)

Definition at line 57 of file processor.h.

◆ CR4_TSD

#define CR4_TSD   BIT(2)

Definition at line 45 of file processor.h.

◆ CR4_UMIP

#define CR4_UMIP   BIT(11)

Definition at line 54 of file processor.h.

◆ CR4_VME

#define CR4_VME   BIT(0)

Definition at line 43 of file processor.h.

◆ CR4_VMXE

#define CR4_VMXE   BIT(13)

Definition at line 56 of file processor.h.

◆ DESCRIPTOR_SIZE_32

◆ DESCRIPTOR_SIZE_64

◆ EFER_FFXSR

#define EFER_FFXSR   BIT(14)

Definition at line 98 of file processor.h.

◆ EFER_LMA

#define EFER_LMA   BIT(10)

◆ EFER_LME

#define EFER_LME   BIT(8)

Definition at line 93 of file processor.h.

◆ EFER_LMSLE

#define EFER_LMSLE   BIT(13)

Definition at line 97 of file processor.h.

◆ EFER_NX

#define EFER_NX   BIT(11)

Definition at line 95 of file processor.h.

◆ EFER_SCE

#define EFER_SCE   BIT(0)

Definition at line 92 of file processor.h.

◆ EFER_SVME

#define EFER_SVME   BIT(12)

Definition at line 96 of file processor.h.

◆ NO_ERRORCODE

#define NO_ERRORCODE   ((DWORD)-1)

◆ PFEC_ID

#define PFEC_ID   BIT(4)

Definition at line 87 of file processor.h.

Referenced by IntHandleFetchRetryOnPageBoundary().

◆ PFEC_P

#define PFEC_P   BIT(0)

Definition at line 83 of file processor.h.

Referenced by IntHandleCowOnPage(), and IntSwapMemInjectPendingPF().

◆ PFEC_PK

#define PFEC_PK   BIT(5)

Definition at line 88 of file processor.h.

◆ PFEC_RSVD

#define PFEC_RSVD   BIT(3)

Definition at line 86 of file processor.h.

◆ PFEC_RW

#define PFEC_RW   BIT(1)

Definition at line 84 of file processor.h.

Referenced by IntHandleCowOnPage(), and IntSwapMemInjectPendingPF().

◆ PFEC_SGX

#define PFEC_SGX   BIT(15)

Definition at line 89 of file processor.h.

◆ PFEC_US

◆ VECTOR_AC

#define VECTOR_AC   17

Definition at line 118 of file processor.h.

◆ VECTOR_BP

#define VECTOR_BP   3

Definition at line 106 of file processor.h.

◆ VECTOR_BR

#define VECTOR_BR   5

Definition at line 108 of file processor.h.

◆ VECTOR_DB

#define VECTOR_DB   1

Definition at line 105 of file processor.h.

◆ VECTOR_DE

#define VECTOR_DE   0

Definition at line 104 of file processor.h.

Referenced by IntGuestDetectOs().

◆ VECTOR_DF

#define VECTOR_DF   8

Definition at line 111 of file processor.h.

◆ VECTOR_GP

#define VECTOR_GP   13

Definition at line 115 of file processor.h.

◆ VECTOR_MC

#define VECTOR_MC   18

Definition at line 119 of file processor.h.

◆ VECTOR_MF

#define VECTOR_MF   16

Definition at line 117 of file processor.h.

◆ VECTOR_NM

#define VECTOR_NM   7

Definition at line 110 of file processor.h.

◆ VECTOR_NP

#define VECTOR_NP   11

Definition at line 113 of file processor.h.

◆ VECTOR_OF

#define VECTOR_OF   4

Definition at line 107 of file processor.h.

◆ VECTOR_PF

◆ VECTOR_SS

#define VECTOR_SS   12

Definition at line 114 of file processor.h.

◆ VECTOR_TS

#define VECTOR_TS   10

Definition at line 112 of file processor.h.

◆ VECTOR_UD

#define VECTOR_UD   6

◆ VECTOR_VE

#define VECTOR_VE   20

Definition at line 121 of file processor.h.

◆ VECTOR_XM

#define VECTOR_XM   19

Definition at line 120 of file processor.h.

◆ XCR0_AVX_512_STATE

#define XCR0_AVX_512_STATE   (XCR0_ZMM_HI256 | XCR0_HI16_ZMM | XCR0_OPMASK)

Definition at line 80 of file processor.h.

Referenced by IntDecGetMaxvl().

◆ XCR0_BNDCSR

#define XCR0_BNDCSR   BIT(4)

Definition at line 70 of file processor.h.

◆ XCR0_BNDREGS

#define XCR0_BNDREGS   BIT(3)

Definition at line 69 of file processor.h.

◆ XCR0_HI16_ZMM

#define XCR0_HI16_ZMM   BIT(7)

Definition at line 73 of file processor.h.

◆ XCR0_OPMASK

#define XCR0_OPMASK   BIT(5)

Definition at line 71 of file processor.h.

◆ XCR0_PKRU

#define XCR0_PKRU   BIT(9)

Definition at line 75 of file processor.h.

◆ XCR0_PT

#define XCR0_PT   BIT(8)

Definition at line 74 of file processor.h.

◆ XCR0_SSE

#define XCR0_SSE   BIT(1)

Definition at line 67 of file processor.h.

Referenced by IntDecGetMaxvl().

◆ XCR0_X87

#define XCR0_X87   BIT(0)

Definition at line 66 of file processor.h.

◆ XCR0_YMM_HI128

#define XCR0_YMM_HI128   BIT(2)

Definition at line 68 of file processor.h.

Referenced by IntDecGetMaxvl().

◆ XCR0_ZMM_HI256

#define XCR0_ZMM_HI256   BIT(6)

Definition at line 72 of file processor.h.

Typedef Documentation

◆ IDT_ENTRY32

typedef struct _IDT_ENTRY32 IDT_ENTRY32

◆ IDT_ENTRY64

typedef struct _IDT_ENTRY64 IDT_ENTRY64

◆ PIDT_ENTRY32

typedef struct _IDT_ENTRY32 * PIDT_ENTRY32

◆ PIDT_ENTRY64

typedef struct _IDT_ENTRY64 * PIDT_ENTRY64