elm 138 libdb/queue.h #define SLIST_INSERT_AFTER(slistelm, elm, field) do { \ elm 139 libdb/queue.h (elm)->field.sle_next = (slistelm)->field.sle_next; \ elm 140 libdb/queue.h (slistelm)->field.sle_next = (elm); \ elm 143 libdb/queue.h #define SLIST_INSERT_HEAD(head, elm, field) do { \ elm 144 libdb/queue.h (elm)->field.sle_next = (head)->slh_first; \ elm 145 libdb/queue.h (head)->slh_first = (elm); \ elm 148 libdb/queue.h #define SLIST_NEXT(elm, field) ((elm)->field.sle_next) elm 154 libdb/queue.h #define SLIST_REMOVE(head, elm, type, field) do { \ elm 155 libdb/queue.h if ((head)->slh_first == (elm)) { \ elm 160 libdb/queue.h while( curelm->field.sle_next != (elm) ) \ elm 205 libdb/queue.h #define STAILQ_INSERT_HEAD(head, elm, field) do { \ elm 206 libdb/queue.h if (((elm)->field.stqe_next = (head)->stqh_first) == NULL) \ elm 207 libdb/queue.h (head)->stqh_last = &(elm)->field.stqe_next; \ elm 208 libdb/queue.h (head)->stqh_first = (elm); \ elm 211 libdb/queue.h #define STAILQ_INSERT_TAIL(head, elm, field) do { \ elm 212 libdb/queue.h (elm)->field.stqe_next = NULL; \ elm 213 libdb/queue.h *(head)->stqh_last = (elm); \ elm 214 libdb/queue.h (head)->stqh_last = &(elm)->field.stqe_next; \ elm 217 libdb/queue.h #define STAILQ_INSERT_AFTER(head, tqelm, elm, field) do { \ elm 218 libdb/queue.h if (((elm)->field.stqe_next = (tqelm)->field.stqe_next) == NULL)\ elm 219 libdb/queue.h (head)->stqh_last = &(elm)->field.stqe_next; \ elm 220 libdb/queue.h (tqelm)->field.stqe_next = (elm); \ elm 223 libdb/queue.h #define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next) elm 231 libdb/queue.h #define STAILQ_REMOVE_HEAD_UNTIL(head, elm, field) do { \ elm 232 libdb/queue.h if (((head)->stqh_first = (elm)->field.stqe_next) == NULL) \ elm 236 libdb/queue.h #define STAILQ_REMOVE(head, elm, type, field) do { \ elm 237 libdb/queue.h if ((head)->stqh_first == (elm)) { \ elm 242 libdb/queue.h while( curelm->field.stqe_next != (elm) ) \ elm 282 libdb/queue.h #define LIST_INSERT_AFTER(listelm, elm, field) do { \ elm 283 libdb/queue.h if (((elm)->field.le_next = (listelm)->field.le_next) != NULL) \ elm 285 libdb/queue.h &(elm)->field.le_next; \ elm 286 libdb/queue.h (listelm)->field.le_next = (elm); \ elm 287 libdb/queue.h (elm)->field.le_prev = &(listelm)->field.le_next; \ elm 290 libdb/queue.h #define LIST_INSERT_BEFORE(listelm, elm, field) do { \ elm 291 libdb/queue.h (elm)->field.le_prev = (listelm)->field.le_prev; \ elm 292 libdb/queue.h (elm)->field.le_next = (listelm); \ elm 293 libdb/queue.h *(listelm)->field.le_prev = (elm); \ elm 294 libdb/queue.h (listelm)->field.le_prev = &(elm)->field.le_next; \ elm 297 libdb/queue.h #define LIST_INSERT_HEAD(head, elm, field) do { \ elm 298 libdb/queue.h if (((elm)->field.le_next = (head)->lh_first) != NULL) \ elm 299 libdb/queue.h (head)->lh_first->field.le_prev = &(elm)->field.le_next;\ elm 300 libdb/queue.h (head)->lh_first = (elm); \ elm 301 libdb/queue.h (elm)->field.le_prev = &(head)->lh_first; \ elm 304 libdb/queue.h #define LIST_NEXT(elm, field) ((elm)->field.le_next) elm 306 libdb/queue.h #define LIST_REMOVE(elm, field) do { \ elm 307 libdb/queue.h if ((elm)->field.le_next != NULL) \ elm 308 libdb/queue.h (elm)->field.le_next->field.le_prev = \ elm 309 libdb/queue.h (elm)->field.le_prev; \ elm 310 libdb/queue.h *(elm)->field.le_prev = (elm)->field.le_next; \ elm 349 libdb/queue.h #define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next) elm 351 libdb/queue.h #define TAILQ_PREV(elm, headname, field) \ elm 352 libdb/queue.h (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last)) elm 359 libdb/queue.h #define TAILQ_INSERT_HEAD(head, elm, field) do { \ elm 360 libdb/queue.h if (((elm)->field.tqe_next = (head)->tqh_first) != NULL) \ elm 362 libdb/queue.h &(elm)->field.tqe_next; \ elm 364 libdb/queue.h (head)->tqh_last = &(elm)->field.tqe_next; \ elm 365 libdb/queue.h (head)->tqh_first = (elm); \ elm 366 libdb/queue.h (elm)->field.tqe_prev = &(head)->tqh_first; \ elm 369 libdb/queue.h #define TAILQ_INSERT_TAIL(head, elm, field) do { \ elm 370 libdb/queue.h (elm)->field.tqe_next = NULL; \ elm 371 libdb/queue.h (elm)->field.tqe_prev = (head)->tqh_last; \ elm 372 libdb/queue.h *(head)->tqh_last = (elm); \ elm 373 libdb/queue.h (head)->tqh_last = &(elm)->field.tqe_next; \ elm 376 libdb/queue.h #define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ elm 377 libdb/queue.h if (((elm)->field.tqe_next = (listelm)->field.tqe_next) != NULL)\ elm 378 libdb/queue.h (elm)->field.tqe_next->field.tqe_prev = \ elm 379 libdb/queue.h &(elm)->field.tqe_next; \ elm 381 libdb/queue.h (head)->tqh_last = &(elm)->field.tqe_next; \ elm 382 libdb/queue.h (listelm)->field.tqe_next = (elm); \ elm 383 libdb/queue.h (elm)->field.tqe_prev = &(listelm)->field.tqe_next; \ elm 386 libdb/queue.h #define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \ elm 387 libdb/queue.h (elm)->field.tqe_prev = (listelm)->field.tqe_prev; \ elm 388 libdb/queue.h (elm)->field.tqe_next = (listelm); \ elm 389 libdb/queue.h *(listelm)->field.tqe_prev = (elm); \ elm 390 libdb/queue.h (listelm)->field.tqe_prev = &(elm)->field.tqe_next; \ elm 393 libdb/queue.h #define TAILQ_REMOVE(head, elm, field) do { \ elm 394 libdb/queue.h if (((elm)->field.tqe_next) != NULL) \ elm 395 libdb/queue.h (elm)->field.tqe_next->field.tqe_prev = \ elm 396 libdb/queue.h (elm)->field.tqe_prev; \ elm 398 libdb/queue.h (head)->tqh_last = (elm)->field.tqe_prev; \ elm 399 libdb/queue.h *(elm)->field.tqe_prev = (elm)->field.tqe_next; \ elm 439 libdb/queue.h #define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do { \ elm 440 libdb/queue.h (elm)->field.cqe_next = (listelm)->field.cqe_next; \ elm 441 libdb/queue.h (elm)->field.cqe_prev = (listelm); \ elm 443 libdb/queue.h (head)->cqh_last = (elm); \ elm 445 libdb/queue.h (listelm)->field.cqe_next->field.cqe_prev = (elm); \ elm 446 libdb/queue.h (listelm)->field.cqe_next = (elm); \ elm 449 libdb/queue.h #define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do { \ elm 450 libdb/queue.h (elm)->field.cqe_next = (listelm); \ elm 451 libdb/queue.h (elm)->field.cqe_prev = (listelm)->field.cqe_prev; \ elm 453 libdb/queue.h (head)->cqh_first = (elm); \ elm 455 libdb/queue.h (listelm)->field.cqe_prev->field.cqe_next = (elm); \ elm 456 libdb/queue.h (listelm)->field.cqe_prev = (elm); \ elm 459 libdb/queue.h #define CIRCLEQ_INSERT_HEAD(head, elm, field) do { \ elm 460 libdb/queue.h (elm)->field.cqe_next = (head)->cqh_first; \ elm 461 libdb/queue.h (elm)->field.cqe_prev = (void *)(head); \ elm 463 libdb/queue.h (head)->cqh_last = (elm); \ elm 465 libdb/queue.h (head)->cqh_first->field.cqe_prev = (elm); \ elm 466 libdb/queue.h (head)->cqh_first = (elm); \ elm 469 libdb/queue.h #define CIRCLEQ_INSERT_TAIL(head, elm, field) do { \ elm 470 libdb/queue.h (elm)->field.cqe_next = (void *)(head); \ elm 471 libdb/queue.h (elm)->field.cqe_prev = (head)->cqh_last; \ elm 473 libdb/queue.h (head)->cqh_first = (elm); \ elm 475 libdb/queue.h (head)->cqh_last->field.cqe_next = (elm); \ elm 476 libdb/queue.h (head)->cqh_last = (elm); \ elm 481 libdb/queue.h #define CIRCLEQ_NEXT(elm,field) ((elm)->field.cqe_next) elm 483 libdb/queue.h #define CIRCLEQ_PREV(elm,field) ((elm)->field.cqe_prev) elm 485 libdb/queue.h #define CIRCLEQ_REMOVE(head, elm, field) do { \ elm 486 libdb/queue.h if ((elm)->field.cqe_next == (void *)(head)) \ elm 487 libdb/queue.h (head)->cqh_last = (elm)->field.cqe_prev; \ elm 489 libdb/queue.h (elm)->field.cqe_next->field.cqe_prev = \ elm 490 libdb/queue.h (elm)->field.cqe_prev; \ elm 491 libdb/queue.h if ((elm)->field.cqe_prev == (void *)(head)) \ elm 492 libdb/queue.h (head)->cqh_first = (elm)->field.cqe_next; \ elm 494 libdb/queue.h (elm)->field.cqe_prev->field.cqe_next = \ elm 495 libdb/queue.h (elm)->field.cqe_next; \