Lines Matching refs:len
34 hdr.len = cpu_to_le16(1); in fbnic_tlv_msg_alloc()
59 attr_max_len -= le16_to_cpu(msg->hdr.len) * sizeof(u32); in fbnic_tlv_attr_put_flag()
64 attr = &msg[le16_to_cpu(msg->hdr.len)]; in fbnic_tlv_attr_put_flag()
68 hdr.len = cpu_to_le16(sizeof(hdr)); in fbnic_tlv_attr_put_flag()
71 le16_add_cpu(&msg->hdr.len, in fbnic_tlv_attr_put_flag()
72 FBNIC_TLV_MSG_SIZE(le16_to_cpu(hdr.len))); in fbnic_tlv_attr_put_flag()
95 const void *value, const int len) in fbnic_tlv_attr_put_value() argument
101 attr_max_len -= le16_to_cpu(msg->hdr.len) * sizeof(u32); in fbnic_tlv_attr_put_value()
102 if (attr_max_len < sizeof(*attr) + len) in fbnic_tlv_attr_put_value()
106 attr = &msg[le16_to_cpu(msg->hdr.len)]; in fbnic_tlv_attr_put_value()
110 hdr.len = cpu_to_le16(sizeof(hdr) + len); in fbnic_tlv_attr_put_value()
113 if (len % sizeof(hdr)) in fbnic_tlv_attr_put_value()
114 attr->value[len / sizeof(hdr)] = 0; in fbnic_tlv_attr_put_value()
117 memcpy(attr->value, value, len); in fbnic_tlv_attr_put_value()
120 le16_add_cpu(&msg->hdr.len, in fbnic_tlv_attr_put_value()
121 FBNIC_TLV_MSG_SIZE(le16_to_cpu(hdr.len))); in fbnic_tlv_attr_put_value()
139 s64 value, const int len) in __fbnic_tlv_attr_put_int() argument
143 return fbnic_tlv_attr_put_value(msg, attr_id, &le64_value, len); in __fbnic_tlv_attr_put_int()
190 attr_max_len -= le16_to_cpu(msg->hdr.len) * sizeof(u32); in fbnic_tlv_attr_put_string()
211 le16_to_cpu(attr->hdr.len) - sizeof(*attr)); in fbnic_tlv_attr_get_unsigned()
232 shift = (8 + sizeof(*attr) - le16_to_cpu(attr->hdr.len)) * 8; in fbnic_tlv_attr_get_signed()
236 le16_to_cpu(attr->hdr.len) - sizeof(*attr)); in fbnic_tlv_attr_get_signed()
254 size_t srclen, len; in fbnic_tlv_attr_get_string() local
263 srclen = le16_to_cpu(attr->hdr.len) - sizeof(*attr); in fbnic_tlv_attr_get_string()
268 len = dstsize - 1; in fbnic_tlv_attr_get_string()
271 len = srclen; in fbnic_tlv_attr_get_string()
272 ret = len; in fbnic_tlv_attr_get_string()
275 memcpy(dst, &attr->value, len); in fbnic_tlv_attr_get_string()
277 memset(dst + len, 0, dstsize - len); in fbnic_tlv_attr_get_string()
296 struct fbnic_tlv_msg *attr = &msg[le16_to_cpu(msg->hdr.len)]; in fbnic_tlv_attr_nest_start()
300 attr_max_len -= le16_to_cpu(msg->hdr.len) * sizeof(u32); in fbnic_tlv_attr_nest_start()
311 hdr.len = cpu_to_le16(1); in fbnic_tlv_attr_nest_start()
327 struct fbnic_tlv_msg *attr = &msg[le16_to_cpu(msg->hdr.len)]; in fbnic_tlv_attr_nest_stop()
328 u16 len = le16_to_cpu(attr->hdr.len); in fbnic_tlv_attr_nest_stop() local
331 if (len <= 1) in fbnic_tlv_attr_nest_stop()
334 le16_add_cpu(&msg->hdr.len, len); in fbnic_tlv_attr_nest_stop()
337 attr->hdr.len = cpu_to_le16(len * sizeof(u32)); in fbnic_tlv_attr_nest_stop()
344 u16 len = le16_to_cpu(attr->hdr.len) - sizeof(*attr); in fbnic_tlv_attr_validate() local
358 return le16_to_cpu(attr->hdr.len); in fbnic_tlv_attr_validate()
364 if (offset_in_page(attr) + len > PAGE_SIZE - sizeof(*attr)) in fbnic_tlv_attr_validate()
369 if (!len || len > tlv_index->len) in fbnic_tlv_attr_validate()
371 if (((char *)value)[len - 1]) in fbnic_tlv_attr_validate()
375 if (len) in fbnic_tlv_attr_validate()
380 if (tlv_index->len > sizeof(__le64)) in fbnic_tlv_attr_validate()
384 if (!len || len > tlv_index->len) in fbnic_tlv_attr_validate()
389 if (len % 4) in fbnic_tlv_attr_validate()
413 int fbnic_tlv_attr_parse_array(struct fbnic_tlv_msg *attr, int len, in fbnic_tlv_attr_parse_array() argument
424 if (!len) in fbnic_tlv_attr_parse_array()
428 while (len > 0) { in fbnic_tlv_attr_parse_array()
446 attr_len = FBNIC_TLV_MSG_SIZE(le16_to_cpu(attr->hdr.len)); in fbnic_tlv_attr_parse_array()
447 len -= attr_len; in fbnic_tlv_attr_parse_array()
451 return len == 0 ? 0 : -EINVAL; in fbnic_tlv_attr_parse_array()
466 int fbnic_tlv_attr_parse(struct fbnic_tlv_msg *attr, int len, in fbnic_tlv_attr_parse() argument
474 if (!len) in fbnic_tlv_attr_parse()
478 while (len > 0) { in fbnic_tlv_attr_parse()
496 attr_len = FBNIC_TLV_MSG_SIZE(le16_to_cpu(attr->hdr.len)); in fbnic_tlv_attr_parse()
497 len -= attr_len; in fbnic_tlv_attr_parse()
501 return len == 0 ? 0 : -EINVAL; in fbnic_tlv_attr_parse()
525 if (le16_to_cpu(msg->hdr.len) > PAGE_SIZE / sizeof(u32)) in fbnic_tlv_msg_parse()
534 err = fbnic_tlv_attr_parse(&msg[1], le16_to_cpu(msg->hdr.len) - 1, in fbnic_tlv_msg_parse()