Home | History | Annotate | Download | only in sun2

Lines Matching defs:pmeg

39  * sun2s 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 32Kb length, with 16 pages of 2Kb each.
206 /* This is where we map a PMEG without a context. */
312 * PMEG structures, queues, and macros
608 /* Found valid PMEG in the segmap. */
637 * PMEG management functions.
645 /* clear pmeg array, put it all on the free pmeq queue */
659 /* The last pmeg is not usable. */
664 * Reserve a pmeg (forever) for use by PROM, etc.
793 * Allocate a PMEG by whatever means necessary.
823 * Remove mappings to free-up a pmeg
851 /* Reassign this PMEG for the caller. */
870 * Put pmeg on the inactive queue, leaving its contents intact.
872 * this pmeg later if it is still in the inactive queue.
883 panic("pmeg_release: bad pmeg=%p", pmegp);
892 * Move the pmeg to the free queue from wherever it is.
893 * The pmeg will be clean. It might be in kernel_pmap.
918 panic("pmeg_free: releasing bad pmeg");
924 db_printf("pmeg_free: watch pmeg 0x%x\n",
936 * Find a PMEG that was put on the inactive queue when we
970 db_printf("pmeg_cache: watch pmeg 0x%x\n", pmegp->pmeg_index);
976 * Our segmap named a PMEG. If it is no longer ours,
984 db_printf("pmap:pmeg_cache: invalid pmeg: sme=0x%x\n", sme);
995 panic("pmeg_cache: pmeg was taken: %p", pmegp);
1027 * at most one element for each PMEG slot.
1127 /* PMEG may be inactive. */
1226 /* PMEG may be inactive. */
1503 * It is segment-aligned to simplify PMEG management.
1532 * -- but first, init PMEG management.
1685 * Reserve a segment for the kernel to use to access a pmeg
1687 * The kernel temporarily maps such a pmeg into this segment.
1989 map any new pmegs into context zero, make sure rest of pmeg is null;
2003 * (c) if not mapped segment, need to allocate pmeg
2024 /* Do we have a PMEG? */
2027 /* Found a PMEG in the segmap. Cool. */
2030 /* Make sure it is the right PMEG. */
2036 panic("pmap_enter_kernel: MMU has bad pmeg 0x%x", sme);
2039 /* No PMEG in the segmap. Have to allocate one. */
2057 * We have a PMEG. Is the VA already mapped to somewhere?
2193 * We have a context. Do we have a PMEG?
2197 /* Found a PMEG in the segmap. Cool. */
2200 /* Make sure it is the right PMEG. */
2205 panic("pmap_enter_user: MMU has bad pmeg 0x%x", sme);
2211 /* Found PMEG in cache. Just reload it. */
2215 /* PMEG not in cache, so allocate one. */
2233 * We have a PMEG. Is the VA already mapped to somewhere?
2329 * map any new pmegs into context zero, make sure rest of pmeg is null;
2343 * (c) if not mapped segment, need to allocate pmeg
2361 /* Do we have a PMEG? */
2366 /* Found a PMEG in the segmap. Cool. */
2369 /* Make sure it is the right PMEG. */
2374 panic("pmap_kenter_pa: MMU has bad pmeg 0x%x", sme);
2378 /* No PMEG in the segmap. Have to allocate one. */
2485 /* We are done with this pmeg. */
2490 "pmeg: %p\n", pmegp);
2518 * user-level faults by reloading a PMEG.
2561 * the PMEG was reloaded, and
2845 * This extracts the PMEG associated with the given map/virtual
3037 /* There is a PMEG, but maybe not active. */
3064 * Remove write permissions, all in one PMEG,
3065 * where that PMEG is currently in the MMU.
3097 /* have pmeg, will travel */
3099 /* Make sure we own the pmeg, right va, etc. */
3104 panic("pmap_protect_mmu: bad pmeg=%p", pmegp);
3148 * Remove write permissions, all in one PMEG,
3172 * Switch to the kernel context so we can access the PMEG
3273 /* There is a PMEG, but maybe not active. */
3300 * Remove some mappings, all in one PMEG,
3301 * where that PMEG is currently in the MMU.
3303 * If no PTEs remain valid in the PMEG, free it.
3334 /* have pmeg, will travel */
3337 /* Make sure we own the pmeg, right va, etc. */
3342 panic("pmap_remove_mmu: bad pmeg=%p", pmegp);
3396 /* We are done with this pmeg. */
3400 db_printf("pmap: removing wired pmeg: %p\n",
3431 * Remove some mappings, all in one PMEG,
3459 * Switch to the kernel context so we can access the PMEG
3509 /* We are done with this pmeg. */
3513 db_printf("pmap: removing wired pmeg: %p\n",
3534 pmeg_t pmeg;
3543 pmeg = pmeg_p(sme);
3544 pages += pmeg->pmeg_vpages;
3558 pmeg_t pmeg;
3567 pmeg = pmeg_p(sme);
3570 if (pmeg->pmeg_wired & mask)
3738 sme = (off / (NPAGSEG * sizeof(*pt))); /* PMEG to start on */