Lines Matching refs:shim_fd

114 static struct shim_fd *
117 struct shim_fd *shim_fd = calloc(1, sizeof(*shim_fd));
119 shim_fd->fd = fd;
120 p_atomic_set(&shim_fd->refcount, 1);
121 mtx_init(&shim_fd->handle_lock, mtx_plain);
122 shim_fd->handles = _mesa_hash_table_create(NULL,
126 return shim_fd;
133 void drm_shim_fd_register(int fd, struct shim_fd *shim_fd)
135 if (!shim_fd)
136 shim_fd = drm_shim_file_create(fd);
138 p_atomic_inc(&shim_fd->refcount);
140 _mesa_hash_table_insert(shim_device.fd_map, (void *)(uintptr_t)(fd + 1), shim_fd);
154 struct shim_fd *shim_fd = entry->data;
157 if (!p_atomic_dec_zero(&shim_fd->refcount))
160 _mesa_hash_table_destroy(shim_fd->handles, handle_delete_fxn);
161 free(shim_fd);
164 struct shim_fd *
237 struct shim_fd *shim_fd = drm_shim_fd_lookup(fd);
243 mtx_lock(&shim_fd->handle_lock);
245 _mesa_hash_table_search(shim_fd->handles, (void *)(uintptr_t)c->handle);
247 mtx_unlock(&shim_fd->handle_lock);
252 _mesa_hash_table_remove(shim_fd->handles, entry);
254 mtx_unlock(&shim_fd->handle_lock);
340 drm_shim_bo_lookup(struct shim_fd *shim_fd, int handle)
345 mtx_lock(&shim_fd->handle_lock);
347 _mesa_hash_table_search(shim_fd->handles, (void *)(uintptr_t)handle);
349 mtx_unlock(&shim_fd->handle_lock);
379 drm_shim_bo_get_handle(struct shim_fd *shim_fd, struct shim_bo *bo)
384 mtx_lock(&shim_fd->handle_lock);
387 if (!_mesa_hash_table_search(shim_fd->handles, key)) {
389 _mesa_hash_table_insert(shim_fd->handles, key, bo);
390 mtx_unlock(&shim_fd->handle_lock);
394 mtx_unlock(&shim_fd->handle_lock);
402 drm_shim_bo_get_mmap_offset(struct shim_fd *shim_fd, struct shim_bo *bo)
416 drm_shim_mmap(struct shim_fd *shim_fd, size_t length, int prot, int flags,