vm.mac revision 2b01734ae56c7cdf9be61267c3cdb46344637bfa
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync;; @file
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync; VM - The Virtual Machine.
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync;
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync;
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync; Copyright (C) 2006-2011 Oracle Corporation
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync;
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync; This file is part of VirtualBox Open Source Edition (OSE), as
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync; available from http://www.virtualbox.org. This file is free software;
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync; you can redistribute it and/or modify it under the terms of the GNU
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync; General Public License (GPL) as published by the Free Software
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync; Foundation, in version 2 as it comes in the "COPYING" file of the
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync; VirtualBox OSE distribution. VirtualBox OSE is distributed in the
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync;
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync; The contents of this file may alternatively be used under the terms
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync; of the Common Development and Distribution License Version 1.0
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync; (CDDL) only, as it comes in the "COPYING.CDDL" file of the
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync; VirtualBox OSE distribution, in which case the provisions of the
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync; CDDL are applicable instead of those of the GPL.
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync;
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync; You may elect to license modified versions of this file under the
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync; terms and conditions of either the GPL or the CDDL or both.
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync;
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync%ifndef ___VBox_vmm_vm_mac
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync%define ___VBox_vmm_vm_mac
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync%include "VBox/vmm/stam.mac"
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync;/** This action forces the VM to service check and pending interrups on the APIC. */
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync%define VMCPU_FF_INTERRUPT_APIC (1 << 0)
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync;/** This action forces the VM to service check and pending interrups on the PIC. */
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync%define VMCPU_FF_INTERRUPT_PIC (1 << 1)
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync;/** This action forces the VM to schedule and run pending timer (TM). */
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync%define VMCPU_FF_TIMER (1 << 2)
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync;/** This action forces the VM to service pending requests from other
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync; * thread or requests which must be executed in another context. */
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync%define VMCPU_FF_REQUEST (1 << 9)
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync;;
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync; This is part of the VM structure.
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsyncstruc VM
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .enmVMState resd 1
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .fGlobalForcedActions resd 1
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .paVMPagesR3 RTR3PTR_RES 1
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .pSession RTR0PTR_RES 1
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .pUVM RTR3PTR_RES 1
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .pVMR3 RTR3PTR_RES 1
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .pVMR0 RTR0PTR_RES 1
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .pVMRC RTRCPTR_RES 1
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .hSelf resd 1
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .cCpus resd 1
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .uCpuExecutionCap resd 1
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .cbSelf resd 1
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .offVMCPU resd 1
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .u32Reserved resd 5
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .pfnVMMGCGuestToHostAsmGuestCtx RTRCPTR_RES 1
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .pfnVMMGCGuestToHostAsmHyperCtx RTRCPTR_RES 1
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .pfnVMMGCGuestToHostAsm RTRCPTR_RES 1
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .uPadding1 RTHCPTR_RES 1
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .uPadding2 RTHCPTR_RES 1
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .fRecompileUser resb 1
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .fRecompileSupervisor resb 1
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .fPATMEnabled resb 1
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .fCSAMEnabled resb 1
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .fHWACCMEnabled resb 1
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .fHwVirtExtForced resb 1
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .fFaultTolerantMaster resb 1
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .fUseLargePages resb 1
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .hTraceBufRC RTRCPTR_RES 1
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .uPadding3 resd 1
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .hTraceBufR3 RTR3PTR_RES 1
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .hTraceBufR0 RTR0PTR_RES 1
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync alignb 8
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .StatTotalQemuToGC resb STAMPROFILEADV_size
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .StatTotalGCToQemu resb STAMPROFILEADV_size
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .StatTotalInGC resb STAMPROFILEADV_size
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .StatTotalInQemu resb STAMPROFILEADV_size
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .StatSwitcherToGC resb STAMPROFILEADV_size
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .StatSwitcherToHC resb STAMPROFILEADV_size
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .StatSwitcherSaveRegs resb STAMPROFILEADV_size
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .StatSwitcherSysEnter resb STAMPROFILEADV_size
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .StatSwitcherDebug resb STAMPROFILEADV_size
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .StatSwitcherCR0 resb STAMPROFILEADV_size
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .StatSwitcherCR4 resb STAMPROFILEADV_size
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .StatSwitcherJmpCR3 resb STAMPROFILEADV_size
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .StatSwitcherRstrRegs resb STAMPROFILEADV_size
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .StatSwitcherLgdt resb STAMPROFILEADV_size
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .StatSwitcherLidt resb STAMPROFILEADV_size
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .StatSwitcherLldt resb STAMPROFILEADV_size
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .StatSwitcherTSS resb STAMPROFILEADV_size
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync%ifndef HC_ARCH_BITS
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync %error "Missing HC_ARCH_BITS"
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync%endif
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync%if HC_ARCH_BITS == 32
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .abAlignment1 resb 30
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync%else
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync; .abAlignment1 resb 0
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync%endif
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync alignb 64
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .cpum resb 1536
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync .vmm resb 1536
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsyncendstruc
dba5477a1201b7a6186e5a0ce15c11a8767415d8vboxsync
;;
; This is part of the VMCPU structure.
struc VMCPU
.fLocalForcedActions resd 1
.enmState resd 1
.pUVCpu RTR3PTR_RES 1
.pVMR3 RTR3PTR_RES 1
.pVMR0 RTR0PTR_RES 1
.fTracingEnabled resb 1
%if HC_ARCH_BITS == 32
.abAlignment0 resb 3
%else
.abAlignment0 resb 7
%endif
.pVMRC RTRCPTR_RES 1
.idCpu resd 1
.hNativeThread RTR0PTR_RES 1
.hNativeThreadR0 RTR0PTR_RES 1
.idHostCpu resd 1
.uAdHoc resd 1
.aStatAdHoc resb STAMPROFILEADV_size * 8
%if HC_ARCH_BITS == 32
.abAlignment1 resd 16+1
%endif
alignb 64
.cpum resb 4096
endstruc
%endif