15 if (!
length || !decoded_len)
34 const u32 max_len,
const u8 *input_buf,
u32 *consumed,
35 const u8 **entry,
u32 *entry_len)
42 if (max_len - *consumed < decoded_len)
45 *consumed += decoded_len;
46 *entry = input_buf + *consumed;
49 if (max_len - *consumed < *entry_len)
52 *consumed += *entry_len;
57 const u32 max_len,
const u8 *input_buf,
u32 *consumed,
67 if (*consumed >= max_len)
70 type = input_buf[*consumed];
86 return callback(key, key_len,
value, value_len,
static int vpd_decode_len(const u32 max_len, const u8 *in, u32 *length, u32 *decoded_len)
int vpd_decode_string(const u32 max_len, const u8 *input_buf, u32 *consumed, vpd_decode_callback callback, void *callback_arg)
static int vpd_decode_entry(const u32 max_len, const u8 *input_buf, u32 *consumed, const u8 **entry, u32 *entry_len)
int vpd_decode_callback(const u8 *key, u32 key_len, const u8 *value, u32 value_len, void *arg)