Lines Matching refs:add

247 #define HASH_REPLACE_BYHASHVALUE_INORDER(hh,head,fieldname,keylen_in,hashval,add,replaced,cmpfcn) \  argument
250 HASH_FIND_BYHASHVALUE(hh, head, &((add)->fieldname), keylen_in, hashval, replaced); \
254 …HASH_ADD_KEYPTR_BYHASHVALUE_INORDER(hh, head, &((add)->fieldname), keylen_in, hashval, add, cmpfcn…
257 #define HASH_REPLACE_BYHASHVALUE(hh,head,fieldname,keylen_in,hashval,add,replaced) \ argument
260 HASH_FIND_BYHASHVALUE(hh, head, &((add)->fieldname), keylen_in, hashval, replaced); \
264 HASH_ADD_KEYPTR_BYHASHVALUE(hh, head, &((add)->fieldname), keylen_in, hashval, add); \
267 #define HASH_REPLACE(hh,head,fieldname,keylen_in,add,replaced) \ argument
270 HASH_VALUE(&((add)->fieldname), keylen_in, _hr_hashv); \
271 HASH_REPLACE_BYHASHVALUE(hh, head, fieldname, keylen_in, _hr_hashv, add, replaced); \
274 #define HASH_REPLACE_INORDER(hh,head,fieldname,keylen_in,add,replaced,cmpfcn) \ argument
277 HASH_VALUE(&((add)->fieldname), keylen_in, _hr_hashv); \
278 …HASH_REPLACE_BYHASHVALUE_INORDER(hh, head, fieldname, keylen_in, _hr_hashv, add, replaced, cmpfcn)…
281 #define HASH_APPEND_LIST(hh, head, add) \ argument
283 (add)->hh.next = NULL; \
284 (add)->hh.prev = ELMT_FROM_HH((head)->hh.tbl, (head)->hh.tbl->tail); \
285 (head)->hh.tbl->tail->next = (add); \
286 (head)->hh.tbl->tail = &((add)->hh); \
289 #define HASH_AKBI_INNER_LOOP(hh,head,add,cmpfcn) \ argument
292 if (cmpfcn(DECLTYPE(head)(_hs_iter), add) > 0) { \
300 #define HASH_AKBI_INNER_LOOP(hh,head,add,cmpfcn) \ argument
305 if (cmpfcn(head, add) > 0) { \
316 #define HASH_ADD_TO_TABLE(hh,head,keyptr,keylen_in,hashval,add,oomed) \ argument
322 HASH_ADD_TO_BKT((head)->hh.tbl->buckets[_ha_bkt], hh, &(add)->hh, oomed); \
324 HASH_ROLLBACK_BKT(hh, head, &(add)->hh); \
325 HASH_DELETE_HH(hh, head, &(add)->hh); \
326 (add)->hh.tbl = NULL; \
327 uthash_nonfatal_oom(add); \
333 (add)->hh.tbl = NULL; \
334 uthash_nonfatal_oom(add); \
340 #define HASH_ADD_TO_TABLE(hh,head,keyptr,keylen_in,hashval,add,oomed) \ argument
345 HASH_ADD_TO_BKT((head)->hh.tbl->buckets[_ha_bkt], hh, &(add)->hh, oomed); \
353 #define HASH_ADD_KEYPTR_BYHASHVALUE_INORDER(hh,head,keyptr,keylen_in,hashval,add,cmpfcn) \ argument
356 (add)->hh.hashv = (hashval); \
357 (add)->hh.key = (char*) (keyptr); \
358 (add)->hh.keylen = (unsigned) (keylen_in); \
360 (add)->hh.next = NULL; \
361 (add)->hh.prev = NULL; \
362 HASH_MAKE_TABLE(hh, add, _ha_oomed); \
364 (head) = (add); \
368 (add)->hh.tbl = (head)->hh.tbl; \
369 HASH_AKBI_INNER_LOOP(hh, head, add, cmpfcn); \
371 (add)->hh.next = _hs_iter; \
372 if (((add)->hh.prev = HH_FROM_ELMT((head)->hh.tbl, _hs_iter)->prev)) { \
373 HH_FROM_ELMT((head)->hh.tbl, (add)->hh.prev)->next = (add); \
375 (head) = (add); \
377 HH_FROM_ELMT((head)->hh.tbl, _hs_iter)->prev = (add); \
379 HASH_APPEND_LIST(hh, head, add); \
382 HASH_ADD_TO_TABLE(hh, head, keyptr, keylen_in, hashval, add, _ha_oomed); \
386 #define HASH_ADD_KEYPTR_INORDER(hh,head,keyptr,keylen_in,add,cmpfcn) \ argument
390 HASH_ADD_KEYPTR_BYHASHVALUE_INORDER(hh, head, keyptr, keylen_in, _hs_hashv, add, cmpfcn); \
393 #define HASH_ADD_BYHASHVALUE_INORDER(hh,head,fieldname,keylen_in,hashval,add,cmpfcn) \ argument
394 …HASH_ADD_KEYPTR_BYHASHVALUE_INORDER(hh, head, &((add)->fieldname), keylen_in, hashval, add, cmpfcn)
396 #define HASH_ADD_INORDER(hh,head,fieldname,keylen_in,add,cmpfcn) \ argument
397 HASH_ADD_KEYPTR_INORDER(hh, head, &((add)->fieldname), keylen_in, add, cmpfcn)
399 #define HASH_ADD_KEYPTR_BYHASHVALUE(hh,head,keyptr,keylen_in,hashval,add) \ argument
402 (add)->hh.hashv = (hashval); \
403 (add)->hh.key = (const void*) (keyptr); \
404 (add)->hh.keylen = (unsigned) (keylen_in); \
406 (add)->hh.next = NULL; \
407 (add)->hh.prev = NULL; \
408 HASH_MAKE_TABLE(hh, add, _ha_oomed); \
410 (head) = (add); \
413 (add)->hh.tbl = (head)->hh.tbl; \
414 HASH_APPEND_LIST(hh, head, add); \
416 HASH_ADD_TO_TABLE(hh, head, keyptr, keylen_in, hashval, add, _ha_oomed); \
420 #define HASH_ADD_KEYPTR(hh,head,keyptr,keylen_in,add) \ argument
424 HASH_ADD_KEYPTR_BYHASHVALUE(hh, head, keyptr, keylen_in, _ha_hashv, add); \
427 #define HASH_ADD_BYHASHVALUE(hh,head,fieldname,keylen_in,hashval,add) \ argument
428 HASH_ADD_KEYPTR_BYHASHVALUE(hh, head, &((add)->fieldname), keylen_in, hashval, add)
430 #define HASH_ADD(hh,head,fieldname,keylen_in,add) \ argument
431 HASH_ADD_KEYPTR(hh, head, &((add)->fieldname), keylen_in, add)
488 #define HASH_ADD_STR(head,strfield,add) \ argument
490 unsigned _uthash_hastr_keylen = (unsigned)uthash_strlen((add)->strfield); \
491 HASH_ADD(hh, head, strfield[0], _uthash_hastr_keylen, add); \
493 #define HASH_REPLACE_STR(head,strfield,add,replaced) \ argument
495 unsigned _uthash_hrstr_keylen = (unsigned)uthash_strlen((add)->strfield); \
496 HASH_REPLACE(hh, head, strfield[0], _uthash_hrstr_keylen, add, replaced); \
500 #define HASH_ADD_INT(head,intfield,add) \ argument
501 HASH_ADD(hh,head,intfield,sizeof(int),add)
502 #define HASH_REPLACE_INT(head,intfield,add,replaced) \ argument
503 HASH_REPLACE(hh,head,intfield,sizeof(int),add,replaced)
506 #define HASH_ADD_PTR(head,ptrfield,add) \ argument
507 HASH_ADD(hh,head,ptrfield,sizeof(void *),add)
508 #define HASH_REPLACE_PTR(head,ptrfield,add,replaced) \ argument
509 HASH_REPLACE(hh,head,ptrfield,sizeof(void *),add,replaced)