do not include the <linux/types.h> kernel-header anymore
[util-vserver.git] / util-vserver / lib / virtual.h
1 #ifndef _LINUX_VIRTUAL_H
2 #define _LINUX_VIRTUAL_H
3
4 #define VC_CATEGORY(c)          (((c) >> 24) & 0x3F)
5 #define VC_COMMAND(c)           (((c) >> 16) & 0xFF)
6 #define VC_VERSION(c)           ((c) & 0xFFF)
7
8 #define VC_CMD(c,i,v)           ((((VC_CAT_ ## c) & 0x3F) << 24) \
9                                 | (((i) & 0xFF) << 16) | ((v) & 0xFFF))
10
11 #define VC_CAT_VERSION          0
12 #define VC_CAT_PROCESS          1
13 #define VC_CAT_MEMORY           2
14 #define VC_CAT_NETWORK          3
15
16 #define VC_CAT_LIMITS           8
17 #define VC_CAT_QUOTA            9
18
19 #define VC_CAT_OTHER            62
20 #define VC_CAT_COMPAT           63
21
22 /*  interface version */
23
24   //#define VC_VERSION                  0x00010000
25
26
27
28 /*  query version */
29
30 #define VCMD_get_version        VC_CMD(VERSION, 0, 0)
31
32
33 /*  compatibiliy vserver commands */
34
35 #define VCMD_new_s_context      VC_CMD(COMPAT, 1, 1)
36 #define VCMD_set_ipv4root       VC_CMD(COMPAT, 2, 3)
37
38 /*  compatibiliy vserver arguments */
39
40 struct  vcmd_new_s_context_v1 {
41         uint32_t remove_cap;
42         uint32_t flags;
43 };
44
45 #define NB_IPV4ROOT 16
46
47 struct  vcmd_set_ipv4root_v3 {
48         /* number of pairs in id */
49         uint32_t broadcast;
50         struct {
51                 uint32_t ip;
52                 uint32_t mask;
53         } ip_mask_pair[NB_IPV4ROOT];
54 };
55
56
57 #endif /* _LINUX_VIRTUAL_H */