Searched refs:uLeaf (Results 1 - 14 of 14) sorted by relevance

/vbox/src/VBox/VMM/VMMR3/
H A DGIMMinimal.cpp86 for (uint32_t uLeaf = UINT32_C(0x40000001); uLeaf < UINT32_C(0x40000010); uLeaf++)
88 rc = CPUMR3CpuIdGetLeaf(pVM, &HyperLeaf, uLeaf, 0 /* uSubLeaf */);
92 HyperLeaf.uLeaf = uLeaf;
111 HyperLeaf.uLeaf = UINT32_C(0x40000010);
H A DCPUMR3CpuId.cpp521 * @param uLeaf The leaf to locate.
524 static PCPUMCPUIDLEAF cpumR3CpuIdGetLeaf(PCPUMCPUIDLEAF paLeaves, uint32_t cLeaves, uint32_t uLeaf, uint32_t uSubLeaf) argument
529 if ( paLeaves[i].uLeaf == uLeaf
542 * @param uLeaf The leaf to locate.
546 static bool cpumR3CpuIdGetLeafLegacy(PCPUMCPUIDLEAF paLeaves, uint32_t cLeaves, uint32_t uLeaf, uint32_t uSubLeaf, argument
549 PCPUMCPUIDLEAF pLeaf = cpumR3CpuIdGetLeaf(paLeaves, cLeaves, uLeaf, uSubLeaf);
645 * @param uLeaf The leaf we're adding.
655 uint32_t uLeaf, uint32_t uSubLeaf, uint32_t fSubLeafMask,
663 || pNew[-1].uLeaf < uLea
654 cpumR3CollectCpuIdInfoAddOne(PCPUMCPUIDLEAF *ppaLeaves, uint32_t *pcLeaves, uint32_t uLeaf, uint32_t uSubLeaf, uint32_t fSubLeafMask, uint32_t uEax, uint32_t uEbx, uint32_t uEcx, uint32_t uEdx, uint32_t fFlags) argument
840 AssertLogRelReturn(cLeaves < CPUM_CPUID_MAX_LEAVES, VERR_TOO_MANY_CPUID_LEAVES); paLeaves = cpumR3CpuIdEnsureSpace(pVM, ppaLeaves, cLeaves); if (!paLeaves) return VERR_NO_MEMORY; if (i < cLeaves) memmove(&paLeaves[i + 1], &paLeaves[i], (cLeaves - i) * sizeof(paLeaves[0])); *pcLeaves += 1; paLeaves[i] = *pNewLeaf; cpumR3CpuIdAssertOrder(*ppaLeaves, *pcLeaves); return VINF_SUCCESS; } static void cpumR3CpuIdRemoveRange(PCPUMCPUIDLEAF paLeaves, uint32_t *pcLeaves, uint32_t uFirst, uint32_t uLast) { uint32_t cLeaves = *pcLeaves; Assert(uFirst <= uLast); uint32_t iFirst = 0; while ( iFirst < cLeaves && paLeaves[iFirst].uLeaf < uFirst) iFirst++; uint32_t iEnd = iFirst; while ( iEnd < cLeaves && paLeaves[iEnd].uLeaf <= uLast) iEnd++; if (iFirst < iEnd) { if (iEnd < cLeaves) memmove(&paLeaves[iFirst], &paLeaves[iEnd], (cLeaves - iEnd) * sizeof(paLeaves[0])); *pcLeaves = cLeaves -= (iEnd - iFirst); } cpumR3CpuIdAssertOrder(paLeaves, *pcLeaves); } static bool cpumR3IsEcxRelevantForCpuIdLeaf(uint32_t uLeaf, uint32_t *pcSubLeaves, bool *pfFinalEcxUnchanged) { *pfFinalEcxUnchanged = false; uint32_t auCur[4]; uint32_t auPrev[4]; ASMCpuIdExSlow(uLeaf, 0, 0, 0, &auPrev[0], &auPrev[1], &auPrev[2], &auPrev[3]); uint32_t uSubLeaf = 1; for (;;) { ASMCpuIdExSlow(uLeaf, 0, uSubLeaf, 0, &auCur[0], &auCur[1], &auCur[2], &auCur[3]); if (memcmp(auCur, auPrev, sizeof(auCur))) break; uSubLeaf++; if (uSubLeaf >= 64) { *pcSubLeaves = 1; return false; } } uint32_t cRepeats = 0; uSubLeaf = 0; for (;;) { ASMCpuIdExSlow(uLeaf, 0, uSubLeaf, 0, &auCur[0], &auCur[1], &auCur[2], &auCur[3]); if ( auCur[0] == 0 && auCur[1] == 0 && (auCur[2] == 0 || auCur[2] == uSubLeaf) && (auCur[3] == 0 || uLeaf == 0xb ) ) { cRepeats = 0; break; } if ( auCur[0] == auPrev[0] && auCur[1] == auPrev[1] && ( auCur[2] == auPrev[2] || ( auCur[2] == uSubLeaf && auPrev[2] == uSubLeaf - 1) ) && auCur[3] == auPrev[3]) { cRepeats++; if (cRepeats > 4) break; } else cRepeats = 0; if ( uLeaf == 0xb && (auCur[2] & 0xff00) == 0 && (auPrev[2] & 0xff00) == 0) { cRepeats = 0; break; } if (uSubLeaf >= 128) { uint32_t cDocLimit = UINT32_MAX; if (uLeaf == 0x4) cDocLimit = 4; else if (uLeaf == 0x7) cDocLimit = 1; else if (uLeaf == 0xf) cDocLimit = 2; if (cDocLimit != UINT32_MAX) { *pfFinalEcxUnchanged = auCur[2] == uSubLeaf && uLeaf == 0xb; *pcSubLeaves = cDocLimit + 3; return true; } *pcSubLeaves = UINT32_MAX; return true; } uSubLeaf++; memcpy(auPrev, auCur, sizeof(auCur)); } *pfFinalEcxUnchanged = auCur[2] == uSubLeaf && uLeaf == 0xb; *pcSubLeaves = uSubLeaf + 1 - cRepeats; if (*pcSubLeaves == 0) *pcSubLeaves = 1; return true; } VMMR3DECL(int) CPUMR3CpuIdGetLeaf(PVM pVM, PCPUMCPUIDLEAF pLeaf, uint32_t uLeaf, uint32_t uSubLeaf) { PCPUMCPUIDLEAF pcLeaf = cpumR3CpuIdGetLeaf(pVM->cpum.s.GuestInfo.paCpuIdLeavesR3, pVM->cpum.s.GuestInfo.cCpuIdLeaves, uLeaf, uSubLeaf); if (pcLeaf) { memcpy(pLeaf, pcLeaf, sizeof(*pLeaf)); return VINF_SUCCESS; } return VERR_NOT_FOUND; } VMMR3DECL(int) CPUMR3CpuIdInsert(PVM pVM, PCPUMCPUIDLEAF pNewLeaf) { AssertReturn(pVM, VERR_INVALID_PARAMETER); AssertReturn(pNewLeaf, VERR_INVALID_PARAMETER); if ( pNewLeaf->uLeaf == UINT32_C(0x00000000) || pNewLeaf->uLeaf == UINT32_C(0x00000001) || pNewLeaf->uLeaf == UINT32_C(0x80000000) || pNewLeaf->uLeaf == UINT32_C(0x80000001) || pNewLeaf->uLeaf == UINT32_C(0xc0000000) || pNewLeaf->uLeaf == UINT32_C(0xc0000001) ) argument
1116 uint32_t uLeaf = s_aCandidates[iOuter].uMsr; local
1371 uint32_t const uLeaf = auChecks[cChecks - 1]; local
1489 cpumR3CpuIdFindLeaf(PCCPUMCPUIDLEAF paLeaves, uint32_t cLeaves, uint32_t uLeaf) argument
1503 cpumR3CpuIdFindLeafEx(PCCPUMCPUIDLEAF paLeaves, uint32_t cLeaves, uint32_t uLeaf, uint32_t uSubLeaf) argument
1691 cpumR3CpuIdGetExactLeaf(PCPUM pCpum, uint32_t uLeaf, uint32_t uSubLeaf) argument
2058 uint32_t uLeaf = aOldRanges[i].uBase + cLeft; local
2324 cpumR3CpuIdZeroLeaf(PCPUM pCpum, uint32_t uLeaf) argument
5532 uint32_t uLeaf; local
[all...]
H A DGIMHv.cpp177 HyperLeaf.uLeaf = UINT32_C(0x40000000);
185 HyperLeaf.uLeaf = UINT32_C(0x40000001);
196 HyperLeaf.uLeaf = UINT32_C(0x40000002); /* MBZ until MSR_GIM_HV_GUEST_OS_ID is set by the guest. */
204 HyperLeaf.uLeaf = UINT32_C(0x40000003);
212 HyperLeaf.uLeaf = UINT32_C(0x40000004);
257 HyperLeaf.uLeaf = UINT32_C(0x40000006);
H A DGIMKvm.cpp116 HyperLeaf.uLeaf = UINT32_C(0x40000000);
127 HyperLeaf.uLeaf = UINT32_C(0x40000001);
187 HyperLeaf.uLeaf = UINT32_C(0x40000001);
/vbox/src/VBox/ValidationKit/testboxscript/
H A DTestBoxHelper.cpp86 uint32_t uLeaf = uFirst + iLeaf; local
87 ASMCpuIdExSlow(uLeaf, 0, 0, 0, &uEax, &uEbx, &uEcx, &uEdx);
90 if (uLeaf == 1)
92 if (uLeaf == 0xb)
94 if (uLeaf == 0x8000001e)
98 if (uLeaf == 0x8000001e)
104 RTPrintf("%08x: %08x %08x %08x %08x\n", uLeaf, uEax, uEbx, uEcx, uEdx);
/vbox/src/VBox/VMM/VMMR0/
H A DCPUMR0.cpp81 uint32_t uLeaf; /**< Leaf to check. */ member in struct:__anon16829
158 uint32_t uLeaf = g_aCpuidUnifyBits[i].uLeaf; local
160 if (uLeaf < RT_ELEMENTS(pVM->cpum.s.aGuestCpuIdPatmStd))
161 pLegacyLeaf = &pVM->cpum.s.aGuestCpuIdPatmStd[uLeaf];
162 else if (uLeaf - UINT32_C(0x80000000) < RT_ELEMENTS(pVM->cpum.s.aGuestCpuIdPatmExt))
163 pLegacyLeaf = &pVM->cpum.s.aGuestCpuIdPatmExt[uLeaf - UINT32_C(0x80000000)];
164 else if (uLeaf - UINT32_C(0xc0000000) < RT_ELEMENTS(pVM->cpum.s.aGuestCpuIdPatmCentaur))
165 pLegacyLeaf = &pVM->cpum.s.aGuestCpuIdPatmCentaur[uLeaf - UINT32_C(0xc0000000)];
170 ASMCpuIdExSlow(uLeaf,
289 uint32_t uLeaf = g_aCpuidUnifyBits[i].uLeaf; local
[all...]
/vbox/src/VBox/VMM/VMMAll/
H A DCPUMAllRegs.cpp1160 * @param uLeaf The leaf to get.
1162 PCPUMCPUIDLEAF cpumCpuIdGetLeaf(PVM pVM, uint32_t uLeaf) argument
1172 if (uLeaf < paLeaves[i].uLeaf)
1178 else if (uLeaf > paLeaves[i].uLeaf)
1193 AssertMsgFailed(("uLeaf=%#x fSubLeafMask=%#x uSubLeaf=%#x\n",
1194 uLeaf, paLeaves[i].fSubLeafMask, paLeaves[i].uSubLeaf));
1197 && uLeaf == paLeaves[i - 1].uLeaf)
1219 cpumCpuIdGetLeafEx(PVM pVM, uint32_t uLeaf, uint32_t uSubLeaf, bool *pfExactSubLeafHit) argument
1284 CPUMGetGuestCpuId(PVMCPU pVCpu, uint32_t uLeaf, uint32_t uSubLeaf, uint32_t *pEax, uint32_t *pEbx, uint32_t *pEcx, uint32_t *pEdx) argument
[all...]
/vbox/src/VBox/VMM/include/
H A DCPUMInternal.h519 PCPUMCPUIDLEAF cpumCpuIdGetLeaf(PVM pVM, uint32_t uLeaf);
520 PCPUMCPUIDLEAF cpumCpuIdGetLeafEx(PVM pVM, uint32_t uLeaf, uint32_t uSubLeaf, bool *pfExactSubLeafHit);
/vbox/src/VBox/VMM/VMMRC/
H A DCPUMRCPatchHlp.asm78 cmp eax, [ss:ebx + CPUMCPUIDLEAF.uLeaf]
115 cmp eax, [ss:ebx - CPUMCPUIDLEAF_size + CPUMCPUIDLEAF.uLeaf]
136 cmp eax, [ss:ebx + CPUMCPUIDLEAF_size + CPUMCPUIDLEAF.uLeaf]
/vbox/src/VBox/Frontends/VBoxManage/
H A DVBoxManageInfo.cpp571 for (uint32_t uLeaf = s_auCpuIdRanges[i]; uLeaf < s_auCpuIdRanges[i + 1]; uLeaf++)
574 rc = machine->GetCPUIDLeaf(uLeaf, &uEAX, &uEBX, &uECX, &uEDX);
578 RTPrintf("cpuid=%08x,%08x,%08x,%08x,%08x", uLeaf, uEAX, uEBX, uECX, uEDX);
583 RTPrintf(" %08x %08x %08x %08x %08x\n", uLeaf, uEAX, uEBX, uECX, uEDX);
/vbox/src/VBox/Runtime/testcase/
H A DtstRTInlineAsm.cpp589 uint32_t uLeaf = 0;
593 ASMCpuIdExSlow(uLeaf, 0, 0, 0, &auValues[0], &auValues[1], &auValues[2], &auValues[3]);
594 if ( (auValues[0] != auPrevValues[0] && auValues[0] != uLeaf)
598 || (uLeaf & (UINT32_C(0x08000000) - UINT32_C(1))) == 0)
601 "%08x: %08x %08x %08x %08x\n", uLeaf,
615 } while (uLeaf++ < UINT32_MAX);
/vbox/include/VBox/vmm/
H A Dcpum.h283 uint32_t uLeaf; member in struct:CPUMCPUIDLEAF
1391 VMMR3DECL(int) CPUMR3CpuIdGetLeaf(PVM pVM, PCPUMCPUIDLEAF pLeaf, uint32_t uLeaf, uint32_t uSubLeaf);
/vbox/src/VBox/Main/src-client/
H A DConsoleImpl2.cpp1118 for (uint32_t uLeaf = s_auCpuIdRanges[i]; uLeaf < s_auCpuIdRanges[i + 1]; uLeaf++)
1121 hrc = pMachine->GetCPUIDLeaf(uLeaf, &ulEax, &ulEbx, &ulEcx, &ulEdx);
1125 InsertConfigNode(pCPUM, Utf8StrFmt("HostCPUID/%RX32", uLeaf).c_str(), &pLeaf);
/vbox/src/VBox/VMM/tools/
H A DVBoxCpuReport.cpp4378 vbCpuRepPrintf(" { %#010x, %#010x, ", paLeaves[i].uLeaf, paLeaves[i].uSubLeaf);

Completed in 117 milliseconds