--- include/linux/vserver/sched_cmd.h.orig 2006-11-08 04:57:49 +0100 +++ include/linux/vserver/sched_cmd.h 2007-01-10 00:31:09 +0100 @@ -6,7 +6,8 @@ #define VCMD_set_sched_v2 VC_CMD(SCHED, 1, 2) #define VCMD_set_sched_v3 VC_CMD(SCHED, 1, 3) -#define VCMD_set_sched VC_CMD(SCHED, 1, 4) +#define VCMD_set_sched_v4 VC_CMD(SCHED, 1, 4) +#define VCMD_set_sched VC_CMD(SCHED, 1, 5) struct vcmd_set_sched_v2 { int32_t fill_rate; @@ -39,6 +40,17 @@ struct vcmd_set_sched_v4 { int32_t bucket_id; }; +struct vcmd_sched_v5 { + uint32_t set_mask; + int32_t cpu_id; + int32_t bucket_id; + int32_t fill_rate[2]; + int32_t interval[2]; + int32_t tokens; + int32_t tokens_min; + int32_t tokens_max; + int32_t prio_bias; +}; #define VXSM_FILL_RATE 0x0001 #define VXSM_INTERVAL 0x0002 @@ -58,6 +70,8 @@ struct vcmd_set_sched_v4 { #define VXSM_CPU_ID 0x1000 #define VXSM_BUCKET_ID 0x2000 +#define VXSM_MSEC 0x4000 + #define SCHED_KEEP (-2) /* only for v2 */ #ifdef __KERNEL__ @@ -66,7 +80,22 @@ struct vcmd_set_sched_v4 { extern int vc_set_sched_v2(struct vx_info *, void __user *); extern int vc_set_sched_v3(struct vx_info *, void __user *); +extern int vc_set_sched_v4(struct vx_info *, void __user *); extern int vc_set_sched(struct vx_info *, void __user *); #endif /* __KERNEL__ */ + +struct vcmd_sched_info { + int32_t cpu_id; + int32_t token_usec; + int64_t user_msec; + int64_t sys_msec; + int64_t hold_msec; +}; + +#ifdef __KERNEL__ + +extern int vc_get_sched_info(struct vx_info *, void __user *); + +#endif /* __KERNEL__ */ #endif /* _VX_SCHED_CMD_H */