Lines Matching defs:paMsrRanges

71     /** The number of ranges in the table pointed to b paMsrRanges. */
74 PCCPUMMSRRANGE paMsrRanges;
257 * @param paMsrRanges The MSR ranges to search.
261 static uint32_t cpumR3MsrRangesBinSearch(PCCPUMMSRRANGE paMsrRanges, uint32_t cMsrRanges, uint32_t uMsr)
271 if ( uMsr >= paMsrRanges[i].uFirst
272 && uMsr <= paMsrRanges[i].uLast)
274 if (uMsr < paMsrRanges[i].uFirst)
406 PCPUMMSRRANGE paMsrRanges = *ppaMsrRanges;
412 && paMsrRanges[cMsrRanges - 1].uLast < pNewRange->uFirst)
414 paMsrRanges = cpumR3MsrRangesEnsureSpace(pVM, ppaMsrRanges, cMsrRanges, 1);
415 if (!paMsrRanges)
417 paMsrRanges[cMsrRanges] = *pNewRange;
422 uint32_t i = cpumR3MsrRangesBinSearch(paMsrRanges, cMsrRanges, pNewRange->uFirst);
423 Assert(i == cMsrRanges || pNewRange->uFirst <= paMsrRanges[i].uLast);
424 Assert(i == 0 || pNewRange->uFirst > paMsrRanges[i - 1].uLast);
430 || pNewRange->uLast < paMsrRanges[i].uFirst)
432 paMsrRanges = cpumR3MsrRangesEnsureSpace(pVM, ppaMsrRanges, cMsrRanges, 1);
433 if (!paMsrRanges)
436 memmove(&paMsrRanges[i + 1], &paMsrRanges[i], (cMsrRanges - i) * sizeof(paMsrRanges[0]));
437 paMsrRanges[i] = *pNewRange;
443 else if ( pNewRange->uFirst == paMsrRanges[i].uFirst
444 && pNewRange->uLast == paMsrRanges[i].uLast)
445 paMsrRanges[i] = *pNewRange;
449 else if ( pNewRange->uFirst > paMsrRanges[i].uFirst
450 && pNewRange->uLast < paMsrRanges[i].uLast)
452 paMsrRanges = cpumR3MsrRangesEnsureSpace(pVM, ppaMsrRanges, cMsrRanges, 2);
453 if (!paMsrRanges)
456 memmove(&paMsrRanges[i + 2], &paMsrRanges[i], (cMsrRanges - i) * sizeof(paMsrRanges[0]));
457 paMsrRanges[i + 1] = *pNewRange;
458 paMsrRanges[i + 2] = paMsrRanges[i];
459 paMsrRanges[i ].uLast = pNewRange->uFirst - 1;
460 paMsrRanges[i + 2].uFirst = pNewRange->uLast + 1;
473 if ( pNewRange->uFirst <= paMsrRanges[i].uFirst
474 && pNewRange->uLast < paMsrRanges[i].uLast)
475 paMsrRanges[i].uFirst = pNewRange->uLast + 1;
479 if (pNewRange->uFirst > paMsrRanges[i].uFirst)
481 Assert(paMsrRanges[i].uLast >= pNewRange->uFirst);
482 paMsrRanges[i].uLast = pNewRange->uFirst - 1;
489 memmove(&paMsrRanges[i], &paMsrRanges[i + 1], (cMsrRanges - i - 1) * sizeof(paMsrRanges[0]));
495 && pNewRange->uLast >= paMsrRanges[i].uFirst)
497 if (pNewRange->uLast < paMsrRanges[i].uLast)
500 paMsrRanges[i].uFirst = pNewRange->uLast + 1;
506 memmove(&paMsrRanges[i], &paMsrRanges[i + 1], (cMsrRanges - i - 1) * sizeof(paMsrRanges[0]));
512 paMsrRanges = cpumR3MsrRangesEnsureSpace(pVM, ppaMsrRanges, cMsrRanges, 1);
513 if (!paMsrRanges)
516 memmove(&paMsrRanges[i + 1], &paMsrRanges[i], (cMsrRanges - i) * sizeof(paMsrRanges[0]));
517 paMsrRanges[i] = *pNewRange;
755 PCCPUMMSRRANGE pCurMsr = pEntry->paMsrRanges;