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

Classes | Defines | Typedefs | Enumerations | Functions | Variables

cpum.h File Reference

#include <VBox/cdefs.h>
#include <VBox/types.h>
#include <VBox/x86.h>
Include dependency graph for cpum.h:

Go to the source code of this file.

Classes

struct  CPUMCPUID
struct  CPUMCTX
struct  CPUMCTX_VER1_6
struct  CPUMCTXCORE
union  CPUMCTXMSR
struct  CPUMSELREGHID
struct  CPUMSELREGHID_VER1_6
struct  CPUMSYSENTER

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_FPU_REM   RT_BIT(0)
#define CPUM_CHANGED_CR0   RT_BIT(1)
#define CPUM_CHANGED_CR4   RT_BIT(2)
#define CPUM_CHANGED_GLOBAL_TLB_FLUSH   RT_BIT(3)
#define CPUM_CHANGED_CR3   RT_BIT(4)
#define CPUM_CHANGED_GDTR   RT_BIT(5)
#define CPUM_CHANGED_IDTR   RT_BIT(6)
#define CPUM_CHANGED_LDTR   RT_BIT(7)
#define CPUM_CHANGED_TR   RT_BIT(8)
#define CPUM_CHANGED_SYSENTER_MSR   RT_BIT(9)
#define CPUM_CHANGED_HIDDEN_SEL_REGS   RT_BIT(10)
#define CPUM_CHANGED_CPUID   RT_BIT(11)
#define CPUM_CHANGED_ALL
#define CPUM_CHANGED_HIDDEN_SEL_REGS_INVALID   RT_BIT(12)

Typedefs

typedef struct CPUMCPUID CPUMCPUID
typedef enum CPUMCPUIDFEATURE CPUMCPUIDFEATURE
typedef enum CPUMCPUVENDOR CPUMCPUVENDOR
typedef struct CPUMCTX CPUMCTX
typedef struct CPUMCTX_VER1_6 CPUMCTX_VER1_6
typedef struct CPUMCTXCORE CPUMCTXCORE
typedef union CPUMCTXMSR CPUMCTXMSR
typedef struct CPUMSELREGHID CPUMSELREGHID
typedef struct CPUMSELREGHID_VER1_6 CPUMSELREGHID_VER1_6
typedef struct CPUMSYSENTER CPUMSYSENTER
typedef const CPUMCPUIDPCCPUMCPUID
typedef const CPUMCTXMSRPCCPUMCTXMSR
typedef CPUMCPUIDPCPUMCPUID
typedef CPUMCTXMSRPCPUMCTXMSR

Enumerations

enum  CPUMCPUIDFEATURE {
  CPUMCPUIDFEATURE_INVALID = 0, CPUMCPUIDFEATURE_APIC, CPUMCPUIDFEATURE_SEP, CPUMCPUIDFEATURE_SYSCALL,
  CPUMCPUIDFEATURE_PAE, CPUMCPUIDFEATURE_NXE, CPUMCPUIDFEATURE_LAHF, CPUMCPUIDFEATURE_LONG_MODE,
  CPUMCPUIDFEATURE_PAT, CPUMCPUIDFEATURE_X2APIC, CPUMCPUIDFEATURE_RDTSCP, CPUMCPUIDFEATURE_32BIT_HACK = 0x7fffffff
}
enum  CPUMCPUVENDOR {
  CPUMCPUVENDOR_INVALID = 0, CPUMCPUVENDOR_INTEL, CPUMCPUVENDOR_AMD, CPUMCPUVENDOR_VIA,
  CPUMCPUVENDOR_UNKNOWN, CPUMCPUVENDOR_SYNTHETIC, CPUMCPUVENDOR_32BIT_HACK = 0x7fffffff
}

Functions

 VMMDECL (PCCPUMCTXCORE) CPUMGetHyperCtxCore(PVMCPU pVCpu)
 VMMDECL (PCPUMCTX) CPUMQueryGuestCtxPtr(PVMCPU pVCpu)
 VMMDECL (CPUMMODE) CPUMGetGuestMode(PVMCPU pVCpu)
 VMMR3DECL (uint32_t) CPUMR3RemEnter(PVMCPU pVCpu
 VMMR3DECL (void) CPUMR3RemLeave(PVMCPU pVCpu
 VMMR3DECL (int) CPUMR3RawEnter(PVMCPU pVCpu
Misc Guest Predicate Functions.
 DECLINLINE (bool) CPUMIsGuestInRealModeEx(PCPUMCTX pCtx)
 VMMDECL (RTGCUINTREG) CPUMGetHyperDR0(PVMCPU pVCpu)

Variables

uint32_t fChangedFlags
bool fNoOutOfSyncSels
PCPUMCTXCORE pCtxCore
PCPUMCTXppCtx
uint32_t * puCpl
PCPUMCTXCORE int rc
uint32_t u32
Hypervisor Register Setters.
RTSEL SelLDTR
RTSEL SelTR
RTSEL SelCS
RTSEL SelDS
RTSEL SelSS
uint32_t u32ESP
uint32_t Efl
uint32_t u32EIP

Guest Register Getters.

PVBOXGDTR pGDTR
uint16_t * pcbLimit
PCPUMSELREGHID pHidden
unsigned iReg
unsigned uint64_t * pValue
uint32_t iLeaf
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
unsigned idMsr
unsigned uint64_t valMsr
 VMMDECL (void) CPUMGetGuestGDTR(PVMCPU pVCpu
 VMMDECL (RTGCPTR) CPUMGetGuestIDTR(PVMCPU pVCpu
 VMMDECL (RTSEL) CPUMGetGuestTR(PVMCPU pVCpu
 VMMDECL (uint64_t) CPUMGetGuestCR0(PVMCPU pVCpu)
 VMMDECL (int) CPUMGetGuestCRx(PVMCPU pVCpu
 VMMDECL (uint32_t) CPUMGetGuestEFlags(PVMCPU pVCpu)
 VMMDECL (CPUMCPUVENDOR) CPUMGetGuestCpuVendor(PVM pVM)

Guest Register Setters.

uint32_t addr
uint32_t uint16_t limit
uint16_t tr
uint16_t ldtr
uint64_t cr0
uint64_t cr2
uint64_t cr3
uint64_t cr4
uint64_t uDr0
uint64_t uDr1
uint64_t uDr2
uint64_t uDr3
uint64_t uDr6
uint64_t uDr7
uint32_t uint64_t Value
uint32_t eflags
uint32_t eip
uint32_t eax
uint32_t ebx
uint32_t ecx
uint32_t edx
uint32_t esi
uint32_t edi
uint32_t esp
uint32_t ebp
uint16_t cs
uint16_t ds
uint16_t es
uint16_t fs
uint16_t gs
uint16_t ss
uint64_t val
CPUMCPUIDFEATURE enmFeature
const PCPUMCTX pCtx
 VMMDECL (bool) CPUMGetGuestCpuIdFeature(PVM pVM

Detailed Description

CPUM - CPU Monitor(/ Manager). (VMM)

Definition in file cpum.h.


Generated by  Doxygen 1.6.0   Back to index