field             131 libdb/queue.h  #define SLIST_FOREACH(var, head, field)					\
field             132 libdb/queue.h  	for((var) = (head)->slh_first; (var); (var) = (var)->field.sle_next)
field             138 libdb/queue.h  #define SLIST_INSERT_AFTER(slistelm, elm, field) do {			\
field             139 libdb/queue.h  	(elm)->field.sle_next = (slistelm)->field.sle_next;		\
field             140 libdb/queue.h  	(slistelm)->field.sle_next = (elm);				\
field             143 libdb/queue.h  #define SLIST_INSERT_HEAD(head, elm, field) do {			\
field             144 libdb/queue.h  	(elm)->field.sle_next = (head)->slh_first;			\
field             148 libdb/queue.h  #define SLIST_NEXT(elm, field)	((elm)->field.sle_next)
field             150 libdb/queue.h  #define SLIST_REMOVE_HEAD(head, field) do {				\
field             151 libdb/queue.h  	(head)->slh_first = (head)->slh_first->field.sle_next;		\
field             154 libdb/queue.h  #define SLIST_REMOVE(head, elm, type, field) do {			\
field             156 libdb/queue.h  		SLIST_REMOVE_HEAD((head), field);			\
field             160 libdb/queue.h  		while( curelm->field.sle_next != (elm) )		\
field             161 libdb/queue.h  			curelm = curelm->field.sle_next;		\
field             162 libdb/queue.h  		curelm->field.sle_next =				\
field             163 libdb/queue.h  		    curelm->field.sle_next->field.sle_next;		\
field             196 libdb/queue.h  #define	STAILQ_LAST(head, type, field)					\
field             200 libdb/queue.h  		((char *)((head)->stqh_last) - __offsetof(struct type, field))))
field             202 libdb/queue.h  #define STAILQ_FOREACH(var, head, field)				\
field             203 libdb/queue.h  	for((var) = (head)->stqh_first; (var); (var) = (var)->field.stqe_next)
field             205 libdb/queue.h  #define STAILQ_INSERT_HEAD(head, elm, field) do {			\
field             206 libdb/queue.h  	if (((elm)->field.stqe_next = (head)->stqh_first) == NULL)	\
field             207 libdb/queue.h  		(head)->stqh_last = &(elm)->field.stqe_next;		\
field             211 libdb/queue.h  #define STAILQ_INSERT_TAIL(head, elm, field) do {			\
field             212 libdb/queue.h  	(elm)->field.stqe_next = NULL;					\
field             214 libdb/queue.h  	(head)->stqh_last = &(elm)->field.stqe_next;			\
field             217 libdb/queue.h  #define STAILQ_INSERT_AFTER(head, tqelm, elm, field) do {		\
field             218 libdb/queue.h  	if (((elm)->field.stqe_next = (tqelm)->field.stqe_next) == NULL)\
field             219 libdb/queue.h  		(head)->stqh_last = &(elm)->field.stqe_next;		\
field             220 libdb/queue.h  	(tqelm)->field.stqe_next = (elm);				\
field             223 libdb/queue.h  #define STAILQ_NEXT(elm, field)	((elm)->field.stqe_next)
field             225 libdb/queue.h  #define STAILQ_REMOVE_HEAD(head, field) do {				\
field             227 libdb/queue.h  	     (head)->stqh_first->field.stqe_next) == NULL)		\
field             231 libdb/queue.h  #define STAILQ_REMOVE_HEAD_UNTIL(head, elm, field) do {			\
field             232 libdb/queue.h  	if (((head)->stqh_first = (elm)->field.stqe_next) == NULL)	\
field             236 libdb/queue.h  #define STAILQ_REMOVE(head, elm, type, field) do {			\
field             238 libdb/queue.h  		STAILQ_REMOVE_HEAD(head, field);			\
field             242 libdb/queue.h  		while( curelm->field.stqe_next != (elm) )		\
field             243 libdb/queue.h  			curelm = curelm->field.stqe_next;		\
field             244 libdb/queue.h  		if((curelm->field.stqe_next =				\
field             245 libdb/queue.h  		    curelm->field.stqe_next->field.stqe_next) == NULL)	\
field             246 libdb/queue.h  			(head)->stqh_last = &(curelm)->field.stqe_next;	\
field             275 libdb/queue.h  #define LIST_FOREACH(var, head, field)					\
field             276 libdb/queue.h  	for((var) = (head)->lh_first; (var); (var) = (var)->field.le_next)
field             282 libdb/queue.h  #define LIST_INSERT_AFTER(listelm, elm, field) do {			\
field             283 libdb/queue.h  	if (((elm)->field.le_next = (listelm)->field.le_next) != NULL)	\
field             284 libdb/queue.h  		(listelm)->field.le_next->field.le_prev =		\
field             285 libdb/queue.h  		    &(elm)->field.le_next;				\
field             286 libdb/queue.h  	(listelm)->field.le_next = (elm);				\
field             287 libdb/queue.h  	(elm)->field.le_prev = &(listelm)->field.le_next;		\
field             290 libdb/queue.h  #define LIST_INSERT_BEFORE(listelm, elm, field) do {			\
field             291 libdb/queue.h  	(elm)->field.le_prev = (listelm)->field.le_prev;		\
field             292 libdb/queue.h  	(elm)->field.le_next = (listelm);				\
field             293 libdb/queue.h  	*(listelm)->field.le_prev = (elm);				\
field             294 libdb/queue.h  	(listelm)->field.le_prev = &(elm)->field.le_next;		\
field             297 libdb/queue.h  #define LIST_INSERT_HEAD(head, elm, field) do {				\
field             298 libdb/queue.h  	if (((elm)->field.le_next = (head)->lh_first) != NULL)		\
field             299 libdb/queue.h  		(head)->lh_first->field.le_prev = &(elm)->field.le_next;\
field             301 libdb/queue.h  	(elm)->field.le_prev = &(head)->lh_first;			\
field             304 libdb/queue.h  #define LIST_NEXT(elm, field)	((elm)->field.le_next)
field             306 libdb/queue.h  #define LIST_REMOVE(elm, field) do {					\
field             307 libdb/queue.h  	if ((elm)->field.le_next != NULL)				\
field             308 libdb/queue.h  		(elm)->field.le_next->field.le_prev = 			\
field             309 libdb/queue.h  		    (elm)->field.le_prev;				\
field             310 libdb/queue.h  	*(elm)->field.le_prev = (elm)->field.le_next;			\
field             336 libdb/queue.h  #define TAILQ_FOREACH(var, head, field)					\
field             337 libdb/queue.h  	for (var = TAILQ_FIRST(head); var; var = TAILQ_NEXT(var, field))
field             339 libdb/queue.h  #define TAILQ_FOREACH_REVERSE(var, head, headname, field)		\
field             342 libdb/queue.h  	     (var) = TAILQ_PREV((var), headname, field))
field             349 libdb/queue.h  #define	TAILQ_NEXT(elm, field) ((elm)->field.tqe_next)
field             351 libdb/queue.h  #define TAILQ_PREV(elm, headname, field) \
field             352 libdb/queue.h  	(*(((struct headname *)((elm)->field.tqe_prev))->tqh_last))
field             359 libdb/queue.h  #define TAILQ_INSERT_HEAD(head, elm, field) do {			\
field             360 libdb/queue.h  	if (((elm)->field.tqe_next = (head)->tqh_first) != NULL)	\
field             361 libdb/queue.h  		(head)->tqh_first->field.tqe_prev =			\
field             362 libdb/queue.h  		    &(elm)->field.tqe_next;				\
field             364 libdb/queue.h  		(head)->tqh_last = &(elm)->field.tqe_next;		\
field             366 libdb/queue.h  	(elm)->field.tqe_prev = &(head)->tqh_first;			\
field             369 libdb/queue.h  #define TAILQ_INSERT_TAIL(head, elm, field) do {			\
field             370 libdb/queue.h  	(elm)->field.tqe_next = NULL;					\
field             371 libdb/queue.h  	(elm)->field.tqe_prev = (head)->tqh_last;			\
field             373 libdb/queue.h  	(head)->tqh_last = &(elm)->field.tqe_next;			\
field             376 libdb/queue.h  #define TAILQ_INSERT_AFTER(head, listelm, elm, field) do {		\
field             377 libdb/queue.h  	if (((elm)->field.tqe_next = (listelm)->field.tqe_next) != NULL)\
field             378 libdb/queue.h  		(elm)->field.tqe_next->field.tqe_prev = 		\
field             379 libdb/queue.h  		    &(elm)->field.tqe_next;				\
field             381 libdb/queue.h  		(head)->tqh_last = &(elm)->field.tqe_next;		\
field             382 libdb/queue.h  	(listelm)->field.tqe_next = (elm);				\
field             383 libdb/queue.h  	(elm)->field.tqe_prev = &(listelm)->field.tqe_next;		\
field             386 libdb/queue.h  #define TAILQ_INSERT_BEFORE(listelm, elm, field) do {			\
field             387 libdb/queue.h  	(elm)->field.tqe_prev = (listelm)->field.tqe_prev;		\
field             388 libdb/queue.h  	(elm)->field.tqe_next = (listelm);				\
field             389 libdb/queue.h  	*(listelm)->field.tqe_prev = (elm);				\
field             390 libdb/queue.h  	(listelm)->field.tqe_prev = &(elm)->field.tqe_next;		\
field             393 libdb/queue.h  #define TAILQ_REMOVE(head, elm, field) do {				\
field             394 libdb/queue.h  	if (((elm)->field.tqe_next) != NULL)				\
field             395 libdb/queue.h  		(elm)->field.tqe_next->field.tqe_prev = 		\
field             396 libdb/queue.h  		    (elm)->field.tqe_prev;				\
field             398 libdb/queue.h  		(head)->tqh_last = (elm)->field.tqe_prev;		\
field             399 libdb/queue.h  	*(elm)->field.tqe_prev = (elm)->field.tqe_next;			\
field             424 libdb/queue.h  #define CIRCLEQ_FOREACH(var, head, field)				\
field             427 libdb/queue.h  	    (var) = (var)->field.cqe_next)
field             429 libdb/queue.h  #define CIRCLEQ_FOREACH_REVERSE(var, head, field)			\
field             432 libdb/queue.h  	    (var) = (var)->field.cqe_prev)
field             439 libdb/queue.h  #define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do {		\
field             440 libdb/queue.h  	(elm)->field.cqe_next = (listelm)->field.cqe_next;		\
field             441 libdb/queue.h  	(elm)->field.cqe_prev = (listelm);				\
field             442 libdb/queue.h  	if ((listelm)->field.cqe_next == (void *)(head))		\
field             445 libdb/queue.h  		(listelm)->field.cqe_next->field.cqe_prev = (elm);	\
field             446 libdb/queue.h  	(listelm)->field.cqe_next = (elm);				\
field             449 libdb/queue.h  #define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do {		\
field             450 libdb/queue.h  	(elm)->field.cqe_next = (listelm);				\
field             451 libdb/queue.h  	(elm)->field.cqe_prev = (listelm)->field.cqe_prev;		\
field             452 libdb/queue.h  	if ((listelm)->field.cqe_prev == (void *)(head))		\
field             455 libdb/queue.h  		(listelm)->field.cqe_prev->field.cqe_next = (elm);	\
field             456 libdb/queue.h  	(listelm)->field.cqe_prev = (elm);				\
field             459 libdb/queue.h  #define CIRCLEQ_INSERT_HEAD(head, elm, field) do {			\
field             460 libdb/queue.h  	(elm)->field.cqe_next = (head)->cqh_first;			\
field             461 libdb/queue.h  	(elm)->field.cqe_prev = (void *)(head);				\
field             465 libdb/queue.h  		(head)->cqh_first->field.cqe_prev = (elm);		\
field             469 libdb/queue.h  #define CIRCLEQ_INSERT_TAIL(head, elm, field) do {			\
field             470 libdb/queue.h  	(elm)->field.cqe_next = (void *)(head);				\
field             471 libdb/queue.h  	(elm)->field.cqe_prev = (head)->cqh_last;			\
field             475 libdb/queue.h  		(head)->cqh_last->field.cqe_next = (elm);		\
field             481 libdb/queue.h  #define CIRCLEQ_NEXT(elm,field) ((elm)->field.cqe_next)
field             483 libdb/queue.h  #define CIRCLEQ_PREV(elm,field) ((elm)->field.cqe_prev)
field             485 libdb/queue.h  #define	CIRCLEQ_REMOVE(head, elm, field) do {				\
field             486 libdb/queue.h  	if ((elm)->field.cqe_next == (void *)(head))			\
field             487 libdb/queue.h  		(head)->cqh_last = (elm)->field.cqe_prev;		\
field             489 libdb/queue.h  		(elm)->field.cqe_next->field.cqe_prev =			\
field             490 libdb/queue.h  		    (elm)->field.cqe_prev;				\
field             491 libdb/queue.h  	if ((elm)->field.cqe_prev == (void *)(head))			\
field             492 libdb/queue.h  		(head)->cqh_first = (elm)->field.cqe_next;		\
field             494 libdb/queue.h  		(elm)->field.cqe_prev->field.cqe_next =			\
field             495 libdb/queue.h  		    (elm)->field.cqe_next;				\