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