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