X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=kernel%2Fdlimit_cmd.h;h=b91a9462ade1617c4e9878b783d20bcc6a575289;hb=2822ba293eb308225c50d346930c47bf98d9927b;hp=ed3998724301c5bf14f0b282e4eba238c592e6c4;hpb=3b34449070c0846fdc49436d1edd5916512f1644;p=util-vserver.git diff --git a/kernel/dlimit_cmd.h b/kernel/dlimit_cmd.h index ed39987..b91a946 100644 --- a/kernel/dlimit_cmd.h +++ b/kernel/dlimit_cmd.h @@ -1,7 +1,6 @@ #ifndef _VX_DLIMIT_CMD_H #define _VX_DLIMIT_CMD_H - /* dlimit vserver commands */ #define VCMD_add_dlimit VC_CMD(DLIMIT, 1, 0) @@ -11,12 +10,32 @@ #define VCMD_get_dlimit VC_CMD(DLIMIT, 6, 0) struct vcmd_ctx_dlimit_base_v0 { - const char *name; + const char __user *name; uint32_t flags; }; struct vcmd_ctx_dlimit_v0 { - const char *name; + const char __user *name; + uint32_t space_used; /* used space in kbytes */ + uint32_t space_total; /* maximum space in kbytes */ + uint32_t inodes_used; /* used inodes */ + uint32_t inodes_total; /* maximum inodes */ + uint32_t reserved; /* reserved for root in % */ + uint32_t flags; +}; + + +#ifdef __KERNEL__ + +#ifdef CONFIG_COMPAT + +struct vcmd_ctx_dlimit_base_v0_x32 { + compat_uptr_t name_ptr; + uint32_t flags; +}; + +struct vcmd_ctx_dlimit_v0_x32 { + compat_uptr_t name_ptr; uint32_t space_used; /* used space in kbytes */ uint32_t space_total; /* maximum space in kbytes */ uint32_t inodes_used; /* used inodes */ @@ -25,8 +44,25 @@ struct vcmd_ctx_dlimit_v0 { uint32_t flags; }; -#define CDLIM_UNSET ((uint32_t)0UL) -#define CDLIM_INFINITY ((uint32_t)~0UL) -#define CDLIM_KEEP ((uint32_t)~1UL) +#endif /* CONFIG_COMPAT */ + +#include + +extern int vc_add_dlimit(uint32_t, void __user *); +extern int vc_rem_dlimit(uint32_t, void __user *); + +extern int vc_set_dlimit(uint32_t, void __user *); +extern int vc_get_dlimit(uint32_t, void __user *); + +#ifdef CONFIG_COMPAT + +extern int vc_add_dlimit_x32(uint32_t, void __user *); +extern int vc_rem_dlimit_x32(uint32_t, void __user *); + +extern int vc_set_dlimit_x32(uint32_t, void __user *); +extern int vc_get_dlimit_x32(uint32_t, void __user *); + +#endif /* CONFIG_COMPAT */ +#endif /* __KERNEL__ */ #endif /* _VX_DLIMIT_CMD_H */