X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Flib%2Fvserver.h;h=42b0e5ff7827ac8cdab855f72bd8743c3b0c20c6;hb=b3ff38bc5349de0f78d90bd461605876dd3f93da;hp=92a63f6c1eebe517d6181a5d3dc66573fee77f76;hpb=7bcda6f5fd264451a48932a7c1b7c7ec56000723;p=util-vserver.git diff --git a/util-vserver/lib/vserver.h b/util-vserver/lib/vserver.h index 92a63f6..42b0e5f 100644 --- a/util-vserver/lib/vserver.h +++ b/util-vserver/lib/vserver.h @@ -33,14 +33,15 @@ #if defined(__GNUC__) # define VC_ATTR_UNUSED __attribute__((__unused__)) # define VC_ATTR_NORETURN __attribute__((__noreturn__)) -# if __GNUC__>3 || (__GNUC__==3 && __GNUC_MINOR__>=3) +# define VC_ATTR_CONST __attribute__((__const__)) +# if __GNUC__*0x10000 + __GNUC_MINOR__*0x100 + __GNUC_PATCHLEVEL__ >= 0x30300 # define VC_ATTR_NONNULL(ARGS) __attribute__((__nonnull__ ARGS)) # define VC_ATTR_ALWAYSINLINE __attribute__((__always_inline__)) # else # define VC_ATTR_NONNULL(ARGS) # define VC_ATTR_ALWAYSINLINE # endif -# if __GNUC__>3 +# if __GNUC__*0x10000 + __GNUC_MINOR__*0x100 + __GNUC_PATCHLEVEL__ >= 0x30303 # define VC_ATTR_PURE __attribute__((__pure__)) # else # define VC_ATTR_PURE @@ -51,6 +52,7 @@ # define VC_ATTR_NORETURN # define VC_ATTR_ALWAYSINLINE # define VC_ATTR_PURE +# define VC_ATTR_CONST #endif #endif // IS_DOXYGEN @@ -218,6 +220,14 @@ extern "C" { int vc_set_ipv4root(uint32_t bcast, size_t nb, struct vc_ip_mask_pair const *ips) VC_ATTR_NONNULL((3)); + /** \brief Returns the value of NB_IPV4ROOT. + * \ingroup helper + * + * This function returns the value of NB_IPV4ROOT which was used when the + * library was built, but \b not the value which is used by the currently + * running kernel. */ + size_t vc_get_nb_ipv4root() VC_ATTR_CONST VC_ATTR_PURE; + /** \brief Creates a context without starting it. * \ingroup syscalls * @@ -248,8 +258,7 @@ extern "C" { * modified by the vc_set_rlimit() operation. * * Else, the interpretation of the value depends on the corresponding - * resource; it might be bytes, pages, seconds or litres of beer. - */ + * resource; it might be bytes, pages, seconds or litres of beer. */ typedef uint_least64_t vc_limit_t; /** \brief The limits of a resources. @@ -361,6 +370,7 @@ extern "C" { struct vc_ctx_caps { uint_least64_t bcaps; + uint_least64_t bmask; uint_least64_t ccaps; uint_least64_t cmask; }; @@ -402,7 +412,7 @@ extern "C" { int vc_text2cap(char const *); char const * vc_cap2text(unsigned int); - inline static uint_least32_t vc_get_securecaps() { + inline static uint_least32_t vc_get_insecurecaps() { return ( (1<