VirtualBox

source: vbox/trunk/src/VBox/VMM/include/HMInternal.mac@ 77922

Last change on this file since 77922 was 77481, checked in by vboxsync, 6 years ago

VMM/IEM: Nested VMX: bugref:9180 Renamed VMCSCACHE to VMXVMCSBATCHCACHE to better reflects its nature and use. This is a generic cache that uses array/linear-lookup for VMCS fields and is solely used atm for 64-on-32 bit host.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.0 KB
Line 
1;$Id: HMInternal.mac 77481 2019-02-27 12:59:58Z vboxsync $
2;; @file
3; HM - Internal header file.
4;
5
6;
7; Copyright (C) 2006-2019 Oracle Corporation
8;
9; This file is part of VirtualBox Open Source Edition (OSE), as
10; available from http://www.virtualbox.org. This file is free software;
11; you can redistribute it and/or modify it under the terms of the GNU
12; General Public License (GPL) as published by the Free Software
13; Foundation, in version 2 as it comes in the "COPYING" file of the
14; VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16;
17
18%if HC_ARCH_BITS == 32
19 %define VMX_USE_CACHED_VMCS_ACCESSES
20%endif
21
22;Maximum number of cached entries.
23%define VMX_VMCS_BATCH_CACHE_MAX_ENTRY 128
24
25; Structure for storing read and write VMCS actions.
26struc VMXVMCSBATCHCACHE
27%ifdef VBOX_WITH_CRASHDUMP_MAGIC
28 .aMagic resb 16
29 .uMagic resq 1
30 .u64TimeEntry resq 1
31 .u64TimeSwitch resq 1
32 .cResume resq 1
33 .interPD resq 1
34 .pSwitcher resq 1
35 .uPos resd 1
36 .idCpu resd 1
37%endif
38 .cr2 resq 1
39 .Write.cValidEntries resd 1
40 .Write.uAlignment resd 1
41 .Write.aField resd VMX_VMCS_BATCH_CACHE_MAX_ENTRY
42 .Write.aFieldVal resq VMX_VMCS_BATCH_CACHE_MAX_ENTRY
43 .Read.cValidEntries resd 1
44 .Read.uAlignment resd 1
45 .Read.aField resd VMX_VMCS_BATCH_CACHE_MAX_ENTRY
46 .Read.aFieldVal resq VMX_VMCS_BATCH_CACHE_MAX_ENTRY
47%ifdef VBOX_STRICT
48 .TestIn.HCPhysCpuPage resq 1
49 .TestIn.HCPhysVmcs resq 1
50 .TestIn.pCache resq 1
51 .TestIn.pCtx resq 1
52 .TestOut.HCPhysVmcs resq 1
53 .TestOut.pCache resq 1
54 .TestOut.pCtx resq 1
55 .TestOut.eflags resq 1
56 .TestOut.cr8 resq 1
57 .ScratchPad.param1 resq 1
58 .ScratchPad.param2 resq 1
59 .ScratchPad.param3 resq 1
60 .ScratchPad.param4 resq 1
61%endif
62endstruc
63
64struc HMCPU
65 .fCheckedTLBFlush resb 1
66 .fForceTLBFlush resb 1
67 .fActive resb 1
68 .fLeaveDone resb 1
69 .fUsingHyperDR7 resb 1
70 .fLoadSaveGuestXcr0 resb 1
71
72 .fUseDebugLoop resb 1
73 .fUsingDebugLoop resb 1
74 .fDebugWantRdTscExit resb 1
75 .fSingleInstruction resb 1
76 .fClearTrapFlag resb 1
77
78 .fGIMTrapXcptUD resb 1
79 .fTrapXcptGpForLovelyMesaDrv resb 1
80 alignb 8
81
82 .cWorldSwitchExits resd 1
83 .idLastCpu resd 1
84 .cTlbFlushes resd 1
85 .uCurrentAsid resd 1
86 .u32HMError resd 1
87 alignb 8
88 .fCtxChanged resq 1
89 .u64HostTscAux resq 1
90
91 ; incomplete to save unnecessary pain...
92endstruc
93
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette