Home | History | Annotate | Download | only in rockchip

Lines Matching refs:bo

94 	struct rockchip_bo *bo;
105 bo = calloc(1, sizeof(*bo));
106 if (!bo) {
107 fprintf(stderr, "failed to create bo[%s].\n",
112 bo->dev = dev;
120 bo->handle = req.handle;
121 bo->size = size;
122 bo->flags = flags;
124 return bo;
127 free(bo);
135 struct rockchip_bo *bo;
142 bo = calloc(1, sizeof(*bo));
143 if (!bo) {
144 fprintf(stderr, "failed to create bo[%s].\n",
149 bo->dev = dev;
150 bo->handle = handle;
151 bo->size = size;
152 bo->flags = flags;
154 return bo;
160 * @bo: a rockchip buffer object to be destroyed.
162 void rockchip_bo_destroy(struct rockchip_bo *bo)
164 if (!bo)
167 if (bo->vaddr)
168 munmap(bo->vaddr, bo->size);
170 if (bo->handle) {
172 .handle = bo->handle,
175 drmIoctl(bo->dev->fd, DRM_IOCTL_GEM_CLOSE, &req);
178 free(bo);
197 struct rockchip_bo *bo;
202 bo = calloc(1, sizeof(*bo));
203 if (!bo) {
204 fprintf(stderr, "failed to allocate bo[%s].\n",
215 bo->dev = dev;
216 bo->name = name;
217 bo->handle = req.handle;
219 return bo;
222 free(bo);
229 * @bo: a rockchip buffer object including gem handle.
237 int rockchip_bo_get_name(struct rockchip_bo *bo, uint32_t *name)
239 if (!bo->name) {
241 .handle = bo->handle,
245 ret = drmIoctl(bo->dev->fd, DRM_IOCTL_GEM_FLINK, &req);
252 bo->name = req.name;
255 *name = bo->name;
260 uint32_t rockchip_bo_handle(struct rockchip_bo *bo)
262 return bo->handle;
268 * @bo: a rockchip buffer object including a gem object handle to be mmapped
273 void *rockchip_bo_map(struct rockchip_bo *bo)
275 if (!bo->vaddr) {
276 struct rockchip_device *dev = bo->dev;
278 .handle = bo->handle,
289 bo->vaddr = mmap(0, bo->size, PROT_READ | PROT_WRITE,
291 if (bo->vaddr == MAP_FAILED) {
298 return bo->vaddr;