Go to the source code of this file.
Functions | |
| static size_t | align_up (size_t n, size_t align) |
| void * | ck_tokenizer_mempool_alloc (CKTokenizerMemPool *pool, size_t size) |
| void * | ck_tokenizer_mempool_alloc_aligned (CKTokenizerMemPool *pool, size_t size, size_t align) |
| size_t | ck_tokenizer_mempool_available (CKTokenizerMemPool *pool) |
| void | ck_tokenizer_mempool_free (CKTokenizerMemPool *pool) |
| int | ck_tokenizer_mempool_init (CKTokenizerMemPool *pool, size_t size) |
| void | ck_tokenizer_mempool_reset (CKTokenizerMemPool *pool) |
| char * | ck_tokenizer_mempool_strdup (CKTokenizerMemPool *pool, const char *str) |
| char * | ck_tokenizer_mempool_strndup (CKTokenizerMemPool *pool, const char *str, int len) |
| size_t | ck_tokenizer_mempool_used (CKTokenizerMemPool *pool) |
|
static |
Definition at line 37 of file memory_pool.c.
Referenced by ck_tokenizer_mempool_alloc(), and ck_tokenizer_mempool_alloc_aligned().
| void* ck_tokenizer_mempool_alloc | ( | CKTokenizerMemPool * | pool, |
| size_t | size | ||
| ) |
Allocate from pool.
| pool | Pool to allocate from |
| size | Size in bytes |
Definition at line 41 of file memory_pool.c.
References align_up(), CKTokenizerMemPool::alignment, CKTokenizerMemPool::memory, CKTokenizerMemPool::size, and CKTokenizerMemPool::used.
Referenced by ck_tokenizer_mempool_strndup().
| void* ck_tokenizer_mempool_alloc_aligned | ( | CKTokenizerMemPool * | pool, |
| size_t | size, | ||
| size_t | align | ||
| ) |
Allocate aligned memory from pool.
| pool | Pool to allocate from |
| size | Size in bytes |
| align | Alignment (must be power of 2) |
Definition at line 58 of file memory_pool.c.
References align_up(), CKTokenizerMemPool::memory, CKTokenizerMemPool::size, and CKTokenizerMemPool::used.
| size_t ck_tokenizer_mempool_available | ( | CKTokenizerMemPool * | pool | ) |
Get available bytes in pool.
| pool | Pool to query |
Definition at line 123 of file memory_pool.c.
References CKTokenizerMemPool::size, and CKTokenizerMemPool::used.
| void ck_tokenizer_mempool_free | ( | CKTokenizerMemPool * | pool | ) |
Free a memory pool.
| pool | Pool to free |
Definition at line 28 of file memory_pool.c.
References CKTokenizerMemPool::memory, CKTokenizerMemPool::size, and CKTokenizerMemPool::used.
Referenced by ck_tokenizer_free().
| int ck_tokenizer_mempool_init | ( | CKTokenizerMemPool * | pool, |
| size_t | size | ||
| ) |
Initialize a memory pool.
| pool | Pool to initialize |
| size | Pool size in bytes (0 = use default) |
Definition at line 11 of file memory_pool.c.
References CKTokenizerMemPool::alignment, CK_TOKENIZER_POOL_DEFAULT_SIZE, CKTokenizerMemPool::memory, CKTokenizerMemPool::size, and CKTokenizerMemPool::used.
Referenced by ck_tokenizer_create().
| void ck_tokenizer_mempool_reset | ( | CKTokenizerMemPool * | pool | ) |
Reset pool (mark all memory as free).
| pool | Pool to reset |
Definition at line 113 of file memory_pool.c.
References CKTokenizerMemPool::used.
| char* ck_tokenizer_mempool_strdup | ( | CKTokenizerMemPool * | pool, |
| const char * | str | ||
| ) |
Allocate and copy string (strdup equivalent).
| pool | Pool to allocate from |
| str | String to copy |
Definition at line 86 of file memory_pool.c.
References ck_tokenizer_mempool_strndup().
| char* ck_tokenizer_mempool_strndup | ( | CKTokenizerMemPool * | pool, |
| const char * | str, | ||
| int | len | ||
| ) |
Allocate and copy string with length.
| pool | Pool to allocate from |
| str | String to copy |
| len | Length to copy (-1 for null-terminated) |
Definition at line 93 of file memory_pool.c.
References ck_tokenizer_mempool_alloc().
Referenced by ck_tokenizer_mempool_strdup().
| size_t ck_tokenizer_mempool_used | ( | CKTokenizerMemPool * | pool | ) |
Get used bytes in pool.
| pool | Pool to query |
Definition at line 119 of file memory_pool.c.
References CKTokenizerMemPool::used.