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