vm.mac revision 48bc84be9b4ee5754fe4274941d5fc51bc45468d
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync;; @file
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync; VM - The Virtual Machine.
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync;
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync;
a1d83f29ade4c8f9fe95fc75d3fb2642f36081c1vboxsync; Copyright (C) 2006-2011 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
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .u32Reserved resd 5
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .pfnVMMGCGuestToHostAsmGuestCtx RTRCPTR_RES 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .pfnVMMGCGuestToHostAsmHyperCtx RTRCPTR_RES 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .pfnVMMGCGuestToHostAsm RTRCPTR_RES 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .uPadding1 RTHCPTR_RES 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .uPadding2 RTHCPTR_RES 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .fRawR3Enabled resb 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .fRawR0Enabled resb 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .fPATMEnabled resb 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .fCSAMEnabled resb 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .fHWACCMEnabled resb 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .fHwVirtExtForced resb 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .fFaultTolerantMaster resb 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .fUseLargePages resb 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
a1d83f29ade4c8f9fe95fc75d3fb2642f36081c1vboxsync .hTraceBufRC RTRCPTR_RES 1
a1d83f29ade4c8f9fe95fc75d3fb2642f36081c1vboxsync .uPadding3 resd 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
48bc84be9b4ee5754fe4274941d5fc51bc45468dvboxsync .abAlignment1 resb 30
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync%else
a1d83f29ade4c8f9fe95fc75d3fb2642f36081c1vboxsync; .abAlignment1 resb 0
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync%endif
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync alignb 64
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .cpum resb 1472
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 .pvR0Padding 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
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .uAdHoc resd 1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .aStatAdHoc resb STAMPROFILEADV_size * 8
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync%if HC_ARCH_BITS == 32
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .abAlignment1 resd 16+1
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync%endif
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync alignb 64
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync .cpum resb 4096
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsyncendstruc
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync%endif
a1d83f29ade4c8f9fe95fc75d3fb2642f36081c1vboxsync