37 #include <maloc/maloc_base.h>
39 #include <maloc/vnm.h>
40 #include <maloc/vmem.h>
84 #if !defined(VINLINE_MALOC)
85 int Vset_num(
Vset *thee);
86 char *Vset_access(
Vset *thee,
int i);
87 char *Vset_create(
Vset *thee);
88 char *Vset_first(
Vset *thee);
89 char *Vset_last(
Vset *thee);
90 char *Vset_next(
Vset *thee);
91 char *Vset_prev(
Vset *thee);
92 char *Vset_peekFirst(
Vset *thee);
93 char *Vset_peekLast(
Vset *thee);
94 void Vset_destroy(
Vset *thee);
96 # define Vset_num(thee) ((thee)->numT)
97 # define Vset_access(thee,i) ( \
98 ((i >= 0) && (i < thee->numT)) \
99 ? &((thee)->table[ (i)>>(thee)->blockPower ] \
100 [ (thee)->sizeT*((i)&(thee)->blockModulo) ]) \
103 # define Vset_create(thee) ( \
104 ( ((((thee)->numT)>>(thee)->blockPower) >= (thee)->numBlocks) \
105 || ((((thee)->numT+1)%(thee)->prtT) == 0) ) \
106 ? (Vset_createLast((thee))) \
107 : (++((thee)->numT), (Vset_access((thee),(thee)->numT-1))) \
109 # define Vset_first(thee) ( \
111 Vset_access((thee), (thee)->curT) \
113 # define Vset_last(thee) ( \
114 (thee)->curT = (thee)->numT-1, \
115 Vset_access((thee), (thee)->curT) \
117 # define Vset_next(thee) ( \
119 ((thee)->curT < (thee)->numT) \
120 ? Vset_access((thee), (thee)->curT) \
123 # define Vset_prev(thee) ( \
125 ((thee)->curT >= 0) \
126 ? Vset_access((thee), (thee)->curT) \
129 # define Vset_peekFirst(thee) ( \
130 Vset_access((thee), 0) \
132 # define Vset_peekLast(thee) ( \
133 Vset_access((thee), (thee)->numT-1) \
135 # define Vset_destroy(thee) ( \
136 ( ((((thee)->numT-1)>>(thee)->blockPower) < (thee)->numBlocks-1) \
137 || ((thee)->numT == 1) || ((((thee)->numT)%(thee)->prtT) == 0) ) \
138 ? (Vset_destroyLast((thee))) : (void)(((thee)->numT)--) \
149 const char *tname,
int tsize,
int tmaxNum,
int ioKey);
150 void Vset_dtor(
Vset **thee);
152 char *Vset_createLast(
Vset *thee);
153 void Vset_destroyLast(
Vset *thee);
154 void Vset_initData(
Vset *thee);
155 void Vset_reset(
Vset *thee);
156 void Vset_check(
Vset *thee,
157 int *tnum,
int *tsize,
int *tVecUse,
int *tVecMal,
int *tVecOhd);
159 void Vset_memChk(
Vset *thee);