more
This commit is contained in:
parent
2c05341112
commit
d66cba75e1
|
@ -20,13 +20,32 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define TD_LIST_NODE(S) \
|
||||
// Single linked list
|
||||
#define TD_SLIST_NODE(TYPE) \
|
||||
struct { \
|
||||
struct type *sl_next_; \
|
||||
}
|
||||
|
||||
#define TD_SLIST(TYPE) \
|
||||
struct { \
|
||||
struct TYPE *sl_head_; \
|
||||
}
|
||||
|
||||
#define TD_SLIST_NODE_NEXT(sln) (sln)->sl_next_
|
||||
|
||||
#define tSListInit(sl) \
|
||||
do { \
|
||||
(sl)->sl_head_ = NULL; \
|
||||
} while (0)
|
||||
|
||||
// Double linked list
|
||||
#define TD_DLIST_NODE(S) \
|
||||
struct { \
|
||||
S *prev_; \
|
||||
S *next_; \
|
||||
}
|
||||
|
||||
#define TD_LIST(S) \
|
||||
#define TD_DLIST(S) \
|
||||
struct { \
|
||||
S * head_; \
|
||||
S * tail_; \
|
||||
|
@ -89,7 +108,7 @@ extern "C" {
|
|||
int it_dir_; \
|
||||
S * it_next_; \
|
||||
S * it_ptr_; \
|
||||
TD_LIST(S) * it_list_; \
|
||||
TD_DLIST(S) * it_list_; \
|
||||
}
|
||||
|
||||
#define tlistIterInit(it, l, dir) \
|
||||
|
|
|
@ -26,18 +26,18 @@ typedef struct SVArenaNode SVArenaNode;
|
|||
typedef struct SVMemAllocator SVMemAllocator;
|
||||
|
||||
struct SVArenaNode {
|
||||
TD_LIST_NODE(SVArenaNode);
|
||||
TD_DLIST_NODE(SVArenaNode);
|
||||
uint64_t size; // current node size
|
||||
void * ptr;
|
||||
char data[];
|
||||
};
|
||||
|
||||
struct SVMemAllocator {
|
||||
TD_LIST_NODE(SVMemAllocator);
|
||||
TD_DLIST_NODE(SVMemAllocator);
|
||||
uint64_t capacity;
|
||||
uint64_t ssize;
|
||||
uint64_t lsize;
|
||||
TD_LIST(SVArenaNode) nlist;
|
||||
TD_DLIST(SVArenaNode) nlist;
|
||||
};
|
||||
|
||||
SVMemAllocator *vmaCreate(uint64_t capacity, uint64_t ssize, uint64_t lsize);
|
||||
|
|
|
@ -19,8 +19,8 @@
|
|||
#define VNODE_BUF_POOL_SHARDS 3
|
||||
|
||||
struct SVBufPool {
|
||||
TD_LIST(SVMemAllocator) free;
|
||||
TD_LIST(SVMemAllocator) incycle;
|
||||
TD_DLIST(SVMemAllocator) free;
|
||||
TD_DLIST(SVMemAllocator) incycle;
|
||||
SVMemAllocator *inuse;
|
||||
// MAF for submodules
|
||||
// SMemAllocatorFactory maf;
|
||||
|
|
Loading…
Reference in New Issue