Lines Matching defs:chunk

127 	free_chunk *chunk = (free_chunk *)sFreeChunks, *smaller = NULL;
128 for (; chunk != NULL; chunk = chunk->next) {
129 if (chunk->size < newChunk->size)
130 smaller = chunk;
163 // find chunk in free list
164 free_chunk *chunk = sFreeChunks, *last = NULL;
165 for (; chunk != NULL; chunk = chunk->next) {
166 CTRACE((" chunk %p (%ld)\n", chunk, chunk->size));
168 if (chunk->size < (size_t)size) {
169 last = chunk;
173 // this chunk is large enough to satisfy the request
176 "found free chunk to hold %ld bytes\n", find_thread(NULL), size));
178 void *address = (void *)chunk;
180 if (chunk->size > (size_t)size + sizeof(free_chunk)) {
181 // divide this chunk into smaller bits
182 size_t newSize = chunk->size - size;
183 free_chunk *next = chunk->next;
185 chunk = (free_chunk *)((addr_t)chunk + size);
186 chunk->next = next;
187 chunk->size = newSize;
191 insert_chunk(chunk);
193 sFreeChunks = chunk;
195 chunk = chunk->next;
198 last->next = chunk;
200 sFreeChunks = chunk;
207 // There was no chunk, let's see if the area is large enough
301 // We add this chunk to our free list - first, try to find an adjacent
302 // chunk, so that we can merge them together
304 free_chunk *chunk = (free_chunk *)sFreeChunks, *last = NULL, *smaller = NULL;
305 for (; chunk != NULL; chunk = chunk->next) {
306 if ((addr_t)chunk + chunk->size == (addr_t)ptr
307 || (addr_t)ptr + size == (addr_t)chunk) {
310 CTRACE((" found adjacent chunks: %p, %ld\n", chunk, chunk->size));
312 last->next = chunk->next;
314 sFreeChunks = chunk->next;
316 if ((addr_t)chunk < (addr_t)ptr)
317 chunk->size += size;
320 newChunk->next = chunk->next;
321 newChunk->size = size + chunk->size;
322 chunk = newChunk;
325 insert_chunk(chunk);
330 last = chunk;
332 if (chunk->size < (size_t)size)
333 smaller = chunk;
336 // we didn't find an adjacent chunk, so insert the new chunk into the list