diff options
Diffstat (limited to 'src/VBox/VMM/include/HMInternal.mac')
-rw-r--r-- | src/VBox/VMM/include/HMInternal.mac | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/src/VBox/VMM/include/HMInternal.mac b/src/VBox/VMM/include/HMInternal.mac new file mode 100644 index 00000000..bf046c8b --- /dev/null +++ b/src/VBox/VMM/include/HMInternal.mac @@ -0,0 +1,93 @@ +;$Id: HMInternal.mac $ +;; @file +; HM - Internal header file. +; + +; +; Copyright (C) 2006-2019 Oracle Corporation +; +; This file is part of VirtualBox Open Source Edition (OSE), as +; available from http://www.virtualbox.org. This file is free software; +; you can redistribute it and/or modify it under the terms of the GNU +; General Public License (GPL) as published by the Free Software +; Foundation, in version 2 as it comes in the "COPYING" file of the +; VirtualBox OSE distribution. VirtualBox OSE is distributed in the +; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +; + +%if HC_ARCH_BITS == 32 + %define VMX_USE_CACHED_VMCS_ACCESSES +%endif + +;Maximum number of cached entries. +%define VMCSCACHE_MAX_ENTRY 128 + +; Structure for storing read and write VMCS actions. +struc VMCSCACHE +%ifdef VBOX_WITH_CRASHDUMP_MAGIC + .aMagic resb 16 + .uMagic resq 1 + .u64TimeEntry resq 1 + .u64TimeSwitch resq 1 + .cResume resq 1 + .interPD resq 1 + .pSwitcher resq 1 + .uPos resd 1 + .idCpu resd 1 +%endif + .cr2 resq 1 + .Write.cValidEntries resd 1 + .Write.uAlignment resd 1 + .Write.aField resd VMCSCACHE_MAX_ENTRY + .Write.aFieldVal resq VMCSCACHE_MAX_ENTRY + .Read.cValidEntries resd 1 + .Read.uAlignment resd 1 + .Read.aField resd VMCSCACHE_MAX_ENTRY + .Read.aFieldVal resq VMCSCACHE_MAX_ENTRY +%ifdef VBOX_STRICT + .TestIn.HCPhysCpuPage resq 1 + .TestIn.HCPhysVmcs resq 1 + .TestIn.pCache resq 1 + .TestIn.pCtx resq 1 + .TestOut.HCPhysVmcs resq 1 + .TestOut.pCache resq 1 + .TestOut.pCtx resq 1 + .TestOut.eflags resq 1 + .TestOut.cr8 resq 1 + .ScratchPad.param1 resq 1 + .ScratchPad.param2 resq 1 + .ScratchPad.param3 resq 1 + .ScratchPad.param4 resq 1 +%endif +endstruc + +struc HMCPU + .fCheckedTLBFlush resb 1 + .fForceTLBFlush resb 1 + .fActive resb 1 + .fLeaveDone resb 1 + .fUsingHyperDR7 resb 1 + .fLoadSaveGuestXcr0 resb 1 + + .fUseDebugLoop resb 1 + .fUsingDebugLoop resb 1 + .fDebugWantRdTscExit resb 1 + .fSingleInstruction resb 1 + .fClearTrapFlag resb 1 + + .fGIMTrapXcptUD resb 1 + .fTrapXcptGpForLovelyMesaDrv resb 1 + alignb 8 + + .cWorldSwitchExits resd 1 + .idLastCpu resd 1 + .cTlbFlushes resd 1 + .uCurrentAsid resd 1 + .u32HMError resd 1 + alignb 8 + .fCtxChanged resq 1 + .u64HostTscAux resq 1 + + ; incomplete to save unnecessary pain... +endstruc + |