Lines Matching refs:nla
460 struct nlattr *nla; in snl_parse_attrs_raw() local
462 NLA_FOREACH(nla, nla_head, len) { in snl_parse_attrs_raw()
463 if (nla->nla_len < sizeof(struct nlattr)) in snl_parse_attrs_raw()
465 int nla_type = nla->nla_type & NLA_TYPE_MASK; in snl_parse_attrs_raw()
469 if (!s->cb(ss, nla, s->arg, ptr)) in snl_parse_attrs_raw()
528 snl_attr_get_flag(struct snl_state *ss __unused, struct nlattr *nla, const void *arg __unused, in snl_attr_get_flag() argument
531 if (NLA_DATA_LEN(nla) == 0) { in snl_attr_get_flag()
539 snl_attr_get_bytes(struct snl_state *ss __unused, struct nlattr *nla, const void *arg, in snl_attr_get_bytes() argument
542 if ((size_t)NLA_DATA_LEN(nla) != (size_t)arg) in snl_attr_get_bytes()
545 memcpy(target, NLA_DATA_CONST(nla), (size_t)arg); in snl_attr_get_bytes()
551 snl_attr_get_bool(struct snl_state *ss __unused, struct nlattr *nla, in snl_attr_get_bool() argument
554 if (NLA_DATA_LEN(nla) == sizeof(bool)) { in snl_attr_get_bool()
555 *((bool *)target) = *((const bool *)NLA_DATA_CONST(nla)); in snl_attr_get_bool()
562 snl_attr_get_uint8(struct snl_state *ss __unused, struct nlattr *nla, in snl_attr_get_uint8() argument
565 if (NLA_DATA_LEN(nla) == sizeof(uint8_t)) { in snl_attr_get_uint8()
566 *((uint8_t *)target) = *((const uint8_t *)NLA_DATA_CONST(nla)); in snl_attr_get_uint8()
573 snl_attr_get_uint16(struct snl_state *ss __unused, struct nlattr *nla, in snl_attr_get_uint16() argument
576 if (NLA_DATA_LEN(nla) == sizeof(uint16_t)) { in snl_attr_get_uint16()
577 *((uint16_t *)target) = *((const uint16_t *)NLA_DATA_CONST(nla)); in snl_attr_get_uint16()
584 snl_attr_get_uint32(struct snl_state *ss __unused, struct nlattr *nla, in snl_attr_get_uint32() argument
587 if (NLA_DATA_LEN(nla) == sizeof(uint32_t)) { in snl_attr_get_uint32()
588 *((uint32_t *)target) = *((const uint32_t *)NLA_DATA_CONST(nla)); in snl_attr_get_uint32()
595 snl_attr_get_uint64(struct snl_state *ss __unused, struct nlattr *nla, in snl_attr_get_uint64() argument
598 if (NLA_DATA_LEN(nla) == sizeof(uint64_t)) { in snl_attr_get_uint64()
599 memcpy(target, NLA_DATA_CONST(nla), sizeof(uint64_t)); in snl_attr_get_uint64()
606 snl_attr_get_int8(struct snl_state *ss, struct nlattr *nla, const void *arg, in snl_attr_get_int8() argument
609 return (snl_attr_get_uint8(ss, nla, arg, target)); in snl_attr_get_int8()
613 snl_attr_get_int16(struct snl_state *ss, struct nlattr *nla, const void *arg, in snl_attr_get_int16() argument
616 return (snl_attr_get_uint16(ss, nla, arg, target)); in snl_attr_get_int16()
620 snl_attr_get_int32(struct snl_state *ss, struct nlattr *nla, const void *arg, in snl_attr_get_int32() argument
623 return (snl_attr_get_uint32(ss, nla, arg, target)); in snl_attr_get_int32()
627 snl_attr_get_int64(struct snl_state *ss, struct nlattr *nla, const void *arg, in snl_attr_get_int64() argument
630 return (snl_attr_get_uint64(ss, nla, arg, target)); in snl_attr_get_int64()
634 snl_attr_get_string(struct snl_state *ss __unused, struct nlattr *nla, in snl_attr_get_string() argument
637 size_t maxlen = NLA_DATA_LEN(nla); in snl_attr_get_string()
639 if (strnlen((char *)NLA_DATA(nla), maxlen) < maxlen) { in snl_attr_get_string()
640 *((char **)target) = (char *)NLA_DATA(nla); in snl_attr_get_string()
647 snl_attr_get_stringn(struct snl_state *ss, struct nlattr *nla, in snl_attr_get_stringn() argument
650 int maxlen = NLA_DATA_LEN(nla); in snl_attr_get_stringn()
656 memcpy(buf, NLA_DATA(nla), maxlen); in snl_attr_get_stringn()
663 snl_attr_copy_string(struct snl_state *ss, struct nlattr *nla, in snl_attr_copy_string() argument
668 if (snl_attr_get_string(ss, nla, NULL, &tmp)) { in snl_attr_copy_string()
676 snl_attr_dup_string(struct snl_state *ss __unused, struct nlattr *nla, in snl_attr_dup_string() argument
679 size_t maxlen = NLA_DATA_LEN(nla); in snl_attr_dup_string()
681 if (strnlen((char *)NLA_DATA(nla), maxlen) < maxlen) { in snl_attr_dup_string()
685 memcpy(buf, NLA_DATA(nla), maxlen); in snl_attr_dup_string()
693 snl_attr_get_nested(struct snl_state *ss, struct nlattr *nla, const void *arg, void *target) in snl_attr_get_nested() argument
698 return (snl_parse_header(ss, NLA_DATA(nla), NLA_DATA_LEN(nla), p, target)); in snl_attr_get_nested()
712 struct nlattr *nla; in snl_attr_get_parray_sz() local
734 NLA_FOREACH(nla, NLA_DATA(container_nla), NLA_DATA_LEN(container_nla)) { in snl_attr_get_parray_sz()
740 void *data = (char *)(void *)nla + data_off; in snl_attr_get_parray_sz()
741 int data_len = nla->nla_len - data_off; in snl_attr_get_parray_sz()
768 snl_attr_get_parray(struct snl_state *ss, struct nlattr *nla, const void *arg, void *target) in snl_attr_get_parray() argument
770 return (snl_attr_get_parray_sz(ss, nla, 8, arg, target)); in snl_attr_get_parray()
774 snl_attr_get_nla(struct snl_state *ss __unused, struct nlattr *nla, in snl_attr_get_nla() argument
777 *((struct nlattr **)target) = nla; in snl_attr_get_nla()
782 snl_attr_dup_nla(struct snl_state *ss, struct nlattr *nla, in snl_attr_dup_nla() argument
785 void *ptr = snl_allocz(ss, nla->nla_len); in snl_attr_dup_nla()
788 memcpy(ptr, nla, nla->nla_len); in snl_attr_dup_nla()
796 snl_attr_copy_struct(struct snl_state *ss, struct nlattr *nla, in snl_attr_copy_struct() argument
799 void *ptr = snl_allocz(ss, NLA_DATA_LEN(nla)); in snl_attr_copy_struct()
802 memcpy(ptr, NLA_DATA(nla), NLA_DATA_LEN(nla)); in snl_attr_copy_struct()
810 snl_attr_dup_struct(struct snl_state *ss, struct nlattr *nla, in snl_attr_dup_struct() argument
813 void *ptr = snl_allocz(ss, NLA_DATA_LEN(nla)); in snl_attr_dup_struct()
816 memcpy(ptr, NLA_DATA(nla), NLA_DATA_LEN(nla)); in snl_attr_dup_struct()
866 struct nlattr *nla = (struct nlattr *)target->nla_bitset_mask; in _cb_p_bitset() local
867 uint32_t data_len = NLA_DATA_LEN(nla); in _cb_p_bitset()
871 target->nla_bitset_mask = (uint32_t *)NLA_DATA(nla); in _cb_p_bitset()
875 struct nlattr *nla = (struct nlattr *)target->nla_bitset_value; in _cb_p_bitset() local
876 uint32_t data_len = NLA_DATA_LEN(nla); in _cb_p_bitset()
880 target->nla_bitset_value = (uint32_t *)NLA_DATA(nla); in _cb_p_bitset()
893 snl_attr_get_bitset_c(struct snl_state *ss, struct nlattr *nla, in snl_attr_get_bitset_c() argument
900 if (!snl_parse_header(ss, NLA_DATA(nla), NLA_DATA_LEN(nla), p, _target)) in snl_attr_get_bitset_c()
1124 struct nlattr *nla; in snl_reserve_msg_attr_raw() local
1127 nla = snl_reserve_msg_data(nw, sz, struct nlattr); in snl_reserve_msg_attr_raw()
1128 if (__predict_false(nla == NULL)) in snl_reserve_msg_attr_raw()
1130 nla->nla_type = nla_type; in snl_reserve_msg_attr_raw()
1131 nla->nla_len = sz; in snl_reserve_msg_attr_raw()
1133 return (nla); in snl_reserve_msg_attr_raw()
1148 struct nlattr *nla = (struct nlattr *)(void *)(&nw->base[nw->offset]); in snl_add_msg_attr() local
1150 nla->nla_len = attr_len + sizeof(struct nlattr); in snl_add_msg_attr()
1151 nla->nla_type = attr_type; in snl_add_msg_attr()
1155 bzero((char *)nla + required_len - 4, 4); in snl_add_msg_attr()
1157 memcpy((nla + 1), data, attr_len); in snl_add_msg_attr()
1257 struct nlattr *nla = snl_reserve_msg_data(nw, sizeof(struct nlattr), struct nlattr); in snl_add_msg_attr_nested() local
1258 if (__predict_false(nla == NULL)) in snl_add_msg_attr_nested()
1260 nla->nla_type = attrtype; in snl_add_msg_attr_nested()
1268 struct nlattr *nla = snl_restore_msg_offset(nw, off, struct nlattr); in snl_end_attr_nested() local
1269 nla->nla_len = NETLINK_ALIGN(snl_get_msg_offset(nw) - off); in snl_end_attr_nested()