Lines Matching refs:mappings
29 * This file is used to maintain the virtual to real mappings for a PowerPC machine.
66 #include <ppc/mappings.h>
127 * We can do 4 things: 1) not worry about it, 2) keep all free pmaps, 3) rebuild all mappings
250 /* If this is an assisted host, scrub any guest mappings */
258 do { /* Iterate 'till all guest mappings are gone */
263 case mapRtEmpty: /* No guest mappings left to scrub */
437 * Note that the mappings busy count is bumped. It is the responsibility of the caller
489 * the protection. If there are PTEs associated with the mappings, they will be invalidated before
527 * This routine takes a physical entry and runs through all mappings attached to it and changes
528 * the protection. If there are PTEs associated with the mappings, they will be invalidated before
537 void mapping_protect_phys(ppnum_t pa, vm_prot_t prot) { /* Change protection of all mappings to page */
548 getProtPPC(prot, FALSE), hwpPurgePTE); /* Set the new protection for page and mappings */
557 * This routine takes a physical entry and runs through all mappings attached to it and turns
572 0, hwpPurgePTE); /* Clear change for page and mappings */
580 * This routine takes a physical entry and runs through all mappings attached to it and turns
595 0, hwpNoopPTE); /* Set change for page and mappings */
603 * This routine takes a physical entry and runs through all mappings attached to it and turns
618 0, hwpPurgePTE); /* Clear reference for page and mappings */
626 * This routine takes a physical entry and runs through all mappings attached to it and turns
641 0, hwpNoopPTE); /* Set reference for page and mappings */
649 * This routine takes a physical entry and runs through all mappings attached to it and tests
664 0, hwpMergePTE); /* Set change for page and mappings */
672 * This routine takes a physical entry and runs through all mappings attached to it and tests
687 0, hwpMergePTE); /* Test reference for page and mappings */
695 * This routine takes a physical entry and runs through all mappings attached to it and tests
710 0, hwpMergePTE); /* Test reference and change bits in page and mappings */
721 * This routine takes a physical entry and runs through all mappings attached to it and turns
739 ppcMask, hwpPurgePTE); /* Clear reference and change bits for page and mappings */
778 * the number of free mappings remaining, and if below a threshold, replenishes them.
789 void mapping_adjust(void) { /* Adjust free mappings */
992 if(mapCtl.mapcreln > MAPFRTHRSH) { /* Do we have way too many releasable mappings? */
1041 if(!((unsigned int)mapCtl.mapcnext)) { /* Are there any free mappings? */
1044 * No free mappings. First, there may be some mapping blocks on the "to be released"
1082 /* We don't steal mappings from the kernel pmap, a VMM host pmap, or a VMM guest pmap with guest
1116 panic("no valid pmap to purge mappings\n");
1248 * mappings. This call adds and initializes a block for use. Mappings come in two sizes,
1250 * 128-byte mapping we just look for two consequtive free 64-byte mappings, so most of the
1251 * code only deals with "basic" 64-byte mappings. This works for two reasons:
1252 * - Only one in 256 mappings is big, so they are rare.
1253 * - If we cannot find two consequtive free mappings, we just return a small one.
1262 * We handle these mappings the same way as saveareas: the block is only on the chain so
1266 * mappings. Blocks marked PERM won't ever be released.
1270 * in the pageout scan and it doesn't start up until after we run out of the initial mappings.
1279 /* Set's start and end of a block of mappings
1678 /* properly on both single page and block mappings */