MCPcopy Create free account
hub / github.com/F-Stack/f-stack / tb_pool

Function tb_pool

dpdk/lib/acl/tb_mem.c:18–46  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

16 */
17
18static struct tb_mem_block *
19tb_pool(struct tb_mem_pool *pool, size_t sz)
20{
21 struct tb_mem_block *block;
22 uint8_t *ptr;
23 size_t size;
24
25 size = sz + pool->alignment - 1;
26 block = calloc(1, size + sizeof(*pool->block));
27 if (block == NULL) {
28 RTE_LOG(ERR, MALLOC, "%s(%zu)\n failed, currently allocated "
29 "by pool: %zu bytes\n", __func__, sz, pool->alloc);
30 siglongjmp(pool->fail, -ENOMEM);
31 return NULL;
32 }
33
34 block->pool = pool;
35
36 block->next = pool->block;
37 pool->block = block;
38
39 pool->alloc += size;
40
41 ptr = (uint8_t *)(block + 1);
42 block->mem = RTE_PTR_ALIGN_CEIL(ptr, pool->alignment);
43 block->size = size - (block->mem - ptr);
44
45 return block;
46}
47
48void *
49tb_alloc(struct tb_mem_pool *pool, size_t size)

Callers 1

tb_allocFunction · 0.85

Calls 1

callocFunction · 0.85

Tested by

no test coverage detected