diff options
author | Jameson Miller <jamill@microsoft.com> | 2018-04-11 21:37:55 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-04-12 05:55:20 +0300 |
commit | 065feab4ebc8e160ab025ff351d724aeda3623ad (patch) | |
tree | 6f2e142fb5784be73e70abdbdc8bdc2b22f881d9 /mem-pool.h | |
parent | 96c47d1466d2d11e2028b79fdc0bcaf7a4bb7345 (diff) |
mem-pool: move reusable parts of memory pool into its own file
This moves the reusable parts of the memory pool logic used by
fast-import.c into its own file for use by other components.
Signed-off-by: Jameson Miller <jamill@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'mem-pool.h')
-rw-r--r-- | mem-pool.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/mem-pool.h b/mem-pool.h new file mode 100644 index 0000000000..829ad58ecf --- /dev/null +++ b/mem-pool.h @@ -0,0 +1,34 @@ +#ifndef MEM_POOL_H +#define MEM_POOL_H + +struct mp_block { + struct mp_block *next_block; + char *next_free; + char *end; + uintmax_t space[FLEX_ARRAY]; /* more */ +}; + +struct mem_pool { + struct mp_block *mp_block; + + /* + * The amount of available memory to grow the pool by. + * This size does not include the overhead for the mp_block. + */ + size_t block_alloc; + + /* The total amount of memory allocated by the pool. */ + size_t pool_alloc; +}; + +/* + * Alloc memory from the mem_pool. + */ +void *mem_pool_alloc(struct mem_pool *pool, size_t len); + +/* + * Allocate and zero memory from the memory pool. + */ +void *mem_pool_calloc(struct mem_pool *pool, size_t count, size_t size); + +#endif |