Lines Matching defs:anon
474 * amap_wipeout: wipeout all anon's in an amap; then free the amap!
483 struct vm_anon *anon;
505 anon = chunk->ac_anon[slot];
507 if (anon == NULL || anon->an_ref == 0)
509 KASSERT(anon->an_lock == amap->am_lock);
514 refs = --anon->an_ref;
516 uvm_anfree(anon);
553 struct vm_anon *anon;
669 chunk->ac_anon[i] = anon = srcchunk->ac_anon[j];
670 if (anon == NULL)
673 KASSERT(anon->an_lock == srcamap->am_lock);
674 KASSERT(anon->an_ref > 0);
676 anon->an_ref++;
742 struct vm_anon *anon, *nanon;
748 * loop because some other process could reorder the anon's in the
759 anon = chunk->ac_anon[slot];
760 pg = anon->an_page;
761 KASSERT(anon->an_lock == amap->am_lock);
770 * if the anon ref count is one, we are safe (the child
773 if (anon->an_ref <= 1)
787 * First - get a new anon and a page.
791 /* the new anon will share the amap's lock */
811 * Copy the data and replace anon with the new one.
815 anon->an_ref--;
816 KASSERT(anon->an_ref > 0);
972 struct vm_anon *anon;
989 anon = chunk->ac_anon[curslot];
990 KASSERT(anon->an_lock == amap->am_lock);
997 /* drop anon reference count */
998 refs = --anon->an_ref;
1000 uvm_anfree(anon);
1004 * done with this anon, next ...!
1108 struct vm_anon *anon;
1111 anon = chunk->ac_anon[slot];
1113 swslot = anon->an_swslot;
1120 rv = uvm_anon_pagein(am, anon);
1204 * amap_populate: ensure that the amap can store an anon for the page at
1205 * offset. This function can sleep until memory to store the anon is
1227 * => anon must have the lock associated with this amap.
1230 amap_add(struct vm_aref *aref, vaddr_t offset, struct vm_anon *anon,
1263 chunk->ac_anon[slot] = anon;