X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Fkernel%2Flimit.h;h=74e02cdc3ae440298614fe69c0a7f7494a863095;hb=7f5f268c2508135de7b8c9342baeda353bf5f945;hp=00b1a6d5a6f09460f4ac77b765750dc968bad2e2;hpb=0b275c5a23d6c49d61559504e4dedfc4cc284414;p=util-vserver.git diff --git a/util-vserver/kernel/limit.h b/util-vserver/kernel/limit.h index 00b1a6d..74e02cd 100644 --- a/util-vserver/kernel/limit.h +++ b/util-vserver/kernel/limit.h @@ -5,19 +5,26 @@ /* context sub struct */ +#define NUM_RLIMITS 16 + +#define VLIMIT_SOCK 16 + + struct _vx_limit { atomic_t ticks; - unsigned long rlim[RLIM_NLIMITS]; /* Per context limit */ - atomic_t res[RLIM_NLIMITS]; /* Current value */ + unsigned long rlim[NUM_RLIMITS]; /* Per context limit */ + atomic_t res[NUM_RLIMITS]; /* Current value */ }; static inline void vx_info_init_limit(struct _vx_limit *limit) { int lim; - for (lim=0; limrlim[lim] = RLIM_INFINITY; + atomic_set(&limit->res[lim], 0); + } } static inline int vx_info_proc_limit(struct _vx_limit *limit, char *buffer) @@ -27,6 +34,7 @@ static inline int vx_info_proc_limit(struct _vx_limit *limit, char *buffer) "VM:\t%8d/%ld\n" "VML:\t%8d/%ld\n" "RSS:\t%8d/%ld\n" + "FILES:\t%8d/%ld\n" ,atomic_read(&limit->res[RLIMIT_NPROC]) ,limit->rlim[RLIMIT_NPROC] ,atomic_read(&limit->res[RLIMIT_AS]) @@ -35,6 +43,8 @@ static inline int vx_info_proc_limit(struct _vx_limit *limit, char *buffer) ,limit->rlim[RLIMIT_MEMLOCK] ,atomic_read(&limit->res[RLIMIT_RSS]) ,limit->rlim[RLIMIT_RSS] + ,atomic_read(&limit->res[RLIMIT_NOFILE]) + ,limit->rlim[RLIMIT_NOFILE] ); } @@ -68,15 +78,19 @@ struct vcmd_ctx_rlimit_mask_v0 { #define CRLIM_KEEP (~1ULL) #ifdef __KERNEL__ -extern int vc_get_rlimit(uint32_t, void *); -extern int vc_set_rlimit(uint32_t, void *); -extern int vc_get_rlimit_mask(uint32_t, void *); + +#include + +extern int vc_get_rlimit(uint32_t, void __user *); +extern int vc_set_rlimit(uint32_t, void __user *); +extern int vc_get_rlimit_mask(uint32_t, void __user *); struct sysinfo; void vx_vsi_meminfo(struct sysinfo *); void vx_vsi_swapinfo(struct sysinfo *); + #endif /* __KERNEL__ */ #endif /* _VX_LIMIT_H */