27#ifndef XCOM_STANDALONE
48#define FWD_ITER(head, type, action) \
50 linkage *p = link_first(head); \
51 while (p != (head)) { \
52 linkage *_next = link_first(p); \
54 type *link_iter = (type *)p; \
63#define REV_ITER(head, type, action) \
65 linkage *p = link_last(head); \
66 while (p != (head)) { \
67 linkage *_next = link_last(p); \
69 type *link_iter = (type *)p; \
78#define container_of(ptr, type, member) \
79 ((type *)(((char *)(ptr)) - offsetof(type, member)))
81#define NULL_TYPE 0xdefaced
83#ifdef USE_LINK_SANITY_CHECK
84#define LINK_SANITY_CHECK(x) \
89#define TYPE_SANITY_CHECK(x, y) \
90 { assert((x)->type == (y)->type); }
92#define LINK_SANITY_CHECK(x)
93#define TYPE_SANITY_CHECK(x, y)
96#define link_into(self, s) link_precede(self, s)
118 self->suc =
self->pred =
self;
128 self->suc->pred =
self->pred;
129 self->pred->suc =
self->suc;
130 self->suc =
self->pred =
self;
Header for compiler-dependent features.
required string type
Definition: replication_group_member_actions.proto:33
#define FWD_ITER(head, type, action)
Definition: simset.h:48
static linkage * link_init(linkage *self, unsigned int type)
Definition: simset.h:115
#define LINK_SANITY_CHECK(x)
Definition: simset.h:92
static linkage * link_extract_last(linkage *self)
Definition: simset.h:109
static void link_precede(linkage *self, linkage *ptr)
Definition: simset.h:149
char * dbg_linkage(linkage *self)
Definition: simset.cc:34
#define TYPE_SANITY_CHECK(x, y)
Definition: simset.h:93
static linkage * link_last(linkage *self)
Definition: simset.h:103
static linkage * link_out(linkage *self)
Definition: simset.h:123
static linkage * link_first(linkage *self)
Definition: simset.h:101
static int cardinal(linkage *self)
Definition: simset.h:163
static linkage * link_extract_first(linkage *self)
Definition: simset.h:105
static void link_follow(linkage *self, linkage *ptr)
Definition: simset.h:136
static int link_empty(linkage *self)
Definition: simset.h:113
linkage * pred
Definition: simset.h:39
unsigned int type
Definition: simset.h:36
linkage * suc
Definition: simset.h:38
int n
Definition: xcom_base.cc:508