27b98d6d98b06649ea7944dc541b667c0560a777
[util-vserver.git] / kernel / sched_cmd.h
1 #ifndef _VX_SCHED_CMD_H
2 #define _VX_SCHED_CMD_H
3
4
5 /*  sched vserver commands */
6
7 #define VCMD_set_sched_v2       VC_CMD(SCHED, 1, 2)
8 #define VCMD_set_sched_v3       VC_CMD(SCHED, 1, 3)
9 #define VCMD_set_sched          VC_CMD(SCHED, 1, 4)
10
11 struct  vcmd_set_sched_v2 {
12         int32_t fill_rate;
13         int32_t interval;
14         int32_t tokens;
15         int32_t tokens_min;
16         int32_t tokens_max;
17         uint64_t cpu_mask;
18 };
19
20 struct  vcmd_set_sched_v3 {
21         uint32_t set_mask;
22         int32_t fill_rate;
23         int32_t interval;
24         int32_t tokens;
25         int32_t tokens_min;
26         int32_t tokens_max;
27         int32_t priority_bias;
28 };
29
30 struct  vcmd_set_sched_v4 {
31         uint32_t set_mask;
32         int32_t fill_rate;
33         int32_t interval;
34         int32_t tokens;
35         int32_t tokens_min;
36         int32_t tokens_max;
37         int32_t prio_bias;
38         int32_t cpu_id;
39         int32_t bucket_id;
40 };
41
42
43 #define VXSM_FILL_RATE          0x0001
44 #define VXSM_INTERVAL           0x0002
45 #define VXSM_FILL_RATE2         0x0004
46 #define VXSM_INTERVAL2          0x0008
47 #define VXSM_TOKENS             0x0010
48 #define VXSM_TOKENS_MIN         0x0020
49 #define VXSM_TOKENS_MAX         0x0040
50 #define VXSM_PRIO_BIAS          0x0100
51
52 #define VXSM_IDLE_TIME          0x0200
53 #define VXSM_FORCE              0x0400
54
55 #define VXSM_V3_MASK            0x0173
56 #define VXSM_SET_MASK           0x01FF
57
58 #define VXSM_CPU_ID             0x1000
59 #define VXSM_BUCKET_ID          0x2000
60
61 #define SCHED_KEEP              (-2)    /* only for v2 */
62
63 #endif  /* _VX_SCHED_CMD_H */