From 2d9f917d000025eaebcccf9fca758aa8b9a4763c Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Sat, 29 Jan 2011 18:16:12 +0100 Subject: [PATCH] add blobmsg_for_each_attr --- blobmsg.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/blobmsg.h b/blobmsg.h index 95732e3..aa1f314 100644 --- a/blobmsg.h +++ b/blobmsg.h @@ -141,4 +141,10 @@ static inline int blobmsg_buf_init(struct blob_buf *buf) char *blobmsg_format_json(struct blob_attr *attr); +#define blobmsg_for_each_attr(pos, attr, rem) \ + for (rem = blobmsg_data_len(attr), pos = blobmsg_data(attr); \ + (blob_pad_len(pos) <= rem) && \ + (blob_pad_len(pos) >= sizeof(struct blob_attr)); \ + rem -= blob_pad_len(pos), pos = blob_next(pos)) + #endif