22 lines
519 B
C
22 lines
519 B
C
#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 */
|