1*de1e4e89SAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2*de1e4e89SAndroid Build Coastguard Worker #ifndef __LINUX_GENERIC_NETLINK_H 3*de1e4e89SAndroid Build Coastguard Worker #define __LINUX_GENERIC_NETLINK_H 4*de1e4e89SAndroid Build Coastguard Worker 5*de1e4e89SAndroid Build Coastguard Worker #include <linux/types.h> 6*de1e4e89SAndroid Build Coastguard Worker #include <linux/netlink.h> 7*de1e4e89SAndroid Build Coastguard Worker 8*de1e4e89SAndroid Build Coastguard Worker #define GENL_NAMSIZ 16 /* length of family name */ 9*de1e4e89SAndroid Build Coastguard Worker 10*de1e4e89SAndroid Build Coastguard Worker #define GENL_MIN_ID NLMSG_MIN_TYPE 11*de1e4e89SAndroid Build Coastguard Worker #define GENL_MAX_ID 1023 12*de1e4e89SAndroid Build Coastguard Worker 13*de1e4e89SAndroid Build Coastguard Worker struct genlmsghdr { 14*de1e4e89SAndroid Build Coastguard Worker __u8 cmd; 15*de1e4e89SAndroid Build Coastguard Worker __u8 version; 16*de1e4e89SAndroid Build Coastguard Worker __u16 reserved; 17*de1e4e89SAndroid Build Coastguard Worker }; 18*de1e4e89SAndroid Build Coastguard Worker 19*de1e4e89SAndroid Build Coastguard Worker #define GENL_HDRLEN NLMSG_ALIGN(sizeof(struct genlmsghdr)) 20*de1e4e89SAndroid Build Coastguard Worker 21*de1e4e89SAndroid Build Coastguard Worker #define GENL_ADMIN_PERM 0x01 22*de1e4e89SAndroid Build Coastguard Worker #define GENL_CMD_CAP_DO 0x02 23*de1e4e89SAndroid Build Coastguard Worker #define GENL_CMD_CAP_DUMP 0x04 24*de1e4e89SAndroid Build Coastguard Worker #define GENL_CMD_CAP_HASPOL 0x08 25*de1e4e89SAndroid Build Coastguard Worker #define GENL_UNS_ADMIN_PERM 0x10 26*de1e4e89SAndroid Build Coastguard Worker 27*de1e4e89SAndroid Build Coastguard Worker /* 28*de1e4e89SAndroid Build Coastguard Worker * List of reserved static generic netlink identifiers: 29*de1e4e89SAndroid Build Coastguard Worker */ 30*de1e4e89SAndroid Build Coastguard Worker #define GENL_ID_CTRL NLMSG_MIN_TYPE 31*de1e4e89SAndroid Build Coastguard Worker #define GENL_ID_VFS_DQUOT (NLMSG_MIN_TYPE + 1) 32*de1e4e89SAndroid Build Coastguard Worker #define GENL_ID_PMCRAID (NLMSG_MIN_TYPE + 2) 33*de1e4e89SAndroid Build Coastguard Worker /* must be last reserved + 1 */ 34*de1e4e89SAndroid Build Coastguard Worker #define GENL_START_ALLOC (NLMSG_MIN_TYPE + 3) 35*de1e4e89SAndroid Build Coastguard Worker 36*de1e4e89SAndroid Build Coastguard Worker /************************************************************************** 37*de1e4e89SAndroid Build Coastguard Worker * Controller 38*de1e4e89SAndroid Build Coastguard Worker **************************************************************************/ 39*de1e4e89SAndroid Build Coastguard Worker 40*de1e4e89SAndroid Build Coastguard Worker enum { 41*de1e4e89SAndroid Build Coastguard Worker CTRL_CMD_UNSPEC, 42*de1e4e89SAndroid Build Coastguard Worker CTRL_CMD_NEWFAMILY, 43*de1e4e89SAndroid Build Coastguard Worker CTRL_CMD_DELFAMILY, 44*de1e4e89SAndroid Build Coastguard Worker CTRL_CMD_GETFAMILY, 45*de1e4e89SAndroid Build Coastguard Worker CTRL_CMD_NEWOPS, 46*de1e4e89SAndroid Build Coastguard Worker CTRL_CMD_DELOPS, 47*de1e4e89SAndroid Build Coastguard Worker CTRL_CMD_GETOPS, 48*de1e4e89SAndroid Build Coastguard Worker CTRL_CMD_NEWMCAST_GRP, 49*de1e4e89SAndroid Build Coastguard Worker CTRL_CMD_DELMCAST_GRP, 50*de1e4e89SAndroid Build Coastguard Worker CTRL_CMD_GETMCAST_GRP, /* unused */ 51*de1e4e89SAndroid Build Coastguard Worker __CTRL_CMD_MAX, 52*de1e4e89SAndroid Build Coastguard Worker }; 53*de1e4e89SAndroid Build Coastguard Worker 54*de1e4e89SAndroid Build Coastguard Worker #define CTRL_CMD_MAX (__CTRL_CMD_MAX - 1) 55*de1e4e89SAndroid Build Coastguard Worker 56*de1e4e89SAndroid Build Coastguard Worker enum { 57*de1e4e89SAndroid Build Coastguard Worker CTRL_ATTR_UNSPEC, 58*de1e4e89SAndroid Build Coastguard Worker CTRL_ATTR_FAMILY_ID, 59*de1e4e89SAndroid Build Coastguard Worker CTRL_ATTR_FAMILY_NAME, 60*de1e4e89SAndroid Build Coastguard Worker CTRL_ATTR_VERSION, 61*de1e4e89SAndroid Build Coastguard Worker CTRL_ATTR_HDRSIZE, 62*de1e4e89SAndroid Build Coastguard Worker CTRL_ATTR_MAXATTR, 63*de1e4e89SAndroid Build Coastguard Worker CTRL_ATTR_OPS, 64*de1e4e89SAndroid Build Coastguard Worker CTRL_ATTR_MCAST_GROUPS, 65*de1e4e89SAndroid Build Coastguard Worker __CTRL_ATTR_MAX, 66*de1e4e89SAndroid Build Coastguard Worker }; 67*de1e4e89SAndroid Build Coastguard Worker 68*de1e4e89SAndroid Build Coastguard Worker #define CTRL_ATTR_MAX (__CTRL_ATTR_MAX - 1) 69*de1e4e89SAndroid Build Coastguard Worker 70*de1e4e89SAndroid Build Coastguard Worker enum { 71*de1e4e89SAndroid Build Coastguard Worker CTRL_ATTR_OP_UNSPEC, 72*de1e4e89SAndroid Build Coastguard Worker CTRL_ATTR_OP_ID, 73*de1e4e89SAndroid Build Coastguard Worker CTRL_ATTR_OP_FLAGS, 74*de1e4e89SAndroid Build Coastguard Worker __CTRL_ATTR_OP_MAX, 75*de1e4e89SAndroid Build Coastguard Worker }; 76*de1e4e89SAndroid Build Coastguard Worker 77*de1e4e89SAndroid Build Coastguard Worker #define CTRL_ATTR_OP_MAX (__CTRL_ATTR_OP_MAX - 1) 78*de1e4e89SAndroid Build Coastguard Worker 79*de1e4e89SAndroid Build Coastguard Worker enum { 80*de1e4e89SAndroid Build Coastguard Worker CTRL_ATTR_MCAST_GRP_UNSPEC, 81*de1e4e89SAndroid Build Coastguard Worker CTRL_ATTR_MCAST_GRP_NAME, 82*de1e4e89SAndroid Build Coastguard Worker CTRL_ATTR_MCAST_GRP_ID, 83*de1e4e89SAndroid Build Coastguard Worker __CTRL_ATTR_MCAST_GRP_MAX, 84*de1e4e89SAndroid Build Coastguard Worker }; 85*de1e4e89SAndroid Build Coastguard Worker 86*de1e4e89SAndroid Build Coastguard Worker #define CTRL_ATTR_MCAST_GRP_MAX (__CTRL_ATTR_MCAST_GRP_MAX - 1) 87*de1e4e89SAndroid Build Coastguard Worker 88*de1e4e89SAndroid Build Coastguard Worker 89*de1e4e89SAndroid Build Coastguard Worker #endif /* __LINUX_GENERIC_NETLINK_H */ 90