Lines Matching refs:mseg
3357 trimkcage(struct memseg *mseg, pfn_t *lo, pfn_t *hi, pfn_t pfnlo, pfn_t pfnhi)
3363 if (PP_ISNORELOC(mseg->pages)) {
3364 if (PP_ISNORELOC(mseg->epages - 1) == 0) {
3366 /* lower part of this mseg inside kernel cage */
3369 /* kernel cage may have transitioned past mseg */
3370 if (kcagepfn >= mseg->pages_base &&
3371 kcagepfn < mseg->pages_end) {
3374 *hi = MIN(pfnhi, (mseg->pages_end - 1));
3378 /* else entire mseg in the cage */
3380 if (PP_ISNORELOC(mseg->epages - 1)) {
3382 /* upper part of this mseg inside kernel cage */
3385 /* kernel cage may have transitioned past mseg */
3386 if (kcagepfn >= mseg->pages_base &&
3387 kcagepfn < mseg->pages_end) {
3390 *lo = MAX(pfnlo, mseg->pages_base);
3394 /* entire mseg outside of kernel cage */
3395 *lo = MAX(pfnlo, mseg->pages_base);
3396 *hi = MIN(pfnhi, (mseg->pages_end - 1));
3423 struct memseg *mseg;
3505 for (mseg = memsegs; mseg != NULL; mseg = mseg->next) {
3506 if (pfnhi < mseg->pages_base || pfnlo >= mseg->pages_end) {
3511 if (mseg->pages_end - mseg->pages_base < szcpgcnt)
3512 /* mseg too small */
3521 if (trimkcage(mseg, &lo, &hi, pfnlo, pfnhi) == 0 ||
3525 lo = MAX(pfnlo, mseg->pages_base);
3526 hi = MIN(pfnhi, (mseg->pages_end - 1));
3552 /* mseg cannot satisfy color request */
3572 randpp = mseg->pages + (randpfn - mseg->pages_base);
3577 endpp = mseg->pages + (hi - mseg->pages_base) + 1;
3603 pp = mseg->pages +
3604 (pfn - mseg->pages_base);
3610 pp = mseg->pages + (lo - mseg->pages_base);