diff options
| author | Joe Hershberger <joe.hershberger@ni.com> | 2012-12-11 22:16:19 -0600 | 
|---|---|---|
| committer | Tom Rini <trini@ti.com> | 2012-12-13 11:46:54 -0700 | 
| commit | c4e0057fa78ebb524b9241ad7245fcd1074ba414 (patch) | |
| tree | 5edef36e43886efa384a8fb373263e0a62c228d4 /common/env_common.c | |
| parent | e772cb30f649c1bb8c9cb15e4c05cbf0760f2f61 (diff) | |
| download | olio-uboot-2014.01-c4e0057fa78ebb524b9241ad7245fcd1074ba414.tar.xz olio-uboot-2014.01-c4e0057fa78ebb524b9241ad7245fcd1074ba414.zip | |
env: Refactor do_apply to a flag
Use a flag in hsearch_r for insert mode passed from import to allow the
behavior be different based on use.
Now that "do_check" is called for all imports, ensure console init is
complete before updating the console on relocation import
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Diffstat (limited to 'common/env_common.c')
| -rw-r--r-- | common/env_common.c | 26 | 
1 files changed, 8 insertions, 18 deletions
| diff --git a/common/env_common.c b/common/env_common.c index 3d3cb70a6..f22f5b968 100644 --- a/common/env_common.c +++ b/common/env_common.c @@ -83,11 +83,8 @@ const uchar *env_get_addr(int index)  void set_default_env(const char *s)  { -	/* -	 * By default, do not apply changes as they will eventually -	 * be applied by someone else -	 */ -	int do_apply = 0; +	int flags = 0; +  	if (sizeof(default_environment) > ENV_SIZE) {  		puts("*** Error - default environment is too large\n\n");  		return; @@ -99,14 +96,7 @@ void set_default_env(const char *s)  				"using default environment\n\n",  				s + 1);  		} else { -			/* -			 * This set_to_default was explicitly asked for -			 * by the user, as opposed to being a recovery -			 * mechanism.  Therefore we check every single -			 * variable and apply changes to the system -			 * right away (e.g. baudrate, console). -			 */ -			do_apply = 1; +			flags = H_INTERACTIVE;  			puts(s);  		}  	} else { @@ -114,8 +104,8 @@ void set_default_env(const char *s)  	}  	if (himport_r(&env_htab, (char *)default_environment, -			sizeof(default_environment), '\0', 0, -			0, NULL, do_apply) == 0) +			sizeof(default_environment), '\0', flags, +			0, NULL) == 0)  		error("Environment import failed: errno = %d\n", errno);  	gd->flags |= GD_FLG_ENV_READY; @@ -130,8 +120,8 @@ int set_default_vars(int nvars, char * const vars[])  	 * (and use \0 as a separator)  	 */  	return himport_r(&env_htab, (const char *)default_environment, -				sizeof(default_environment), '\0', H_NOCLEAR, -				nvars, vars, 1 /* do_apply */); +				sizeof(default_environment), '\0', +				H_NOCLEAR | H_INTERACTIVE, nvars, vars);  }  #ifndef CONFIG_SPL_BUILD @@ -155,7 +145,7 @@ int env_import(const char *buf, int check)  	}  	if (himport_r(&env_htab, (char *)ep->data, ENV_SIZE, '\0', 0, -			0, NULL, 0 /* do_apply */)) { +			0, NULL)) {  		gd->flags |= GD_FLG_ENV_READY;  		return 1;  	} |