Lines Matching refs:attr
55 u32 *attr; in fm10k_tlv_attr_put_null_string() local
61 attr = &msg[FM10K_TLV_DWORD_LEN(*msg)]; in fm10k_tlv_attr_put_null_string()
67 attr[len / 4] = attr_data; in fm10k_tlv_attr_put_null_string()
79 attr[(len + 3) / 4] = attr_data; in fm10k_tlv_attr_put_null_string()
83 attr[0] = len | attr_id; in fm10k_tlv_attr_put_null_string()
101 s32 fm10k_tlv_attr_get_null_string(u32 *attr, unsigned char *string) in fm10k_tlv_attr_get_null_string() argument
106 if (!string || !attr) in fm10k_tlv_attr_get_null_string()
109 len = *attr >> FM10K_TLV_LEN_SHIFT; in fm10k_tlv_attr_get_null_string()
110 attr++; in fm10k_tlv_attr_get_null_string()
113 string[len] = (u8)(attr[len / 4] >> (8 * (len % 4))); in fm10k_tlv_attr_get_null_string()
132 u32 *attr; in fm10k_tlv_attr_put_mac_vlan() local
138 attr = &msg[FM10K_TLV_DWORD_LEN(*msg)]; in fm10k_tlv_attr_put_mac_vlan()
141 attr[0] = len | attr_id; in fm10k_tlv_attr_put_mac_vlan()
144 attr[1] = le32_to_cpu(*(const __le32 *)&mac_addr[0]); in fm10k_tlv_attr_put_mac_vlan()
145 attr[2] = le16_to_cpu(*(const __le16 *)&mac_addr[4]); in fm10k_tlv_attr_put_mac_vlan()
146 attr[2] |= (u32)vlan << 16; in fm10k_tlv_attr_put_mac_vlan()
165 s32 fm10k_tlv_attr_get_mac_vlan(u32 *attr, u8 *mac_addr, u16 *vlan) in fm10k_tlv_attr_get_mac_vlan() argument
168 if (!mac_addr || !attr) in fm10k_tlv_attr_get_mac_vlan()
171 *(__le32 *)&mac_addr[0] = cpu_to_le32(attr[1]); in fm10k_tlv_attr_get_mac_vlan()
172 *(__le16 *)&mac_addr[4] = cpu_to_le16((u16)(attr[2])); in fm10k_tlv_attr_get_mac_vlan()
173 *vlan = (u16)(attr[2] >> 16); in fm10k_tlv_attr_get_mac_vlan()
216 u32 *attr; in fm10k_tlv_attr_put_value() local
222 attr = &msg[FM10K_TLV_DWORD_LEN(*msg)]; in fm10k_tlv_attr_put_value()
225 attr[1] = (u32)value & ((0x1ul << (8 * len)) - 1); in fm10k_tlv_attr_put_value()
227 attr[1] = (u32)value; in fm10k_tlv_attr_put_value()
229 attr[2] = (u32)(value >> 32); in fm10k_tlv_attr_put_value()
234 attr[0] = len | attr_id; in fm10k_tlv_attr_put_value()
254 s32 fm10k_tlv_attr_get_value(u32 *attr, void *value, u32 len) in fm10k_tlv_attr_get_value() argument
257 if (!attr || !value) in fm10k_tlv_attr_get_value()
260 if ((*attr >> FM10K_TLV_LEN_SHIFT) != len) in fm10k_tlv_attr_get_value()
264 *(u64 *)value = ((u64)attr[2] << 32) | attr[1]; in fm10k_tlv_attr_get_value()
266 *(u32 *)value = attr[1]; in fm10k_tlv_attr_get_value()
268 *(u16 *)value = (u16)attr[1]; in fm10k_tlv_attr_get_value()
270 *(u8 *)value = (u8)attr[1]; in fm10k_tlv_attr_get_value()
290 u32 *attr; in fm10k_tlv_attr_put_le_struct() local
297 attr = &msg[FM10K_TLV_DWORD_LEN(*msg)]; in fm10k_tlv_attr_put_le_struct()
301 attr[i + 1] = le32_to_cpu(le32_ptr[i]); in fm10k_tlv_attr_put_le_struct()
305 attr[0] = len | attr_id; in fm10k_tlv_attr_put_le_struct()
325 s32 fm10k_tlv_attr_get_le_struct(u32 *attr, void *le_struct, u32 len) in fm10k_tlv_attr_get_le_struct() argument
331 if (!le_struct || !attr) in fm10k_tlv_attr_get_le_struct()
334 if ((*attr >> FM10K_TLV_LEN_SHIFT) != len) in fm10k_tlv_attr_get_le_struct()
337 attr++; in fm10k_tlv_attr_get_le_struct()
340 le32_ptr[i] = cpu_to_le32(attr[i]); in fm10k_tlv_attr_get_le_struct()
358 u32 *attr; in fm10k_tlv_attr_nest_start() local
364 attr = &msg[FM10K_TLV_DWORD_LEN(*msg)]; in fm10k_tlv_attr_nest_start()
366 attr[0] = attr_id; in fm10k_tlv_attr_nest_start()
369 return attr; in fm10k_tlv_attr_nest_start()
383 u32 *attr; in fm10k_tlv_attr_nest_stop() local
391 attr = &msg[FM10K_TLV_DWORD_LEN(*msg)]; in fm10k_tlv_attr_nest_stop()
392 len = (attr[0] >> FM10K_TLV_LEN_SHIFT) << FM10K_TLV_LEN_SHIFT; in fm10k_tlv_attr_nest_stop()
414 static s32 fm10k_tlv_attr_validate(u32 *attr, in fm10k_tlv_attr_validate() argument
417 u32 attr_id = *attr & FM10K_TLV_ID_MASK; in fm10k_tlv_attr_validate()
418 u16 len = *attr >> FM10K_TLV_LEN_SHIFT; in fm10k_tlv_attr_validate()
421 if (*attr & (FM10K_TLV_FLAGS_MSG << FM10K_TLV_FLAGS_SHIFT)) in fm10k_tlv_attr_validate()
433 attr++; in fm10k_tlv_attr_validate()
438 (attr[(len - 1) / 4] & (0xFF << (8 * ((len - 1) % 4))))) in fm10k_tlv_attr_validate()
486 s32 fm10k_tlv_attr_parse(u32 *attr, u32 **results, in fm10k_tlv_attr_parse() argument
494 if (!attr || !results) in fm10k_tlv_attr_parse()
502 len = *attr >> FM10K_TLV_LEN_SHIFT; in fm10k_tlv_attr_parse()
510 results[0] = attr; in fm10k_tlv_attr_parse()
515 attr++; in fm10k_tlv_attr_parse()
519 attr_id = *attr & FM10K_TLV_ID_MASK; in fm10k_tlv_attr_parse()
522 err = fm10k_tlv_attr_validate(attr, tlv_attr); in fm10k_tlv_attr_parse()
529 results[attr_id] = attr; in fm10k_tlv_attr_parse()
532 offset += FM10K_TLV_DWORD_LEN(*attr) * 4; in fm10k_tlv_attr_parse()
535 attr = &attr[FM10K_TLV_DWORD_LEN(*attr)]; in fm10k_tlv_attr_parse()
587 err = fm10k_tlv_attr_parse(msg, results, data->attr); in fm10k_tlv_msg_parse()