xref: /aosp_15_r20/external/libnl/lib/genl/nl-genl.h (revision 4dc78e53d49367fa8e61b07018507c90983a077d)
1 /* SPDX-License-Identifier: LGPL-2.1-only */
2 /*
3  * Copyright (c) 2003-2013 Thomas Graf <[email protected]>
4  */
5 
6 #ifndef NETLINK_GENL_PRIV_H_
7 #define NETLINK_GENL_PRIV_H_
8 
9 #include <netlink/netlink.h>
10 
11 #include "nl-priv-dynamic-core/object-api.h"
12 #include "nl-priv-dynamic-core/cache-api.h"
13 
14 #define GENL_HDRSIZE(hdrlen) (GENL_HDRLEN + (hdrlen))
15 
16 /*****************************************************************************/
17 
18 /* WARNING: this symbol is wrongly exported in libnl-genl-3.sym. */
19 extern int		genl_resolve_id(struct genl_ops *ops);
20 
21 /*****************************************************************************/
22 
23 #define GENL_OP_HAS_POLICY	1
24 #define GENL_OP_HAS_DOIT	2
25 #define GENL_OP_HAS_DUMPIT	4
26 
27 struct genl_family_grp {
28         struct genl_family      *family;        /* private */
29         struct nl_list_head     list;           /* private */
30         char                    name[GENL_NAMSIZ];
31         u_int32_t               id;
32 };
33 
34 struct genl_family
35 {
36 	NLHDR_COMMON
37 
38 	uint16_t		gf_id;
39 	char 			gf_name[GENL_NAMSIZ];
40 	uint32_t		gf_version;
41 	uint32_t		gf_hdrsize;
42 	uint32_t		gf_maxattr;
43 
44 	struct nl_list_head	gf_ops;
45 	struct nl_list_head	gf_mc_grps;
46 };
47 
48 #endif
49