X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Flib%2Fvserver.h;h=10564944bb8468854ae1b9d3131506a546ce8522;hb=437b5e9a1c7245fb99ddcf114b6b1bce36ae69f7;hp=6af871a424f8430cf4243d79f0bf8ba2b3551c80;hpb=641e79c3c103586d1a97ace4ea1fe865a15bb3a2;p=util-vserver.git diff --git a/util-vserver/lib/vserver.h b/util-vserver/lib/vserver.h index 6af871a..1056494 100644 --- a/util-vserver/lib/vserver.h +++ b/util-vserver/lib/vserver.h @@ -64,6 +64,10 @@ # define S_CTX_INFO_ULIMIT 64 #endif +#ifndef S_CTX_INFO_NAMESPACE +# define S_CTX_INFO_NAMESPACE 128 +#endif + #define VC_CAP_CHOWN 0 #define VC_CAP_DAC_OVERRIDE 1 #define VC_CAP_DAC_READ_SEARCH 2 @@ -128,7 +132,7 @@ extern "C" { * - VC_RANDCTX which means the next free context; this value can be used by * ordinary users also * See http://vserver.13thfloor.at/Stuff/Logic.txt for details */ - int vc_new_s_context(xid_t ctx, unsigned int remove_cap, unsigned int flags); + xid_t vc_new_s_context(xid_t ctx, unsigned int remove_cap, unsigned int flags); /** Sets the ipv4root information. * \precondition: nb<16 */ @@ -163,22 +167,10 @@ extern "C" { - int vc_set_iattr(dev_t dev, ino_t ino, xid_t xid, uint32_t flags, uint32_t mask); - int vc_get_iattr(dev_t dev, ino_t ino, xid_t * /*@null@*/ xid, + int vc_set_iattr(char const *filename, xid_t xid, uint32_t flags, uint32_t mask); + int vc_get_iattr(char const *filename, xid_t * /*@null@*/ xid, uint32_t * /*@null@*/ flags, uint32_t * /*@null@*/ mask); - int vc_set_iattr_compat(char const *filename, - dev_t dev, ino_t ino, xid_t xid, - uint32_t flags, uint32_t mask, - mode_t const * /*@null@*/ mode); - - int vc_get_iattr_compat(char const *filename, - dev_t dev, ino_t ino, - xid_t * /*@null@*/ xid, - uint32_t * /*@null@*/ flags, - uint32_t * /*@inout@*/ mask, - mode_t const * /*@null@*/ mode); - struct vc_vx_info { xid_t xid; pid_t initpid; @@ -188,8 +180,25 @@ extern "C" { xid_t vc_get_task_xid(pid_t pid); int vc_get_vx_info(xid_t xid, struct vc_vx_info *info); + + typedef enum { vcVHI_CONTEXT, vcVHI_SYSNAME, vcVHI_NODENAME, + vcVHI_RELEASE, vcVHI_VERSION, vcVHI_MACHINE, + vcVHI_DOMAINNAME } vc_uts_type; + + int vc_set_vhi_name(xid_t xid, vc_uts_type type, char const *val, size_t len); + int vc_get_vhi_name(xid_t xid, vc_uts_type type, char *val, size_t len); + + + int vc_enter_namespace(xid_t xid); + + + uint32_t vc_textlist2flag(char const *, size_t len, + char const **err_ptr, size_t *err_len); + uint32_t vc_text2flag(char const *, size_t len); + char const * vc_hiflag2text(unsigned int); + int vc_text2cap(char const *); - char const * vc_cap2text(int); + char const * vc_cap2text(unsigned int); inline static int vc_get_securecaps() { return ( (1<