Lines Matching refs:obj

107 			struct drm_gem_object *obj, size_t size)  in drm_gem_object_init()  argument
112 obj->dev = dev; in drm_gem_object_init()
113 obj->vm_obj = vm_pager_allocate(OBJT_DEFAULT, NULL, size, in drm_gem_object_init()
116 obj->refcount = 1; in drm_gem_object_init()
117 obj->handle_count = 0; in drm_gem_object_init()
118 obj->size = size; in drm_gem_object_init()
130 struct drm_gem_object *obj, size_t size) in drm_gem_private_object_init() argument
134 obj->dev = dev; in drm_gem_private_object_init()
135 obj->vm_obj = NULL; in drm_gem_private_object_init()
137 obj->refcount = 1; in drm_gem_private_object_init()
138 atomic_store_rel_int(&obj->handle_count, 0); in drm_gem_private_object_init()
139 obj->size = size; in drm_gem_private_object_init()
148 struct drm_gem_object *obj; in drm_gem_object_alloc() local
150 obj = malloc(sizeof(*obj), DRM_MEM_DRIVER, M_NOWAIT | M_ZERO); in drm_gem_object_alloc()
151 if (!obj) in drm_gem_object_alloc()
154 if (drm_gem_object_init(dev, obj, size) != 0) in drm_gem_object_alloc()
158 dev->driver->gem_init_object(obj) != 0) { in drm_gem_object_alloc()
161 return obj; in drm_gem_object_alloc()
163 vm_object_deallocate(obj->vm_obj); in drm_gem_object_alloc()
165 free(obj, DRM_MEM_DRIVER); in drm_gem_object_alloc()
172 drm_gem_remove_prime_handles(struct drm_gem_object *obj, struct drm_file *filp) in drm_gem_remove_prime_handles() argument
174 if (obj->import_attach) { in drm_gem_remove_prime_handles()
176 obj->import_attach->dmabuf); in drm_gem_remove_prime_handles()
178 if (obj->export_dma_buf) { in drm_gem_remove_prime_handles()
180 obj->export_dma_buf); in drm_gem_remove_prime_handles()
192 struct drm_gem_object *obj; in drm_gem_handle_delete() local
194 obj = drm_gem_names_remove(&filp->object_names, handle); in drm_gem_handle_delete()
195 if (obj == NULL) { in drm_gem_handle_delete()
198 dev = obj->dev; in drm_gem_handle_delete()
201 drm_gem_remove_prime_handles(obj, filp); in drm_gem_handle_delete()
205 dev->driver->gem_close_object(obj, filp); in drm_gem_handle_delete()
206 drm_gem_object_handle_unreference_unlocked(obj); in drm_gem_handle_delete()
219 struct drm_gem_object *obj, in drm_gem_handle_create() argument
222 struct drm_device *dev = obj->dev; in drm_gem_handle_create()
226 ret = drm_gem_name_create(&file_priv->object_names, obj, handlep); in drm_gem_handle_create()
230 drm_gem_object_handle_reference(obj); in drm_gem_handle_create()
233 ret = dev->driver->gem_open_object(obj, file_priv); in drm_gem_handle_create()
245 drm_gem_free_mmap_offset(struct drm_gem_object *obj) in drm_gem_free_mmap_offset() argument
247 struct drm_device *dev = obj->dev; in drm_gem_free_mmap_offset()
249 struct drm_hash_item *list = &obj->map_list; in drm_gem_free_mmap_offset()
251 if (!obj->on_map) in drm_gem_free_mmap_offset()
256 obj->on_map = false; in drm_gem_free_mmap_offset()
261 drm_gem_create_mmap_offset(struct drm_gem_object *obj) in drm_gem_create_mmap_offset() argument
263 struct drm_device *dev = obj->dev; in drm_gem_create_mmap_offset()
267 if (obj->on_map) in drm_gem_create_mmap_offset()
270 obj->map_list.key = alloc_unr(mm->idxunr); in drm_gem_create_mmap_offset()
271 ret = drm_ht_insert_item(&mm->offset_hash, &obj->map_list); in drm_gem_create_mmap_offset()
274 free_unr(mm->idxunr, obj->map_list.key); in drm_gem_create_mmap_offset()
277 obj->on_map = true; in drm_gem_create_mmap_offset()
288 struct drm_gem_object *obj; in drm_gem_object_lookup() local
290 obj = drm_gem_name_ref(&filp->object_names, handle, in drm_gem_object_lookup()
293 return obj; in drm_gem_object_lookup()
317 struct drm_gem_object *obj; in drm_gem_flink_ioctl() local
323 obj = drm_gem_object_lookup(dev, file_priv, args->handle); in drm_gem_flink_ioctl()
324 if (obj == NULL) in drm_gem_flink_ioctl()
327 ret = drm_gem_name_create(&dev->object_names, obj, &obj->name); in drm_gem_flink_ioctl()
331 drm_gem_object_unreference_unlocked(obj); in drm_gem_flink_ioctl()
334 args->name = obj->name; in drm_gem_flink_ioctl()
343 struct drm_gem_object *obj; in drm_gem_open_ioctl() local
350 obj = drm_gem_name_ref(&dev->object_names, args->name, in drm_gem_open_ioctl()
352 if (!obj) in drm_gem_open_ioctl()
355 ret = drm_gem_handle_create(file_priv, obj, &handle); in drm_gem_open_ioctl()
356 drm_gem_object_unreference_unlocked(obj); in drm_gem_open_ioctl()
361 args->size = obj->size; in drm_gem_open_ioctl()
377 struct drm_gem_object *obj = ptr; in drm_gem_object_release_handle() local
378 struct drm_device *dev = obj->dev; in drm_gem_object_release_handle()
381 drm_gem_remove_prime_handles(obj, file_priv); in drm_gem_object_release_handle()
385 dev->driver->gem_close_object(obj, file_priv); in drm_gem_object_release_handle()
387 drm_gem_object_handle_unreference_unlocked(obj); in drm_gem_object_release_handle()
402 drm_gem_object_release(struct drm_gem_object *obj) in drm_gem_object_release() argument
408 vm_object_deallocate(obj->vm_obj); in drm_gem_object_release()
413 drm_gem_object_free(struct drm_gem_object *obj) in drm_gem_object_free() argument
415 struct drm_device *dev = obj->dev; in drm_gem_object_free()
419 dev->driver->gem_free_object(obj); in drm_gem_object_free()
423 void drm_gem_object_handle_free(struct drm_gem_object *obj) in drm_gem_object_handle_free() argument
425 struct drm_device *dev = obj->dev; in drm_gem_object_handle_free()
428 if (obj->name) { in drm_gem_object_handle_free()
429 obj1 = drm_gem_names_remove(&dev->object_names, obj->name); in drm_gem_object_handle_free()
430 obj->name = 0; in drm_gem_object_handle_free()
438 struct drm_gem_object *obj; in drm_gem_object_from_offset() local
452 obj = __containerof(map_list, struct drm_gem_object, map_list); in drm_gem_object_from_offset()
453 return (obj); in drm_gem_object_from_offset()
486 struct drm_gem_object *obj; in drm_gem_pager_dtr() local
489 obj = handle; in drm_gem_pager_dtr()
490 dev = obj->dev; in drm_gem_pager_dtr()
493 drm_gem_free_mmap_offset(obj); in drm_gem_pager_dtr()
494 drm_gem_object_unreference(obj); in drm_gem_pager_dtr()