aboutsummaryrefslogtreecommitdiff
path: root/src/core/list.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/list.h')
-rw-r--r--src/core/list.h28
1 files changed, 15 insertions, 13 deletions
diff --git a/src/core/list.h b/src/core/list.h
index c55870cb..f12087a2 100644
--- a/src/core/list.h
+++ b/src/core/list.h
@@ -32,23 +32,25 @@
typedef struct nni_list_node {
struct nni_list_node *ln_next;
struct nni_list_node *ln_prev;
-} *nni_list_node_t;
+} nni_list_node_t;
typedef struct nni_list {
struct nni_list_node ll_head;
size_t ll_offset;
-} *nni_list_t;
+} nni_list_t;
-extern void nni_list_init_offset(nni_list_t list, size_t offset);
+extern void nni_list_init_offset(nni_list_t *list, size_t offset);
#define NNI_LIST_INIT(list, type, field) \
- nni_list_init_offset(list, type, (size_t)&((type *)0)->field)
-extern void *nni_list_first(nni_list_t list);
-extern void *nni_list_last(nni_list_t list);
-extern void nni_list_append(nni_list_t list, void *item);
-extern void nni_list_prepend(nni_list_t list, void *item);
-extern void *nni_list_next(nni_list_t list, void *item);
-extern void *nni_list_prev(nni_list_t list, void *item);
-extern void nni_list_remove(nni_list_t list, void *item);
-extern void nni_list_node_init(nni_list_t, void *);
+ nni_list_init_offset(list, offsetof (type, field))
+extern void *nni_list_first(nni_list_t *);
+extern void *nni_list_last(nni_list_t *);
+extern void nni_list_append(nni_list_t *, void *);
+extern void nni_list_prepend(nni_list_t *, void *);
+extern void *nni_list_next(nni_list_t *, void *);
+extern void *nni_list_prev(nni_list_t *, void *);
+extern void nni_list_remove(nni_list_t *, void *);
+extern void nni_list_node_init(nni_list_t *, void *);
+#define NNI_LIST_FOREACH(l, it) \
+ for (it = nni_list_first(l); it != NULL; it = nni_list_next(l, it))
-#endif /* CORE_MSQUEUE_H */
+#endif /* CORE_LIST_H */