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);