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