return (void *)offset;
}
+void
+blobmsg_vprintf(struct blob_buf *buf, const char *name, const char *format, va_list arg)
+{
+ va_list arg2;
+ char cbuf;
+ int len;
+
+ va_copy(arg2, arg);
+ len = vsnprintf(&cbuf, sizeof(cbuf), format, arg2);
+ va_end(arg2);
+
+ vsprintf(blobmsg_alloc_string_buffer(buf, name, len + 1), format, arg);
+ blobmsg_add_string_buffer(buf);
+}
+
+void
+blobmsg_printf(struct blob_buf *buf, const char *name, const char *format, ...)
+{
+ va_list ap;
+
+ va_start(ap, format);
+ blobmsg_vprintf(buf, name, format, ap);
+ va_end(ap);
+}
+
void *
blobmsg_alloc_string_buffer(struct blob_buf *buf, const char *name, int maxlen)
{
#ifndef __BLOBMSG_H
#define __BLOBMSG_H
+#include <stdarg.h>
#include "blob.h"
#define BLOBMSG_ALIGN 2
void *blobmsg_realloc_string_buffer(struct blob_buf *buf, int maxlen);
void blobmsg_add_string_buffer(struct blob_buf *buf);
+void blobmsg_vprintf(struct blob_buf *buf, const char *name, const char *format, va_list arg);
+void blobmsg_printf(struct blob_buf *buf, const char *name, const char *format, ...)
+ __attribute__((format(printf, 3, 4)));
+
+
/* blobmsg to json formatting */
#define blobmsg_for_each_attr(pos, attr, rem) \