Re: [PATCH v3 5/7] mem-pool: fill out functionality
From: Stefan Beller <hidden>
Date: 2018-06-01 19:28:09
quoted hunk ↗ jump to hunk
@@ -108,3 +108,43 @@ void *mem_pool_calloc(struct mem_pool *mem_pool, size_t count, size_t size) memset(r, 0, len); return r; } + +int mem_pool_contains(struct mem_pool *mem_pool, void *mem) +{ + struct mp_block *p; + + /* Check if memory is allocated in a block */ + for (p = mem_pool->mp_block; p; p = p->next_block) + if ((mem >= ((void *)p->space)) && + (mem < ((void *)p->end))) + return 1; + + return 0; +} + +void mem_pool_combine(struct mem_pool *dst, struct mem_pool *src) +{ + /* Append the blocks from src to dst */ + if (dst->mp_block && src->mp_block) { + /* + * src and dst have blocks, append + * blocks from src to dst. + */ + dst->mp_block_tail->next_block = src->mp_block; + dst->mp_block_tail = src->mp_block_tail; + } else if (src->mp_block) { + /* + * src has blocks, dst is empty + * use pointers from src to set up dst. + */ + dst->mp_block = src->mp_block; + dst->mp_block_tail = src->mp_block_tail; + } else { + // src is empty, nothing to do.
comment style.