1 /* 2 * netlink/genl/genl.h Generic Netlink 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation version 2.1 7 * of the License. 8 * 9 * Copyright (c) 2003-2012 Thomas Graf <tgraf (at) suug.ch> 10 */ 11 12 #ifndef NETLINK_GENL_H_ 13 #define NETLINK_GENL_H_ 14 15 #include <netlink/netlink.h> 16 #include <netlink/msg.h> 17 #include <netlink/attr.h> 18 19 #ifdef __cplusplus 20 extern "C" { 21 #endif 22 23 extern int genl_connect(struct nl_sock *); 24 extern int genl_send_simple(struct nl_sock *, int, int, 25 int, int); 26 27 extern void * genlmsg_put(struct nl_msg *, uint32_t, uint32_t, 28 int, int, int, uint8_t, uint8_t); 29 30 extern int genlmsg_valid_hdr(struct nlmsghdr *, int); 31 extern int genlmsg_validate(struct nlmsghdr *, int, int, 32 struct nla_policy *); 33 extern int genlmsg_parse(struct nlmsghdr *, int, struct nlattr **, 34 int, struct nla_policy *); 35 extern struct genlmsghdr * 36 genlmsg_hdr(struct nlmsghdr *); 37 extern void * genlmsg_data(const struct genlmsghdr *); 38 extern void * genlmsg_user_hdr(const struct genlmsghdr *); 39 extern void * genlmsg_user_data(const struct genlmsghdr *, const int); 40 extern int genlmsg_user_datalen(const struct genlmsghdr *, 41 const int); 42 extern int genlmsg_len(const struct genlmsghdr *); 43 extern struct nlattr * genlmsg_attrdata(const struct genlmsghdr *, int); 44 extern int genlmsg_attrlen(const struct genlmsghdr *, int); 45 46 extern char * genl_op2name(int, int, char *, size_t); 47 48 #ifdef __cplusplus 49 } 50 #endif 51 52 #endif 53