0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync;; @file
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync; VM - The Virtual Machine.
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync;
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync;
157093a77f2752732368338110cb50fa6cd7717fvboxsync; Copyright (C) 2006-2014 Oracle Corporation
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync;
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync; This file is part of VirtualBox Open Source Edition (OSE), as
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync; available from http://www.virtualbox.org. This file is free software;
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync; you can redistribute it and/or modify it under the terms of the GNU
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync; General Public License (GPL) as published by the Free Software
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync; Foundation, in version 2 as it comes in the "COPYING" file of the
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync; VirtualBox OSE distribution. VirtualBox OSE is distributed in the
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync;
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync; The contents of this file may alternatively be used under the terms
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync; of the Common Development and Distribution License Version 1.0
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync; (CDDL) only, as it comes in the "COPYING.CDDL" file of the
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync; VirtualBox OSE distribution, in which case the provisions of the
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync; CDDL are applicable instead of those of the GPL.
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync;
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync; You may elect to license modified versions of this file under the
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync; terms and conditions of either the GPL or the CDDL or both.
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync;
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
a1d83f29ade4c8f9fe95fc75d3fb2642f36081c1vboxsync%ifndef ___VBox_vmm_vm_mac
a1d83f29ade4c8f9fe95fc75d3fb2642f36081c1vboxsync%define ___VBox_vmm_vm_mac
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync%include "VBox/vmm/stam.mac"
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync;/** This action forces the VM to service check and pending interrups on the APIC. */
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync%define VMCPU_FF_INTERRUPT_APIC (1 << 0)
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync;/** This action forces the VM to service check and pending interrups on the PIC. */
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync%define VMCPU_FF_INTERRUPT_PIC (1 << 1)
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync;/** This action forces the VM to schedule and run pending timer (TM). */
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync%define VMCPU_FF_TIMER (1 << 2)
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync;/** This action forces the VM to service pending requests from other
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync; * thread or requests which must be executed in another context. */
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync%define VMCPU_FF_REQUEST (1 << 9)
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync;;
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync; This is part of the VM structure.
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsyncstruc VM
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .enmVMState resd 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .fGlobalForcedActions resd 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .paVMPagesR3 RTR3PTR_RES 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .pSession RTR0PTR_RES 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .pUVM RTR3PTR_RES 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .pVMR3 RTR3PTR_RES 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .pVMR0 RTR0PTR_RES 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .pVMRC RTRCPTR_RES 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .hSelf resd 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .cCpus resd 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .uCpuExecutionCap resd 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .cbSelf resd 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .offVMCPU resd 1
3942acfaf590eaef4740d7b8a5311bb91e2bed0dvboxsync .pfnVMMRCToHostAsm resd 1
3942acfaf590eaef4740d7b8a5311bb91e2bed0dvboxsync .pfnVMMRCToHostAsmNoReturn resd 1
196f5d54f710d2479d74f17c81a49562cc74f9a1vboxsync .fRecompileUser resb 1
196f5d54f710d2479d74f17c81a49562cc74f9a1vboxsync .fRecompileSupervisor resb 1
7ce6e7e8fb0eddb176361a49f53fa1bd15eaab4evboxsync .fRawRing1Enabled resb 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .fPATMEnabled resb 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .fCSAMEnabled resb 1
beb683ae4828ae01a388a124997a2517fbe78190vboxsync .fHMEnabled resb 1
beb683ae4828ae01a388a124997a2517fbe78190vboxsync .fHMEnabledFixed resb 1
ae20b83f0c94402a3e3ac021c3d4e5f827e4905cvboxsync .fHMNeedRawModeCtx resb 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .fFaultTolerantMaster resb 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .fUseLargePages resb 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
ae20b83f0c94402a3e3ac021c3d4e5f827e4905cvboxsync .uPadding1 resb 2
3942acfaf590eaef4740d7b8a5311bb91e2bed0dvboxsync
a1d83f29ade4c8f9fe95fc75d3fb2642f36081c1vboxsync .hTraceBufRC RTRCPTR_RES 1
a1d83f29ade4c8f9fe95fc75d3fb2642f36081c1vboxsync .hTraceBufR3 RTR3PTR_RES 1
a1d83f29ade4c8f9fe95fc75d3fb2642f36081c1vboxsync .hTraceBufR0 RTR0PTR_RES 1
a1d83f29ade4c8f9fe95fc75d3fb2642f36081c1vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync alignb 8
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .StatTotalQemuToGC resb STAMPROFILEADV_size
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .StatTotalGCToQemu resb STAMPROFILEADV_size
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .StatTotalInGC resb STAMPROFILEADV_size
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .StatTotalInQemu resb STAMPROFILEADV_size
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .StatSwitcherToGC resb STAMPROFILEADV_size
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .StatSwitcherToHC resb STAMPROFILEADV_size
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .StatSwitcherSaveRegs resb STAMPROFILEADV_size
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .StatSwitcherSysEnter resb STAMPROFILEADV_size
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .StatSwitcherDebug resb STAMPROFILEADV_size
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .StatSwitcherCR0 resb STAMPROFILEADV_size
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .StatSwitcherCR4 resb STAMPROFILEADV_size
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .StatSwitcherJmpCR3 resb STAMPROFILEADV_size
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .StatSwitcherRstrRegs resb STAMPROFILEADV_size
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .StatSwitcherLgdt resb STAMPROFILEADV_size
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .StatSwitcherLidt resb STAMPROFILEADV_size
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .StatSwitcherLldt resb STAMPROFILEADV_size
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .StatSwitcherTSS resb STAMPROFILEADV_size
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync%ifndef HC_ARCH_BITS
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync %error "Missing HC_ARCH_BITS"
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync%endif
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync%if HC_ARCH_BITS == 32
3942acfaf590eaef4740d7b8a5311bb91e2bed0dvboxsync .abAlignment3 resb 16
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync%else
dd689a9d08909a7c3670e62e8b058783e0805cbcvboxsync; .abAlignment3 resb 16
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync%endif
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync alignb 64
673c4af47215ff0f21f244462a3dfd63f8b522cdvboxsync .cpum resb 1536
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .vmm resb 1536
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsyncendstruc
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync;;
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync; This is part of the VMCPU structure.
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsyncstruc VMCPU
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .fLocalForcedActions resd 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .enmState resd 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .pUVCpu RTR3PTR_RES 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .pVMR3 RTR3PTR_RES 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .pVMR0 RTR0PTR_RES 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .pVMRC RTRCPTR_RES 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .idCpu resd 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .hNativeThread RTR0PTR_RES 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .hNativeThreadR0 RTR0PTR_RES 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .idHostCpu resd 1
f0c75bc994ebd95d398f55685e0130dc876bb053vboxsync .iHostCpuSet resd 1
a8b31f6b3abd04475d4abcb5292aa22131b5130fvboxsync .fTraceGroups resd 1
a8b31f6b3abd04475d4abcb5292aa22131b5130fvboxsync%if HC_ARCH_BITS == 32
f0c75bc994ebd95d398f55685e0130dc876bb053vboxsync .abAlignment1 resb 12+64
a8b31f6b3abd04475d4abcb5292aa22131b5130fvboxsync%else
f0c75bc994ebd95d398f55685e0130dc876bb053vboxsync .abAlignment1 resb 56
a8b31f6b3abd04475d4abcb5292aa22131b5130fvboxsync%endif
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .uAdHoc resd 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .aStatAdHoc resb STAMPROFILEADV_size * 8
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync alignb 64
03e8e21575a0d6ace51c528e7a6fcc35ce69cae7vboxsync .hm resb 5760
03e8e21575a0d6ace51c528e7a6fcc35ce69cae7vboxsync .em resb 1408
fa94cbe3cda9a48bb743f0c2b26ec06927878830vboxsync .iem resb 3072
fa94cbe3cda9a48bb743f0c2b26ec06927878830vboxsync .trpm resb 128
fa94cbe3cda9a48bb743f0c2b26ec06927878830vboxsync .tm resb 384
89f5aff9eff63826c9b171cc7fdb9dc1513fa09dvboxsync .vmm resb 704
a0352d06ef77cf45a08eb08b4d65d570b7b294cbvboxsync .pdm resb 256
fa94cbe3cda9a48bb743f0c2b26ec06927878830vboxsync .iom resb 512
fa94cbe3cda9a48bb743f0c2b26ec06927878830vboxsync .dbgf resb 64
236b2935f217749893b7034e59da3e3568928acevboxsync .gim resb 64
d04c23fbd5db5617cabe39a68b7c5079cace9c73vboxsync
fa94cbe3cda9a48bb743f0c2b26ec06927878830vboxsync alignb 4096
fa94cbe3cda9a48bb743f0c2b26ec06927878830vboxsync .pgm resb 4096
5985f55d4de24e97cbc6d841bfb5b24dfdb51f3cvboxsync alignb 4096
447d6c76d88201b58c0bd7b0c8621088cf428951vboxsync .cpum resb 4096
5985f55d4de24e97cbc6d841bfb5b24dfdb51f3cvboxsync alignb 4096
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsyncendstruc
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync%endif
a1d83f29ade4c8f9fe95fc75d3fb2642f36081c1vboxsync