Lines Matching refs:bo
64 struct exynos_bo *bo; in exynos_bo_create() local
78 bo = calloc(1, sizeof(*bo)); in exynos_bo_create()
79 if (!bo) in exynos_bo_create()
100 bo->base.kms = kms; in exynos_bo_create()
101 bo->base.handle = arg.handle; in exynos_bo_create()
102 bo->base.size = size; in exynos_bo_create()
103 bo->base.pitch = pitch; in exynos_bo_create()
105 *out = &bo->base; in exynos_bo_create()
110 free(bo); in exynos_bo_create()
115 exynos_bo_get_prop(struct kms_bo *bo, unsigned key, unsigned *out) in exynos_bo_get_prop() argument
126 struct exynos_bo *bo = (struct exynos_bo *)_bo; in exynos_bo_map() local
131 if (bo->base.ptr) { in exynos_bo_map()
132 bo->map_count++; in exynos_bo_map()
133 *out = bo->base.ptr; in exynos_bo_map()
138 arg.handle = bo->base.handle; in exynos_bo_map()
140 ret = drmCommandWriteRead(bo->base.kms->fd, DRM_EXYNOS_GEM_MAP_OFFSET, &arg, sizeof(arg)); in exynos_bo_map()
144 map = mmap(0, bo->base.size, PROT_READ | PROT_WRITE, MAP_SHARED, bo->base.kms->fd, arg.offset); in exynos_bo_map()
148 bo->base.ptr = map; in exynos_bo_map()
149 bo->map_count++; in exynos_bo_map()
150 *out = bo->base.ptr; in exynos_bo_map()
158 struct exynos_bo *bo = (struct exynos_bo *)_bo; in exynos_bo_unmap() local
159 bo->map_count--; in exynos_bo_unmap()
166 struct exynos_bo *bo = (struct exynos_bo *)_bo; in exynos_bo_destroy() local
170 if (bo->base.ptr) { in exynos_bo_destroy()
172 munmap(bo->base.ptr, bo->base.size); in exynos_bo_destroy()
173 bo->base.ptr = NULL; in exynos_bo_destroy()
177 arg.handle = bo->base.handle; in exynos_bo_destroy()
179 ret = drmIoctl(bo->base.kms->fd, DRM_IOCTL_GEM_CLOSE, &arg); in exynos_bo_destroy()
183 free(bo); in exynos_bo_destroy()