Merge commit 'v2.6.27-rc3' into x86/prototypes
[linux-2.6] / include / linux / genetlink.h
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
11 struct 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
34 enum {
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_NEWMCAST_GRP,
43         CTRL_CMD_DELMCAST_GRP,
44         CTRL_CMD_GETMCAST_GRP, /* unused */
45         __CTRL_CMD_MAX,
46 };
47
48 #define CTRL_CMD_MAX (__CTRL_CMD_MAX - 1)
49
50 enum {
51         CTRL_ATTR_UNSPEC,
52         CTRL_ATTR_FAMILY_ID,
53         CTRL_ATTR_FAMILY_NAME,
54         CTRL_ATTR_VERSION,
55         CTRL_ATTR_HDRSIZE,
56         CTRL_ATTR_MAXATTR,
57         CTRL_ATTR_OPS,
58         CTRL_ATTR_MCAST_GROUPS,
59         __CTRL_ATTR_MAX,
60 };
61
62 #define CTRL_ATTR_MAX (__CTRL_ATTR_MAX - 1)
63
64 enum {
65         CTRL_ATTR_OP_UNSPEC,
66         CTRL_ATTR_OP_ID,
67         CTRL_ATTR_OP_FLAGS,
68         __CTRL_ATTR_OP_MAX,
69 };
70
71 #define CTRL_ATTR_OP_MAX (__CTRL_ATTR_OP_MAX - 1)
72
73 enum {
74         CTRL_ATTR_MCAST_GRP_UNSPEC,
75         CTRL_ATTR_MCAST_GRP_NAME,
76         CTRL_ATTR_MCAST_GRP_ID,
77         __CTRL_ATTR_MCAST_GRP_MAX,
78 };
79
80 #define CTRL_ATTR_MCAST_GRP_MAX (__CTRL_ATTR_MCAST_GRP_MAX - 1)
81
82 #endif  /* __LINUX_GENERIC_NETLINK_H */