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

Lines Matching refs:list

65  *			Link the current free list & processor local list on an independent list.
80 std r8,SVsavefreesnapshot(0) ; Make it the restore list anchor
81 ld r5,SVfree(0) ; Get free save area list anchor
92 ld r5,lclfree(r10) ; Get the local savearea list
104 std r5,savemisc1(r8) ; End the list
114 stw r8,SVsavefreesnapshot+4(0) ; Make it the restore list anchor
115 lwz r5,SVfree+4(0) ; Get free save area list anchor
126 lwz r5,lclfree+4(r10) ; Get the local savearea list
138 stw r5,savemisc1+4(r8) ; End the list
151 * Restore the free list from the snapshot list, and reset the processors next savearea.
171 ld r8,SVsavefreesnapshot(0) ; Get the restore list anchor
172 std r8,SVfree(0) ; Make it the free list anchor
179 std r7,SAVprev(r8) ; Set the next in free list
201 lwz r8,SVsavefreesnapshot+4(0) ; Get the restore list anchor
202 stw r8,SVfree+4(0) ; Make it the free list anchor
209 stw r7,SAVprev+4(r8) ; Set the next in free list
228 * This routine will add a savearea block to the free list.
229 * We also queue the block to the free pool list. This is a
230 * circular double linked list. Because this block has no free entries,
231 * it gets queued to the end of the list
259 ld r7,SVfree(0) ; Get the free save area list anchor
288 lwz r7,SVfree+4(0) ; Get the free save area list anchor
297 bl saveunlock ; Unlock the list and set the adjust count
449 * First we try the local list. If that is below a threshold, we try the global free list,
450 * which requires taking a lock, and replenish. If there are no saveareas in either list,
467 ld r3,lclfree(r10) ; Get the start of local savearea list
469 ble-- saveGet64GetGlobal ; We are too low and need to grow list...
471 ; Get it from the per-processor local list.
491 ; Local list was low so replenish from global list.
501 lwz r2,SVfreecnt(0) ; Get the number on this list
502 ld r8,SVfree(0) ; Get the head of the save area list
504 sub r3,r2,r5 ; Get number left after we swipe enough for local list
507 and r5,r2,r3 ; Get 0 if there are enough, number on list otherwise
508 or. r5,r4,r5 ; r5 <- number we will move from global to local list
512 mr r6,r8 ; Remember the first in the list
523 std r3,SVfree(0) ; Set the new first in list
524 add r4,r4,r5 ; Count the ones we just put in the local list as "in use"
528 ld r4,lclfree(r10) ; Get the old head of list
530 std r6,lclfree(r10) ; Set the new head of the list
539 ; The local list is below the repopulate threshold and the global list is empty.
540 ; First we check if there are any left in the local list and if so, we allow
541 ; them to be allocated. If not, we release the backpocket list and choke.
552 ld r3,lclfree(r10) ; Get the start of local savearea list
566 lwz r6,SVinuse(0) ; Get total in the old list
571 stw r6,SVinuse(0) ; Set total in the new list
580 stw r7,SVlock(0) ; Unlock the free list
592 * First we try the local list. If that is below a threshold, we try the global free list,
593 * which requires taking a lock, and replenish. If there are no saveareas in either list,
608 lwz r3,lclfree+4(r10) ; Get the start of local savearea list
610 ble- saveGet32GetGlobal ; We are too low and need to grow list...
612 ; Get savearea from per-processor local list.
631 ; Local list was low so replenish from global list.
641 lwz r2,SVfreecnt(0) ; Get the number on this list
642 lwz r8,SVfree+4(0) ; Get the head of the save area list
644 sub r3,r2,r5 ; Get number left after we swipe enough for local list
647 and r5,r2,r3 ; Get 0 if there are enough, number on list otherwise
648 or. r5,r4,r5 ; r5 <- number we will move from global to local list
652 mr r6,r8 ; Remember the first in the list
663 stw r3,SVfree+4(0) ; Set the new first in list
664 add r4,r4,r5 ; Count the ones we just put in the local list as "in use"
668 lwz r4,lclfree+4(r10) ; Get the old head of list
670 stw r6,lclfree+4(r10) ; Set the new head of the list
679 ; The local list is below the repopulate threshold and the global list is empty.
680 ; First we check if there are any left in the local list and if so, we allow
681 ; them to be allocated. If not, we release the backpocket list and choke.
692 lwz r3,lclfree+4(r10) ; Get the start of local savearea list
706 lwz r6,SVinuse(0) ; Get total in the old list
711 stw r6,SVinuse(0) ; Set total in the new list
724 * Return a savearea passed by virtual address to the free list.
821 cmplwi r7,LocalSaveMax ; Has the list gotten too long?
830 * When we trim the list, we NEVER trim the very first one. This is because that is
834 * the local list. (Note: the exit routine needs to do this because it is in the
839 mr r2,r3 ; r2 <- 1st one on local list, which must not be trimmed
859 ld r8,SVfree(0) ; Get the old head of the free list
892 cmplwi r7,LocalSaveMax ; Has the list gotten too long?
901 * When we trim the list, we NEVER trim the very first one. This is because that is
905 * the local list. (Note: the exit routine needs to do this because it is in the
910 mr r2,r3 ; r2 <- 1st one on local list, which must not be trimmed
930 lwz r8,SVfree+4(0) ; Get the old head of the free list
951 * Trim the free list down to the target count, ie by -(SVadjust) save areas.
952 * It trims the list and, if a pool page was fully allocated, puts that page on
953 * the start of the pool list.
959 * When the scan is done, the saveanchor lock is released and the list of
965 * Possibly trimming the free list, then individually pushing them into the free pool.
1020 lwz r7,SVfree+4(0) ; Get the first on the free list
1029 sttrimmed: lwz r5,SAVprev+4(r7) ; Get the next one (for new head of free list)
1053 ; r31 = free pool block list
1080 ; We have an empty block. Remove it from the pool list.
1084 cmplwi cr5,r31,0 ; Is this guy on the release list?
1102 ; A pool block that had no free entries now has one. Stick it on the pool list.
1105 stputpool: lwz r28,SVpoolfwd+4(0) ; Get the first guy on the list
1107 stw r2,SVpoolfwd+4(0) ; Put us on the top of the list
1128 ld r7,SVfree(0) ; Get the first on the free list
1139 ld r5,SAVprev(r7) ; Get the next one (for new head of free list)
1157 ; r31 = free pool block list
1186 ; We have an empty block. Remove it from the pool list.
1189 cmpldi cr5,r31,0 ; Is this guy on the release list?
1207 ; A pool block that had no free entries now has one. Stick it on the pool list.
1210 ld r28,SVpoolfwd(0) ; Get the first guy on the list
1212 std r2,SVpoolfwd(0) ; Put us on the top of the list
1224 ; r31 = free pool block list
1262 * pool. If we empty a pool block, we remove it from the pool list.
1355 stw r3,SAVprev+4(r2) ; Chain the rest of the list behind
1441 std r3,SAVprev(r2) ; Chain the rest of the list behind
1459 * Lock the savearea anchor, so we can manipulate the free list.
1499 lwz r6,SVfreecnt(0) ; and the number on the free list
1504 blt-- saveunlock1 ; skip if fewer than minimum on free list