Lines Matching defs:mnoderanges
168 #define MTYPE_FREEMEM(mt) (mnoderanges[mt].mnr_mt_totcnt)
202 mnoderange_t *mnoderanges;
351 /* Lock to protect mnoderanges array for memory DR operations. */
969 for (n = mtypetop; n != -1; n = mnoderanges[n].mnr_next) {
970 if (pfn >= mnoderanges[n].mnr_pfnlo) {
1227 * memranges[]. Used to determine the size of page lists and mnoderanges.
1266 * mnode_range_setup() initializes mnoderanges.
1269 mnode_range_setup(mnoderange_t *mnoderanges)
1271 mnoderange_t *mp = mnoderanges;
1273 int mindex = 0; /* current index into mnoderanges array */
1289 mnoderanges->mnr_pfnlo = MAX(MEMRANGELO(mri),
1291 mnoderanges->mnr_pfnhi = MIN(MEMRANGEHI(mri),
1293 mnoderanges->mnr_mnode = mnode;
1294 mnoderanges->mnr_memrange = mri;
1295 mnoderanges->mnr_exists = 1;
1296 mnoderanges++;
1306 * For now do a simple sort of the mnoderanges array to fill in
1337 * Update mnoderanges for memory hot-add DR operations.
1356 for (n = mtypetop; n != -1; n = mnoderanges[n].mnr_next) {
1357 ASSERT(mnoderanges[n].mnr_exists);
1358 if (mnoderanges[n].mnr_mnode == mnode)
1360 ASSERT(start > mnoderanges[n].mnr_pfnhi ||
1361 end < mnoderanges[n].mnr_pfnlo);
1370 for (n = mtypetop; n != -1; n = mnoderanges[n].mnr_next) {
1371 if (mnoderanges[n].mnr_mnode == mnode &&
1372 mnoderanges[n].mnr_memrange == mri) {
1373 mnoderanges[n].mnr_pfnlo = MAX(MEMRANGELO(mri),
1375 mnoderanges[n].mnr_pfnhi = MIN(MEMRANGEHI(mri),
1383 /* Try to find an unused entry in mnoderanges array. */
1385 if (mnoderanges[n].mnr_exists == 0)
1389 mnoderanges[n].mnr_pfnlo = MAX(MEMRANGELO(mri), start);
1390 mnoderanges[n].mnr_pfnhi = MIN(MEMRANGEHI(mri), end);
1391 mnoderanges[n].mnr_mnode = mnode;
1392 mnoderanges[n].mnr_memrange = mri;
1393 mnoderanges[n].mnr_exists = 1;
1396 mnoderanges[*prev].mnr_pfnlo > start;
1397 prev = &mnoderanges[*prev].mnr_next) {
1398 ASSERT(mnoderanges[*prev].mnr_next >= 0);
1399 ASSERT(mnoderanges[*prev].mnr_pfnlo > end);
1401 mnoderanges[n].mnr_next = *prev;
1416 * Update mnoderanges for memory hot-removal DR operations.
1525 mtype = mnoderanges[mtype].mnr_next;
1532 mnoderanges[mtype].mnr_memrange <= mnr_lim) {
1533 if (mnoderanges[mtype].mnr_mnode == mnode)
1535 mtype = mnoderanges[mtype].mnr_next;
1537 } else if (mnoderanges[mtype].mnr_mnode == mnode) {
1563 lo = mnoderanges[mtype].mnr_pfnlo;
1570 if (mnoderanges[mtype].mnr_memrange != MRI_4G) {
1578 mtype = mnoderanges[mtype].mnr_next;
1585 return (mnoderanges[mtype].mnr_memrange);
1592 ASSERT(mnoderanges[mtype].mnr_mnode == mnode);
1593 *pfnlo = mnoderanges[mtype].mnr_pfnlo;
1594 *pfnhi = mnoderanges[mtype].mnr_pfnhi;
1619 mnoderanges[mt].mnr_mts = (struct mnr_mts *)addr;
1623 mnoderanges[mt].mnr_mts[szc].mnr_mts_colors = colors;
1624 mnoderanges[mt].mnr_mts[szc].mnr_mtsc_pgcnt =
1640 atomic_add_long(&mnoderanges[mtype].mnr_mts[szc].mnr_mts_pgcnt, cnt);
1641 atomic_add_long(&mnoderanges[mtype].mnr_mts[szc].mnr_mtsc_pgcnt[bin],
1645 if (physmax4g && mnoderanges[mtype].mnr_memrange != MRI_4G)
1648 atomic_add_long(&mnoderanges[mtype].mnr_mt_clpgcnt, cnt);
1650 atomic_add_long(&mnoderanges[mtype].mnr_mt_flpgcnt[szc], cnt);
1651 atomic_add_long(&mnoderanges[mtype].mnr_mt_totcnt, cnt);
1797 /* size for mnoderanges */
1803 * Two extra mnoderanges for possbile fragmentations,
1849 mnoderanges = (mnoderange_t *)addr;
1852 mnode_range_setup(mnoderanges);
3336 fullrange = ((pfnlo == mnoderanges[n].mnr_pfnlo) &&
3337 (pfnhi >= mnoderanges[m].mnr_pfnhi));
3377 (mtype = mnoderanges[mtype].mnr_next) != -1);