1 /* SPDX-License-Identifier: LGPL-2.1-only */ 2 /* 3 * Copyright (c) 2003-2012 Thomas Graf <[email protected]> 4 */ 5 6 #ifndef NETLINK_GENL_H_ 7 #define NETLINK_GENL_H_ 8 9 #include <netlink/netlink.h> 10 #include <netlink/msg.h> 11 #include <netlink/attr.h> 12 13 #ifdef __cplusplus 14 extern "C" { 15 #endif 16 17 extern int genl_connect(struct nl_sock *); 18 extern int genl_send_simple(struct nl_sock *, int, int, 19 int, int); 20 21 extern void * genlmsg_put(struct nl_msg *, uint32_t, uint32_t, 22 int, int, int, uint8_t, uint8_t); 23 24 extern int genlmsg_valid_hdr(struct nlmsghdr *, int); 25 extern int genlmsg_validate(struct nlmsghdr *, int, int, 26 const struct nla_policy *); 27 extern int genlmsg_parse(struct nlmsghdr *, int, struct nlattr **, 28 int, const struct nla_policy *); 29 extern struct genlmsghdr * 30 genlmsg_hdr(struct nlmsghdr *); 31 extern void * genlmsg_data(const struct genlmsghdr *); 32 extern void * genlmsg_user_hdr(const struct genlmsghdr *); 33 extern void * genlmsg_user_data(const struct genlmsghdr *, const int); 34 extern int genlmsg_user_datalen(const struct genlmsghdr *, 35 const int); 36 extern int genlmsg_len(const struct genlmsghdr *); 37 extern struct nlattr * genlmsg_attrdata(const struct genlmsghdr *, int); 38 extern int genlmsg_attrlen(const struct genlmsghdr *, int); 39 40 extern char * genl_op2name(int, int, char *, size_t); 41 42 #ifdef __cplusplus 43 } 44 #endif 45 46 #endif 47