diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/ouroboros/hash.h | 1 | ||||
-rw-r--r-- | include/ouroboros/list.h | 24 |
2 files changed, 14 insertions, 11 deletions
diff --git a/include/ouroboros/hash.h b/include/ouroboros/hash.h index eeca8a28..456a93f3 100644 --- a/include/ouroboros/hash.h +++ b/include/ouroboros/hash.h @@ -31,7 +31,6 @@ #include <ouroboros/md5.h> #include <ouroboros/sha3.h> - #define HASH_FMT "%02x%02x%02x%02x" #define HASH_VAL(hash) \ (betoh32(*(uint32_t *) hash) & 0xFF000000) >> 24, \ diff --git a/include/ouroboros/list.h b/include/ouroboros/list.h index 5da93b9a..8811e291 100644 --- a/include/ouroboros/list.h +++ b/include/ouroboros/list.h @@ -21,28 +21,32 @@ * 02110-1301 USA */ -#ifndef OUROBOROS_LIST_H -#define OUROBOROS_LIST_H +#ifndef OUROBOROS_LIB_LIST_H +#define OUROBOROS_LIB_LIST_H #include <stdbool.h> +#include <stdint.h> #include <sys/types.h> struct list_head { - struct list_head * nxt, * prv; + struct list_head * nxt; + struct list_head * prv; }; #define list_entry(ptr, type, mbr) \ - ((type *)((char *)(ptr)-(size_t)(&((type *)0)->mbr))) + ((type *)((uint8_t *)(ptr)-(size_t)(&((type *)0)->mbr))) -#define list_first_entry(ptr, type, mbr) \ +#define list_first_entry(ptr, type, mbr) \ list_entry((ptr)->nxt, type, mbr) -#define list_for_each(p, h) \ +#define list_last_entry(ptr, type, mbr) \ + list_entry((ptr)->prv, type, mbr) + +#define list_for_each(p, h) \ for (p = (h)->nxt; p != (h); p = p->nxt) -#define list_for_each_safe(p, t, h) \ - for (p = (h)->nxt, t = p->nxt; p != (h); \ - p = t, t = p->nxt) +#define list_for_each_safe(p, t, h) \ + for (p = (h)->nxt, t = p->nxt; p != (h); p = t, t = p->nxt) void list_head_init(struct list_head * h); @@ -59,4 +63,4 @@ void list_move(struct list_head * dst, bool list_is_empty(struct list_head * h); -#endif +#endif /* OUROBOROS_LIB_LIST_H */ |