X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Flib%2Finternal.h;h=3a8786de67d6cdeac1bc10787e003d1327092c85;hb=38fe8b4a2dd28aebf52787c5b65cc79490fa53d3;hp=c5ec3ac6d0e7105cd544cf05bafb6b3930625583;hpb=f0e7dc7ca7c0022a31b8bfafcd18250524c97224;p=util-vserver.git diff --git a/util-vserver/lib/internal.h b/util-vserver/lib/internal.h index c5ec3ac..3a8786d 100644 --- a/util-vserver/lib/internal.h +++ b/util-vserver/lib/internal.h @@ -15,6 +15,9 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +/** \file internal.h + * \brief Declarations which are used by util-vserver internally. + */ #ifndef H_UTIL_VSERVER_LIB_INTERNAL_H #define H_UTIL_VSERVER_LIB_INTERNAL_H @@ -27,9 +30,50 @@ extern "C" { #endif -int utilvserver_checkCompatVersion(); -bool utilvserver_isDirectory(char const *path, bool follow_link); +int utilvserver_checkCompatVersion(); +bool utilvserver_isDirectory(char const *path, bool follow_link); +int utilvserver_listparser_uint32(char const *str, size_t len, + char const **err_ptr, size_t *err_len, + uint_least32_t *flag, + uint_least32_t *mask, + uint_least32_t (*func)(char const*, + size_t)) NONNULL((1,5,6,7)); + +int utilvserver_listparser_uint64(char const *str, size_t len, + char const **err_ptr, size_t *err_len, + uint_least64_t *flag, + uint_least64_t *mask, + uint_least64_t (*func)(char const*, + size_t)) NONNULL((1,5,6,7)); + +struct Mapping_uint32 { + char const * const id; + size_t len; + uint_least32_t val; +}; + +struct Mapping_uint64 { + char const * const id; + size_t len; + uint_least64_t val; +}; + +ssize_t utilvserver_value2text_uint32(char const *str, size_t len, + struct Mapping_uint32 const *map, + size_t map_len) NONNULL((1,3)); + +ssize_t utilvserver_value2text_uint64(char const *str, size_t len, + struct Mapping_uint64 const *map, + size_t map_len) NONNULL((1,3)); + +ssize_t utilvserver_text2value_uint32(uint_least32_t *val, + struct Mapping_uint32 const *map, + size_t map_len) NONNULL((1,2)); + +ssize_t utilvserver_text2value_uint64(uint_least64_t *val, + struct Mapping_uint64 const *map, + size_t map_len) NONNULL((1,2)); #ifdef __cplusplus } #endif