summaryrefslogtreecommitdiff
path: root/include/VBox/vmm/cpumctx.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/VBox/vmm/cpumctx.h')
-rw-r--r--include/VBox/vmm/cpumctx.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/include/VBox/vmm/cpumctx.h b/include/VBox/vmm/cpumctx.h
index 35861823..c4c9df3b 100644
--- a/include/VBox/vmm/cpumctx.h
+++ b/include/VBox/vmm/cpumctx.h
@@ -135,7 +135,8 @@ typedef struct CPUMSYSENTER
/**
* CPU context core.
*
- * @todo eliminate this structure!
+ * @todo Eliminate this structure!
+ * @deprecated We don't push any context cores any more in TRPM.
*/
#pragma pack(1)
typedef struct CPUMCTXCORE
@@ -399,10 +400,11 @@ typedef struct CPUMCTX
uint64_t msrCSTAR; /**< Compatibility mode syscall rip. */
uint64_t msrSFMASK; /**< syscall flag mask. */
uint64_t msrKERNELGSBASE; /**< swapgs exchange value. */
+ uint64_t msrApicBase; /**< The local APIC base (IA32_APIC_BASE MSR). */
/** @} */
/** Size padding. */
- uint32_t au32SizePadding[8];
+ uint32_t au32SizePadding[6];
} CPUMCTX;
#pragma pack()
@@ -414,6 +416,11 @@ typedef struct CPUMCTX
# define CPUMCTX2CORE(pCtx) ((PCPUMCTXCORE)(void *)&(pCtx)->rax)
/**
+ * Gets the CPUMCTXCORE part of a CPUMCTX.
+ */
+# define CPUMCTX_FROM_CORE(a_pCtxCore) RT_FROM_MEMBER(a_pCtxCore, CPUMCTX, rax)
+
+/**
* Gets the first selector register of a CPUMCTX.
*
* Use this with X86_SREG_COUNT to loop thru the selector registers.
@@ -446,6 +453,7 @@ typedef union CPUMCTXMSRS
uint64_t MtrrFix4K_E8000; /**< IA32_MTRR_FIX4K_E8000 */
uint64_t MtrrFix4K_F0000; /**< IA32_MTRR_FIX4K_F0000 */
uint64_t MtrrFix4K_F8000; /**< IA32_MTRR_FIX4K_F8000 */
+ uint64_t PkgCStateCfgCtrl; /**< MSR_PKG_CST_CONFIG_CONTROL */
} msr;
uint64_t au64[64];
} CPUMCTXMSRS;