Lines Matching defs:uobj
142 struct uvm_object *uobj = ufi->entry->object.uvm_obj;
170 /* locked: map, amap, uobj */
173 } else if (uobj) {
178 uvmfault_unlockall(ufi, aref->ar_amap, uobj);
181 /* locked: if (rv > 0) => map, amap, uobj [o.w. unlocked] */
184 KASSERT(rv > 0 || uobj == NULL ||
185 !rw_write_held(uobj->vmobjlock));
334 * => called with map, amap, uobj locked
511 uvm_loanuobjchunk(struct uvm_object *uobj, voff_t pgoff, int orignpages,
516 rw_enter(uobj->vmobjlock, RW_WRITER);
519 error = (*uobj->pgops->pgo_get)(uobj, pgoff, pgpp, &npages, 0,
526 rw_enter(uobj->vmobjlock, RW_WRITER);
528 KASSERT(pgpp[i]->uobject->vmobjlock == uobj->vmobjlock);
540 rw_exit(uobj->vmobjlock);
548 rw_enter(uobj->vmobjlock, RW_WRITER);
557 * uvm_loanuobjpages: loan pages from a uobj out (O->K)
559 * => uobj shouldn't be locked. (we'll lock it)
563 uvm_loanuobjpages(struct uvm_object *uobj, voff_t pgoff, int npages,
573 error = uvm_loanuobjchunk(uobj, pgoff + (ndone << PAGE_SHIFT),
587 * uvm_loanuobj: loan a page from a uobj out
589 * => called with map, amap, uobj locked
601 struct uvm_object *uobj = ufi->entry->object.uvm_obj;
615 rw_enter(uobj->vmobjlock, RW_WRITER);
616 /* locked: maps(read), amap(if there), uobj */
618 if (uobj->pgops->pgo_get) { /* try locked pgo_get */
621 error = (*uobj->pgops->pgo_get)(uobj,
634 uvmfault_unlockall(ufi, amap, uobj);
645 /* locked: uobj */
647 error = (*uobj->pgops->pgo_get)(uobj,
667 uobj = pg->uobject;
668 rw_enter(uobj->vmobjlock, RW_WRITER);
704 rw_exit(uobj->vmobjlock);
714 KASSERT(uobj->vmobjlock == pg->uobject->vmobjlock);
724 uvmfault_unlockall(ufi, amap, uobj);
727 rw_exit(uobj->vmobjlock);
750 rw_exit(uobj->vmobjlock);
782 rw_exit(uobj->vmobjlock);
798 uvmfault_unlockall(ufi, amap, uobj, NULL);
810 * => called with map, amap, uobj locked
1033 ulz_put(struct uvm_object *uobj, voff_t start, voff_t stop, int flags)
1037 KDASSERT(uobj == &uvm_loanzero_object);
1044 rw_exit(uobj->vmobjlock);
1053 pg = uvm_pagelookup(uobj, 0);
1064 rw_exit(uobj->vmobjlock);
1088 * uvm_loanbreak: break loan on a uobj page
1090 * => called with uobj locked
1099 struct uvm_object *uobj __diagused = uobjpage->uobject;
1101 KASSERT(uobj != NULL);
1102 KASSERT(rw_write_held(uobj->vmobjlock));
1121 /* uobj still locked */
1161 uvm_loanbreak_anon(struct vm_anon *anon, struct uvm_object *uobj)
1167 KASSERT(uobj == NULL || rw_write_held(uobj->vmobjlock));
1186 if (uobj == NULL) {
1199 if (uobj) {
1216 if (uobj) {
1217 rw_exit(uobj->vmobjlock);
1222 if (uobj == NULL) {