diff options
-rw-r--r-- | common/cmd_nvedit.c | 30 | ||||
-rw-r--r-- | include/common.h | 2 |
2 files changed, 32 insertions, 0 deletions
diff --git a/common/cmd_nvedit.c b/common/cmd_nvedit.c index b451f2853e..00814694ee 100644 --- a/common/cmd_nvedit.c +++ b/common/cmd_nvedit.c @@ -376,6 +376,36 @@ int setenv(char *varname, char *varvalue) return _do_env_set(0, 3, argv); } +/** + * Set an environment variable to an integer value + * + * @param varname Environmet variable to set + * @param value Value to set it to + * @return 0 if ok, 1 on error + */ +int setenv_ulong(const char *varname, ulong value) +{ + /* TODO: this should be unsigned */ + char *str = simple_itoa(value); + + return setenv((char *)varname, str); +} + +/** + * Set an environment variable to an address in hex + * + * @param varname Environmet variable to set + * @param addr Value to set it to + * @return 0 if ok, 1 on error + */ +int setenv_addr(const char *varname, const void *addr) +{ + char str[17]; + + sprintf(str, "%x", (uintptr_t)addr); + return setenv((char *)varname, str); +} + int do_env_set(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { if (argc < 2) diff --git a/include/common.h b/include/common.h index 771bb1930a..1911c3a1bc 100644 --- a/include/common.h +++ b/include/common.h @@ -307,6 +307,8 @@ int setenv (char *, char *); /* Set environment to the default value */ void env_set_default(void); +int setenv_ulong(const char *varname, ulong value); +int setenv_addr(const char *varname, const void *addr); #endif /* CONFIG_PPC */ #ifdef CONFIG_ARM # include <asm/mach-types.h> |