From: Felix Fietkau Date: Sat, 29 Jan 2011 17:16:12 +0000 (+0100) Subject: add blobmsg_for_each_attr X-Git-Url: http://git.archive.openwrt.org/?p=project%2Flibubox.git;a=commitdiff_plain;h=2d9f917d000025eaebcccf9fca758aa8b9a4763c add blobmsg_for_each_attr --- 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