Lines Matching refs:obj

106 			struct drm_gem_object *obj, size_t size)  in drm_gem_object_init()  argument
111 obj->dev = dev; in drm_gem_object_init()
112 obj->vm_obj = vm_pager_allocate(OBJT_SWAP, NULL, size, in drm_gem_object_init()
115 obj->refcount = 1; in drm_gem_object_init()
116 obj->handle_count = 0; in drm_gem_object_init()
117 obj->size = size; in drm_gem_object_init()
129 struct drm_gem_object *obj, size_t size) in drm_gem_private_object_init() argument
133 obj->dev = dev; in drm_gem_private_object_init()
134 obj->vm_obj = NULL; in drm_gem_private_object_init()
136 obj->refcount = 1; in drm_gem_private_object_init()
137 atomic_store_rel_int(&obj->handle_count, 0); in drm_gem_private_object_init()
138 obj->size = size; in drm_gem_private_object_init()
147 struct drm_gem_object *obj; in drm_gem_object_alloc() local
149 obj = malloc(sizeof(*obj), DRM_MEM_DRIVER, M_NOWAIT | M_ZERO); in drm_gem_object_alloc()
150 if (!obj) in drm_gem_object_alloc()
153 if (drm_gem_object_init(dev, obj, size) != 0) in drm_gem_object_alloc()
157 dev->driver->gem_init_object(obj) != 0) { in drm_gem_object_alloc()
160 return obj; in drm_gem_object_alloc()
162 vm_object_deallocate(obj->vm_obj); in drm_gem_object_alloc()
164 free(obj, DRM_MEM_DRIVER); in drm_gem_object_alloc()
171 drm_gem_remove_prime_handles(struct drm_gem_object *obj, struct drm_file *filp) in drm_gem_remove_prime_handles() argument
173 if (obj->import_attach) { in drm_gem_remove_prime_handles()
175 obj->import_attach->dmabuf); in drm_gem_remove_prime_handles()
177 if (obj->export_dma_buf) { in drm_gem_remove_prime_handles()
179 obj->export_dma_buf); in drm_gem_remove_prime_handles()
191 struct drm_gem_object *obj; in drm_gem_handle_delete() local
193 obj = drm_gem_names_remove(&filp->object_names, handle); in drm_gem_handle_delete()
194 if (obj == NULL) { in drm_gem_handle_delete()
197 dev = obj->dev; in drm_gem_handle_delete()
200 drm_gem_remove_prime_handles(obj, filp); in drm_gem_handle_delete()
204 dev->driver->gem_close_object(obj, filp); in drm_gem_handle_delete()
205 drm_gem_object_handle_unreference_unlocked(obj); in drm_gem_handle_delete()
218 struct drm_gem_object *obj, in drm_gem_handle_create() argument
221 struct drm_device *dev = obj->dev; in drm_gem_handle_create()
225 ret = drm_gem_name_create(&file_priv->object_names, obj, handlep); in drm_gem_handle_create()
229 drm_gem_object_handle_reference(obj); in drm_gem_handle_create()
232 ret = dev->driver->gem_open_object(obj, file_priv); in drm_gem_handle_create()
244 drm_gem_free_mmap_offset(struct drm_gem_object *obj) in drm_gem_free_mmap_offset() argument
246 struct drm_device *dev = obj->dev; in drm_gem_free_mmap_offset()
248 struct drm_hash_item *list = &obj->map_list; in drm_gem_free_mmap_offset()
250 if (!obj->on_map) in drm_gem_free_mmap_offset()
255 obj->on_map = false; in drm_gem_free_mmap_offset()
260 drm_gem_create_mmap_offset(struct drm_gem_object *obj) in drm_gem_create_mmap_offset() argument
262 struct drm_device *dev = obj->dev; in drm_gem_create_mmap_offset()
266 if (obj->on_map) in drm_gem_create_mmap_offset()
269 obj->map_list.key = alloc_unr(mm->idxunr); in drm_gem_create_mmap_offset()
270 ret = drm_ht_insert_item(&mm->offset_hash, &obj->map_list); in drm_gem_create_mmap_offset()
273 free_unr(mm->idxunr, obj->map_list.key); in drm_gem_create_mmap_offset()
276 obj->on_map = true; in drm_gem_create_mmap_offset()
287 struct drm_gem_object *obj; in drm_gem_object_lookup() local
289 obj = drm_gem_name_ref(&filp->object_names, handle, in drm_gem_object_lookup()
292 return obj; in drm_gem_object_lookup()
316 struct drm_gem_object *obj; in drm_gem_flink_ioctl() local
322 obj = drm_gem_object_lookup(dev, file_priv, args->handle); in drm_gem_flink_ioctl()
323 if (obj == NULL) in drm_gem_flink_ioctl()
326 ret = drm_gem_name_create(&dev->object_names, obj, &obj->name); in drm_gem_flink_ioctl()
330 drm_gem_object_unreference_unlocked(obj); in drm_gem_flink_ioctl()
333 args->name = obj->name; in drm_gem_flink_ioctl()
342 struct drm_gem_object *obj; in drm_gem_open_ioctl() local
349 obj = drm_gem_name_ref(&dev->object_names, args->name, in drm_gem_open_ioctl()
351 if (!obj) in drm_gem_open_ioctl()
354 ret = drm_gem_handle_create(file_priv, obj, &handle); in drm_gem_open_ioctl()
355 drm_gem_object_unreference_unlocked(obj); in drm_gem_open_ioctl()
360 args->size = obj->size; in drm_gem_open_ioctl()
376 struct drm_gem_object *obj = ptr; in drm_gem_object_release_handle() local
377 struct drm_device *dev = obj->dev; in drm_gem_object_release_handle()
380 drm_gem_remove_prime_handles(obj, file_priv); in drm_gem_object_release_handle()
384 dev->driver->gem_close_object(obj, file_priv); in drm_gem_object_release_handle()
386 drm_gem_object_handle_unreference_unlocked(obj); in drm_gem_object_release_handle()
401 drm_gem_object_release(struct drm_gem_object *obj) in drm_gem_object_release() argument
407 vm_object_deallocate(obj->vm_obj); in drm_gem_object_release()
412 drm_gem_object_free(struct drm_gem_object *obj) in drm_gem_object_free() argument
414 struct drm_device *dev = obj->dev; in drm_gem_object_free()
418 dev->driver->gem_free_object(obj); in drm_gem_object_free()
422 void drm_gem_object_handle_free(struct drm_gem_object *obj) in drm_gem_object_handle_free() argument
424 struct drm_device *dev = obj->dev; in drm_gem_object_handle_free()
427 if (obj->name) { in drm_gem_object_handle_free()
428 obj1 = drm_gem_names_remove(&dev->object_names, obj->name); in drm_gem_object_handle_free()
429 obj->name = 0; in drm_gem_object_handle_free()
437 struct drm_gem_object *obj; in drm_gem_object_from_offset() local
451 obj = __containerof(map_list, struct drm_gem_object, map_list); in drm_gem_object_from_offset()
452 return (obj); in drm_gem_object_from_offset()
485 struct drm_gem_object *obj; in drm_gem_pager_dtr() local
488 obj = handle; in drm_gem_pager_dtr()
489 dev = obj->dev; in drm_gem_pager_dtr()
492 drm_gem_free_mmap_offset(obj); in drm_gem_pager_dtr()
493 drm_gem_object_unreference(obj); in drm_gem_pager_dtr()