Files
cKit/Memory/c_Pool.h
T
2026-08-29 00:53:40 +08:00

36 lines
893 B
C

#ifndef INCLUDED_C_POOL_H
#define INCLUDED_C_POOL_H
#ifndef INCLUDED_C_TYPES_H
#include <c_Types.h>
#endif /*INCLUDED_C_TYPES_H*/
/* ------------------------------------------------------------------------------------------------------------------ */
/* */
typedef struct c_PoolBlockList_t c_PoolBlockList_t;
typedef struct {
c_PoolBlockList_t* blockAllocator;
int objSize;
int chunkSize;
c_size_t instanceCount;
struct c_PoolLink_t{ struct c_PoolLink_t* next;} * freelist;
}c_Pool_t;
/* ------------------------------------------------------------------------------------------------------------------ */
/* */
c_err_t c_Pool_Init(c_Pool_t* self, int objSize, int chunkSize);
void c_Pool_Destroy(c_Pool_t* self);
void* c_Pool_Alloc(c_Pool_t* self);
void c_Pool_Free(c_Pool_t* self, void* ptr);
void c_Pool_DryUp(c_Pool_t* self);
#endif /*INCLUDED_C_POOL_H*/