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