2a6f55bda23db2ccec5dbe7550f988a36e31064c
[util-vserver.git] / kernel / sched_cmd.h
1 #ifndef _VX_SCHED_CMD_H
2 #define _VX_SCHED_CMD_H
3
4 /*  sched vserver commands */
5
6 #define VCMD_set_sched_v2       VC_CMD(SCHED, 1, 2)
7 #define VCMD_set_sched          VC_CMD(SCHED, 1, 3)
8
9 struct  vcmd_set_sched_v2 {
10         int32_t fill_rate;
11         int32_t interval;
12         int32_t tokens;
13         int32_t tokens_min;
14         int32_t tokens_max;
15         uint64_t cpu_mask;
16 };
17
18 struct  vcmd_set_sched_v3 {
19         uint32_t set_mask;
20         int32_t fill_rate;
21         int32_t interval;
22         int32_t tokens;
23         int32_t tokens_min;
24         int32_t tokens_max;
25         int32_t priority_bias;
26 };
27
28
29 #define VXSM_FILL_RATE          0x0001
30 #define VXSM_INTERVAL           0x0002
31 #define VXSM_TOKENS             0x0010
32 #define VXSM_TOKENS_MIN         0x0020
33 #define VXSM_TOKENS_MAX         0x0040
34 #define VXSM_PRIO_BIAS          0x0100
35
36 #define SCHED_KEEP              (-2)
37
38 #ifdef  __KERNEL__
39
40 #include <linux/compiler.h>
41
42 extern int vc_set_sched_v1(uint32_t, void __user *);
43 extern int vc_set_sched_v2(uint32_t, void __user *);
44 extern int vc_set_sched(uint32_t, void __user *);
45
46 #endif  /* __KERNEL__ */
47 #endif  /* _VX_SCHED_CMD_H */