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

VM Struct Reference
[The Virtual Machine]

#include <vm.h>

List of all members.


Detailed Description

This is the VM structure.

It contains (nearly?) all the VM data which have to be available in all contexts. Even if it contains all the data the idea is to use APIs not to modify all the members all around the place. Therefore we make use of unions to hide everything which isn't local to the current source module. This means we'll have to pay a little bit of attention when adding new members to structures in the unions and make sure to keep the padding sizes up to date.

Run tstVMStructSize after update!

Definition at line 683 of file vm.h.


Public Member Functions

 R0PTRTYPE (struct VM *) pVMR0
 R3PTRTYPE (struct VM *) pVMR3
 R3PTRTYPE (PSUPPAGE) paVMPagesR3
 RCPTRTYPE (struct VM *) pVMRC

Public Attributes

uint8_t abAlignment1 [HC_ARCH_BITS==32?48:24]
uint8_t abAlignment2 [2056]
VMCPU aCpus [1]
uint32_t cbSelf
uint32_t cCpus
union {
   uint8_t   padding [8]
cfgm
union {
   uint8_t   padding [1472]
cpum
union {
   uint8_t   padding [1088]
csam
union {
   uint8_t   padding [2368]
dbgf
union {
   uint8_t   padding [256]
em
VMSTATE volatile enmVMState
volatile uint32_t fGlobalForcedActions
uint32_t hSelf
union {
   uint8_t   padding [5376]
hwaccm
union {
   uint8_t   padding [832]
iom
union {
   uint8_t   padding [192]
mm
uint32_t offVMCPU
union {
   uint8_t   padding [24]
parav
union {
   uint8_t   padding [768]
patm
union {
   uint8_t   padding [1600]
pdm
union {
   uint8_t   padding [4096 *2+6080]
pgm
PSUPDRVSESSION pSession
PUVM pUVM
union {
   uint8_t   padding [0x11100]
rem
union {
   uint8_t   padding [576]
selm
union {
   uint8_t   padding [128]
ssm
STAMPROFILEADV StatSwitcherCR0
STAMPROFILEADV StatSwitcherCR4
STAMPROFILEADV StatSwitcherDebug
STAMPROFILEADV StatSwitcherJmpCR3
STAMPROFILEADV StatSwitcherLgdt
STAMPROFILEADV StatSwitcherLidt
STAMPROFILEADV StatSwitcherLldt
STAMPROFILEADV StatSwitcherRstrRegs
STAMPROFILEADV StatSwitcherSaveRegs
STAMPROFILEADV StatSwitcherSysEnter
STAMPROFILEADV StatSwitcherToGC
STAMPROFILEADV StatSwitcherToHC
STAMPROFILEADV StatSwitcherTSS
STAMPROFILEADV StatTotalGCToQemu
STAMPROFILEADV StatTotalInGC
STAMPROFILEADV StatTotalInQemu
STAMPROFILEADV StatTotalQemuToGC
union {
   uint8_t   padding [2112]
tm
union {
   uint8_t   padding [5184]
trpm
uint32_t u32Reserved [6]
union {
   uint8_t   padding [24]
vm
union {
   uint8_t   padding [1536]
vmm
Various items that are frequently accessed.
bool fCSAMEnabled
bool fHWACCMEnabled
bool fHwVirtExtForced
bool fPARAVEnabled
bool fPATMEnabled
bool fRawR0Enabled
bool fRawR3Enabled
bool fUseLargePages
Public VMM Switcher APIs
RTRCPTR pfnVMMGCGuestToHostAsm
RTRCPTR pfnVMMGCGuestToHostAsmGuestCtx
RTRCPTR pfnVMMGCGuestToHostAsmHyperCtx
Various VM data owned by VM.
RTTHREAD uPadding1
RTNATIVETHREAD uPadding2

The documentation for this struct was generated from the following file:

Generated by  Doxygen 1.6.0   Back to index