Lines Matching refs:obj
108 struct drm_gem_object *obj, size_t size) in drm_gem_object_init() argument
113 obj->dev = dev; in drm_gem_object_init()
114 obj->vm_obj = vm_pager_allocate(OBJT_DEFAULT, NULL, size, in drm_gem_object_init()
117 obj->refcount = 1; in drm_gem_object_init()
118 obj->handle_count = 0; in drm_gem_object_init()
119 obj->size = size; in drm_gem_object_init()
131 struct drm_gem_object *obj, size_t size) in drm_gem_private_object_init() argument
135 obj->dev = dev; in drm_gem_private_object_init()
136 obj->vm_obj = NULL; in drm_gem_private_object_init()
138 obj->refcount = 1; in drm_gem_private_object_init()
139 atomic_store_rel_int(&obj->handle_count, 0); in drm_gem_private_object_init()
140 obj->size = size; in drm_gem_private_object_init()
149 struct drm_gem_object *obj; in drm_gem_object_alloc() local
151 obj = malloc(sizeof(*obj), DRM_MEM_DRIVER, M_NOWAIT | M_ZERO); in drm_gem_object_alloc()
152 if (!obj) in drm_gem_object_alloc()
155 if (drm_gem_object_init(dev, obj, size) != 0) in drm_gem_object_alloc()
159 dev->driver->gem_init_object(obj) != 0) { in drm_gem_object_alloc()
162 return obj; in drm_gem_object_alloc()
164 vm_object_deallocate(obj->vm_obj); in drm_gem_object_alloc()
166 free(obj, DRM_MEM_DRIVER); in drm_gem_object_alloc()
173 drm_gem_remove_prime_handles(struct drm_gem_object *obj, struct drm_file *filp) in drm_gem_remove_prime_handles() argument
175 if (obj->import_attach) { in drm_gem_remove_prime_handles()
177 obj->import_attach->dmabuf); in drm_gem_remove_prime_handles()
179 if (obj->export_dma_buf) { in drm_gem_remove_prime_handles()
181 obj->export_dma_buf); in drm_gem_remove_prime_handles()
193 struct drm_gem_object *obj; in drm_gem_handle_delete() local
195 obj = drm_gem_names_remove(&filp->object_names, handle); in drm_gem_handle_delete()
196 if (obj == NULL) { in drm_gem_handle_delete()
199 dev = obj->dev; in drm_gem_handle_delete()
202 drm_gem_remove_prime_handles(obj, filp); in drm_gem_handle_delete()
206 dev->driver->gem_close_object(obj, filp); in drm_gem_handle_delete()
207 drm_gem_object_handle_unreference_unlocked(obj); in drm_gem_handle_delete()
220 struct drm_gem_object *obj, in drm_gem_handle_create() argument
223 struct drm_device *dev = obj->dev; in drm_gem_handle_create()
227 ret = drm_gem_name_create(&file_priv->object_names, obj, handlep); in drm_gem_handle_create()
231 drm_gem_object_handle_reference(obj); in drm_gem_handle_create()
234 ret = dev->driver->gem_open_object(obj, file_priv); in drm_gem_handle_create()
246 drm_gem_free_mmap_offset(struct drm_gem_object *obj) in drm_gem_free_mmap_offset() argument
248 struct drm_device *dev = obj->dev; in drm_gem_free_mmap_offset()
250 struct drm_hash_item *list = &obj->map_list; in drm_gem_free_mmap_offset()
252 if (!obj->on_map) in drm_gem_free_mmap_offset()
257 obj->on_map = false; in drm_gem_free_mmap_offset()
262 drm_gem_create_mmap_offset(struct drm_gem_object *obj) in drm_gem_create_mmap_offset() argument
264 struct drm_device *dev = obj->dev; in drm_gem_create_mmap_offset()
268 if (obj->on_map) in drm_gem_create_mmap_offset()
271 obj->map_list.key = alloc_unr(mm->idxunr); in drm_gem_create_mmap_offset()
272 ret = drm_ht_insert_item(&mm->offset_hash, &obj->map_list); in drm_gem_create_mmap_offset()
275 free_unr(mm->idxunr, obj->map_list.key); in drm_gem_create_mmap_offset()
278 obj->on_map = true; in drm_gem_create_mmap_offset()
289 struct drm_gem_object *obj; in drm_gem_object_lookup() local
291 obj = drm_gem_name_ref(&filp->object_names, handle, in drm_gem_object_lookup()
294 return obj; in drm_gem_object_lookup()
318 struct drm_gem_object *obj; in drm_gem_flink_ioctl() local
324 obj = drm_gem_object_lookup(dev, file_priv, args->handle); in drm_gem_flink_ioctl()
325 if (obj == NULL) in drm_gem_flink_ioctl()
328 ret = drm_gem_name_create(&dev->object_names, obj, &obj->name); in drm_gem_flink_ioctl()
332 drm_gem_object_unreference_unlocked(obj); in drm_gem_flink_ioctl()
335 args->name = obj->name; in drm_gem_flink_ioctl()
344 struct drm_gem_object *obj; in drm_gem_open_ioctl() local
351 obj = drm_gem_name_ref(&dev->object_names, args->name, in drm_gem_open_ioctl()
353 if (!obj) in drm_gem_open_ioctl()
356 ret = drm_gem_handle_create(file_priv, obj, &handle); in drm_gem_open_ioctl()
357 drm_gem_object_unreference_unlocked(obj); in drm_gem_open_ioctl()
362 args->size = obj->size; in drm_gem_open_ioctl()
378 struct drm_gem_object *obj = ptr; in drm_gem_object_release_handle() local
379 struct drm_device *dev = obj->dev; in drm_gem_object_release_handle()
382 drm_gem_remove_prime_handles(obj, file_priv); in drm_gem_object_release_handle()
386 dev->driver->gem_close_object(obj, file_priv); in drm_gem_object_release_handle()
388 drm_gem_object_handle_unreference_unlocked(obj); in drm_gem_object_release_handle()
403 drm_gem_object_release(struct drm_gem_object *obj) in drm_gem_object_release() argument
409 vm_object_deallocate(obj->vm_obj); in drm_gem_object_release()
414 drm_gem_object_free(struct drm_gem_object *obj) in drm_gem_object_free() argument
416 struct drm_device *dev = obj->dev; in drm_gem_object_free()
420 dev->driver->gem_free_object(obj); in drm_gem_object_free()
424 void drm_gem_object_handle_free(struct drm_gem_object *obj) in drm_gem_object_handle_free() argument
426 struct drm_device *dev = obj->dev; in drm_gem_object_handle_free()
429 if (obj->name) { in drm_gem_object_handle_free()
430 obj1 = drm_gem_names_remove(&dev->object_names, obj->name); in drm_gem_object_handle_free()
431 obj->name = 0; in drm_gem_object_handle_free()
439 struct drm_gem_object *obj; in drm_gem_object_from_offset() local
453 obj = __containerof(map_list, struct drm_gem_object, map_list); in drm_gem_object_from_offset()
454 return (obj); in drm_gem_object_from_offset()
487 struct drm_gem_object *obj; in drm_gem_pager_dtr() local
490 obj = handle; in drm_gem_pager_dtr()
491 dev = obj->dev; in drm_gem_pager_dtr()
494 drm_gem_free_mmap_offset(obj); in drm_gem_pager_dtr()
495 drm_gem_object_unreference(obj); in drm_gem_pager_dtr()