X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Flib%2Fvserver.h;h=65798e76d22e986b0b85616a6cb255b2e115bce7;hb=2c35446314f8bcfb383b435e6a2a5d0919d627a9;hp=c81a2a4602268cd82069deb037895903ae685d15;hpb=cf9094b5a87b3b61cebf001bde216bd9cff59e3c;p=util-vserver.git diff --git a/util-vserver/lib/vserver.h b/util-vserver/lib/vserver.h index c81a2a4..65798e7 100644 --- a/util-vserver/lib/vserver.h +++ b/util-vserver/lib/vserver.h @@ -23,7 +23,9 @@ #include #include -#define VC_NOCTX ((ctx_t)(-1)) +#define VC_NOCTX ((ctx_t)(-1)) +#define VC_LIM_INFINITY (~0ULL) +#define VC_LIM_KEEP (~1ULL) #ifdef __cplusplus extern "C" { @@ -52,11 +54,29 @@ extern "C" { int vc_chrootsafe(char const *dir); - /** Returns the context of the given process. */ - ctx_t vc_X_getctx(pid_t pid); + /* rlimit related functions */ + typedef uint64_t vc_limit_t; + + + struct vc_rlimit + { + vc_limit_t min; + vc_limit_t soft; + vc_limit_t hard; + }; - /** Returns the context of the current process. */ -#define vc_X_getcctx() (vc_X_getctx(getpid())) + struct vc_rlimit_mask { + uint32_t min; + uint32_t soft; + uint32_t hard; + }; + + int vc_get_rlimit(ctx_t ctx, int resource, struct vc_rlimit *lim); + int vc_set_rlimit(ctx_t ctx, int resource, struct vc_rlimit const *lim); + int vc_get_rlimit_mask(ctx_t ctx, struct vc_rlimit_mask *lim); + + /** Returns the context of the given process. pid==0 means the current process. */ + ctx_t vc_X_getctx(pid_t pid); #ifdef __cplusplus }