Lines Matching defs:hole

64 	struct amdgpu_bo_va_hole *hole, *tmp;
65 LIST_FOR_EACH_ENTRY_SAFE(hole, tmp, &mgr->va_holes, list) {
66 list_del(&hole->list);
67 free(hole);
73 amdgpu_vamgr_subtract_hole(struct amdgpu_bo_va_hole *hole, uint64_t start_va,
76 if (start_va > hole->offset && end_va - hole->offset < hole->size) {
81 n->size = start_va - hole->offset;
82 n->offset = hole->offset;
83 list_add(&n->list, &hole->list);
85 hole->size -= (end_va - hole->offset);
86 hole->offset = end_va;
87 } else if (start_va > hole->offset) {
88 hole->size = start_va - hole->offset;
89 } else if (end_va - hole->offset < hole->size) {
90 hole->size -= (end_va - hole->offset);
91 hole->offset = end_va;
93 list_del(&hole->list);
94 free(hole);
105 struct amdgpu_bo_va_hole *hole, *n;
118 LIST_FOR_EACH_ENTRY_SAFE_REV(hole, n, &mgr->va_holes, list) {
120 if (hole->offset > base_required ||
121 (hole->offset + hole->size) < (base_required + size))
125 uint64_t waste = hole->offset % alignment;
127 offset = hole->offset + waste;
128 if (offset >= (hole->offset + hole->size) ||
129 size > (hole->offset + hole->size) - offset) {
133 ret = amdgpu_vamgr_subtract_hole(hole, offset, offset + size);
139 LIST_FOR_EACH_ENTRY_SAFE(hole, n, &mgr->va_holes, list) {
141 if (hole->offset > base_required ||
142 (hole->offset + hole->size) < (base_required + size))
146 if (size > hole->size)
149 offset = hole->offset + hole->size - size;
151 if (offset < hole->offset) {
156 ret = amdgpu_vamgr_subtract_hole(hole, offset, offset + size);
170 struct amdgpu_bo_va_hole *hole, *next;
178 hole = container_of(&mgr->va_holes, hole, list);
182 hole = next;
185 if (&hole->list != &mgr->va_holes) {
186 /* Grow upper hole if it's adjacent */
187 if (hole->offset == (va + size)) {
188 hole->offset = va;
189 hole->size += size;
190 /* Merge lower hole if it's adjacent */
191 if (next != hole &&
194 next->size += hole->size;
195 list_del(&hole->list);
196 free(hole);
202 /* Grow lower hole if it's adjacent */
203 if (next != hole && &next->list != &mgr->va_holes &&
216 list_add(&next->list, &hole->list);