summaryrefslogtreecommitdiffstats
path: root/include/linux/tsnif.h
blob: 86e49fdbcb05ec4652ee4491ed21ec8fc69e122f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#ifndef TSNIF_H
#define TSNIF_H

/* TODO there has to be better way */
#ifndef __KERNEL__
#include <netlink/attr.h>
#endif

#define TSNIF_VERSION	1
#define TSNIF_OK	1

/* attributes */
enum {
	TSNIF_ATTR_UNSPEC,
	TSNIF_ATTR_TYPE,
	TSNIF_ATTR_IDX,
	TSNIF_ATTR_GROUP,
	TSNIF_ATTR_ERR,
	TSNIF_ATTR_DATA,
	TSNIF_ATTR_WS,
	TSNIF_ATTR_TIME,
	TSNIF_ATTR_FLAGS,
	__TSNIF_ATTR_MAX,
};

#define TSNIF_ATTR_MAX (__TSNIF_ATTR_MAX - 1)

#define TSNIF_POLICY(var) \
static struct nla_policy var[TSNIF_ATTR_MAX + 1] = { \
	[TSNIF_ATTR_TYPE]	= { .type = NLA_U32 }, \
	[TSNIF_ATTR_IDX]	= { .type = NLA_U32 }, \
	[TSNIF_ATTR_GROUP]	= { .type = NLA_U32 }, \
	[TSNIF_ATTR_FLAGS]	= { .type = NLA_U32 }, \
	[TSNIF_ATTR_DATA]	= { .type = NLA_UNSPEC}, \
};

enum {
	TSNIF_CMD_ATTACH,
	TSNIF_CMD_DETACH,
	TSNIF_CMD_RELEASE,
	TSNIF_CMD_MGROUP,
	TSNIF_CMD_TGROUP,
	TSNIF_CMD_DATA,
	TSNIF_CMD_TTY_CREATE,
	TSNIF_CMD_TTY_RELEASE,
	__TSNIF_CMD_MAX,
};

#define TSNIF_CMD_MAX (__TSNIF_CMD_MAX - 1)

enum {
	TSNIF_FLAGS_PTY_MASTER,
	TSNIF_FLAGS_PTY_SLAVE,
};

enum {
	TSNIF_TYPE_TTY,
	TSNIF_TYPE_TTYS,
	TSNIF_TYPE_PTY,
	TSNIF_TYPE_MAX,
};

#endif /* TSNIF_H */