blob: 2dbb4b36adcbfc9083eced4f3ac2f1e2142ce1a1 [file] [log] [blame]
Julian Anastasov8afcc282012-09-11 12:04:33 +03001#ifndef __LIBGENL_H__
2#define __LIBGENL_H__
3
4#include "libnetlink.h"
5
Julian Anastasov328d4822012-09-12 09:15:19 +03006#define GENL_REQUEST(_req, _bufsiz, _family, _hdrsiz, _ver, _cmd, _flags) \
Julian Anastasov8afcc282012-09-11 12:04:33 +03007struct { \
8 struct nlmsghdr n; \
9 struct genlmsghdr g; \
10 char buf[NLMSG_ALIGN(_hdrsiz) + (_bufsiz)]; \
Julian Anastasov328d4822012-09-12 09:15:19 +030011} _req = { \
12 .n = { \
13 .nlmsg_type = (_family), \
14 .nlmsg_flags = (_flags), \
15 .nlmsg_len = NLMSG_LENGTH(GENL_HDRLEN + (_hdrsiz)), \
16 }, \
17 .g = { \
18 .cmd = (_cmd), \
19 .version = (_ver), \
20 }, \
21}
Julian Anastasov8afcc282012-09-11 12:04:33 +030022
23extern int genl_resolve_family(struct rtnl_handle *grth, const char *family);
Sabrina Dubroca2b68cb72016-08-16 16:26:55 +020024extern int genl_init_handle(struct rtnl_handle *grth, const char *family,
25 int *genl_family);
Julian Anastasov8afcc282012-09-11 12:04:33 +030026
27#endif /* __LIBGENL_H__ */