#ifndef __POOL_H | |
#define __POOL_H | |
#include <ccan/list/list.h> | |
#include <stddef.h> | |
#include <compiler.h> | |
struct pool { | |
void *buf; | |
size_t obj_size; | |
struct list_head free_list; | |
int free_count; | |
int reserved; | |
}; | |
enum pool_priority {POOL_NORMAL, POOL_HIGH}; | |
void* pool_get(struct pool *pool, enum pool_priority priority) __warn_unused_result; | |
void pool_free_object(struct pool *pool, void *obj); | |
int pool_init(struct pool *pool, size_t obj_size, int count, int reserved) __warn_unused_result; | |
#endif /* __POOL_H */ |