Lines Matching refs:bo
43 struct bo struct
57 static struct bo * argument
61 struct bo *bo; in bo_create_dumb() local
64 bo = calloc(1, sizeof(*bo)); in bo_create_dumb()
65 if (bo == NULL) { in bo_create_dumb()
79 free(bo); in bo_create_dumb()
83 bo->fd = fd; in bo_create_dumb()
84 bo->handle = arg.handle; in bo_create_dumb()
85 bo->size = arg.size; in bo_create_dumb()
86 bo->pitch = arg.pitch; in bo_create_dumb()
88 return bo; in bo_create_dumb()
91 static int bo_map(struct bo *bo, void **out) in bo_map() argument
98 arg.handle = bo->handle; in bo_map()
100 ret = drmIoctl(bo->fd, DRM_IOCTL_MODE_MAP_DUMB, &arg); in bo_map()
104 map = drm_mmap(0, bo->size, PROT_READ | PROT_WRITE, MAP_SHARED, in bo_map()
105 bo->fd, arg.offset); in bo_map()
109 bo->ptr = map; in bo_map()
115 static void bo_unmap(struct bo *bo) in bo_unmap() argument
117 if (!bo->ptr) in bo_unmap()
120 drm_munmap(bo->ptr, bo->size); in bo_unmap()
121 bo->ptr = NULL; in bo_unmap()
124 struct bo *
131 struct bo *bo; in bo_create() local
227 bo = bo_create_dumb(fd, width, virtual_height, bpp); in bo_create()
228 if (!bo) in bo_create()
231 ret = bo_map(bo, &virtual); in bo_create()
235 bo_destroy(bo); in bo_create()
248 handles[0] = bo->handle; in bo_create()
249 pitches[0] = bo->pitch; in bo_create()
259 handles[0] = bo->handle; in bo_create()
260 pitches[0] = bo->pitch; in bo_create()
263 handles[1] = bo->handle; in bo_create()
272 handles[0] = bo->handle; in bo_create()
273 pitches[0] = bo->pitch; in bo_create()
276 handles[1] = bo->handle; in bo_create()
279 handles[2] = bo->handle; in bo_create()
328 handles[0] = bo->handle; in bo_create()
329 pitches[0] = bo->pitch; in bo_create()
336 bo_unmap(bo); in bo_create()
338 return bo; in bo_create()
341 void bo_destroy(struct bo *bo) in bo_destroy() argument
347 arg.handle = bo->handle; in bo_destroy()
349 ret = drmIoctl(bo->fd, DRM_IOCTL_MODE_DESTROY_DUMB, &arg); in bo_destroy()
354 free(bo); in bo_destroy()