40#define TLSF_ALIGN_SIZE 16
41#define TLSF_ALIGN_MASK (TLSF_ALIGN_SIZE - 1)
42#define TLSF_ALIGN_UP(x) (((x) + TLSF_ALIGN_MASK) & ~TLSF_ALIGN_MASK)
45#define SL_INDEX_COUNT_LOG2 5
46#define SL_INDEX_COUNT (1U << SL_INDEX_COUNT_LOG2)
47#define SL_INDEX_MASK (SL_INDEX_COUNT - 1)
50#define FL_INDEX_COUNT (8 * sizeof(size_t))
58#define BLOCK_FLAG_FREE 0x1U
59#define BLOCK_FLAG_PREV_FREE 0x2U
60#define BLOCK_SIZE_MASK (~(size_t)(BLOCK_FLAG_FREE | BLOCK_FLAG_PREV_FREE))
77#define TLSF_HEADER_SIZE ((size_t)sizeof(block_header_t))
78#define TLSF_FREE_BLOCK_SIZE ((size_t)sizeof(free_block_t))
79#define TLSF_MIN_BLOCK_SIZE TLSF_FREE_BLOCK_SIZE
80#define TLSF_SENTINEL_SIZE TLSF_HEADER_SIZE
unsigned int uint32_t
Definition acefiex.h:163
COMPILER_DEPENDENT_UINT64 uint64_t
Definition acefiex.h:165
struct free_block * next_free
Definition tlsf.h:72
struct free_block * prev_free
Definition tlsf.h:73
block_header_t hdr
Definition tlsf.h:71
uint64_t fl_bitmap
Definition tlsf.h:84
size_t pool_size
Definition tlsf.h:87
free_block_t * blocks[FL_INDEX_COUNT][SL_INDEX_COUNT]
Definition tlsf.h:86
size_t used_size
Definition tlsf.h:88
uint32_t sl_bitmap[FL_INDEX_COUNT]
Definition tlsf.h:85
#define SL_INDEX_COUNT
Definition tlsf.h:46
tlsf_pool_t * tlsf_get_pool(void)
Definition tlsf.c:48
int tlsf_add_memory(tlsf_pool_t *pool, void *mem, size_t size)
Definition tlsf.c:257
tlsf_pool_t * tlsf_create(void)
Definition tlsf.c:250
struct free_block free_block_t
struct block_header block_header_t
void * tlsf_malloc(tlsf_pool_t *pool, size_t size)
Definition tlsf.c:296
void * tlsf_realloc(tlsf_pool_t *pool, void *ptr, size_t size)
Definition tlsf.c:440
void tlsf_free(tlsf_pool_t *pool, void *ptr)
Definition tlsf.c:367
#define FL_INDEX_COUNT
Definition tlsf.h:50
struct tlsf_pool tlsf_pool_t