} stop--;
amap_wiperange(amap, slotoff, slots)	struct vm_amap *amap;	int slotoff, slots;{	int byanon, lcv, stop, curslot, ptr;	struct vm_anon *anon;	/*	 * we can either traverse the amap by am_anon or by am_slots depending	 * on which is cheaper.    decide now.	 */	if (slots < amap->am_nused) {		byanon = TRUE;		lcv = slotoff;		stop = slotoff + slots;	} else {		byanon = FALSE;		lcv = 0;		stop = amap->am_nused;	}	/*	 * ok, now do it!	 */	for (; lcv < stop; lcv++) {		int refs;		/*		 * verify the anon is ok.		 */		if (byanon) {			if (amap->am_anon[lcv] == NULL)				continue;			curslot = lcv;		} else {			curslot = amap->am_slots[lcv];			if (curslot < slotoff || curslot >= stop)				continue;		}		anon = amap->am_anon[curslot];		/*		 * remove it from the amap		 */		amap->am_anon[curslot] = NULL;		ptr = amap->am_bckptr[curslot];		if (ptr != (amap->am_nused - 1)) {			amap->am_slots[ptr] =			    amap->am_slots[amap->am_nused - 1];			amap->am_bckptr[amap->am_slots[ptr]] =			    ptr;    /* back ptr. */		}		amap->am_nused--;		/*		 * drop anon reference count		 */		simple_lock(&anon->an_lock);		refs = --anon->an_ref;		simple_unlock(&anon->an_lock);		if (refs == 0) {			/*			 * we just eliminated the last reference to an anon.			 * free it.			 */			uvm_anfree(anon);		}	}}