From 44967e91c33544106b7f62148ff0cf918c309be9 Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Sun, 7 Mar 2004 19:37:15 +0000 Subject: [PATCH] cleanups; use modern methods... git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@1133 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- util-vserver/lib/flags-v13.c | 36 ++++++++++++------------------------ util-vserver/lib/flags_list-compat.c | 14 +++++++++----- util-vserver/lib/flags_list-v13.c | 11 ++++++----- 3 files changed, 27 insertions(+), 34 deletions(-) diff --git a/util-vserver/lib/flags-v13.c b/util-vserver/lib/flags-v13.c index 5b02a90..a8ed134 100644 --- a/util-vserver/lib/flags-v13.c +++ b/util-vserver/lib/flags-v13.c @@ -21,45 +21,33 @@ #endif #include "vserver.h" -#include "lib_internal/util-dimof.h" +#include "internal.h" +#include #include #include #define DECL(STR, VAL) { STR, sizeof(STR)-1, VAL } -static struct { - char const * const id; - size_t len; - unsigned char val; -} const FLAGVALUES[] = { +static struct Mapping_uint64 const VALUES[] = { DECL("fakeinit", S_CTX_INFO_INIT), }; uint_least64_t vc_text2flag(char const *str, size_t len) { - size_t i; - if (len==0) len=strlen(str); - - for (i=0; i0 && idx>0; i/=2) { - --idx; - if (val & i) return FLAGVALUES[idx].id; - } + ssize_t idx = utilvserver_text2value_uint64(val, + VALUES, DIM_OF(VALUES)); - return 0; + if (idx==-1) return 0; + else return VALUES[idx].id; } diff --git a/util-vserver/lib/flags_list-compat.c b/util-vserver/lib/flags_list-compat.c index b881f8c..e6255cc 100644 --- a/util-vserver/lib/flags_list-compat.c +++ b/util-vserver/lib/flags_list-compat.c @@ -25,7 +25,7 @@ uint_least32_t vc_list2flag_compat(char const *str, size_t len, - char const **err_ptr, size_t *err_len) + struct vc_err_listparser *err) { uint32_t res = 0; @@ -43,8 +43,10 @@ vc_list2flag_compat(char const *str, size_t len, if (tmp!=0) res |= tmp; else { - if (err_ptr) *err_ptr = str; - if (err_len) *err_len = cnt; + if (err) { + err->ptr = str; + err->len = cnt; + } return res; } @@ -52,7 +54,9 @@ vc_list2flag_compat(char const *str, size_t len, str = ptr+1; } - if (err_ptr) *err_ptr = 0; - if (err_len) *err_len = 0; + if (err) { + err->ptr = 0; + err->len = 0; + } return res; } diff --git a/util-vserver/lib/flags_list-v13.c b/util-vserver/lib/flags_list-v13.c index 6b8fd35..f7f9502 100644 --- a/util-vserver/lib/flags_list-v13.c +++ b/util-vserver/lib/flags_list-v13.c @@ -27,11 +27,12 @@ int vc_list2flag(char const *str, size_t len, - char const **err_ptr, size_t *err_len, - uint_least64_t *flag, - uint_least64_t *mask) + struct vc_err_listparser *err, + struct vc_ctx_flags *flags) { - return utilvserver_listparser_uint64(str, len, err_ptr, err_len, - flag, mask, + return utilvserver_listparser_uint64(str, len, + err ? &err->ptr : 0, + err ? &err->len : 0, + &flags->flagword, &flags->mask, vc_text2flag); } -- 1.8.1.5