Changeset 85573 in vbox for trunk/include
- Timestamp:
- Jul 31, 2020 12:41:14 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/cpum.h
r85352 r85573 1374 1374 1375 1375 1376 /** 1377 * CPU database entry. 1378 */ 1379 typedef struct CPUMDBENTRY 1380 { 1381 /** The CPU name. */ 1382 const char *pszName; 1383 /** The full CPU name. */ 1384 const char *pszFullName; 1385 /** The CPU vendor (CPUMCPUVENDOR). */ 1386 uint8_t enmVendor; 1387 /** The CPU family. */ 1388 uint8_t uFamily; 1389 /** The CPU model. */ 1390 uint8_t uModel; 1391 /** The CPU stepping. */ 1392 uint8_t uStepping; 1393 /** The microarchitecture. */ 1394 CPUMMICROARCH enmMicroarch; 1395 /** Scalable bus frequency used for reporting other frequencies. */ 1396 uint64_t uScalableBusFreq; 1397 /** Flags - CPUMDB_F_XXX. */ 1398 uint32_t fFlags; 1399 /** The maximum physical address with of the CPU. This should correspond to 1400 * the value in CPUID leaf 0x80000008 when present. */ 1401 uint8_t cMaxPhysAddrWidth; 1402 /** The MXCSR mask. */ 1403 uint32_t fMxCsrMask; 1404 /** Pointer to an array of CPUID leaves. */ 1405 PCCPUMCPUIDLEAF paCpuIdLeaves; 1406 /** The number of CPUID leaves in the array paCpuIdLeaves points to. */ 1407 uint32_t cCpuIdLeaves; 1408 /** The method used to deal with unknown CPUID leaves. */ 1409 CPUMUNKNOWNCPUID enmUnknownCpuId; 1410 /** The default unknown CPUID value. */ 1411 CPUMCPUID DefUnknownCpuId; 1412 1413 /** MSR mask. Several microarchitectures ignore the higher bits of ECX in 1414 * the RDMSR and WRMSR instructions. */ 1415 uint32_t fMsrMask; 1416 1417 /** The number of ranges in the table pointed to b paMsrRanges. */ 1418 uint32_t cMsrRanges; 1419 /** MSR ranges for this CPU. */ 1420 PCCPUMMSRRANGE paMsrRanges; 1421 } CPUMDBENTRY; 1422 /** Pointer to a const CPU database entry. */ 1423 typedef CPUMDBENTRY const *PCCPUMDBENTRY; 1424 1425 /** @name CPUMDB_F_XXX - CPUDBENTRY::fFlags 1426 * @{ */ 1427 /** Should execute all in IEM. 1428 * @todo Implement this - currently done in Main... */ 1429 #define CPUMDB_F_EXECUTE_ALL_IN_IEM RT_BIT_32(0) 1430 /** @} */ 1431 1432 1433 1376 1434 #ifndef VBOX_FOR_DTRACE_LIB 1377 1435 … … 2317 2375 Assert(pVmcs); 2318 2376 2319 uint32_t const fGstHostMask = pVmcs->u64Cr0Mask.u;2320 uint32_t const fReadShadow = pVmcs->u64Cr0ReadShadow.u;2377 uint32_t const fGstHostMask = (uint32_t)pVmcs->u64Cr0Mask.u; 2378 uint32_t const fReadShadow = (uint32_t)pVmcs->u64Cr0ReadShadow.u; 2321 2379 2322 2380 /* … … 2648 2706 VMMR3DECL(int) CPUMR3MsrRangesInsert(PVM pVM, PCCPUMMSRRANGE pNewRange); 2649 2707 2708 VMMR3DECL(uint32_t) CPUMR3DbGetEntries(void); 2709 /** Pointer to CPUMR3DbGetEntries. */ 2710 typedef DECLCALLBACKPTR(uint32_t, PFNCPUMDBGETENTRIES, (void)); 2711 VMMR3DECL(PCCPUMDBENTRY) CPUMR3DbGetEntryByIndex(uint32_t idxCpuDb); 2712 /** Pointer to CPUMR3DbGetEntryByIndex. */ 2713 typedef DECLCALLBACKPTR(PCCPUMDBENTRY, PFNCPUMDBGETENTRYBYINDEX, (uint32_t idxCpuDb)); 2714 VMMR3DECL(PCCPUMDBENTRY) CPUMR3DbGetEntryByName(const char *pszName); 2715 /** Pointer to CPUMR3DbGetEntryByName. */ 2716 typedef DECLCALLBACKPTR(PCCPUMDBENTRY, PFNCPUMDBGETENTRYBYNAME, (const char *pszName)); 2650 2717 /** @} */ 2651 2718 #endif /* IN_RING3 */
Note:
See TracChangeset
for help on using the changeset viewer.