18 #include <netlink-private/genl.h>
19 #include <netlink/netlink.h>
20 #include <netlink/genl/genl.h>
21 #include <netlink/utils.h>
85 int version,
int flags)
87 struct genlmsghdr hdr = {
119 struct genlmsghdr *ghdr;
121 if (!nlmsg_valid_hdr(nlh, GENL_HDRLEN))
154 struct genlmsghdr *ghdr;
157 return -NLE_MSG_TOOSHORT;
194 struct genlmsghdr *ghdr;
197 return -NLE_MSG_TOOSHORT;
226 const struct nlmsghdr *nlh;
228 nlh = (
const struct nlmsghdr *)((
const unsigned char *) gnlh - NLMSG_HDRLEN);
229 return (nlh->nlmsg_len - GENL_HDRLEN - NLMSG_HDRLEN);
348 void *
genlmsg_put(
struct nl_msg *msg, uint32_t port, uint32_t seq,
int family,
349 int hdrlen,
int flags, uint8_t cmd, uint8_t version)
351 struct nlmsghdr *nlh;
352 struct genlmsghdr hdr = {
357 nlh =
nlmsg_put(msg, port, seq, family, GENL_HDRLEN + hdrlen, flags);
362 NL_DBG(2,
"msg %p: Added generic netlink header cmd=%d version=%d\n",
387 return ((
unsigned char *) gnlh + GENL_HDRLEN);