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  CPUMSELREGHID
struct  CPUMSYSENTER

Guest Register Setters.

uint32_t addr
uint64_t cr0
uint64_t cr2
uint64_t cr3
uint64_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
uint64_t val
uint32_t uint32_t Value
 CPUMDECL (bool) CPUMGetGuestCpuIdFeature(PVM pVM

Guest Register Getters.

uint32_t iLeaf
unsigned 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
unsigned uint64_t * pValue
 CPUMDECL (CPUMSELREGHID *) CPUMGetGuestTRHid(PVM pVM)
 CPUMDECL (GCPTRTYPE(PCCPUMCPUID)) CPUMGetGuestCpuIdStdGCPtr(PVM pVM)
 CPUMDECL (RTUINTREG) CPUMGetGuestDR0(PVM pVM)
 CPUMDECL (int) CPUMGetGuestCRx(PVM pVM
 CPUMDECL (uint64_t) CPUMGetGuestCR0(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_CPUID   RT_BIT(11)
#define CPUM_CHANGED_CR0   RT_BIT(1)
#define CPUM_CHANGED_CR3   RT_BIT(4)
#define CPUM_CHANGED_CR4   RT_BIT(2)
#define CPUM_CHANGED_FPU_REM   RT_BIT(0)
#define CPUM_CHANGED_GDTR   RT_BIT(5)
#define CPUM_CHANGED_GLOBAL_TLB_FLUSH   RT_BIT(3)
#define CPUM_CHANGED_HIDDEN_SEL_REGS   RT_BIT(10)
#define CPUM_CHANGED_IDTR   RT_BIT(6)
#define CPUM_CHANGED_LDTR   RT_BIT(7)
#define CPUM_CHANGED_SYSENTER_MSR   RT_BIT(9)
#define CPUM_CHANGED_TR   RT_BIT(8)

Typedefs

typedef const CPUMCPUIDPCCPUMCPUID
typedef CPUMCPUIDPCPUMCPUID

Enumerations

enum  CPUMCPUIDFEATURE {
  CPUMCPUIDFEATURE_INVALID = 0, CPUMCPUIDFEATURE_APIC, CPUMCPUIDFEATURE_SEP, CPUMCPUIDFEATURE_PAE,
  CPUMCPUIDFEATURE_LONG_MODE
}
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.
 DECLINLINE (bool) CPUMIsGuestInRealMode(PVM pVM)

Variables

uint32_t fChangedFlags
bool fValid
PCPUMCTXCORE pCtxCore
PCPUMCTXppCtx
uint32_t u32
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