Lines Matching refs:uobj
248 uao_find_swslot(struct uvm_object *uobj, int pageidx)
250 struct uvm_aobj *aobj = (struct uvm_aobj *)uobj;
253 KASSERT(UVM_OBJ_IS_AOBJ(uobj));
288 uao_set_swslot(struct uvm_object *uobj, int pageidx, int slot)
290 struct uvm_aobj *aobj = (struct uvm_aobj *)uobj;
297 KASSERT(rw_write_held(uobj->vmobjlock) || uobj->uo_refs == 0);
298 KASSERT(UVM_OBJ_IS_AOBJ(uobj));
369 struct uvm_object *uobj = &aobj->u_obj;
371 KASSERT(UVM_OBJ_IS_AOBJ(uobj));
372 KASSERT(rw_write_held(uobj->vmobjlock));
373 uao_dropswap_range(uobj, 0, 0);
374 rw_exit(uobj->vmobjlock);
398 uvm_obj_destroy(uobj, true);
521 uao_set_pgfl(struct uvm_object *uobj, int freelist)
523 struct uvm_aobj *aobj = (struct uvm_aobj *)uobj;
537 uao_pagealloc(struct uvm_object *uobj, voff_t offset, int flags)
539 struct uvm_aobj *aobj = (struct uvm_aobj *)uobj;
542 return uvm_pagealloc(uobj, offset, NULL, flags);
544 return uvm_pagealloc_strat(uobj, offset, NULL, flags,
572 uao_reference(struct uvm_object *uobj)
575 if (UVM_OBJ_IS_KERN_OBJECT(uobj)) {
578 atomic_inc_uint(&uobj->uo_refs);
585 uao_detach(struct uvm_object *uobj)
587 struct uvm_aobj *aobj = (struct uvm_aobj *)uobj;
597 if (UVM_OBJ_IS_KERN_OBJECT(uobj))
604 KASSERT(uobj->uo_refs > 0);
605 UVMHIST_LOG(maphist," (uobj=%#jx) ref=%jd",
606 (uintptr_t)uobj, uobj->uo_refs, 0, 0);
608 if (atomic_dec_uint_nv(&uobj->uo_refs) > 0) {
628 uvm_page_array_init(&a, uobj, 0);
629 rw_enter(uobj->vmobjlock, RW_WRITER);
634 uvm_pagewait(pg, uobj->vmobjlock, "uao_det");
636 rw_enter(uobj->vmobjlock, RW_WRITER);
670 uao_put(struct uvm_object *uobj, voff_t start, voff_t stop, int flags)
672 struct uvm_aobj *aobj = (struct uvm_aobj *)uobj;
678 KASSERT(UVM_OBJ_IS_AOBJ(uobj));
679 KASSERT(rw_write_held(uobj->vmobjlock));
709 rw_exit(uobj->vmobjlock);
713 /* locked: uobj */
714 uvm_page_array_init(&a, uobj, 0);
726 uvm_pagewait(pg, uobj->vmobjlock, "uao_put");
728 rw_enter(uobj->vmobjlock, RW_WRITER);
758 if (uobj->uo_refs > 1)
773 uao_dropswap(uobj, pg->offset >> PAGE_SHIFT);
781 rw_exit(uobj->vmobjlock);
805 uao_get(struct uvm_object *uobj, voff_t offset, struct vm_page **pps,
816 (uintptr_t)uobj, offset, flags,0);
823 KASSERT(UVM_OBJ_IS_AOBJ(uobj));
824 KASSERT(rw_lock_held(uobj->vmobjlock));
825 KASSERT(rw_write_held(uobj->vmobjlock) ||
846 uvm_page_array_init(&a, uobj, 0);
900 uvm_page_array_init(&a, uobj, 0);
923 uvm_pagewait(ptmp, uobj->vmobjlock, "uao_get");
924 rw_enter(uobj->vmobjlock, RW_WRITER);
960 swslot = uao_find_swslot(uobj, pageidx);
961 ptmp = uao_pagealloc(uobj, current_offset,
966 rw_exit(uobj->vmobjlock);
969 rw_enter(uobj->vmobjlock, RW_WRITER);
993 rw_exit(uobj->vmobjlock);
995 rw_enter(uobj->vmobjlock, RW_WRITER);
1012 swslot = uao_set_swslot(uobj, pageidx,
1019 rw_exit(uobj->vmobjlock);
1070 rw_exit(uobj->vmobjlock);
1084 uao_dropswap(struct uvm_object *uobj, int pageidx)
1088 KASSERT(UVM_OBJ_IS_AOBJ(uobj));
1090 slot = uao_set_swslot(uobj, pageidx, 0);
1244 struct uvm_object *uobj = &aobj->u_obj;
1251 KASSERT(rw_write_held(uobj->vmobjlock));
1252 rv = uao_get(uobj, (voff_t)pageidx << PAGE_SHIFT, &pg, &npages,
1259 rw_enter(uobj->vmobjlock, RW_WRITER);
1308 uao_dropswap_range(struct uvm_object *uobj, voff_t start, voff_t end)
1310 struct uvm_aobj *aobj = (struct uvm_aobj *)uobj;
1313 KASSERT(UVM_OBJ_IS_AOBJ(uobj));
1314 KASSERT(rw_write_held(uobj->vmobjlock));