summaryrefslogtreecommitdiff
path: root/src/VBox/VMM/include/CPUMInternal.mac
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2014-03-26 19:21:20 +0000
committer <>2014-05-08 15:03:54 +0000
commitfb123f93f9f5ce42c8e5785d2f8e0edaf951740e (patch)
treec2103d76aec5f1f10892cd1d3a38e24f665ae5db /src/VBox/VMM/include/CPUMInternal.mac
parent58ed4748338f9466599adfc8a9171280ed99e23f (diff)
downloadVirtualBox-master.tar.gz
Imported from /home/lorry/working-area/delta_VirtualBox/VirtualBox-4.3.10.tar.bz2.HEADVirtualBox-4.3.10master
Diffstat (limited to 'src/VBox/VMM/include/CPUMInternal.mac')
-rw-r--r--src/VBox/VMM/include/CPUMInternal.mac63
1 files changed, 42 insertions, 21 deletions
diff --git a/src/VBox/VMM/include/CPUMInternal.mac b/src/VBox/VMM/include/CPUMInternal.mac
index 6206a3ae..5e1f66b2 100644
--- a/src/VBox/VMM/include/CPUMInternal.mac
+++ b/src/VBox/VMM/include/CPUMInternal.mac
@@ -4,7 +4,7 @@
;
;
-; Copyright (C) 2006-2010 Oracle Corporation
+; Copyright (C) 2006-2012 Oracle Corporation
;
; This file is part of VirtualBox Open Source Edition (OSE), as
; available from http://www.virtualbox.org. This file is free software;
@@ -17,14 +17,21 @@
%include "VBox/asmdefs.mac"
+
%define CPUM_USED_FPU RT_BIT(0)
%define CPUM_USED_FPU_SINCE_REM RT_BIT(1)
-%define CPUM_USE_SYSENTER RT_BIT(2)
-%define CPUM_USE_SYSCALL RT_BIT(3)
-%define CPUM_USE_DEBUG_REGS_HOST RT_BIT(4)
-%define CPUM_USE_DEBUG_REGS RT_BIT(5)
-%define CPUM_SYNC_FPU_STATE RT_BIT(7)
-%define CPUM_SYNC_DEBUG_STATE RT_BIT(8)
+%define CPUM_USED_MANUAL_XMM_RESTORE RT_BIT(2)
+%define CPUM_USE_SYSENTER RT_BIT(3)
+%define CPUM_USE_SYSCALL RT_BIT(4)
+%define CPUM_USE_DEBUG_REGS_HOST RT_BIT(5)
+%define CPUM_USED_DEBUG_REGS_HOST RT_BIT(6)
+%define CPUM_USE_DEBUG_REGS_HYPER RT_BIT(7)
+%define CPUM_USED_DEBUG_REGS_HYPER RT_BIT(8)
+%define CPUM_USED_DEBUG_REGS_GUEST RT_BIT(9)
+%define CPUM_SYNC_FPU_STATE RT_BIT(16)
+%define CPUM_SYNC_DEBUG_REGS_GUEST RT_BIT(17)
+%define CPUM_SYNC_DEBUG_REGS_HYPER RT_BIT(18)
+%define CPUM_USE_FFXSR_LEAKY RT_BIT(19)
%define CPUM_HANDLER_DS 1
%define CPUM_HANDLER_ES 2
@@ -59,20 +66,16 @@ struc CPUM
.CPUFeaturesExt.edx resd 1
.CPUFeaturesExt.ecx resd 1
- .enmHostCpuVendor resd 1
- .enmGuestCpuVendor resd 1
-
; CR4 masks
.CR4.AndMask resd 1
.CR4.OrMask resd 1
; entered rawmode?
- .fSyntheticCpu resb 1
.u8PortableCpuIdLevel resb 1
.fPendingRestore resb 1
%if RTHCPTR_CB == 8
- .abPadding resb 5
+ .abPadding resb 6
%else
- .abPadding resb 1
+ .abPadding resb 2
%endif
; CPUID leafs
@@ -86,11 +89,17 @@ struc CPUM
.abPadding2 resb 4
%endif
-%ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI
- .pvApicBase RTR0PTR_RES 1
- .fApicDisVectors resd 1
- .abPadding3 resb 4
-%endif
+ .GuestInfo resb RTHCPTR_CB*4 + RTRCPTR_CB*2 + 4*12
+ .GuestFeatures resb 32
+ .HostFeatures resb 32
+
+ .cMsrWrites resq 1
+ .cMsrWritesToIgnoredBits resq 1
+ .cMsrWritesRaiseGp resq 1
+ .cMsrWritesUnknown resq 1
+ .cMsrReads resq 1
+ .cMsrReadsRaiseGp resq 1
+ .cMsrReadsUnknown resq 1
endstruc
struc CPUMCPU
@@ -195,6 +204,7 @@ struc CPUMCPU
.Hyper.msrCSTAR resb 8
.Hyper.msrSFMASK resb 8
.Hyper.msrKERNELGSBASE resb 8
+ .Hyper.msrApicBase resb 8
;
; Host context state
@@ -415,6 +425,7 @@ struc CPUMCPU
.Guest.msrCSTAR resb 8
.Guest.msrSFMASK resb 8
.Guest.msrKERNELGSBASE resb 8
+ .Guest.msrApicBase resb 8
alignb 64
@@ -427,9 +438,19 @@ struc CPUMCPU
.fChanged resd 1
.offCPUM resd 1
.u32RetCode resd 1
+
+%ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI
+ .pvApicBase RTR0PTR_RES 1
+ .fApicDisVectors resd 1
+ .fX2Apic resb 1
+%else
+ .abPadding3 resb (RTR0PTR_CB + 4 + 1)
+%endif
+
.fRawEntered resb 1
.fRemEntered resb 1
- .abPadding2 resb (64 - 16 - 2)
+
+ .abPadding2 resb (64 - 16 - RTR0PTR_CB - 4 - 1 - 2)
endstruc
@@ -442,7 +463,7 @@ endstruc
;;
; Converts the CPUM pointer to CPUMCPU
-; @param %1 register name (PVM)
+; @param %1 register name (CPUM)
; @param %2 register name (CPUMCPU offset)
%macro CPUMCPU_FROM_CPUM_WITH_OFFSET 2
add %1, %2
@@ -457,7 +478,7 @@ endstruc
;;
; Converts the CPUMCPU pointer to CPUM
-; @param %1 register name (PVM)
+; @param %1 register name (CPUM)
; @param %2 register name (CPUMCPU offset)
%macro CPUM_FROM_CPUMCPU_WITH_OFFSET 2
sub %1, %2