Logo Search packages:      
Sourcecode: virtualbox-ose version File versions

cpum.h File Reference


Detailed Description

CPUM - CPU Monitor(/ Manager).

Definition in file cpum.h.

#include <VBox/cdefs.h>
#include <VBox/types.h>
#include <VBox/x86.h>

Go to the source code of this file.

Classes

struct  CPUMCPUID
struct  CPUMCTX
struct  CPUMCTXCORE
struct  CPUMSELREGHIDDEN
struct  CPUMSYSENTER

Guest Register Getters.

uint32_t iLeaf
uint32_t iReg
uint16_t * pcbLimit
uint32_t uint32_t * pEax
uint32_t uint32_t uint32_t * pEbx
uint32_t uint32_t uint32_t
uint32_t * 
pEcx
uint32_t uint32_t uint32_t
uint32_t uint32_t * 
pEdx
PVBOXGDTR pGDTR
uint32_t uint32_t * pValue
 CPUMDECL (CPUMSELREGHID *) CPUMGetGuestTRHid(PVM pVM)
 CPUMDECL (GCPTRTYPE(PCCPUMCPUID)) CPUMGetGuestCpuIdStdGCPtr(PVM pVM)
 CPUMDECL (RTUINTREG) CPUMGetGuestDR0(PVM pVM)
 CPUMDECL (int) CPUMGetGuestCRx(PVM pVM
 CPUMDECL (RTSEL) CPUMGetGuestTR(PVM pVM)
 CPUMDECL (uint32_t) CPUMGetGuestIDTR(PVM pVM
 CPUMDECL (void) CPUMGetGuestGDTR(PVM pVM

Defines

#define CPUMCTX2CORE(pCtx)   ((PCPUMCTXCORE)(void *)&(pCtx)->edi)
Changed flags
These flags are used to keep track of which important register that have been changed since last they were reset. The only one allowed to clear them is REM!

#define CPUM_CHANGED_CR0   BIT(1)
#define CPUM_CHANGED_CR3   BIT(4)
#define CPUM_CHANGED_CR4   BIT(2)
#define CPUM_CHANGED_FPU_REM   BIT(0)
#define CPUM_CHANGED_GDTR   BIT(5)
#define CPUM_CHANGED_GLOBAL_TLB_FLUSH   BIT(3)
#define CPUM_CHANGED_HIDDEN_SEL_REGS   BIT(10)
#define CPUM_CHANGED_IDTR   BIT(6)
#define CPUM_CHANGED_LDTR   BIT(7)
#define CPUM_CHANGED_SYSENTER_MSR   BIT(9)
#define CPUM_CHANGED_TR   BIT(8)

Typedefs

typedef struct CPUMSELREGHIDDEN CPUMSELREGHID
typedef const CPUMCPUIDPCCPUMCPUID
typedef const CPUMCTXCOREPCCPUMCTXCORE
typedef const CPUMSELREGHIDPCCPUMSELREGHID
typedef CPUMCPUIDPCPUMCPUID
typedef CPUMCTXPCPUMCTX
typedef CPUMCTXCOREPCPUMCTXCORE
typedef CPUMSELREGHIDPCPUMSELREGHID

Enumerations

enum  CPUMCPUIDFEATURE { CPUMCPUIDFEATURE_INVALID = 0, CPUMCPUIDFEATURE_APIC, CPUMCPUIDFEATURE_SEP }
enum  CPUMMODE { CPUMMODE_INVALID = 0, CPUMMODE_REAL, CPUMMODE_PROTECTED, CPUMMODE_LONG }

Functions

 CPUMDECL (CPUMMODE) CPUMGetGuestMode(PVM pVM)
 CPUMDECL (unsigned) CPUMGetAndClearChangedFlagsREM(PVM pVM)
 CPUMDECL (PCCPUMCTXCORE) CPUMGetGuestCtxCore(PVM pVM)
Hypervisor Register Getters.
 CPUMDECL (RTGCUINTREG) CPUMGetHyperDR0(PVM pVM)
Misc Guest Predicate Functions.
 CPUMDECL (bool) CPUMIsGuestIn16BitCode(PVM pVM)
 DECLINLINE (bool) CPUMIsGuestInRealMode(PVM pVM)

Variables

uint32_t fChangedFlags
bool fValid
PCPUMCTXCORE pCtxCore
PCPUMCTXppCtx
uint32_t u32
Guest Register Setters.
uint32_t addr
uint32_t cr0
uint32_t cr2
uint32_t cr3
uint32_t cr4
uint16_t cs
uint16_t ds
uint32_t eax
uint32_t ebp
uint32_t ebx
uint32_t ecx
uint32_t edi
uint32_t edx
uint32_t eflags
uint32_t eip
CPUMCPUIDFEATURE enmFeature
uint16_t es
uint32_t esi
uint32_t esp
uint16_t fs
uint16_t gs
uint16_t ldtr
uint32_t uint16_t limit
const PCPUMCTX pCtx
uint16_t ss
uint16_t tr
RTGCUINTREG uDr0
RTGCUINTREG uDr1
RTGCUINTREG uDr2
RTGCUINTREG uDr3
RTGCUINTREG uDr6
RTGCUINTREG uDr7
uint32_t uint32_t Value
Hypervisor Register Setters.
uint32_t Efl
RTSEL SelCS
RTSEL SelDS
RTSEL SelLDTR
RTSEL SelSS
RTSEL SelTR
uint32_t u32EIP
uint32_t u32ESP
R3 DevHlp
PCPUMCTXCORE int rc = pCallbacks->pfnRegister(pCallbacks, &g_DrvMouseQueue)


Generated by  Doxygen 1.6.0   Back to index