130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifndef _UAPI__LINUX_GENERIC_NETLINK_H
230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define _UAPI__LINUX_GENERIC_NETLINK_H
330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#include <linux/types.h>
530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#include <linux/netlink.h>
630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define GENL_NAMSIZ	16	/* length of family name */
830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define GENL_MIN_ID	NLMSG_MIN_TYPE
1030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define GENL_MAX_ID	1023
1130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
1230692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct genlmsghdr {
1330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u8	cmd;
1430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u8	version;
1530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u16	reserved;
1630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng};
1730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
1830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define GENL_HDRLEN	NLMSG_ALIGN(sizeof(struct genlmsghdr))
1930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
2030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define GENL_ADMIN_PERM		0x01
2130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define GENL_CMD_CAP_DO		0x02
2230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define GENL_CMD_CAP_DUMP	0x04
2330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define GENL_CMD_CAP_HASPOL	0x08
2430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
2530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/*
2630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * List of reserved static generic netlink identifiers:
2730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng */
2830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define GENL_ID_GENERATE	0
2930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define GENL_ID_CTRL		NLMSG_MIN_TYPE
30e87eaf040ab639e94ed0a58ff0eac68d1d38fb0aEd Heyl#define GENL_ID_VFS_DQUOT	(NLMSG_MIN_TYPE + 1)
31e87eaf040ab639e94ed0a58ff0eac68d1d38fb0aEd Heyl#define GENL_ID_PMCRAID		(NLMSG_MIN_TYPE + 2)
3230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
3330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/**************************************************************************
3430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Controller
3530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng **************************************************************************/
3630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
3730692c65c4174412c90e79489e98ab85c1a7412fBen Chengenum {
3830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	CTRL_CMD_UNSPEC,
3930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	CTRL_CMD_NEWFAMILY,
4030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	CTRL_CMD_DELFAMILY,
4130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	CTRL_CMD_GETFAMILY,
4230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	CTRL_CMD_NEWOPS,
4330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	CTRL_CMD_DELOPS,
4430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	CTRL_CMD_GETOPS,
4530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	CTRL_CMD_NEWMCAST_GRP,
4630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	CTRL_CMD_DELMCAST_GRP,
4730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	CTRL_CMD_GETMCAST_GRP, /* unused */
4830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__CTRL_CMD_MAX,
4930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng};
5030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
5130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CTRL_CMD_MAX (__CTRL_CMD_MAX - 1)
5230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
5330692c65c4174412c90e79489e98ab85c1a7412fBen Chengenum {
5430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	CTRL_ATTR_UNSPEC,
5530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	CTRL_ATTR_FAMILY_ID,
5630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	CTRL_ATTR_FAMILY_NAME,
5730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	CTRL_ATTR_VERSION,
5830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	CTRL_ATTR_HDRSIZE,
5930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	CTRL_ATTR_MAXATTR,
6030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	CTRL_ATTR_OPS,
6130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	CTRL_ATTR_MCAST_GROUPS,
6230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__CTRL_ATTR_MAX,
6330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng};
6430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
6530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CTRL_ATTR_MAX (__CTRL_ATTR_MAX - 1)
6630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
6730692c65c4174412c90e79489e98ab85c1a7412fBen Chengenum {
6830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	CTRL_ATTR_OP_UNSPEC,
6930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	CTRL_ATTR_OP_ID,
7030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	CTRL_ATTR_OP_FLAGS,
7130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__CTRL_ATTR_OP_MAX,
7230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng};
7330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
7430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CTRL_ATTR_OP_MAX (__CTRL_ATTR_OP_MAX - 1)
7530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
7630692c65c4174412c90e79489e98ab85c1a7412fBen Chengenum {
7730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	CTRL_ATTR_MCAST_GRP_UNSPEC,
7830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	CTRL_ATTR_MCAST_GRP_NAME,
7930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	CTRL_ATTR_MCAST_GRP_ID,
8030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__CTRL_ATTR_MCAST_GRP_MAX,
8130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng};
8230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
8330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CTRL_ATTR_MCAST_GRP_MAX (__CTRL_ATTR_MCAST_GRP_MAX - 1)
8430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
8530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
8630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif /* _UAPI__LINUX_GENERIC_NETLINK_H */
87