Home | History | Annotate | Download | only in lib

Lines Matching refs:nlh

101  * @arg nlh		Netlink message header
105 void *nlmsg_data(const struct nlmsghdr *nlh)
107 return (unsigned char *) nlh + NLMSG_HDRLEN;
110 void *nlmsg_tail(const struct nlmsghdr *nlh)
112 return (unsigned char *) nlh + NLMSG_ALIGN(nlh->nlmsg_len);
117 * @arg nlh Netlink message header
121 int nlmsg_datalen(const struct nlmsghdr *nlh)
123 return nlh->nlmsg_len - NLMSG_HDRLEN;
126 static int nlmsg_len(const struct nlmsghdr *nlh)
128 return nlmsg_datalen(nlh);
140 * @arg nlh netlink message header
143 struct nlattr *nlmsg_attrdata(const struct nlmsghdr *nlh, int hdrlen)
145 unsigned char *data = nlmsg_data(nlh);
151 * @arg nlh netlink message header
154 int nlmsg_attrlen(const struct nlmsghdr *nlh, int hdrlen)
156 return max_t(int, nlmsg_len(nlh) - NLMSG_ALIGN(hdrlen), 0);
166 int nlmsg_valid_hdr(const struct nlmsghdr *nlh, int hdrlen)
168 if (nlh->nlmsg_len < nlmsg_msg_size(hdrlen))
176 * @arg nlh netlink message header
179 int nlmsg_ok(const struct nlmsghdr *nlh, int remaining)
182 nlh->nlmsg_len >= sizeof(struct nlmsghdr) &&
183 nlh->nlmsg_len <= remaining);
188 * @arg nlh netlink message header
194 struct nlmsghdr *nlmsg_next(struct nlmsghdr *nlh, int *remaining)
196 int totlen = NLMSG_ALIGN(nlh->nlmsg_len);
200 return (struct nlmsghdr *) ((unsigned char *) nlh + totlen);
205 * @arg nlh netlink message header
213 int nlmsg_parse(struct nlmsghdr *nlh, int hdrlen, struct nlattr *tb[],
216 if (!nlmsg_valid_hdr(nlh, hdrlen))
219 return nla_parse(tb, maxtype, nlmsg_attrdata(nlh, hdrlen),
220 nlmsg_attrlen(nlh, hdrlen), policy);
225 * @arg nlh netlink message header
231 struct nlattr *nlmsg_find_attr(struct nlmsghdr *nlh, int hdrlen, int attrtype)
233 return nla_find(nlmsg_attrdata(nlh, hdrlen),
234 nlmsg_attrlen(nlh, hdrlen), attrtype);
239 * @arg nlh netlinket message header
244 int nlmsg_validate(struct nlmsghdr *nlh, int hdrlen, int maxtype,
247 if (!nlmsg_valid_hdr(nlh, hdrlen))
250 return nla_validate(nlmsg_attrdata(nlh, hdrlen),
251 nlmsg_attrlen(nlh, hdrlen), maxtype, policy);
349 struct nlmsghdr nlh = {
354 msg = nlmsg_inherit(&nlh);
509 struct nlmsghdr *nlh;
514 nlh = (struct nlmsghdr *) n->nm_nlh;
515 nlh->nlmsg_type = type;
516 nlh->nlmsg_flags = flags;
517 nlh->nlmsg_pid = pid;
518 nlh->nlmsg_seq = seq;
527 return nlh;
798 struct nlmsghdr *nlh = nlmsg_hdr(msg);
803 fprintf(ofd, " .nlmsg_len = %d\n", nlh->nlmsg_len);
805 ops = nl_cache_ops_associate_safe(nlmsg_get_proto(msg), nlh->nlmsg_type);
807 mt = nl_msgtype_lookup(ops, nlh->nlmsg_type);
814 nl_nlmsgtype2str(nlh->nlmsg_type, buf, sizeof(buf));
816 fprintf(ofd, " .type = %d <%s>\n", nlh->nlmsg_type, buf);
817 fprintf(ofd, " .flags = %d <%s>\n", nlh->nlmsg_flags,
818 nl_nlmsg_flags2str(nlh->nlmsg_flags, buf, sizeof(buf)));
819 fprintf(ofd, " .seq = %d\n", nlh->nlmsg_seq);
820 fprintf(ofd, " .port = %d\n", nlh->nlmsg_pid);