
Those functions will be used for hashtable routines to support attributes in importing/exporting entries.
Signed-off-by: AKASHI Takahiro takahiro.akashi@linaro.org --- env/flags.c | 19 +++++++++++++++++-- include/env_flags.h | 10 ++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-)
diff --git a/env/flags.c b/env/flags.c index c1db891a2343..1a1872aa2fc7 100644 --- a/env/flags.c +++ b/env/flags.c @@ -238,6 +238,21 @@ enum env_flags_varstorage env_flags_parse_varstorage_from_binflags(int binflags) return env_flags_varstorage_non_volatile; }
+void env_flags_encode_attr_from_binflags(char *attr, int binflags) +{ + enum env_flags_vartype type; + enum env_flags_varaccess access; + enum env_flags_varstorage storage; + + type = (enum env_flags_vartype)(binflags & ENV_FLAGS_VARTYPE_BIN_MASK); + access = env_flags_parse_varaccess_from_binflags(binflags); + storage = env_flags_parse_varstorage_from_binflags(binflags); + + attr[ENV_FLAGS_VARTYPE_LOC] = env_flags_vartype_rep[type]; + attr[ENV_FLAGS_VARACCESS_LOC] = env_flags_varaccess_rep[access]; + attr[ENV_FLAGS_VARSTORAGE_LOC] = env_flags_varstorage_rep[storage]; +} + static inline int is_hex_prefix(const char *value) { return value[0] == '0' && (value[1] == 'x' || value[1] == 'X'); @@ -488,10 +503,10 @@ int env_flags_validate_env_set_params(char *name, char * const val[], int count) #else /* !USE_HOSTCC - Functions only used from lib/hashtable.c */
/* - * Parse the flag charachters from the .flags attribute list into the binary + * Parse the flag characters from the .flags attribute list into the binary * form to be stored in the environment entry->flags field. */ -static int env_parse_flags_to_bin(const char *flags) +int env_parse_flags_to_bin(const char *flags) { int binflags = 0;
diff --git a/include/env_flags.h b/include/env_flags.h index f46528691889..15391a28de77 100644 --- a/include/env_flags.h +++ b/include/env_flags.h @@ -132,6 +132,10 @@ enum env_flags_varaccess env_flags_parse_varaccess_from_binflags(int binflags); */ enum env_flags_varstorage env_flags_parse_varstorage_from_binflags(int binflags); +/* + * Create a string representation from the binary flags + */ +void env_flags_encode_attr_from_binflags(char *attr, int binflags);
#ifdef CONFIG_CMD_NET /* @@ -175,6 +179,12 @@ int env_flags_validate_env_set_params(char *name, char *const val[], int count);
#else /* !USE_HOSTCC */
+/* + * Parse the flag characters from the .flags attribute list into the binary + * form to be stored in the environment entry->flags field. + */ +int env_parse_flags_to_bin(const char *flags); + #include <search.h>
/*