|
@@ -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)
|