mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-21 22:51:37 +00:00
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: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
3cce8a5496
commit
d67f10ce0f
2 changed files with 32 additions and 0 deletions
|
@ -377,6 +377,36 @@ int setenv(const char *varname, const char *varvalue)
|
||||||
return _do_env_set(0, 3, (char * const *)argv);
|
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[])
|
int do_env_set(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||||
{
|
{
|
||||||
if (argc < 2)
|
if (argc < 2)
|
||||||
|
|
|
@ -303,6 +303,8 @@ int saveenv (void);
|
||||||
int inline setenv (const char *, const char *);
|
int inline setenv (const char *, const char *);
|
||||||
#else
|
#else
|
||||||
int setenv (const char *, const char *);
|
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 */
|
#endif /* CONFIG_PPC */
|
||||||
#ifdef CONFIG_ARM
|
#ifdef CONFIG_ARM
|
||||||
# include <asm/mach-types.h>
|
# include <asm/mach-types.h>
|
||||||
|
|
Loading…
Add table
Reference in a new issue