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