Lines Matching refs:name

11 #define HT_HEAD(name, type)                                             \  argument
12 struct name { \
52 #define HT_FIND(name, head, elm) name##_HT_FIND((head), (elm)) argument
53 #define HT_INSERT(name, head, elm) name##_HT_INSERT((head), (elm)) argument
54 #define HT_REPLACE(name, head, elm) name##_HT_REPLACE((head), (elm)) argument
55 #define HT_REMOVE(name, head, elm) name##_HT_REMOVE((head), (elm)) argument
56 #define HT_START(name, head) name##_HT_START(head) argument
57 #define HT_NEXT(name, head, elm) name##_HT_NEXT((head), (elm)) argument
58 #define HT_NEXT_RMV(name, head, elm) name##_HT_NEXT_RMV((head), (elm)) argument
59 #define HT_CLEAR(name, head) name##_HT_CLEAR(head) argument
60 #define HT_INIT(name, head) name##_HT_INIT(head) argument
124 #define HT_FOREACH(x, name, head) \ argument
125 for ((x) = HT_START(name, head); \
127 (x) = HT_NEXT(name, head, x))
129 #define HT_PROTOTYPE(name, type, field, hashfn, eqfn) \ argument
130 int name##_HT_GROW(struct name *ht, unsigned min_capacity); \
131 void name##_HT_CLEAR(struct name *ht); \
132 int name##_HT_REP_IS_BAD_(const struct name *ht); \
134 name##_HT_INIT(struct name *head) { \
144 name##_HT_FIND_P_(struct name *head, struct type *elm) \
160 name##_HT_FIND(const struct name *head, struct type *elm) \
163 struct name *h = (struct name *) head; \
165 p = name##_HT_FIND_P_(h, elm); \
171 name##_HT_INSERT(struct name *head, struct type *elm) \
175 name##_HT_GROW(head, head->hth_n_entries+1); \
186 name##_HT_REPLACE(struct name *head, struct type *elm) \
190 name##_HT_GROW(head, head->hth_n_entries+1); \
192 p = name##_HT_FIND_P_(head, elm); \
207 name##_HT_REMOVE(struct name *head, struct type *elm) \
211 p = name##_HT_FIND_P_(head,elm); \
225 name##_HT_FOREACH_FN(struct name *head, \
251 name##_HT_START(struct name *head) \
267 name##_HT_NEXT(struct name *head, struct type **elm) \
282 name##_HT_NEXT_RMV(struct name *head, struct type **elm) \
300 #define HT_GENERATE(name, type, field, hashfn, eqfn, load, mallocfn, \ argument
302 static unsigned name##_PRIMES[] = { \
311 static unsigned name##_N_PRIMES = \
312 (unsigned)(sizeof(name##_PRIMES)/sizeof(name##_PRIMES[0])); \
317 name##_HT_GROW(struct name *head, unsigned size) \
322 if (head->hth_prime_idx == (int)name##_N_PRIMES - 1) \
328 new_len = name##_PRIMES[++prime_idx]; \
331 prime_idx < (int)name##_N_PRIMES); \
379 name##_HT_CLEAR(struct name *head) \
383 name##_HT_INIT(head); \
388 name##_HT_REP_IS_BAD_(const struct name *head) \
404 if (head->hth_table_length != name##_PRIMES[head->hth_prime_idx]) \
425 #define HT_FIND_OR_INSERT_(name, field, hashfn, head, eltype, elm, var, y, n) \ argument
427 struct name *var##_head_ = head; \
431 name##_HT_GROW(var##_head_, var##_head_->hth_n_entries+1); \
433 var = name##_HT_FIND_P_(var##_head_, (elm)); \