linux-headers (unknown)

(root)/
include/
linux/
genetlink.h
       1  /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
       2  #ifndef __LINUX_GENERIC_NETLINK_H
       3  #define __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 /* __LINUX_GENERIC_NETLINK_H */