Lines Matching defs:ppaMsrRanges

299  *          @a *ppaMsrRanges is freed and set to NULL.
303 * @param ppaMsrRanges The variable pointing to the ranges (input/output).
307 static PCPUMMSRRANGE cpumR3MsrRangesEnsureSpace(PVM pVM, PCPUMMSRRANGE *ppaMsrRanges, uint32_t cMsrRanges, uint32_t cNewRanges)
327 Assert(ppaMsrRanges == &pVM->cpum.s.GuestInfo.paMsrRangesR3);
330 size_t cb = cMsrRangesAllocated * sizeof(**ppaMsrRanges);
331 size_t cbNew = cNew * sizeof(**ppaMsrRanges);
332 int rc = MMR3HyperRealloc(pVM, *ppaMsrRanges, cb, 32, MM_TAG_CPUM_MSRS, cbNew, &pvNew);
335 *ppaMsrRanges = NULL;
341 *ppaMsrRanges = (PCPUMMSRRANGE)pvNew;
345 pvNew = RTMemRealloc(*ppaMsrRanges, cNew * sizeof(**ppaMsrRanges));
348 RTMemFree(*ppaMsrRanges);
349 *ppaMsrRanges = NULL;
353 *ppaMsrRanges = (PCPUMMSRRANGE)pvNew;
359 Assert(ppaMsrRanges == &pVM->cpum.s.GuestInfo.paMsrRangesR3);
360 pVM->cpum.s.GuestInfo.paMsrRangesR0 = MMHyperR3ToR0(pVM, *ppaMsrRanges);
361 pVM->cpum.s.GuestInfo.paMsrRangesRC = MMHyperR3ToRC(pVM, *ppaMsrRanges);
364 return *ppaMsrRanges;
381 * @param ppaMsrRanges The variable pointing to the ranges (input/output).
387 int cpumR3MsrRangesInsert(PVM pVM, PCPUMMSRRANGE *ppaMsrRanges, uint32_t *pcMsrRanges, PCCPUMMSRRANGE pNewRange)
398 AssertReturn(!ppaMsrRanges, VERR_INVALID_PARAMETER);
401 ppaMsrRanges = &pVM->cpum.s.GuestInfo.paMsrRangesR3;
406 PCPUMMSRRANGE paMsrRanges = *ppaMsrRanges;
414 paMsrRanges = cpumR3MsrRangesEnsureSpace(pVM, ppaMsrRanges, cMsrRanges, 1);
432 paMsrRanges = cpumR3MsrRangesEnsureSpace(pVM, ppaMsrRanges, cMsrRanges, 1);
452 paMsrRanges = cpumR3MsrRangesEnsureSpace(pVM, ppaMsrRanges, cMsrRanges, 2);
512 paMsrRanges = cpumR3MsrRangesEnsureSpace(pVM, ppaMsrRanges, cMsrRanges, 1);
791 return cpumR3MsrRangesInsert(pVM, NULL /* ppaMsrRanges */, NULL /* pcMsrRanges */, pNewRange);