aobj 227 uvm/uvm_aobj.c uao_find_swhash_elt(aobj, pageidx, create) aobj 228 uvm/uvm_aobj.c struct uvm_aobj *aobj; aobj 236 uvm/uvm_aobj.c swhash = UAO_SWHASH_HASH(aobj, pageidx); /* first hash to get bucket */ aobj 270 uvm/uvm_aobj.c uao_find_swslot(aobj, pageidx) aobj 271 uvm/uvm_aobj.c struct uvm_aobj *aobj; aobj 279 uvm/uvm_aobj.c if (aobj->u_flags & UAO_FLAG_NOSWAP) aobj 286 uvm/uvm_aobj.c if (UAO_USES_SWHASH(aobj)) { aobj 288 uvm/uvm_aobj.c uao_find_swhash_elt(aobj, pageidx, FALSE); aobj 299 uvm/uvm_aobj.c return(aobj->u_swslots[pageidx]); aobj 313 uvm/uvm_aobj.c struct uvm_aobj *aobj = (struct uvm_aobj *)uobj; aobj 317 uvm/uvm_aobj.c aobj, pageidx, slot, 0); aobj 323 uvm/uvm_aobj.c if (aobj->u_flags & UAO_FLAG_NOSWAP) { aobj 337 uvm/uvm_aobj.c if (UAO_USES_SWHASH(aobj)) { aobj 346 uvm/uvm_aobj.c uao_find_swhash_elt(aobj, pageidx, slot ? TRUE : FALSE); aobj 375 uvm/uvm_aobj.c oldslot = aobj->u_swslots[pageidx]; aobj 376 uvm/uvm_aobj.c aobj->u_swslots[pageidx] = slot; aobj 391 uvm/uvm_aobj.c uao_free(aobj) aobj 392 uvm/uvm_aobj.c struct uvm_aobj *aobj; aobj 395 uvm/uvm_aobj.c simple_unlock(&aobj->u_obj.vmobjlock); aobj 397 uvm/uvm_aobj.c if (UAO_USES_SWHASH(aobj)) { aobj 398 uvm/uvm_aobj.c int i, hashbuckets = aobj->u_swhashmask + 1; aobj 407 uvm/uvm_aobj.c for (elt = LIST_FIRST(&aobj->u_swhash[i]); aobj 433 uvm/uvm_aobj.c free(aobj->u_swhash, M_UVMAOBJ); aobj 441 uvm/uvm_aobj.c for (i = 0; i < aobj->u_pages; i++) { aobj 442 uvm/uvm_aobj.c int slot = aobj->u_swslots[i]; aobj 453 uvm/uvm_aobj.c free(aobj->u_swslots, M_UVMAOBJ); aobj 459 uvm/uvm_aobj.c pool_put(&uvm_aobj_pool, aobj); aobj 482 uvm/uvm_aobj.c struct uvm_aobj *aobj; aobj 491 uvm/uvm_aobj.c aobj = &kernel_object_store; aobj 492 uvm/uvm_aobj.c aobj->u_pages = pages; aobj 493 uvm/uvm_aobj.c aobj->u_flags = UAO_FLAG_NOSWAP; /* no swap to start */ aobj 495 uvm/uvm_aobj.c aobj->u_obj.uo_refs = UVM_OBJ_KERN; aobj 498 uvm/uvm_aobj.c aobj = &kernel_object_store; aobj 503 uvm/uvm_aobj.c aobj = pool_get(&uvm_aobj_pool, PR_WAITOK); aobj 504 uvm/uvm_aobj.c aobj->u_pages = pages; aobj 505 uvm/uvm_aobj.c aobj->u_flags = 0; /* normal object */ aobj 506 uvm/uvm_aobj.c aobj->u_obj.uo_refs = 1; /* start with 1 reference */ aobj 520 uvm/uvm_aobj.c if (UAO_USES_SWHASH(aobj)) { aobj 521 uvm/uvm_aobj.c aobj->u_swhash = hashinit(UAO_SWHASH_BUCKETS(aobj), aobj 522 uvm/uvm_aobj.c M_UVMAOBJ, mflags, &aobj->u_swhashmask); aobj 523 uvm/uvm_aobj.c if (aobj->u_swhash == NULL) aobj 526 uvm/uvm_aobj.c aobj->u_swslots = malloc(pages * sizeof(int), aobj 528 uvm/uvm_aobj.c if (aobj->u_swslots == NULL) aobj 530 uvm/uvm_aobj.c memset(aobj->u_swslots, 0, pages * sizeof(int)); aobj 534 uvm/uvm_aobj.c aobj->u_flags &= ~UAO_FLAG_NOSWAP; /* clear noswap */ aobj 535 uvm/uvm_aobj.c return(&aobj->u_obj); aobj 543 uvm/uvm_aobj.c simple_lock_init(&aobj->u_obj.vmobjlock); aobj 544 uvm/uvm_aobj.c aobj->u_obj.pgops = &aobj_pager; aobj 545 uvm/uvm_aobj.c TAILQ_INIT(&aobj->u_obj.memq); aobj 546 uvm/uvm_aobj.c aobj->u_obj.uo_npages = 0; aobj 552 uvm/uvm_aobj.c LIST_INSERT_HEAD(&uao_list, aobj, u_list); aobj 558 uvm/uvm_aobj.c return(&aobj->u_obj); aobj 660 uvm/uvm_aobj.c struct uvm_aobj *aobj = (struct uvm_aobj *)uobj; aobj 685 uvm/uvm_aobj.c LIST_REMOVE(aobj, u_list); aobj 703 uvm/uvm_aobj.c uao_dropswap(&aobj->u_obj, pg->offset >> PAGE_SHIFT); aobj 714 uvm/uvm_aobj.c aobj->u_flags |= UAO_FLAG_KILLME; aobj 715 uvm/uvm_aobj.c simple_unlock(&aobj->u_obj.vmobjlock); aobj 722 uvm/uvm_aobj.c uao_free(aobj); aobj 788 uvm/uvm_aobj.c struct uvm_aobj *aobj = (struct uvm_aobj *) uobj; aobj 800 uvm/uvm_aobj.c stop = aobj->u_pages << PAGE_SHIFT; aobj 805 uvm/uvm_aobj.c if (stop > (aobj->u_pages << PAGE_SHIFT)) { aobj 808 uvm/uvm_aobj.c stop = aobj->u_pages << PAGE_SHIFT; aobj 961 uvm/uvm_aobj.c struct uvm_aobj *aobj = (struct uvm_aobj *)uobj; aobj 969 uvm/uvm_aobj.c aobj, (u_long)offset, flags,0); aobj 1002 uvm/uvm_aobj.c if (ptmp == NULL && uao_find_swslot(aobj, aobj 1161 uvm/uvm_aobj.c swslot = uao_find_swslot(aobj, pageidx); aobj 1200 uvm/uvm_aobj.c swslot = uao_set_swslot(&aobj->u_obj, pageidx, aobj 1264 uvm/uvm_aobj.c struct uvm_aobj *aobj = (struct uvm_aobj *) pg->uobject; aobj 1272 uvm/uvm_aobj.c uao_dropswap(&aobj->u_obj, pg->offset >> PAGE_SHIFT); aobj 1283 uvm/uvm_aobj.c if ((aobj->u_flags & UAO_FLAG_KILLME) == 0) aobj 1285 uvm/uvm_aobj.c KASSERT(aobj->u_obj.uo_refs == 0); aobj 1290 uvm/uvm_aobj.c if (aobj->u_obj.uo_npages != 0) aobj 1293 uvm/uvm_aobj.c KASSERT(TAILQ_EMPTY(&aobj->u_obj.memq)); aobj 1298 uvm/uvm_aobj.c uao_free(aobj); aobj 1334 uvm/uvm_aobj.c struct uvm_aobj *aobj, *nextaobj; aobj 1343 uvm/uvm_aobj.c for (aobj = LIST_FIRST(&uao_list); aobj 1344 uvm/uvm_aobj.c aobj != NULL; aobj 1345 uvm/uvm_aobj.c aobj = nextaobj) { aobj 1354 uvm/uvm_aobj.c if (!simple_lock_try(&aobj->u_obj.vmobjlock)) { aobj 1363 uvm/uvm_aobj.c uao_reference_locked(&aobj->u_obj); aobj 1374 uvm/uvm_aobj.c rv = uao_pagein(aobj, startslot, endslot); aobj 1376 uvm/uvm_aobj.c uao_detach_locked(&aobj->u_obj); aobj 1385 uvm/uvm_aobj.c nextaobj = LIST_NEXT(aobj, u_list); aobj 1386 uvm/uvm_aobj.c uao_detach_locked(&aobj->u_obj); aobj 1404 uvm/uvm_aobj.c uao_pagein(aobj, startslot, endslot) aobj 1405 uvm/uvm_aobj.c struct uvm_aobj *aobj; aobj 1410 uvm/uvm_aobj.c if (UAO_USES_SWHASH(aobj)) { aobj 1415 uvm/uvm_aobj.c for (bucket = aobj->u_swhashmask; bucket >= 0; bucket--) { aobj 1416 uvm/uvm_aobj.c for (elt = LIST_FIRST(&aobj->u_swhash[bucket]); aobj 1438 uvm/uvm_aobj.c rv = uao_pagein_page(aobj, aobj 1450 uvm/uvm_aobj.c for (i = 0; i < aobj->u_pages; i++) { aobj 1451 uvm/uvm_aobj.c int slot = aobj->u_swslots[i]; aobj 1463 uvm/uvm_aobj.c rv = uao_pagein_page(aobj, i); aobj 1480 uvm/uvm_aobj.c uao_pagein_page(aobj, pageidx) aobj 1481 uvm/uvm_aobj.c struct uvm_aobj *aobj; aobj 1490 uvm/uvm_aobj.c rv = uao_get(&aobj->u_obj, pageidx << PAGE_SHIFT, aobj 1497 uvm/uvm_aobj.c simple_lock(&aobj->u_obj.vmobjlock); aobj 1519 uvm/uvm_aobj.c slot = uao_set_swslot(&aobj->u_obj, pageidx, 0);