Lines Matching refs:size
32 uint64_t size;
43 uint64_t start, uint64_t size)
46 util_vma_heap_free(heap, start, size);
63 assert(hole->size > 0);
69 assert(hole->size + hole->offset == 0 ||
70 hole->size + hole->offset > hole->offset);
74 * hole->size + hole->offset == prev_offset, then we failed to join
77 assert(hole->size + hole->offset > hole->offset &&
78 hole->size + hole->offset < prev_offset);
89 uint64_t size, uint64_t alignment)
91 /* The caller is expected to reject zero-size allocations */
92 assert(size > 0);
98 if (size > hole->size)
102 * size can be without going over the top of the hole.
105 * hole->size + hole->offset can only overflow to 0 and size > 0.
107 uint64_t offset = (hole->size - size) + hole->offset;
117 if (offset == hole->offset && size == hole->size) {
125 assert(offset - hole->offset <= hole->size - size);
126 uint64_t waste = (hole->size - size) - (offset - hole->offset);
129 hole->size -= size;
136 hole->offset += size;
137 hole->size -= size;
146 high_hole->offset = offset + size;
147 high_hole->size = waste;
152 hole->size = offset - hole->offset;
170 uint64_t offset, uint64_t size)
177 /* Freeing something with a size of 0 is also not valid. */
178 assert(size > 0);
180 /* It's possible for offset + size to wrap around if we touch the top of
183 assert(offset + size == 0 || offset + size > offset);
198 assert(offset + size <= high_hole->offset);
199 bool high_adjacent = high_hole && offset + size == high_hole->offset;
202 assert(low_hole->offset + low_hole->size > low_hole->offset);
203 assert(low_hole->offset + low_hole->size <= offset);
205 bool low_adjacent = low_hole && low_hole->offset + low_hole->size == offset;
209 low_hole->size += size + high_hole->size;
214 low_hole->size += size;
218 high_hole->size += size;
224 hole->size = size;