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

Reply via email to