HMInternal.mac revision 24aec8d630c14492cc8835fc2c8d8ead48b0f87f
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync;$Id$
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync;; @file
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync; HM - Internal header file.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync; Copyright (C) 2006-2012 Oracle Corporation
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync; This file is part of VirtualBox Open Source Edition (OSE), as
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync; available from http://www.virtualbox.org. This file is free software;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync; you can redistribute it and/or modify it under the terms of the GNU
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync; General Public License (GPL) as published by the Free Software
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync; Foundation, in version 2 as it comes in the "COPYING" file of the
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync; VirtualBox OSE distribution. VirtualBox OSE is distributed in the
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync%ifdef VBOX_WITH_OLD_VTX_CODE
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync%define VMX_USE_CACHED_VMCS_ACCESSES
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync%else
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync%if HC_ARCH_BITS == 32
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync%ifndef VBOX_WITH_HYBRID_32BIT_KERNEL
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync%define VMX_USE_CACHED_VMCS_ACCESSES
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync%endif ; VBOX_WITH_HYBRID_32BIT_KERNEL
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync%endif ; HC_ARCH_BITS == 32
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync%endif ; VBOX_WITH_OLD_VTX_CODE
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync%define VBOX_WITH_AUTO_MSR_LOAD_RESTORE
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync;Maximum number of cached entries.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync%define VMCSCACHE_MAX_ENTRY 128
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync; Structure for storing read and write VMCS actions.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncstruc VMCSCACHE
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync%ifdef VBOX_WITH_CRASHDUMP_MAGIC
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync .aMagic resb 16
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync .uMagic resq 1
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync .u64TimeEntry resq 1
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync .u64TimeSwitch resq 1
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync .cResume resq 1
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync .interPD resq 1
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync .pSwitcher resq 1
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync .uPos resd 1
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync .idCpu resd 1
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync%endif
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync .cr2 resq 1
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync .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