Lines Matching refs:len
40 size_t len; member
45 size_t len; member
68 static ssize_t heap_grow(size_t len);
71 …rintf(INFO, "\t\tbase %p, end 0x%lx, len 0x%zx\n", chunk, (vaddr_t)chunk + chunk->len, chunk->len); in dump_free_chunk()
76 dprintf(INFO, "\tbase %p, len 0x%zx\n", theheap.base, theheap.len); in miniheap_dump()
92 vaddr_t chunk_end = (vaddr_t)chunk + chunk->len; in heap_insert_free_chunk()
94 LTRACEF("chunk ptr %p, size 0x%zx\n", chunk, chunk->len); in heap_insert_free_chunk()
101 theheap.remaining += chunk->len; in heap_insert_free_chunk()
121 if ((vaddr_t)last_chunk + last_chunk->len == (vaddr_t)chunk) { in heap_insert_free_chunk()
123 last_chunk->len += chunk->len; in heap_insert_free_chunk()
136 if ((vaddr_t)chunk + chunk->len == (vaddr_t)next_chunk) { in heap_insert_free_chunk()
138 chunk->len += next_chunk->len; in heap_insert_free_chunk()
150 static struct free_heap_chunk *heap_create_free_chunk(void *ptr, size_t len, bool allow_debug) { in heap_create_free_chunk() argument
151 DEBUG_ASSERT((len % sizeof(void *)) == 0); // size must be aligned on pointer boundary in heap_create_free_chunk()
152 DEBUG_ASSERT(len > sizeof(struct free_heap_chunk)); in heap_create_free_chunk()
156 memset(ptr, FREE_FILL, len); in heap_create_free_chunk()
160 chunk->len = len; in heap_create_free_chunk()
209 …DEBUG_ASSERT((chunk->len % sizeof(void *)) == 0); // len should always be a multiple of pointer si… in miniheap_alloc()
212 if (chunk->len >= size) { in miniheap_alloc()
219 if (chunk->len > size + sizeof(struct free_heap_chunk)) { in miniheap_alloc()
221 …free_heap_chunk *newchunk = heap_create_free_chunk((uint8_t *)ptr + size, chunk->len - size, true); in miniheap_alloc()
224 chunk->len -= chunk->len - size; in miniheap_alloc()
234 DEBUG_ASSERT(chunk->len >= size); in miniheap_alloc()
235 size = chunk->len; in miniheap_alloc()
354 LTRACEF("looking at chunk %p, len 0x%zx\n", chunk, chunk->len); in miniheap_trim()
357 uintptr_t end = start + chunk->len; in miniheap_trim()
404 chunk->len -= new_chunk_size; in miniheap_trim()
422 chunk->len -= end_page - start_page; in miniheap_trim()
441 ptr->heap_len = theheap.len; in miniheap_get_stats()
448 ptr->heap_free += chunk->len; in miniheap_get_stats()
450 if (chunk->len > ptr->heap_max_chunk) { in miniheap_get_stats()
451 ptr->heap_max_chunk = chunk->len; in miniheap_get_stats()
477 if (endptr > (uintptr_t)theheap.base + theheap.len) { in heap_grow()
478 theheap.len = (uintptr_t)endptr - (uintptr_t)theheap.base; in heap_grow()
484 void miniheap_init(void *ptr, size_t len) { in miniheap_init() argument
485 LTRACEF("ptr %p, len %zu\n", ptr, len); in miniheap_init()
497 DEBUG_ASSERT((aligned_ptr - (uintptr_t)ptr) < len); in miniheap_init()
499 len -= aligned_ptr - (uintptr_t)ptr; in miniheap_init()
502 LTRACEF("(aligned) ptr %p, len %zu\n", ptr, len); in miniheap_init()
507 theheap.len = len; in miniheap_init()
512 if (len > 0) in miniheap_init()
513 heap_insert_free_chunk(heap_create_free_chunk(ptr, len, true)); in miniheap_init()