diff options
author | SUZUKI, Shinsuke <suz@kame.net> | 2006-03-08 05:43:11 +0000 |
---|---|---|
committer | SUZUKI, Shinsuke <suz@kame.net> | 2006-03-08 05:43:11 +0000 |
commit | b17f5f39ced4e1543211a72177293e87bfd5d95a (patch) | |
tree | c0f64faed967fa6150f6b8349827074470b128c9 | |
parent | 292dd28c72d9cea443c542bb2e26e72db437c22e (diff) |
added some missing queue-management macros to make it compilable on linux
-rw-r--r-- | CHANGES | 3 | ||||
-rw-r--r-- | common.h | 31 |
2 files changed, 34 insertions, 0 deletions
@@ -1,3 +1,6 @@ +2006-03-08 SUZUKI, Shinsuke <suz@kame.net> + * added some missing queue-management macros to make it compilable on linux + 2006-01-26 SUZUKI, Shinsuke <suz@kame.net> * supported IA-NA address-pool (contributed by: WIDE Project Secure6-WG) ToDo: IA-PD prefix-pool, write a manual @@ -47,6 +47,30 @@ #ifndef TAILQ_EMPTY #define TAILQ_EMPTY(head) ((head)->tqh_first == NULL) #endif +#ifndef TAILQ_LAST +#define TAILQ_LAST(head, headname) \ + (*(((struct headname *)((head)->tqh_last))->tqh_last)) +#endif +#ifndef TAILQ_NEXT +#define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next) +#endif +#ifndef TAILQ_PREV +#define TAILQ_PREV(elm, headname, field) \ + (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last)) +#endif +#ifndef TAILQ_FOREACH +#define TAILQ_FOREACH(var, head, field) \ + for ((var) = TAILQ_FIRST((head)); \ + (var); \ + (var) = TAILQ_NEXT((var), field)) +#endif + +#ifndef TAILQ_FOREACH_REVERSE +#define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ + for ((var) = TAILQ_LAST((head), headname); \ + (var); \ + (var) = TAILQ_PREV((var), headname, field)) +#endif /* and linux *_FIRST and *_NEXT */ #ifndef LIST_FIRST @@ -61,6 +85,13 @@ #ifndef TAILQ_NEXT #define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next) #endif +#ifndef LIST_FOREACH +#define LIST_FOREACH(var, head, field) \ + for ((var) = LIST_FIRST((head)); \ + (var); \ + (var) = LIST_NEXT((var), field)) +#endif + #ifndef SO_REUSEPORT #define SO_REUSEPORT SO_REUSEADDR |