diff options
Diffstat (limited to 'lib/typesafe.h')
| -rw-r--r-- | lib/typesafe.h | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/lib/typesafe.h b/lib/typesafe.h index 6df3a07efe..0a4ed69e4e 100644 --- a/lib/typesafe.h +++ b/lib/typesafe.h @@ -23,19 +23,23 @@ #include <assert.h> #include "compiler.h" +#ifdef __cplusplus +extern "C" { +#endif + /* generic macros for all list-like types */ -#define for_each(prefix, head, item) \ +#define frr_each(prefix, head, item) \ for (item = prefix##_first(head); item; \ item = prefix##_next(head, item)) -#define for_each_safe(prefix, head, item) \ +#define frr_each_safe(prefix, head, item) \ for (typeof(prefix##_next_safe(head, NULL)) prefix##_safe = \ prefix##_next_safe(head, \ (item = prefix##_first(head))); \ item; \ item = prefix##_safe, \ prefix##_safe = prefix##_next_safe(head, prefix##_safe)) -#define for_each_from(prefix, head, item, from) \ +#define frr_each_from(prefix, head, item, from) \ for (item = from, from = prefix##_next_safe(head, item); \ item; \ item = from, from = prefix##_next_safe(head, from)) @@ -850,6 +854,10 @@ extern void typesafe_skiplist_del(struct sskip_head *head, const struct sskip_item *b)); extern struct sskip_item *typesafe_skiplist_pop(struct sskip_head *head); +#ifdef __cplusplus +} +#endif + /* this needs to stay at the end because both files include each other. * the resolved order is typesafe.h before typerb.h */ |
