mirror_iproute2/include/libgenl.h
Sabrina Dubroca 2b68cb77cd libgenl: introduce genl_init_handle
All users of genl have the same code to open a genl socket and resolve
the family for their specific protocol.  Introduce a helper to initialize
the handle, and use it in all the genl code.

Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
2016-08-17 13:59:21 -07:00

28 lines
728 B
C

#ifndef __LIBGENL_H__
#define __LIBGENL_H__
#include "libnetlink.h"
#define GENL_REQUEST(_req, _bufsiz, _family, _hdrsiz, _ver, _cmd, _flags) \
struct { \
struct nlmsghdr n; \
struct genlmsghdr g; \
char buf[NLMSG_ALIGN(_hdrsiz) + (_bufsiz)]; \
} _req = { \
.n = { \
.nlmsg_type = (_family), \
.nlmsg_flags = (_flags), \
.nlmsg_len = NLMSG_LENGTH(GENL_HDRLEN + (_hdrsiz)), \
}, \
.g = { \
.cmd = (_cmd), \
.version = (_ver), \
}, \
}
extern int genl_resolve_family(struct rtnl_handle *grth, const char *family);
extern int genl_init_handle(struct rtnl_handle *grth, const char *family,
int *genl_family);
#endif /* __LIBGENL_H__ */