diff options
Diffstat (limited to 'lib/attrs.h')
-rw-r--r-- | lib/attrs.h | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/lib/attrs.h b/lib/attrs.h index e0595846..97a9630f 100644 --- a/lib/attrs.h +++ b/lib/attrs.h @@ -11,7 +11,25 @@ #include <stdint.h> #include "lib/unaligned.h" -#include "lib/route.h" + +typedef struct adata { + uint length; /* Length of data */ + byte data[0]; +} adata; + +extern const adata null_adata; /* adata of length 0 */ + +static inline struct adata * +lp_alloc_adata(struct linpool *pool, uint len) +{ + struct adata *ad = lp_alloc(pool, sizeof(struct adata) + len); + ad->length = len; + return ad; +} + +static inline int adata_same(const struct adata *a, const struct adata *b) +{ return (a->length == b->length && !memcmp(a->data, b->data, a->length)); } + /* a-path.c */ |