Changeset 94931 in vbox for trunk/include/VBox/vmm
- Timestamp:
- May 9, 2022 8:24:47 AM (3 years ago)
- svn:sync-xref-src-repo-rev:
- 151339
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/cpum.h
r94909 r94931 1407 1407 typedef CPUMFEATURES const *PCCPUMFEATURES; 1408 1408 1409 /** 1410 * Chameleon wrapper structure for the host CPU features. 1411 * 1412 * This is used for the globally readable g_CpumHostFeatures variable, which is 1413 * initialized once during VMMR0 load for ring-0 and during CPUMR3Init in 1414 * ring-3. To reflect this immutability after load/init, we use this wrapper 1415 * structure to switch it between const and non-const depending on the context. 1416 * Only two files sees it as non-const (CPUMR0.cpp and CPUM.cpp). 1417 */ 1418 typedef struct CPUHOSTFEATURES 1419 { 1420 CPUMFEATURES 1421 #ifndef CPUM_WITH_NONCONST_HOST_FEATURES 1422 const 1423 #endif 1424 s; 1425 } CPUHOSTFEATURES; 1426 /** Pointer to a const host CPU feature structure. */ 1427 typedef CPUHOSTFEATURES const *PCCPUHOSTFEATURES; 1428 1429 /** Host CPU features. 1430 * @note In ring-3, only valid after CPUMR3Init. In ring-0, valid after 1431 * module init. */ 1432 extern CPUHOSTFEATURES g_CpumHostFeatures; 1433 1409 1434 1410 1435 /** … … 1467 1492 1468 1493 #ifndef VBOX_FOR_DTRACE_LIB 1494 1495 #if defined(RT_ARCH_X86) || defined(RT_ARCH_AMD64) 1496 VMMDECL(int) CPUMCpuIdCollectLeavesX86(PCPUMCPUIDLEAF *ppaLeaves, uint32_t *pcLeaves); 1497 VMMDECL(CPUMCPUVENDOR) CPUMCpuIdDetectX86VendorEx(uint32_t uEAX, uint32_t uEBX, uint32_t uECX, uint32_t uEDX); 1498 #endif 1469 1499 1470 1500 /** @name Guest Register Getters. … … 2725 2755 VMMR3DECL(int) CPUMR3CpuIdGetLeaf(PVM pVM, PCPUMCPUIDLEAF pLeaf, uint32_t uLeaf, uint32_t uSubLeaf); 2726 2756 VMMR3_INT_DECL(PCCPUMCPUIDLEAF) CPUMR3CpuIdGetPtr(PVM pVM, uint32_t *pcLeaves); 2727 VMMR3DECL(CPUMMICROARCH) CPUMR3CpuIdDetermineMicroarchEx(CPUMCPUVENDOR enmVendor, uint8_t bFamily, 2728 uint8_t bModel, uint8_t bStepping); 2729 VMMR3DECL(const char *) CPUMR3MicroarchName(CPUMMICROARCH enmMicroarch); 2730 VMMR3DECL(int) CPUMR3CpuIdCollectLeaves(PCPUMCPUIDLEAF *ppaLeaves, uint32_t *pcLeaves); 2757 VMMDECL(CPUMMICROARCH) CPUMCpuIdDetermineX86MicroarchEx(CPUMCPUVENDOR enmVendor, uint8_t bFamily, 2758 uint8_t bModel, uint8_t bStepping); 2759 VMMDECL(const char *) CPUMMicroarchName(CPUMMICROARCH enmMicroarch); 2731 2760 VMMR3DECL(int) CPUMR3CpuIdDetectUnknownLeafMethod(PCPUMUNKNOWNCPUID penmUnknownMethod, PCPUMCPUID pDefUnknown); 2732 2761 VMMR3DECL(const char *) CPUMR3CpuIdUnknownLeafMethodName(CPUMUNKNOWNCPUID enmUnknownMethod); 2733 VMMR3DECL( CPUMCPUVENDOR) CPUMR3CpuIdDetectVendorEx(uint32_t uEAX, uint32_t uEBX, uint32_t uECX, uint32_t uEDX);2734 VMMR3DECL(const char *) CPUMR3CpuVendorName(CPUMCPUVENDOR enmVendor); 2762 VMMR3DECL(const char *) CPUMCpuVendorName(CPUMCPUVENDOR enmVendor); 2763 #if defined(RT_ARCH_X86) || defined(RT_ARCH_AMD64) 2735 2764 VMMR3DECL(uint32_t) CPUMR3DeterminHostMxCsrMask(void); 2765 #endif 2736 2766 2737 2767 VMMR3DECL(int) CPUMR3MsrRangesInsert(PVM pVM, PCCPUMMSRRANGE pNewRange);
Note:
See TracChangeset
for help on using the changeset viewer.