Lines Matching refs:bo
82 struct radeon_bo *bo; in radeon_bo_create() local
110 bo = calloc(1, sizeof(*bo)); in radeon_bo_create()
111 if (!bo) in radeon_bo_create()
126 bo->base.kms = kms; in radeon_bo_create()
127 bo->base.handle = arg.handle; in radeon_bo_create()
128 bo->base.size = size; in radeon_bo_create()
129 bo->base.pitch = pitch; in radeon_bo_create()
130 bo->base.offset = 0; in radeon_bo_create()
131 bo->map_count = 0; in radeon_bo_create()
133 *out = &bo->base; in radeon_bo_create()
138 free(bo); in radeon_bo_create()
143 radeon_bo_get_prop(struct kms_bo *bo, unsigned key, unsigned *out) in radeon_bo_get_prop() argument
154 struct radeon_bo *bo = (struct radeon_bo *)_bo; in radeon_bo_map() local
159 if (bo->base.ptr) { in radeon_bo_map()
160 bo->map_count++; in radeon_bo_map()
161 *out = bo->base.ptr; in radeon_bo_map()
166 arg.handle = bo->base.handle; in radeon_bo_map()
167 arg.offset = bo->base.offset; in radeon_bo_map()
168 arg.size = (uint64_t)bo->base.size; in radeon_bo_map()
170 ret = drmCommandWriteRead(bo->base.kms->fd, DRM_RADEON_GEM_MMAP, in radeon_bo_map()
176 bo->base.kms->fd, arg.addr_ptr); in radeon_bo_map()
180 bo->base.ptr = map; in radeon_bo_map()
181 bo->map_count++; in radeon_bo_map()
182 *out = bo->base.ptr; in radeon_bo_map()
190 struct radeon_bo *bo = (struct radeon_bo *)_bo; in radeon_bo_unmap() local
191 if (--bo->map_count == 0) { in radeon_bo_unmap()
192 drm_munmap(bo->base.ptr, bo->base.size); in radeon_bo_unmap()
193 bo->base.ptr = NULL; in radeon_bo_unmap()
201 struct radeon_bo *bo = (struct radeon_bo *)_bo; in radeon_bo_destroy() local
205 if (bo->base.ptr) { in radeon_bo_destroy()
207 drm_munmap(bo->base.ptr, bo->base.size); in radeon_bo_destroy()
208 bo->base.ptr = NULL; in radeon_bo_destroy()
212 arg.handle = bo->base.handle; in radeon_bo_destroy()
214 ret = drmIoctl(bo->base.kms->fd, DRM_IOCTL_GEM_CLOSE, &arg); in radeon_bo_destroy()
218 free(bo); in radeon_bo_destroy()