X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=kernel%2Fcontext_cmd.h;h=f94d52ceb0951200edbc01eb99402996840415bb;hb=29fd9845a8128b8e7f6c3828da14d724f8e748f7;hp=f631095cd9d087b7d465a77132053e6cdcf0430c;hpb=9c78378bebc1a9f3d400f422df8ede9efea57dea;p=util-vserver.git diff --git a/kernel/context_cmd.h b/kernel/context_cmd.h index f631095..f94d52c 100644 --- a/kernel/context_cmd.h +++ b/kernel/context_cmd.h @@ -20,10 +20,22 @@ struct vcmd_vx_info_v0 { }; #ifdef __KERNEL__ -extern int vc_vx_info(uint32_t, void __user *); +extern int vc_vx_info(struct vx_info *, void __user *); #endif /* __KERNEL__ */ +#define VCMD_ctx_stat VC_CMD(VSTAT, 0, 0) + +struct vcmd_ctx_stat_v0 { + uint32_t usecnt; + uint32_t tasks; + /* more to come */ +}; + +#ifdef __KERNEL__ +extern int vc_ctx_stat(struct vx_info *, void __user *); + +#endif /* __KERNEL__ */ /* context commands */ @@ -34,11 +46,16 @@ struct vcmd_ctx_create { uint64_t flagword; }; -#define VCMD_ctx_migrate VC_CMD(PROCMIG, 1, 0) +#define VCMD_ctx_migrate_v0 VC_CMD(PROCMIG, 1, 0) +#define VCMD_ctx_migrate VC_CMD(PROCMIG, 1, 1) + +struct vcmd_ctx_migrate { + uint64_t flagword; +}; #ifdef __KERNEL__ extern int vc_ctx_create(uint32_t, void __user *); -extern int vc_ctx_migrate(uint32_t, void __user *); +extern int vc_ctx_migrate(struct vx_info *, void __user *); #endif /* __KERNEL__ */ @@ -54,16 +71,16 @@ struct vcmd_ctx_flags_v0 { }; #ifdef __KERNEL__ -extern int vc_get_cflags(uint32_t, void __user *); -extern int vc_set_cflags(uint32_t, void __user *); +extern int vc_get_cflags(struct vx_info *, void __user *); +extern int vc_set_cflags(struct vx_info *, void __user *); #endif /* __KERNEL__ */ /* context caps commands */ -#define VCMD_get_ccaps VC_CMD(FLAGS, 3, 0) -#define VCMD_set_ccaps VC_CMD(FLAGS, 4, 0) +#define VCMD_get_ccaps_v0 VC_CMD(FLAGS, 3, 0) +#define VCMD_set_ccaps_v0 VC_CMD(FLAGS, 4, 0) struct vcmd_ctx_caps_v0 { uint64_t bcaps; @@ -71,9 +88,36 @@ struct vcmd_ctx_caps_v0 { uint64_t cmask; }; +#define VCMD_get_ccaps VC_CMD(FLAGS, 3, 1) +#define VCMD_set_ccaps VC_CMD(FLAGS, 4, 1) + +struct vcmd_ctx_caps_v1 { + uint64_t ccaps; + uint64_t cmask; +}; + +#ifdef __KERNEL__ +extern int vc_get_ccaps_v0(struct vx_info *, void __user *); +extern int vc_set_ccaps_v0(struct vx_info *, void __user *); +extern int vc_get_ccaps(struct vx_info *, void __user *); +extern int vc_set_ccaps(struct vx_info *, void __user *); + +#endif /* __KERNEL__ */ + + +/* bcaps commands */ + +#define VCMD_get_bcaps VC_CMD(FLAGS, 9, 0) +#define VCMD_set_bcaps VC_CMD(FLAGS,10, 0) + +struct vcmd_bcaps { + uint64_t bcaps; + uint64_t bmask; +}; + #ifdef __KERNEL__ -extern int vc_get_ccaps(uint32_t, void __user *); -extern int vc_set_ccaps(uint32_t, void __user *); +extern int vc_get_bcaps(struct vx_info *, void __user *); +extern int vc_set_bcaps(struct vx_info *, void __user *); #endif /* __KERNEL__ */ #endif /* _VX_CONTEXT_CMD_H */