Commit d67f10ce authored by Simon Glass's avatar Simon Glass Committed by Wolfgang Denk
Browse files

Add setenv_ulong() and setenv_addr()



It seems we put numbers and addresses into environment variables a lot.
We should have some functions to do this.
Signed-off-by: default avatarSimon Glass <sjg@chromium.org>
parent 3cce8a54
......@@ -377,6 +377,36 @@ int setenv(const char *varname, const char *varvalue)
return _do_env_set(0, 3, (char * const *)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(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(varname, str);
}
int do_env_set(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
if (argc < 2)
......
......@@ -303,6 +303,8 @@ int saveenv (void);
int inline setenv (const char *, const char *);
#else
int setenv (const char *, const char *);
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>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment