Lines Matching refs:uobj

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