- Timestamp:
- May 20, 2014 4:47:59 AM (11 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/CPUMAllMsrs.cpp
r51288 r51301 5593 5593 5594 5594 #endif /* IN_RING0 */ 5595 -
trunk/src/VBox/VMM/VMMAll/CPUMAllRegs.cpp
r50785 r51301 1934 1934 else if (iLeaf - UINT32_C(0x80000000) < RT_ELEMENTS(pVM->cpum.s.aGuestCpuIdExt)) 1935 1935 pCpuId = &pVM->cpum.s.aGuestCpuIdExt[iLeaf - UINT32_C(0x80000000)]; 1936 else if ( iLeaf - UINT32_C(0x40000000) < RT_ELEMENTS(pVM->cpum.s.aGuestCpuIdHyper) 1937 && (pVCpu->CTX_SUFF(pVM)->cpum.s.aGuestCpuIdStd[1].ecx & X86_CPUID_FEATURE_ECX_HVP)) 1938 pCpuId = &pVM->cpum.s.aGuestCpuIdHyper[iLeaf - UINT32_C(0x40000000)]; /* Only report if HVP bit set. */ 1936 else if ( iLeaf - UINT32_C(0x40000000) < 0x100 /** @todo Fix this later: Hyper-V says 0x400000FF is the last valid leaf. */ 1937 && (pVCpu->CTX_SUFF(pVM)->cpum.s.aGuestCpuIdStd[1].ecx & X86_CPUID_FEATURE_ECX_HVP)) /* Only report if HVP bit set. */ 1938 { 1939 PCPUMCPUIDLEAF pHyperLeaf = cpumCpuIdGetLeaf(pVM, iLeaf, 0 /* uSubLeaf */); 1940 if (RT_LIKELY(pHyperLeaf)) 1941 { 1942 *pEax = pHyperLeaf->uEax; 1943 *pEbx = pHyperLeaf->uEbx; 1944 *pEcx = pHyperLeaf->uEcx; 1945 *pEdx = pHyperLeaf->uEdx; 1946 } 1947 else 1948 { 1949 *pEax = *pEbx = *pEcx = *pEdx = 0; 1950 LogRel(("CPUM: CPUMGetGuestCpuId: failed to get CPUID leaf for iLeaf=%#RX32\n", iLeaf)); 1951 } 1952 return; 1953 } 1939 1954 else if (iLeaf - UINT32_C(0xc0000000) < RT_ELEMENTS(pVM->cpum.s.aGuestCpuIdCentaur)) 1940 1955 pCpuId = &pVM->cpum.s.aGuestCpuIdCentaur[iLeaf - UINT32_C(0xc0000000)]; -
trunk/src/VBox/VMM/VMMR3/CPUM.cpp
r51271 r51301 1009 1009 { pCPUM->aGuestCpuIdExt, RT_ELEMENTS(pCPUM->aGuestCpuIdExt), 0x80000000 }, 1010 1010 { pCPUM->aGuestCpuIdCentaur, RT_ELEMENTS(pCPUM->aGuestCpuIdCentaur), 0xc0000000 }, 1011 { pCPUM->aGuestCpuIdHyper, RT_ELEMENTS(pCPUM->aGuestCpuIdHyper), 0x40000000 },1012 1011 }; 1013 1012 for (uint32_t i = 0; i < RT_ELEMENTS(aOldRanges); i++) … … 1021 1020 pLegacyLeaf--; 1022 1021 1023 PCCPUMCPUIDLEAF pLeaf = cpumR3CpuIdGetLeaf(pCPUM->GuestInfo.paCpuIdLeavesR3, pCPUM->GuestInfo.cCpuIdLeaves, uLeaf, 0); 1022 PCCPUMCPUIDLEAF pLeaf = cpumR3CpuIdGetLeaf(pCPUM->GuestInfo.paCpuIdLeavesR3, pCPUM->GuestInfo.cCpuIdLeaves, uLeaf, 1023 0 /* uSubLeaf */); 1024 1024 if (pLeaf) 1025 1025 { -
trunk/src/VBox/VMM/include/CPUMInternal.h
r51285 r51301 451 451 /** The centaur set of CpuId leaves. */ 452 452 CPUMCPUID aGuestCpuIdCentaur[4]; 453 /** The hypervisor specific set of CpuId leaves. */454 CPUMCPUID aGuestCpuIdHyper[4];455 453 /** The default set of CpuId leaves. */ 456 454 CPUMCPUID GuestCpuIdDef; -
trunk/src/VBox/VMM/include/CPUMInternal.mac
r50590 r51301 83 83 .aGuestCpuIdExt resb 16*10 84 84 .aGuestCpuIdCentaur resb 16*4 85 .aGuestCpuIdHyper resb 16*486 85 .GuestCpuIdDef resb 16 87 86 -
trunk/src/VBox/VMM/testcase/tstVMStruct.h
r49893 r51301 40 40 GEN_CHECK_OFF(CPUM, aGuestCpuIdExt); 41 41 GEN_CHECK_OFF(CPUM, aGuestCpuIdCentaur); 42 GEN_CHECK_OFF(CPUM, aGuestCpuIdHyper);43 42 GEN_CHECK_OFF(CPUM, GuestCpuIdDef); 44 43
Note:
See TracChangeset
for help on using the changeset viewer.