Lines Matching refs:shim_device
58 struct shim_device shim_device;
81 shim_device.fd_map = _mesa_hash_table_create(NULL,
85 shim_device.offset_map = _mesa_hash_table_u64_create(NULL);
87 mtx_init(&shim_device.mem_lock, mtx_plain);
89 shim_device.mem_fd = memfd_create("shim mem", MFD_CLOEXEC);
90 assert(shim_device.mem_fd != -1);
92 ASSERTED int ret = ftruncate(shim_device.mem_fd, SHIM_MEM_SIZE);
108 util_vma_heap_init(&shim_device.mem_heap, shim_page_size,
140 _mesa_hash_table_insert(shim_device.fd_map, (void *)(uintptr_t)(fd + 1), shim_fd);
151 _mesa_hash_table_search(shim_device.fd_map, (void *)(uintptr_t)(fd + 1));
155 _mesa_hash_table_remove(shim_device.fd_map, entry);
171 _mesa_hash_table_search(shim_device.fd_map, (void *)(uintptr_t)(fd + 1));
186 args->version_major = shim_device.version_major;
187 args->version_minor = shim_device.version_minor;
188 args->version_patchlevel = shim_device.version_patchlevel;
191 strncpy(args->name, shim_device.driver_name, args->name_len);
196 args->name_len = strlen(shim_device.driver_name);
208 if (gu->unique && shim_device.unique)
209 strncpy(gu->unique, shim_device.unique, gu->unique_len);
210 gu->unique_len = shim_device.unique ? strlen(shim_device.unique) : 0;
300 if (driver_nr < shim_device.driver_ioctl_count &&
301 shim_device.driver_ioctls[driver_nr]) {
302 return shim_device.driver_ioctls[driver_nr](fd, request, arg);
327 mtx_lock(&shim_device.mem_lock);
328 bo->mem_addr = util_vma_heap_alloc(&shim_device.mem_heap, size, shim_page_size);
329 mtx_unlock(&shim_device.mem_lock);
369 if (shim_device.driver_bo_free)
370 shim_device.driver_bo_free(bo);
372 mtx_lock(&shim_device.mem_lock);
373 util_vma_heap_free(&shim_device.mem_heap, bo->mem_addr, bo->size);
374 mtx_unlock(&shim_device.mem_lock);
404 mtx_lock(&shim_device.mem_lock);
405 _mesa_hash_table_u64_insert(shim_device.offset_map, bo->mem_addr, bo);
406 mtx_unlock(&shim_device.mem_lock);
419 mtx_lock(&shim_device.mem_lock);
420 struct shim_bo *bo = _mesa_hash_table_u64_search(shim_device.offset_map, offset);
421 mtx_unlock(&shim_device.mem_lock);
432 return mmap(NULL, length, prot, flags, shim_device.mem_fd, bo->mem_addr);