Home | History | Annotate | Download | only in sun3

Lines Matching defs:pmeg

39  * sun3s also have this evil "PMEG" crapola.  Essentially each "context"'s
41 * Each of these 1-byte entries points to a "Page Map Entry Group" (PMEG)
44 * Each PMEG maps a segment of 128Kb length, with 16 pages of 8Kb each.
216 /* This is where we map a PMEG without a context. */
321 * PMEG structures, queues, and macros
617 /* Found valid PMEG in the segmap. */
646 * PMEG management functions.
654 /* clear pmeg array, put it all on the free pmeq queue */
668 /* The last pmeg is not usable. */
673 * Reserve a pmeg (forever) for use by PROM, etc.
802 * Allocate a PMEG by whatever means necessary.
832 * Remove mappings to free-up a pmeg
860 /* Reassign this PMEG for the caller. */
879 * Put pmeg on the inactive queue, leaving its contents intact.
881 * this pmeg later if it is still in the inactive queue.
892 panic("pmeg_release: bad pmeg=%p", pmegp);
901 * Move the pmeg to the free queue from wherever it is.
902 * The pmeg will be clean. It might be in kernel_pmap.
927 panic("pmeg_free: releasing bad pmeg");
933 db_printf("pmeg_free: watch pmeg 0x%x\n",
945 * Find a PMEG that was put on the inactive queue when we
979 db_printf("pmeg_cache: watch pmeg 0x%x\n", pmegp->pmeg_index);
985 * Our segmap named a PMEG. If it is no longer ours,
993 db_printf("pmap:pmeg_cache: invalid pmeg: sme=0x%x\n", sme);
1004 panic("pmeg_cache: pmeg was taken: %p", pmegp);
1036 * at most one element for each PMEG slot.
1134 /* PMEG may be inactive. */
1231 /* PMEG may be inactive. */
1512 * It is segment-aligned to simplify PMEG management.
1563 * -- but first, init PMEG management.
1714 * Reserve a segment for the kernel to use to access a pmeg
1716 * The kernel temporarily maps such a pmeg into this segment.
2021 map any new pmegs into all contexts, make sure rest of pmeg is null;
2033 * (c) if not mapped segment, need to allocate pmeg
2054 /* Do we have a PMEG? */
2057 /* Found a PMEG in the segmap. Cool. */
2060 /* Make sure it is the right PMEG. */
2066 panic("pmap_enter_kernel: MMU has bad pmeg 0x%x", sme);
2069 /* No PMEG in the segmap. Have to allocate one. */
2087 * We have a PMEG. Is the VA already mapped to somewhere?
2222 * We have a context. Do we have a PMEG?
2226 /* Found a PMEG in the segmap. Cool. */
2229 /* Make sure it is the right PMEG. */
2234 panic("pmap_enter_user: MMU has bad pmeg 0x%x", sme);
2240 /* Found PMEG in cache. Just reload it. */
2244 /* PMEG not in cache, so allocate one. */
2262 * We have a PMEG. Is the VA already mapped to somewhere?
2358 * map any new pmegs into all contexts, make sure rest of pmeg is null;
2369 * (c) if not mapped segment, need to allocate pmeg
2387 /* Do we have a PMEG? */
2392 /* Found a PMEG in the segmap. Cool. */
2395 /* Make sure it is the right PMEG. */
2400 panic("pmap_kenter_pa: MMU has bad pmeg 0x%x", sme);
2404 /* No PMEG in the segmap. Have to allocate one. */
2505 /* We are done with this pmeg. */
2510 "pmeg: %p\n", pmegp);
2537 * user-level faults by reloading a PMEG.
2580 * the PMEG was reloaded, and
3012 /* There is a PMEG, but maybe not active. */
3039 * Remove write permissions, all in one PMEG,
3040 * where that PMEG is currently in the MMU.
3068 /* have pmeg, will travel */
3070 /* Make sure we own the pmeg, right va, etc. */
3075 panic("pmap_protect_mmu: bad pmeg=%p", pmegp);
3119 * Remove write permissions, all in one PMEG,
3143 * Borrow the EMPTY_CONTEXT so we can access the PMEG
3231 /* There is a PMEG, but maybe not active. */
3258 * Remove some mappings, all in one PMEG,
3259 * where that PMEG is currently in the MMU.
3261 * If no PTEs remain valid in the PMEG, free it.
3292 /* have pmeg, will travel */
3295 /* Make sure we own the pmeg, right va, etc. */
3300 panic("pmap_remove_mmu: bad pmeg=%p", pmegp);
3354 /* We are done with this pmeg. */
3358 db_printf("pmap: removing wired pmeg: %p\n",
3387 * Remove some mappings, all in one PMEG,
3415 * Borrow the EMPTY_CONTEXT so we can access the PMEG
3454 /* We are done with this pmeg. */
3458 db_printf("pmap: removing wired pmeg: %p\n",
3479 pmeg_t pmeg;
3488 pmeg = pmeg_p(sme);
3489 pages += pmeg->pmeg_vpages;
3503 pmeg_t pmeg;
3512 pmeg = pmeg_p(sme);
3515 if (pmeg->pmeg_wired & mask)
3662 sme = (off >> 6); /* PMEG to start on */