| /* SPDX-License-Identifier: GPL-2.0 */ |
| #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), \ |
| }, \ |
| } |
| |
| int genl_resolve_family(struct rtnl_handle *grth, const char *family); |
| int genl_init_handle(struct rtnl_handle *grth, const char *family, |
| int *genl_family); |
| |
| #endif /* __LIBGENL_H__ */ |