Lines Matching defs:sa_bo

51 static void radeon_sa_bo_remove_locked(struct radeon_sa_bo *sa_bo);
84 struct radeon_sa_bo *sa_bo, *tmp;
93 list_for_each_entry_safe(sa_bo, tmp, &sa_manager->olist, olist) {
94 radeon_sa_bo_remove_locked(sa_bo);
148 static void radeon_sa_bo_remove_locked(struct radeon_sa_bo *sa_bo)
150 struct radeon_sa_manager *sa_manager = sa_bo->manager;
151 if (sa_manager->hole == &sa_bo->olist) {
152 sa_manager->hole = sa_bo->olist.prev;
154 list_del_init(&sa_bo->olist);
155 list_del_init(&sa_bo->flist);
156 radeon_fence_unref(&sa_bo->fence);
157 free(sa_bo, DRM_MEM_DRIVER);
162 struct radeon_sa_bo *sa_bo, *tmp;
167 sa_bo = list_entry(sa_manager->hole->next, struct radeon_sa_bo, olist);
168 list_for_each_entry_safe_from(sa_bo, tmp, &sa_manager->olist, olist) {
169 if (sa_bo->fence == NULL || !radeon_fence_signaled(sa_bo->fence)) {
172 radeon_sa_bo_remove_locked(sa_bo);
197 struct radeon_sa_bo *sa_bo,
209 sa_bo->manager = sa_manager;
210 sa_bo->soffset = soffset;
211 sa_bo->eoffset = soffset + size;
212 list_add(&sa_bo->olist, sa_manager->hole);
213 INIT_LIST_HEAD(&sa_bo->flist);
214 sa_manager->hole = &sa_bo->olist;
270 /* go over all fence list and try to find the closest sa_bo
274 struct radeon_sa_bo *sa_bo;
280 sa_bo = list_first_entry(&sa_manager->flist[i],
283 if (!radeon_fence_signaled(sa_bo->fence)) {
284 fences[i] = sa_bo->fence;
293 tmp = sa_bo->soffset;
302 best_bo = sa_bo;
320 struct radeon_sa_bo **sa_bo,
330 *sa_bo = malloc(sizeof(struct radeon_sa_bo), DRM_MEM_DRIVER, M_NOWAIT);
331 if ((*sa_bo) == NULL) {
334 (*sa_bo)->manager = sa_manager;
335 (*sa_bo)->fence = NULL;
336 INIT_LIST_HEAD(&(*sa_bo)->olist);
337 INIT_LIST_HEAD(&(*sa_bo)->flist);
349 if (radeon_sa_bo_try_alloc(sa_manager, *sa_bo,
379 free(*sa_bo, DRM_MEM_DRIVER);
380 *sa_bo = NULL;
384 void radeon_sa_bo_free(struct radeon_device *rdev, struct radeon_sa_bo **sa_bo,
389 if (sa_bo == NULL || *sa_bo == NULL) {
393 sa_manager = (*sa_bo)->manager;
396 (*sa_bo)->fence = radeon_fence_ref(fence);
397 list_add_tail(&(*sa_bo)->flist,
400 radeon_sa_bo_remove_locked(*sa_bo);
404 *sa_bo = NULL;