lin
2025-07-30 fcd736bf35fd93b563e9bbf594f2aa7b62028cc9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#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__ */