• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.5.8/xnu-1228.15.4/osfmk/ppc/

Lines Matching refs:pmap

32  * resident mappings for each pmap.  We used to use a much simpler hash-based scheme,
45 * efficient to purge a sparsely populated pmap of all the mappings in a large range,
51 * pages, which is 64GB of resident physical memory per pmap. Pmaps can be larger than
85 * Given a pmap and a virtual address (VA), find the mapping for that address.
88 * the pmap is locked (shared or exclusive)
92 * r3 = pmap ptr
106 la r8,pmapSkipLists+4(r3) ; point to lists in pmap, assuming 32-bit machine
108 mr r6,r3 ; save pmap ptr here so we can accumulate statistics
127 ; r6 = pmap ptr
129 ; r8 = ptr to skip list vector of mapping pointed to by r9 (or pmap, if r9==0)
151 ; Mapping not found, check to see if prev node was a block mapping or nested pmap.
182 ; r6 = pmap ptr
191 ; r6 = pmap ptr
215 ; r6 = pmap ptr
217 ; r8 = ptr to skip list vector of mapping pointed to by r9 (or pmap, if r9==0)
239 ; Mapping not found, check to see if prev node was a block mapping or nested pmap.
270 ; r6 = pmap ptr
278 ; r6 = pmap ptr
299 ; Here when the pmap is empty (ie, pmapCurLists==0), both in 32 and 64-bit mode,
301 ; r6 = pmap ptr
320 * Given a pmap and a virtual address (VA), find the mapping for that address.
322 * (or to the pmap, if there is no previous node) for each list that the mapping
324 * the pmap is locked (shared or exclusive)
328 * r3 = pmap ptr
341 la r8,pmapSkipLists+4(r3) ; point to lists in pmap, assuming 32-bit machine
343 mr r6,r3 ; save pmap ptr here so we can accumulate statistics
367 ; r6 = pmap ptr
370 ; r9 = prev ptr, ie highest mapping that comes before search target (initially the pmap)
417 ; Block mapping or nested pmap, and key > base. We must compute the va of
429 ; r6 = pmap ptr
450 ; r6 = pmap ptr
453 ; r9 = prev ptr, ie highest mapping that comes before search target (initially the pmap)
500 ; Block mapping or nested pmap, and key > base. We must compute the va of
512 ; r6 = pmap ptr
533 * Insert a mapping into pmap skip-lists. The caller has already called mapSearchFull to
534 * determine that this mapping does not overlap other mappings in the pmap. As a side effect
537 * the pmap is locked (exclusive)
542 * r3 = pmap ptr
553 la r10,pmapSkipLists+4(r3) ; r10 <-- base of pmap list headers, assuming 32-bit machine
569 ; point to the pmap. While we are at it, we verify that the unused list hdrs in
570 ; the pmap are 0.
576 subi r0,r10,mpList0 ; r0 <-- fake mapping ptr (to pmap) for null prev ptrs
579 ldx r6,r5,r10 ; get pmap list head
584 bne-- mapSkipListPanic ; die if pmap list hdr was not null
590 ; r10 = ptr to base of pmap list header vector
608 ; pmapCurLists prev ptrs, we must initialize any new ones to point to the pmap.
609 ; While we are at it, we verify that the unused list hdrs in the pmap are 0.
617 subi r0,r10,mpList0+4 ; r0 <-- fake mapping ptr (to pmap) for null prev ptrs
620 lwzx r6,r5,r10 ; get pmap list head
625 bne- mapSkipListPanic ; die if pmap list hdr was not null
631 ; r10 = ptr to base of pmap list header vector
653 * Remove a mapping from pmap skip-lists. The caller has already called mapSearchFull to
656 * the pmap is locked (exclusive)
661 * r3 = pmap ptr
686 ; r3 = pmap
720 ; r3 = pmap
758 * Called to decide how many skip-lists the next mapping will be on. For each pmap,
775 * doing copy-on-write etc, it is common to have the pmap's "random number" (ie, the
777 * pmap. This means the simple list count will often be larger than justified by the number of
778 * mappings in the pmap. To avoid this common situation, we clamp the list count to be no more
783 * We are passed the pmap ptr in r3. Called with translation on, interrupts enabled,
789 lwz r5,pmapRandNum(r3) ; get the per-pmap counter of mapping creates
790 lwz r4,pmapResidentCnt(r3) ; get number of mappings in this pmap
818 * as it must run with exceptions disabled and can take a long time to verify a big pmap.
821 * Called on a bl, with the pmap ptr in r20. We assume the pmap is locked (shared) and
1005 lwz r21,pmapResidentCnt(r20); get #mappings in this pmap
1026 ; r20 = pmap ptr
1027 ; r21 = decrementing counter of mappings in this pmap
1044 ; r20 = pmap ptr
1045 ; r21 = decrementing counter of mappings in this pmap
1068 ; First, if a block mapping or nested pmap, compute block end.
1072 addi r27,r27,1 ; units of nested pmap are (#segs-1)
1075 subi r21,r21,1 ; count mappings in this pmap
1077 subi r29,r29,4096 ; get offset to last byte in nested pmap
1120 cmpwi r21,0 ; did we find all the mappings in the pmap?
1131 la r30,pmapSkipLists(r20) ; first, check the pmap list hdrs
1139 ; r20 = pmap ptr
1140 ; r21 = decrementing counter of mappings in this pmap
1157 ; r20 = pmap ptr
1158 ; r21 = decrementing counter of mappings in this pmap
1188 addi r27,r27,1 ; units of nested pmap are (#segs-1)
1191 subi r21,r21,1 ; count mappings in this pmap
1193 subi r29,r29,4096 ; get offset to last byte in nested pmap
1243 cmpwi r21,0 ; did we find all the mappings in the pmap?