Julian Anastasov | 8afcc28 | 2012-09-11 12:04:33 +0300 | [diff] [blame] | 1 | #ifndef __LIBGENL_H__ |
| 2 | #define __LIBGENL_H__ |
| 3 | |
| 4 | #include "libnetlink.h" |
| 5 | |
Julian Anastasov | 328d482 | 2012-09-12 09:15:19 +0300 | [diff] [blame] | 6 | #define GENL_REQUEST(_req, _bufsiz, _family, _hdrsiz, _ver, _cmd, _flags) \ |
Julian Anastasov | 8afcc28 | 2012-09-11 12:04:33 +0300 | [diff] [blame] | 7 | struct { \ |
| 8 | struct nlmsghdr n; \ |
| 9 | struct genlmsghdr g; \ |
| 10 | char buf[NLMSG_ALIGN(_hdrsiz) + (_bufsiz)]; \ |
Julian Anastasov | 328d482 | 2012-09-12 09:15:19 +0300 | [diff] [blame] | 11 | } _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 Anastasov | 8afcc28 | 2012-09-11 12:04:33 +0300 | [diff] [blame] | 22 | |
| 23 | extern int genl_resolve_family(struct rtnl_handle *grth, const char *family); |
| 24 | |
| 25 | #endif /* __LIBGENL_H__ */ |