> @@ -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.