Lines Matching refs:obj

109 			struct drm_gem_object *obj, size_t size)  in drm_gem_object_init()  argument
114 obj->dev = dev; in drm_gem_object_init()
115 obj->vm_obj = vm_pager_allocate(OBJT_DEFAULT, NULL, size, in drm_gem_object_init()
118 obj->refcount = 1; in drm_gem_object_init()
119 obj->handle_count = 0; in drm_gem_object_init()
120 obj->size = size; in drm_gem_object_init()
132 struct drm_gem_object *obj, size_t size) in drm_gem_private_object_init() argument
136 obj->dev = dev; in drm_gem_private_object_init()
137 obj->vm_obj = NULL; in drm_gem_private_object_init()
139 obj->refcount = 1; in drm_gem_private_object_init()
140 atomic_store_rel_int(&obj->handle_count, 0); in drm_gem_private_object_init()
141 obj->size = size; in drm_gem_private_object_init()
150 struct drm_gem_object *obj; in drm_gem_object_alloc() local
152 obj = malloc(sizeof(*obj), DRM_MEM_DRIVER, M_NOWAIT | M_ZERO); in drm_gem_object_alloc()
153 if (!obj) in drm_gem_object_alloc()
156 if (drm_gem_object_init(dev, obj, size) != 0) in drm_gem_object_alloc()
160 dev->driver->gem_init_object(obj) != 0) { in drm_gem_object_alloc()
163 return obj; in drm_gem_object_alloc()
165 vm_object_deallocate(obj->vm_obj); in drm_gem_object_alloc()
167 free(obj, DRM_MEM_DRIVER); in drm_gem_object_alloc()
174 drm_gem_remove_prime_handles(struct drm_gem_object *obj, struct drm_file *filp) in drm_gem_remove_prime_handles() argument
176 if (obj->import_attach) { in drm_gem_remove_prime_handles()
178 obj->import_attach->dmabuf); in drm_gem_remove_prime_handles()
180 if (obj->export_dma_buf) { in drm_gem_remove_prime_handles()
182 obj->export_dma_buf); in drm_gem_remove_prime_handles()
194 struct drm_gem_object *obj; in drm_gem_handle_delete() local
196 obj = drm_gem_names_remove(&filp->object_names, handle); in drm_gem_handle_delete()
197 if (obj == NULL) { in drm_gem_handle_delete()
200 dev = obj->dev; in drm_gem_handle_delete()
203 drm_gem_remove_prime_handles(obj, filp); in drm_gem_handle_delete()
207 dev->driver->gem_close_object(obj, filp); in drm_gem_handle_delete()
208 drm_gem_object_handle_unreference_unlocked(obj); in drm_gem_handle_delete()
221 struct drm_gem_object *obj, in drm_gem_handle_create() argument
224 struct drm_device *dev = obj->dev; in drm_gem_handle_create()
228 ret = drm_gem_name_create(&file_priv->object_names, obj, handlep); in drm_gem_handle_create()
232 drm_gem_object_handle_reference(obj); in drm_gem_handle_create()
235 ret = dev->driver->gem_open_object(obj, file_priv); in drm_gem_handle_create()
247 drm_gem_free_mmap_offset(struct drm_gem_object *obj) in drm_gem_free_mmap_offset() argument
249 struct drm_device *dev = obj->dev; in drm_gem_free_mmap_offset()
251 struct drm_hash_item *list = &obj->map_list; in drm_gem_free_mmap_offset()
253 if (!obj->on_map) in drm_gem_free_mmap_offset()
258 obj->on_map = false; in drm_gem_free_mmap_offset()
263 drm_gem_create_mmap_offset(struct drm_gem_object *obj) in drm_gem_create_mmap_offset() argument
265 struct drm_device *dev = obj->dev; in drm_gem_create_mmap_offset()
269 if (obj->on_map) in drm_gem_create_mmap_offset()
272 obj->map_list.key = alloc_unr(mm->idxunr); in drm_gem_create_mmap_offset()
273 ret = drm_ht_insert_item(&mm->offset_hash, &obj->map_list); in drm_gem_create_mmap_offset()
276 free_unr(mm->idxunr, obj->map_list.key); in drm_gem_create_mmap_offset()
279 obj->on_map = true; in drm_gem_create_mmap_offset()
290 struct drm_gem_object *obj; in drm_gem_object_lookup() local
292 obj = drm_gem_name_ref(&filp->object_names, handle, in drm_gem_object_lookup()
295 return obj; in drm_gem_object_lookup()
319 struct drm_gem_object *obj; in drm_gem_flink_ioctl() local
325 obj = drm_gem_object_lookup(dev, file_priv, args->handle); in drm_gem_flink_ioctl()
326 if (obj == NULL) in drm_gem_flink_ioctl()
329 ret = drm_gem_name_create(&dev->object_names, obj, &obj->name); in drm_gem_flink_ioctl()
333 drm_gem_object_unreference_unlocked(obj); in drm_gem_flink_ioctl()
336 args->name = obj->name; in drm_gem_flink_ioctl()
345 struct drm_gem_object *obj; in drm_gem_open_ioctl() local
352 obj = drm_gem_name_ref(&dev->object_names, args->name, in drm_gem_open_ioctl()
354 if (!obj) in drm_gem_open_ioctl()
357 ret = drm_gem_handle_create(file_priv, obj, &handle); in drm_gem_open_ioctl()
358 drm_gem_object_unreference_unlocked(obj); in drm_gem_open_ioctl()
363 args->size = obj->size; in drm_gem_open_ioctl()
379 struct drm_gem_object *obj = ptr; in drm_gem_object_release_handle() local
380 struct drm_device *dev = obj->dev; in drm_gem_object_release_handle()
383 drm_gem_remove_prime_handles(obj, file_priv); in drm_gem_object_release_handle()
387 dev->driver->gem_close_object(obj, file_priv); in drm_gem_object_release_handle()
389 drm_gem_object_handle_unreference_unlocked(obj); in drm_gem_object_release_handle()
404 drm_gem_object_release(struct drm_gem_object *obj) in drm_gem_object_release() argument
410 vm_object_deallocate(obj->vm_obj); in drm_gem_object_release()
415 drm_gem_object_free(struct drm_gem_object *obj) in drm_gem_object_free() argument
417 struct drm_device *dev = obj->dev; in drm_gem_object_free()
421 dev->driver->gem_free_object(obj); in drm_gem_object_free()
425 void drm_gem_object_handle_free(struct drm_gem_object *obj) in drm_gem_object_handle_free() argument
427 struct drm_device *dev = obj->dev; in drm_gem_object_handle_free()
430 if (obj->name) { in drm_gem_object_handle_free()
431 obj1 = drm_gem_names_remove(&dev->object_names, obj->name); in drm_gem_object_handle_free()
432 obj->name = 0; in drm_gem_object_handle_free()
440 struct drm_gem_object *obj; in drm_gem_object_from_offset() local
454 obj = __containerof(map_list, struct drm_gem_object, map_list); in drm_gem_object_from_offset()
455 return (obj); in drm_gem_object_from_offset()
488 struct drm_gem_object *obj; in drm_gem_pager_dtr() local
491 obj = handle; in drm_gem_pager_dtr()
492 dev = obj->dev; in drm_gem_pager_dtr()
495 drm_gem_free_mmap_offset(obj); in drm_gem_pager_dtr()
496 drm_gem_object_unreference(obj); in drm_gem_pager_dtr()