blob: 6c0a6637775fecf89f63c8c06edf9858a0769105 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#ifndef MEMPOOL_H
#define MEMPOOL_H 1
#include <stdlib.h>
#include <stdint.h>
#include <stdbool.h>
typedef struct memory_pool_s
{
void *pool;
void *empty_blocks;
size_t block_size;
size_t count;
bool ocm;
void *next;
} __attribute__ ((__aligned__)) memory_pool_t;
memory_pool_t * memory_pool_create(size_t bs, size_t c);
void memory_pool_destroy(memory_pool_t *mp);
void memory_pool_clear(memory_pool_t *mp);
void memory_pool_dump(memory_pool_t *mp, void (* print_func) (void *value));
void *memory_pool_alloc(memory_pool_t *mp);
bool memory_pool_free(memory_pool_t *mp, void *p);
#endif /* MEMPOOL_H */
|