bool blobmsg_check_attr_list(const struct blob_attr *attr, int type);
int blobmsg_parse(const struct blobmsg_policy *policy, int policy_len,
struct blob_attr **tb, void *data, int len);
+int blobmsg_parse_array(const struct blobmsg_policy *policy, int policy_len,
+ struct blob_attr **tb, void *data, int len);
int blobmsg_add_field(struct blob_buf *buf, int type, const char *name,
const void *data, int len);
static inline uint64_t blobmsg_get_u64(struct blob_attr *attr)
{
- return be64_to_cpu(*(uint64_t *) blobmsg_data(attr));
+ uint32_t *ptr = blobmsg_data(attr);
+ uint64_t tmp = ((uint64_t) be32_to_cpu(ptr[0])) << 32;
+ tmp |= be32_to_cpu(ptr[1]);
+ return tmp;
+}
+
+static inline char *blobmsg_get_string(struct blob_attr *attr)
+{
+ return blobmsg_data(attr);
}
void *blobmsg_alloc_string_buffer(struct blob_buf *buf, const char *name, int maxlen);