amap 79 uvm/uvm_amap.c amap_list_insert(struct vm_amap *amap)
amap 81 uvm/uvm_amap.c LIST_INSERT_HEAD(&amap_list, amap, am_list);
amap 85 uvm/uvm_amap.c amap_list_remove(struct vm_amap *amap)
amap 87 uvm/uvm_amap.c LIST_REMOVE(amap, am_list);
amap 186 uvm/uvm_amap.c struct vm_amap *amap;
amap 189 uvm/uvm_amap.c amap = pool_get(&uvm_amap_pool, (waitf == M_WAITOK) ? PR_WAITOK : 0);
amap 190 uvm/uvm_amap.c if (amap == NULL)
amap 195 uvm/uvm_amap.c amap->am_ref = 1;
amap 196 uvm/uvm_amap.c amap->am_flags = 0;
amap 198 uvm/uvm_amap.c amap->am_ppref = NULL;
amap 200 uvm/uvm_amap.c amap->am_maxslot = totalslots;
amap 201 uvm/uvm_amap.c amap->am_nslot = slots;
amap 202 uvm/uvm_amap.c amap->am_nused = 0;
amap 204 uvm/uvm_amap.c amap->am_slots = malloc(totalslots * sizeof(int), M_UVMAMAP,
amap 206 uvm/uvm_amap.c if (amap->am_slots == NULL)
amap 209 uvm/uvm_amap.c amap->am_bckptr = malloc(totalslots * sizeof(int), M_UVMAMAP, waitf);
amap 210 uvm/uvm_amap.c if (amap->am_bckptr == NULL)
amap 213 uvm/uvm_amap.c amap->am_anon = malloc(totalslots * sizeof(struct vm_anon *),
amap 215 uvm/uvm_amap.c if (amap->am_anon == NULL)
amap 218 uvm/uvm_amap.c return(amap);
amap 221 uvm/uvm_amap.c free(amap->am_bckptr, M_UVMAMAP);
amap 223 uvm/uvm_amap.c free(amap->am_slots, M_UVMAMAP);
amap 225 uvm/uvm_amap.c pool_put(&uvm_amap_pool, amap);
amap 240 uvm/uvm_amap.c struct vm_amap *amap;
amap 247 uvm/uvm_amap.c amap = amap_alloc1(slots, padslots, waitf);
amap 248 uvm/uvm_amap.c if (amap) {
amap 249 uvm/uvm_amap.c memset(amap->am_anon, 0,
amap 250 uvm/uvm_amap.c amap->am_maxslot * sizeof(struct vm_anon *));
amap 251 uvm/uvm_amap.c amap_list_insert(amap);
amap 254 uvm/uvm_amap.c UVMHIST_LOG(maphist,"<- done, amap = %p, sz=%lu", amap, sz, 0, 0);
amap 255 uvm/uvm_amap.c return(amap);
amap 266 uvm/uvm_amap.c amap_free(struct vm_amap *amap)
amap 270 uvm/uvm_amap.c KASSERT(amap->am_ref == 0 && amap->am_nused == 0);
amap 271 uvm/uvm_amap.c KASSERT((amap->am_flags & AMAP_SWAPOFF) == 0);
amap 273 uvm/uvm_amap.c free(amap->am_slots, M_UVMAMAP);
amap 274 uvm/uvm_amap.c free(amap->am_bckptr, M_UVMAMAP);
amap 275 uvm/uvm_amap.c free(amap->am_anon, M_UVMAMAP);
amap 277 uvm/uvm_amap.c if (amap->am_ppref && amap->am_ppref != PPREF_NONE)
amap 278 uvm/uvm_amap.c free(amap->am_ppref, M_UVMAMAP);
amap 280 uvm/uvm_amap.c pool_put(&uvm_amap_pool, amap);
amap 282 uvm/uvm_amap.c UVMHIST_LOG(maphist,"<- done, freed amap = %p", amap, 0, 0, 0);
amap 298 uvm/uvm_amap.c struct vm_amap *amap = entry->aref.ar_amap;
amap 327 uvm/uvm_amap.c if (amap->am_nslot >= slotneed) {
amap 329 uvm/uvm_amap.c if (amap->am_ppref && amap->am_ppref != PPREF_NONE) {
amap 330 uvm/uvm_amap.c amap_pp_adjref(amap, slotoff + slotmapped, slotadd, 1);
amap 334 uvm/uvm_amap.c amap, slotneed, 0, 0);
amap 343 uvm/uvm_amap.c if (amap->am_maxslot >= slotneed) {
amap 345 uvm/uvm_amap.c if (amap->am_ppref && amap->am_ppref != PPREF_NONE) {
amap 346 uvm/uvm_amap.c if ((slotoff + slotmapped) < amap->am_nslot)
amap 347 uvm/uvm_amap.c amap_pp_adjref(amap, slotoff + slotmapped,
amap 348 uvm/uvm_amap.c (amap->am_nslot - (slotoff + slotmapped)),
amap 350 uvm/uvm_amap.c pp_setreflen(amap->am_ppref, amap->am_nslot, 1,
amap 351 uvm/uvm_amap.c slotneed - amap->am_nslot);
amap 354 uvm/uvm_amap.c amap->am_nslot = slotneed;
amap 361 uvm/uvm_amap.c amap, slotneed, 0, 0);
amap 375 uvm/uvm_amap.c if (amap->am_ppref && amap->am_ppref != PPREF_NONE) {
amap 380 uvm/uvm_amap.c free(amap->am_ppref, M_UVMAMAP);
amap 381 uvm/uvm_amap.c amap->am_ppref = PPREF_NONE;
amap 403 uvm/uvm_amap.c KASSERT(amap->am_maxslot < slotneed);
amap 409 uvm/uvm_amap.c slotadded = slotalloc - amap->am_nslot;
amap 412 uvm/uvm_amap.c oldsl = amap->am_slots;
amap 413 uvm/uvm_amap.c memcpy(newsl, oldsl, sizeof(int) * amap->am_nused);
amap 414 uvm/uvm_amap.c amap->am_slots = newsl;
amap 417 uvm/uvm_amap.c oldover = amap->am_anon;
amap 418 uvm/uvm_amap.c memcpy(newover, oldover, sizeof(struct vm_anon *) * amap->am_nslot);
amap 419 uvm/uvm_amap.c memset(newover + amap->am_nslot, 0, sizeof(struct vm_anon *) *
amap 421 uvm/uvm_amap.c amap->am_anon = newover;
amap 424 uvm/uvm_amap.c oldbck = amap->am_bckptr;
amap 425 uvm/uvm_amap.c memcpy(newbck, oldbck, sizeof(int) * amap->am_nslot);
amap 426 uvm/uvm_amap.c memset(newbck + amap->am_nslot, 0, sizeof(int) * slotadded); /* XXX: needed? */
amap 427 uvm/uvm_amap.c amap->am_bckptr = newbck;
amap 431 uvm/uvm_amap.c oldppref = amap->am_ppref;
amap 433 uvm/uvm_amap.c memcpy(newppref, oldppref, sizeof(int) * amap->am_nslot);
amap 434 uvm/uvm_amap.c memset(newppref + amap->am_nslot, 0, sizeof(int) * slotadded);
amap 435 uvm/uvm_amap.c amap->am_ppref = newppref;
amap 436 uvm/uvm_amap.c if ((slotoff + slotmapped) < amap->am_nslot)
amap 437 uvm/uvm_amap.c amap_pp_adjref(amap, slotoff + slotmapped,
amap 438 uvm/uvm_amap.c (amap->am_nslot - (slotoff + slotmapped)), 1);
amap 439 uvm/uvm_amap.c pp_setreflen(newppref, amap->am_nslot, 1,
amap 440 uvm/uvm_amap.c slotneed - amap->am_nslot);
amap 445 uvm/uvm_amap.c amap->am_nslot = slotneed;
amap 446 uvm/uvm_amap.c amap->am_maxslot = slotalloc;
amap 457 uvm/uvm_amap.c amap, slotneed, 0, 0);
amap 477 uvm/uvm_amap.c struct vm_amap *amap = entry->aref.ar_amap;
amap 483 uvm/uvm_amap.c if (slots < amap->am_nused) {
amap 486 uvm/uvm_amap.c if (amap->am_anon[lcv] == NULL)
amap 488 uvm/uvm_amap.c if (amap->am_anon[lcv]->an_page != NULL)
amap 489 uvm/uvm_amap.c pmap_page_protect(amap->am_anon[lcv]->an_page,
amap 496 uvm/uvm_amap.c for (lcv = 0 ; lcv < amap->am_nused ; lcv++) {
amap 497 uvm/uvm_amap.c slot = amap->am_slots[lcv];
amap 500 uvm/uvm_amap.c if (amap->am_anon[slot]->an_page != NULL)
amap 501 uvm/uvm_amap.c pmap_page_protect(amap->am_anon[slot]->an_page, prot);
amap 515 uvm/uvm_amap.c amap_wipeout(struct vm_amap *amap)
amap 520 uvm/uvm_amap.c UVMHIST_LOG(maphist,"(amap=%p)", amap, 0,0,0);
amap 522 uvm/uvm_amap.c KASSERT(amap->am_ref == 0);
amap 524 uvm/uvm_amap.c if (__predict_false((amap->am_flags & AMAP_SWAPOFF) != 0)) {
amap 530 uvm/uvm_amap.c amap_list_remove(amap);
amap 532 uvm/uvm_amap.c for (lcv = 0 ; lcv < amap->am_nused ; lcv++) {
amap 535 uvm/uvm_amap.c slot = amap->am_slots[lcv];
amap 536 uvm/uvm_amap.c anon = amap->am_anon[slot];
amap 560 uvm/uvm_amap.c amap->am_ref = 0; /* ... was one */
amap 561 uvm/uvm_amap.c amap->am_nused = 0;
amap 562 uvm/uvm_amap.c amap_free(amap); /* will unlock and free amap */
amap 584 uvm/uvm_amap.c struct vm_amap *amap, *srcamap;
amap 652 uvm/uvm_amap.c amap = amap_alloc1(slots, 0, waitf);
amap 653 uvm/uvm_amap.c if (amap == NULL) {
amap 669 uvm/uvm_amap.c amap->am_ref--; /* drop final reference to map */
amap 670 uvm/uvm_amap.c amap_free(amap); /* dispose of new (unused) amap */
amap 680 uvm/uvm_amap.c amap->am_anon[lcv] =
amap 682 uvm/uvm_amap.c if (amap->am_anon[lcv] == NULL)
amap 684 uvm/uvm_amap.c simple_lock(&amap->am_anon[lcv]->an_lock);
amap 685 uvm/uvm_amap.c amap->am_anon[lcv]->an_ref++;
amap 686 uvm/uvm_amap.c simple_unlock(&amap->am_anon[lcv]->an_lock);
amap 687 uvm/uvm_amap.c amap->am_bckptr[lcv] = amap->am_nused;
amap 688 uvm/uvm_amap.c amap->am_slots[amap->am_nused] = lcv;
amap 689 uvm/uvm_amap.c amap->am_nused++;
amap 691 uvm/uvm_amap.c memset(&amap->am_anon[lcv], 0,
amap 692 uvm/uvm_amap.c (amap->am_maxslot - lcv) * sizeof(struct vm_anon *));
amap 716 uvm/uvm_amap.c entry->aref.ar_amap = amap;
amap 719 uvm/uvm_amap.c amap_list_insert(amap);
amap 752 uvm/uvm_amap.c struct vm_amap *amap = entry->aref.ar_amap;
amap 763 uvm/uvm_amap.c for (lcv = 0 ; lcv < amap->am_nused ; lcv++) {
amap 769 uvm/uvm_amap.c slot = amap->am_slots[lcv];
amap 770 uvm/uvm_amap.c anon = amap->am_anon[slot];
amap 835 uvm/uvm_amap.c amap->am_anon[slot] = nanon; /* replace */
amap 901 uvm/uvm_amap.c amap_pp_establish(struct vm_amap *amap)
amap 904 uvm/uvm_amap.c amap->am_ppref = malloc(sizeof(int) * amap->am_maxslot,
amap 910 uvm/uvm_amap.c if (amap->am_ppref == NULL) {
amap 911 uvm/uvm_amap.c amap->am_ppref = PPREF_NONE; /* not using it */
amap 918 uvm/uvm_amap.c memset(amap->am_ppref, 0, sizeof(int) * amap->am_maxslot);
amap 919 uvm/uvm_amap.c pp_setreflen(amap->am_ppref, 0, amap->am_ref, amap->am_nslot);
amap 930 uvm/uvm_amap.c amap_pp_adjref(struct vm_amap *amap, int curslot, vsize_t slotlen, int adjval)
amap 936 uvm/uvm_amap.c ppref = amap->am_ppref;
amap 990 uvm/uvm_amap.c amap_wiperange(amap, lcv, len);
amap 1002 uvm/uvm_amap.c amap_wiperange(struct vm_amap *amap, int slotoff, int slots)
amap 1012 uvm/uvm_amap.c if (slots < amap->am_nused) {
amap 1019 uvm/uvm_amap.c stop = amap->am_nused;
amap 1028 uvm/uvm_amap.c if (amap->am_anon[curslot] == NULL)
amap 1031 uvm/uvm_amap.c curslot = amap->am_slots[lcv];
amap 1038 uvm/uvm_amap.c anon = amap->am_anon[curslot];
amap 1043 uvm/uvm_amap.c amap->am_anon[curslot] = NULL;
amap 1044 uvm/uvm_amap.c ptr = amap->am_bckptr[curslot];
amap 1045 uvm/uvm_amap.c if (ptr != (amap->am_nused - 1)) {
amap 1046 uvm/uvm_amap.c amap->am_slots[ptr] =
amap 1047 uvm/uvm_amap.c amap->am_slots[amap->am_nused - 1];
amap 1048 uvm/uvm_amap.c amap->am_bckptr[amap->am_slots[ptr]] =
amap 1051 uvm/uvm_amap.c amap->am_nused--;
amap 63 uvm/uvm_amap_i.h struct vm_amap *amap = aref->ar_amap;
amap 69 uvm/uvm_amap_i.h if (slot >= amap->am_nslot)
amap 73 uvm/uvm_amap_i.h amap, offset, amap->am_anon[slot], 0);
amap 74 uvm/uvm_amap_i.h return(amap->am_anon[slot]);
amap 91 uvm/uvm_amap_i.h struct vm_amap *amap = aref->ar_amap;
amap 98 uvm/uvm_amap_i.h amap->am_nslot, 0);
amap 100 uvm/uvm_amap_i.h if ((slot + (npages - 1)) >= amap->am_nslot)
amap 103 uvm/uvm_amap_i.h memcpy(anons, &amap->am_anon[slot], npages * sizeof(struct vm_anon *));
amap 125 uvm/uvm_amap_i.h struct vm_amap *amap = aref->ar_amap;
amap 131 uvm/uvm_amap_i.h if (slot >= amap->am_nslot)
amap 136 uvm/uvm_amap_i.h if (amap->am_anon[slot] == NULL)
amap 138 uvm/uvm_amap_i.h if (amap->am_anon[slot]->an_page != NULL &&
amap 139 uvm/uvm_amap_i.h (amap->am_flags & AMAP_SHARED) != 0) {
amap 140 uvm/uvm_amap_i.h pmap_page_protect(amap->am_anon[slot]->an_page,
amap 147 uvm/uvm_amap_i.h if (amap->am_anon[slot] != NULL)
amap 150 uvm/uvm_amap_i.h amap->am_bckptr[slot] = amap->am_nused;
amap 151 uvm/uvm_amap_i.h amap->am_slots[amap->am_nused] = slot;
amap 152 uvm/uvm_amap_i.h amap->am_nused++;
amap 154 uvm/uvm_amap_i.h amap->am_anon[slot] = anon;
amap 157 uvm/uvm_amap_i.h amap, offset, anon, replace);
amap 171 uvm/uvm_amap_i.h struct vm_amap *amap = aref->ar_amap;
amap 177 uvm/uvm_amap_i.h if (slot >= amap->am_nslot)
amap 180 uvm/uvm_amap_i.h if (amap->am_anon[slot] == NULL)
amap 183 uvm/uvm_amap_i.h amap->am_anon[slot] = NULL;
amap 184 uvm/uvm_amap_i.h ptr = amap->am_bckptr[slot];
amap 186 uvm/uvm_amap_i.h if (ptr != (amap->am_nused - 1)) { /* swap to keep slots contig? */
amap 187 uvm/uvm_amap_i.h amap->am_slots[ptr] = amap->am_slots[amap->am_nused - 1];
amap 188 uvm/uvm_amap_i.h amap->am_bckptr[amap->am_slots[ptr]] = ptr; /* back link */
amap 190 uvm/uvm_amap_i.h amap->am_nused--;
amap 191 uvm/uvm_amap_i.h UVMHIST_LOG(maphist, "<- done (amap=%p, slot=%ld)", amap, slot,0, 0);
amap 202 uvm/uvm_amap_i.h amap_ref(amap, offset, len, flags)
amap 203 uvm/uvm_amap_i.h struct vm_amap *amap;
amap 210 uvm/uvm_amap_i.h amap->am_ref++;
amap 212 uvm/uvm_amap_i.h amap->am_flags |= AMAP_SHARED;
amap 214 uvm/uvm_amap_i.h if (amap->am_ppref == NULL && (flags & AMAP_REFALL) == 0 &&
amap 215 uvm/uvm_amap_i.h len != amap->am_nslot)
amap 216 uvm/uvm_amap_i.h amap_pp_establish(amap);
amap 217 uvm/uvm_amap_i.h if (amap->am_ppref && amap->am_ppref != PPREF_NONE) {
amap 219 uvm/uvm_amap_i.h amap_pp_adjref(amap, 0, amap->am_nslot, 1);
amap 221 uvm/uvm_amap_i.h amap_pp_adjref(amap, offset, len, 1);
amap 224 uvm/uvm_amap_i.h UVMHIST_LOG(maphist,"<- done! amap=%p", amap, 0, 0, 0);
amap 237 uvm/uvm_amap_i.h amap_unref(amap, offset, len, all)
amap 238 uvm/uvm_amap_i.h struct vm_amap *amap;
amap 246 uvm/uvm_amap_i.h amap, amap->am_ref, amap->am_nused, 0);
amap 252 uvm/uvm_amap_i.h if (amap->am_ref-- == 1) {
amap 253 uvm/uvm_amap_i.h amap_wipeout(amap); /* drops final ref and frees */
amap 261 uvm/uvm_amap_i.h if (amap->am_ref == 1 && (amap->am_flags & AMAP_SHARED) != 0)
amap 262 uvm/uvm_amap_i.h amap->am_flags &= ~AMAP_SHARED; /* clear shared flag */
amap 264 uvm/uvm_amap_i.h if (amap->am_ppref == NULL && all == 0 && len != amap->am_nslot)
amap 265 uvm/uvm_amap_i.h amap_pp_establish(amap);
amap 266 uvm/uvm_amap_i.h if (amap->am_ppref && amap->am_ppref != PPREF_NONE) {
amap 268 uvm/uvm_amap_i.h amap_pp_adjref(amap, 0, amap->am_nslot, -1);
amap 270 uvm/uvm_amap_i.h amap_pp_adjref(amap, offset, len, -1);
amap 295 uvm/uvm_fault.c uvmfault_anonget(ufi, amap, anon)
amap 297 uvm/uvm_fault.c struct vm_amap *amap;
amap 357 uvm/uvm_fault.c uvmfault_unlockall(ufi, amap, NULL, anon);
amap 365 uvm/uvm_fault.c uvmfault_unlockall(ufi, amap, NULL, NULL);
amap 382 uvm/uvm_fault.c uvmfault_unlockall(ufi, amap, NULL, anon);
amap 393 uvm/uvm_fault.c uvmfault_unlockall(ufi, amap, NULL, anon);
amap 454 uvm/uvm_fault.c uvmfault_unlockall(ufi, amap, NULL,
amap 486 uvm/uvm_fault.c uvmfault_unlockall(ufi, amap, NULL,
amap 523 uvm/uvm_fault.c uvmfault_unlockall(ufi, amap, NULL, anon);
amap 572 uvm/uvm_fault.c struct vm_amap *amap;
amap 677 uvm/uvm_fault.c amap = ufi.entry->aref.ar_amap; /* top layer */
amap 685 uvm/uvm_fault.c if (amap == NULL && uobj == NULL) {
amap 732 uvm/uvm_fault.c amap, uobj, 0);
amap 738 uvm/uvm_fault.c if (amap) {
amap 758 uvm/uvm_fault.c if (amap)
amap 771 uvm/uvm_fault.c if (amap)
amap 803 uvm/uvm_fault.c if (amap == NULL || anons[lcv] == NULL) {
amap 1044 uvm/uvm_fault.c result = uvmfault_anonget(&ufi, amap, anon);
amap 1111 uvm/uvm_fault.c uvmfault_unlockall(&ufi, amap, uobj,
amap 1182 uvm/uvm_fault.c uvmfault_unlockall(&ufi, amap, uobj, oanon);
amap 1245 uvm/uvm_fault.c uvmfault_unlockall(&ufi, amap, uobj, oanon);
amap 1286 uvm/uvm_fault.c uvmfault_unlockall(&ufi, amap, uobj, oanon);
amap 1336 uvm/uvm_fault.c uvmfault_unlockall(&ufi, amap, NULL, NULL);
amap 1387 uvm/uvm_fault.c (locked && amap &&
amap 1391 uvm/uvm_fault.c uvmfault_unlockall(&ufi, amap, NULL, NULL);
amap 1505 uvm/uvm_fault.c uvmfault_unlockall(&ufi, amap, uobj,
amap 1564 uvm/uvm_fault.c if (amap == NULL)
amap 1602 uvm/uvm_fault.c uvmfault_unlockall(&ufi, amap, uobj, NULL);
amap 1632 uvm/uvm_fault.c if ((amap_flags(amap) & AMAP_SHARED) != 0) {
amap 1709 uvm/uvm_fault.c uvmfault_unlockall(&ufi, amap, uobj, NULL);
amap 1753 uvm/uvm_fault.c uvmfault_unlockall(&ufi, amap, uobj, NULL);
amap 82 uvm/uvm_fault_i.h uvmfault_unlockall(ufi, amap, uobj, anon)
amap 84 uvm/uvm_fault_i.h struct vm_amap *amap;
amap 414 uvm/uvm_loan.c struct vm_amap *amap = ufi->entry->aref.ar_amap;
amap 442 uvm/uvm_loan.c uvmfault_unlockall(ufi, amap, uobj, NULL);
amap 451 uvm/uvm_loan.c uvmfault_unlockall(ufi, amap, NULL, NULL);
amap 485 uvm/uvm_loan.c (locked && amap && amap_lookup(&ufi->entry->aref,
amap 489 uvm/uvm_loan.c uvmfault_unlockall(ufi, amap, NULL, NULL);
amap 580 uvm/uvm_loan.c uvmfault_unlockall(ufi, amap, uobj, NULL);
amap 913 uvm/uvm_map.c struct vm_amap *amap = amap_alloc(size, to_add, M_WAITOK);
amap 915 uvm/uvm_map.c new_entry->aref.ar_amap = amap;
amap 2863 uvm/uvm_map.c struct vm_amap *amap;
amap 2902 uvm/uvm_map.c amap = current->aref.ar_amap; /* top layer */
amap 2914 uvm/uvm_map.c if (amap == NULL || (flags & (PGO_DEACTIVATE|PGO_FREE)) == 0)
amap 2994 uvm/uvm_map.c if (amap_refs(amap) > 1)
amap 252 uvm/uvm_mmap.c struct vm_amap *amap;
amap 321 uvm/uvm_mmap.c amap = entry->aref.ar_amap; /* top layer */
amap 329 uvm/uvm_mmap.c if (amap != NULL) {