td4list.h File Reference
#include <stddef.h>
Go to the source code of this file.
Defines |
#define | offsetofnew(TYPE, MEMBER) (((size_t) &((TYPE *)4)->MEMBER) - 4 ) |
#define | VIRTORG(p, st, lk) |
#define | DQUEUE(somestruct) |
#define | DQUEUE_INIT(head, st, link) (head).linkb = (head).linkf = VIRTORG(head, st, link); |
#define | DQUEUE_ADD(new, node, link) |
#define | DQUEUE_RMV(node, link) |
#define | DQUEUE_TEST(head, st, link) ((head).linkf == VIRTORG(head, st, link)) |
#define | SQUEUE_HEAD(somestruct) |
#define | SQUEUE_INIT(head, st, link) |
#define | SQUEUE_ADD(new, head, link) |
#define | SQUEUE_TEST(head) (head).lifot |
#define | SQUEUE_RMV(result, head, st, link) |
Define Documentation
#define DQUEUE |
( |
somestruct |
|
) |
|
Value:struct { \
somestruct *linkf; \
somestruct *linkb; \
}
Definition at line 42 of file td4list.h.
#define DQUEUE_ADD |
( |
new, |
|
|
node, |
|
|
link |
|
) |
|
Value:do \
{ \
(new)->link.linkf = (node)->link.linkf; \
(new)->link.linkb = (node); \
(node)->link.linkf->link.linkb = (new); \
(node)->link.linkf = (new); \
} while(0)
Definition at line 53 of file td4list.h.
#define DQUEUE_INIT |
( |
head, |
|
|
st, |
|
|
link |
|
) |
(head).linkb = (head).linkf = VIRTORG(head, st, link); |
#define DQUEUE_RMV |
( |
node, |
|
|
link |
|
) |
|
Value:do \
{ \
(node)->link.linkb->link.linkf = (node)->link.linkf; \
(node)->link.linkf->link.linkb = (node)->link.linkb; \
} while(0)
Definition at line 63 of file td4list.h.
#define DQUEUE_TEST |
( |
head, |
|
|
st, |
|
|
link |
|
) |
((head).linkf == VIRTORG(head, st, link)) |
#define offsetofnew |
( |
TYPE, |
|
|
MEMBER |
|
) |
(((size_t) &((TYPE *)4)->MEMBER) - 4 ) |
#define SQUEUE_ADD |
( |
new, |
|
|
head, |
|
|
link |
|
) |
|
Value:(new)->link = NULL; \
(head).lifob->link = (new); \
(head).lifob = (new);
Definition at line 89 of file td4list.h.
#define SQUEUE_HEAD |
( |
somestruct |
|
) |
|
Value:struct \
{ \
somestruct *lifot; \
somestruct *lifob; \
}
Definition at line 77 of file td4list.h.
#define SQUEUE_INIT |
( |
head, |
|
|
st, |
|
|
link |
|
) |
|
#define SQUEUE_RMV |
( |
result, |
|
|
head, |
|
|
st, |
|
|
link |
|
) |
|
Value:result = (head).lifot; \
(head).lifot = result->link; \
if (((head).lifot) == NULL) \
{ \
(head).lifob = VIRTORG(head, st, link); \
}
Definition at line 106 of file td4list.h.
#define SQUEUE_TEST |
( |
head |
|
) |
(head).lifot |
#define VIRTORG |
( |
p, |
|
|
st, |
|
|
lk |
|
) |
|