Lines Matching refs:object

69 static void dev_pager_free_page(vm_object_t object, vm_page_t m);
70 static int dev_pager_populate(vm_object_t object, vm_pindex_t pidx,
101 static int old_dev_pager_fault(vm_object_t object, vm_ooffset_t offset,
121 vm_object_t object; in cdev_pager_lookup() local
124 object = vm_pager_object_lookup(&dev_pager_object_list, handle); in cdev_pager_lookup()
126 return (object); in cdev_pager_lookup()
134 vm_object_t object, object1; in cdev_pager_allocate() local
170 object = vm_pager_object_lookup(&dev_pager_object_list, handle); in cdev_pager_allocate()
171 if (object == NULL) { in cdev_pager_allocate()
186 object = vm_pager_object_lookup(&dev_pager_object_list, handle); in cdev_pager_allocate()
187 if (object != NULL) { in cdev_pager_allocate()
191 if (pindex > object->size) in cdev_pager_allocate()
192 object->size = pindex; in cdev_pager_allocate()
193 KASSERT(object->type == tp, in cdev_pager_allocate()
195 object, tp)); in cdev_pager_allocate()
196 KASSERT(object->un_pager.devp.ops == ops, in cdev_pager_allocate()
197 ("Inconsistent devops %p %p", object, ops)); in cdev_pager_allocate()
199 object = object1; in cdev_pager_allocate()
201 object->handle = handle; in cdev_pager_allocate()
202 TAILQ_INSERT_TAIL(&dev_pager_object_list, object, in cdev_pager_allocate()
205 vm_object_set_flag(object, OBJ_POPULATE); in cdev_pager_allocate()
208 if (pindex > object->size) in cdev_pager_allocate()
209 object->size = pindex; in cdev_pager_allocate()
210 KASSERT(object->type == tp, in cdev_pager_allocate()
211 ("Inconsistent device pager type %p %d", object, tp)); in cdev_pager_allocate()
222 return (object); in cdev_pager_allocate()
235 cdev_pager_free_page(vm_object_t object, vm_page_t m) in cdev_pager_free_page() argument
238 VM_OBJECT_ASSERT_WLOCKED(object); in cdev_pager_free_page()
239 if (object->type == OBJT_MGTDEVICE) { in cdev_pager_free_page()
243 } else if (object->type == OBJT_DEVICE) in cdev_pager_free_page()
244 dev_pager_free_page(object, m); in cdev_pager_free_page()
248 dev_pager_free_page(vm_object_t object, vm_page_t m) in dev_pager_free_page() argument
251 VM_OBJECT_ASSERT_WLOCKED(object); in dev_pager_free_page()
252 KASSERT((object->type == OBJT_DEVICE && in dev_pager_free_page()
254 ("Managed device or page obj %p m %p", object, m)); in dev_pager_free_page()
255 TAILQ_REMOVE(&object->un_pager.devp.devp_pglist, m, plinks.q); in dev_pager_free_page()
260 dev_pager_dealloc(vm_object_t object) in dev_pager_dealloc() argument
264 VM_OBJECT_WUNLOCK(object); in dev_pager_dealloc()
265 object->un_pager.devp.ops->cdev_pg_dtor(object->un_pager.devp.dev); in dev_pager_dealloc()
268 TAILQ_REMOVE(&dev_pager_object_list, object, pager_object_list); in dev_pager_dealloc()
270 VM_OBJECT_WLOCK(object); in dev_pager_dealloc()
272 if (object->type == OBJT_DEVICE) { in dev_pager_dealloc()
276 while ((m = TAILQ_FIRST(&object->un_pager.devp.devp_pglist)) in dev_pager_dealloc()
281 dev_pager_free_page(object, m); in dev_pager_dealloc()
284 object->handle = NULL; in dev_pager_dealloc()
285 object->type = OBJT_DEAD; in dev_pager_dealloc()
289 dev_pager_getpages(vm_object_t object, vm_page_t *ma, int count, int *rbehind, in dev_pager_getpages() argument
296 if (object->un_pager.devp.ops->cdev_pg_fault == NULL) in dev_pager_getpages()
298 VM_OBJECT_WLOCK(object); in dev_pager_getpages()
299 error = object->un_pager.devp.ops->cdev_pg_fault(object, in dev_pager_getpages()
302 VM_OBJECT_ASSERT_WLOCKED(object); in dev_pager_getpages()
305 KASSERT((object->type == OBJT_DEVICE && in dev_pager_getpages()
307 (object->type == OBJT_MGTDEVICE && in dev_pager_getpages()
309 ("Wrong page type %p %p", ma[0], object)); in dev_pager_getpages()
310 if (object->type == OBJT_DEVICE) { in dev_pager_getpages()
311 TAILQ_INSERT_TAIL(&object->un_pager.devp.devp_pglist, in dev_pager_getpages()
319 VM_OBJECT_WUNLOCK(object); in dev_pager_getpages()
325 dev_pager_populate(vm_object_t object, vm_pindex_t pidx, int fault_type, in dev_pager_populate() argument
329 VM_OBJECT_ASSERT_WLOCKED(object); in dev_pager_populate()
330 if (object->un_pager.devp.ops->cdev_pg_populate == NULL) in dev_pager_populate()
332 return (object->un_pager.devp.ops->cdev_pg_populate(object, pidx, in dev_pager_populate()
337 old_dev_pager_fault(vm_object_t object, vm_ooffset_t offset, int prot, in old_dev_pager_fault() argument
349 memattr = object->memattr; in old_dev_pager_fault()
351 VM_OBJECT_WUNLOCK(object); in old_dev_pager_fault()
353 dev = object->handle; in old_dev_pager_fault()
356 VM_OBJECT_WLOCK(object); in old_dev_pager_fault()
368 VM_OBJECT_WLOCK(object); in old_dev_pager_fault()
393 VM_OBJECT_WLOCK(object); in old_dev_pager_fault()
401 VM_OBJECT_WLOCK(object); in old_dev_pager_fault()
402 vm_page_replace(page, object, (*mres)->pindex, *mres); in old_dev_pager_fault()
410 dev_pager_putpages(vm_object_t object, vm_page_t *m, int count, int flags, in dev_pager_putpages() argument
418 dev_pager_haspage(vm_object_t object, vm_pindex_t pindex, int *before, in dev_pager_haspage() argument