Changeset View
Changeset View
Standalone View
Standalone View
sys/netlink/netlink_message_writer.c
| Show First 20 Lines • Show All 357 Lines • ▼ Show 20 Lines | nlmsg_reserve_data_raw(struct nl_writer *nw, size_t sz) | ||||
| data = &nb->data[nb->datalen]; | data = &nb->data[nb->datalen]; | ||||
| bzero(data, sz); | bzero(data, sz); | ||||
| nb->datalen += sz; | nb->datalen += sz; | ||||
| return (data); | return (data); | ||||
| } | } | ||||
| bool | bool | ||||
| nlattr_add(struct nl_writer *nw, int attr_type, int attr_len, const void *data) | nlattr_add(struct nl_writer *nw, uint16_t attr_type, uint16_t attr_len, | ||||
| const void *data) | |||||
| { | { | ||||
| struct nl_buf *nb = nw->buf; | struct nl_buf *nb = nw->buf; | ||||
| struct nlattr *nla; | struct nlattr *nla; | ||||
| u_int required_len; | size_t required_len; | ||||
| KASSERT(attr_len <= UINT16_MAX - sizeof(struct nlattr), | |||||
| ("%s: invalid attribute length %u", __func__, attr_len)); | |||||
| required_len = NLA_ALIGN(attr_len + sizeof(struct nlattr)); | required_len = NLA_ALIGN(attr_len + sizeof(struct nlattr)); | ||||
| if (__predict_false(nb->datalen + required_len > nb->buflen)) { | if (__predict_false(nb->datalen + required_len > nb->buflen)) { | ||||
| if (!nlmsg_refill_buffer(nw, required_len)) | if (!nlmsg_refill_buffer(nw, required_len)) | ||||
| return (false); | return (false); | ||||
| nb = nw->buf; | nb = nw->buf; | ||||
| } | } | ||||
| Show All 16 Lines | |||||