Lines Matching refs:size
198 tlsf_decl int tlsf_fls_sizet(size_t size) in tlsf_fls_sizet() argument
200 int high = (int)(size >> 32); in tlsf_fls_sizet()
206 bits = tlsf_fls((int)size & 0xffffffff); in tlsf_fls_sizet()
326 size_t size; member
350 offsetof(block_header_t, size) + sizeof(size_t);
383 return block->size & ~(block_header_free_bit | block_header_prev_free_bit); in block_size()
386 static void block_set_size(block_header_t * block, size_t size) in block_set_size() argument
388 const size_t oldsize = block->size; in block_set_size()
389 block->size = size | (oldsize & (block_header_free_bit | block_header_prev_free_bit)); in block_set_size()
399 return tlsf_cast(int, block->size & block_header_free_bit); in block_is_free()
404 block->size |= block_header_free_bit; in block_set_free()
409 block->size &= ~block_header_free_bit; in block_set_used()
414 return tlsf_cast(int, block->size & block_header_prev_free_bit); in block_is_prev_free()
419 block->size |= block_header_prev_free_bit; in block_set_prev_free()
424 block->size &= ~block_header_prev_free_bit; in block_set_prev_used()
440 static block_header_t * offset_to_block(const void * ptr, size_t size) in offset_to_block() argument
442 return tlsf_cast(block_header_t *, tlsf_cast(tlsfptr_t, ptr) + size); in offset_to_block()
508 static size_t adjust_request_size(size_t size, size_t align) in adjust_request_size() argument
511 if(size) { in adjust_request_size()
512 const size_t aligned = align_up(size, align); in adjust_request_size()
527 static void mapping_insert(size_t size, int * fli, int * sli) in mapping_insert() argument
530 if(size < SMALL_BLOCK_SIZE) { in mapping_insert()
533 sl = tlsf_cast(int, size) / (SMALL_BLOCK_SIZE / SL_INDEX_COUNT); in mapping_insert()
536 fl = tlsf_fls_sizet(size); in mapping_insert()
537 sl = tlsf_cast(int, size >> (fl - SL_INDEX_COUNT_LOG2)) ^ (1 << SL_INDEX_COUNT_LOG2); in mapping_insert()
545 static void mapping_search(size_t size, int * fli, int * sli) in mapping_search() argument
547 if(size >= SMALL_BLOCK_SIZE) { in mapping_search()
548 const size_t round = (1 << (tlsf_fls_sizet(size) - SL_INDEX_COUNT_LOG2)) - 1; in mapping_search()
549 size += round; in mapping_search()
551 mapping_insert(size, fli, sli); in mapping_search()
647 static int block_can_split(block_header_t * block, size_t size) in block_can_split() argument
649 return block_size(block) >= sizeof(block_header_t) + size; in block_can_split()
653 static block_header_t * block_split(block_header_t * block, size_t size) in block_split() argument
657 offset_to_block(block_to_ptr(block), size - block_header_overhead); in block_split()
659 const size_t remain_size = block_size(block) - (size + block_header_overhead); in block_split()
664 tlsf_assert(block_size(block) == remain_size + size + block_header_overhead); in block_split()
668 block_set_size(block, size); in block_split()
679 prev->size += block_size(block) + block_header_overhead; in block_absorb()
714 static void block_trim_free(control_t * control, block_header_t * block, size_t size) in block_trim_free() argument
717 if(block_can_split(block, size)) { in block_trim_free()
718 block_header_t * remaining_block = block_split(block, size); in block_trim_free()
726 static void block_trim_used(control_t * control, block_header_t * block, size_t size) in block_trim_used() argument
729 if(block_can_split(block, size)) { in block_trim_used()
731 block_header_t * remaining_block = block_split(block, size); in block_trim_used()
739 … block_header_t * block_trim_free_leading(control_t * control, block_header_t * block, size_t size) in block_trim_free_leading() argument
742 if(block_can_split(block, size)) { in block_trim_free_leading()
744 remaining_block = block_split(block, size - block_header_overhead); in block_trim_free_leading()
754 static block_header_t * block_locate_free(control_t * control, size_t size) in block_locate_free() argument
759 if(size) { in block_locate_free()
760 mapping_search(size, &fl, &sl); in block_locate_free()
774 tlsf_assert(block_size(block) >= size); in block_locate_free()
781 static void * block_prepare_used(control_t * control, block_header_t * block, size_t size) in block_prepare_used() argument
785 tlsf_assert(size && "size must be non-zero"); in block_prepare_used()
786 block_trim_free(control, block, size); in block_prepare_used()
821 static void integrity_walker(void * ptr, size_t size, int used, void * user) in integrity_walker() argument
832 tlsf_insist(size == this_block_size && "block size incorrect"); in integrity_walker()
887 static void default_walker(void * ptr, size_t size, int used, void * user) in default_walker() argument
890 …printf("\t%p %s size: %x (%p)\n", ptr, used ? "used" : "free", (unsigned int)size, (void *)block_f… in default_walker()
911 size_t size = 0; in lv_tlsf_block_size() local
914 size = block_size(block); in lv_tlsf_block_size()
916 return size; in lv_tlsf_block_size()
1097 void * lv_tlsf_malloc(lv_tlsf_t tlsf, size_t size) in lv_tlsf_malloc() argument
1100 const size_t adjust = adjust_request_size(size, ALIGN_SIZE); in lv_tlsf_malloc()
1105 void * lv_tlsf_memalign(lv_tlsf_t tlsf, size_t align, size_t size) in lv_tlsf_memalign() argument
1108 const size_t adjust = adjust_request_size(size, ALIGN_SIZE); in lv_tlsf_memalign()
1161 size_t size = 0; in lv_tlsf_free() local
1167 size = block->size; in lv_tlsf_free()
1174 return size; in lv_tlsf_free()
1190 void * lv_tlsf_realloc(lv_tlsf_t tlsf, void * ptr, size_t size) in lv_tlsf_realloc() argument
1196 if(ptr && size == 0) { in lv_tlsf_realloc()
1201 p = lv_tlsf_malloc(tlsf, size); in lv_tlsf_realloc()
1209 const size_t adjust = adjust_request_size(size, ALIGN_SIZE); in lv_tlsf_realloc()
1210 if(size > cursize && adjust == 0) { in lv_tlsf_realloc()
1222 p = lv_tlsf_malloc(tlsf, size); in lv_tlsf_realloc()
1224 const size_t minsize = tlsf_min(cursize, size); in lv_tlsf_realloc()