Home | History | Annotate | Download | only in libkms

Lines Matching defs:bo

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