genetlink.h revision 7c9e557ee4144f36e6eb10080e913b07a9937473
1#ifndef __LINUX_GENERIC_NETLINK_H 2#define __LINUX_GENERIC_NETLINK_H 3 4#include <linux/netlink.h> 5 6#define GENL_NAMSIZ 16 /* length of family name */ 7 8#define GENL_MIN_ID NLMSG_MIN_TYPE 9#define GENL_MAX_ID 1023 10 11struct genlmsghdr { 12 __u8 cmd; 13 __u8 version; 14 __u16 reserved; 15}; 16 17#define GENL_HDRLEN NLMSG_ALIGN(sizeof(struct genlmsghdr)) 18 19#define GENL_ADMIN_PERM 0x01 20#define GENL_CMD_CAP_DO 0x02 21#define GENL_CMD_CAP_DUMP 0x04 22#define GENL_CMD_CAP_HASPOL 0x08 23 24/* 25 * List of reserved static generic netlink identifiers: 26 */ 27#define GENL_ID_GENERATE 0 28#define GENL_ID_CTRL NLMSG_MIN_TYPE 29 30/************************************************************************** 31 * Controller 32 **************************************************************************/ 33 34enum { 35 CTRL_CMD_UNSPEC, 36 CTRL_CMD_NEWFAMILY, 37 CTRL_CMD_DELFAMILY, 38 CTRL_CMD_GETFAMILY, 39 CTRL_CMD_NEWOPS, 40 CTRL_CMD_DELOPS, 41 CTRL_CMD_GETOPS, 42 __CTRL_CMD_MAX, 43}; 44 45#define CTRL_CMD_MAX (__CTRL_CMD_MAX - 1) 46 47enum { 48 CTRL_ATTR_UNSPEC, 49 CTRL_ATTR_FAMILY_ID, 50 CTRL_ATTR_FAMILY_NAME, 51 CTRL_ATTR_VERSION, 52 CTRL_ATTR_HDRSIZE, 53 CTRL_ATTR_MAXATTR, 54 CTRL_ATTR_OPS, 55 __CTRL_ATTR_MAX, 56}; 57 58#define CTRL_ATTR_MAX (__CTRL_ATTR_MAX - 1) 59 60enum { 61 CTRL_ATTR_OP_UNSPEC, 62 CTRL_ATTR_OP_ID, 63 CTRL_ATTR_OP_FLAGS, 64 __CTRL_ATTR_OP_MAX, 65}; 66 67#define CTRL_ATTR_OP_MAX (__CTRL_ATTR_OP_MAX - 1) 68 69#endif /* __LINUX_GENERIC_NETLINK_H */ 70