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