mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2025-09-22 22:31:32 +02:00
env: Simplify env_get_default()
Instead of pretending that we don't have environment to force searching default environment in env_get_default(), get the data from the default_environment[] buffer directly. Signed-off-by: Marek Behún <marek.behun@nic.cz> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
e8459c12fd
commit
4e7c8b2a1c
43
env/common.c
vendored
43
env/common.c
vendored
@ -148,12 +148,10 @@ char *from_env(const char *envvar)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
static int env_get_from_linear(const char *env, const char *name, char *buf,
|
||||||
* Look up variable from environment for restricted C runtime env.
|
unsigned len)
|
||||||
*/
|
|
||||||
int env_get_f(const char *name, char *buf, unsigned len)
|
|
||||||
{
|
{
|
||||||
const char *env, *p, *end;
|
const char *p, *end;
|
||||||
size_t name_len;
|
size_t name_len;
|
||||||
|
|
||||||
if (name == NULL || *name == '\0')
|
if (name == NULL || *name == '\0')
|
||||||
@ -161,11 +159,6 @@ int env_get_f(const char *name, char *buf, unsigned len)
|
|||||||
|
|
||||||
name_len = strlen(name);
|
name_len = strlen(name);
|
||||||
|
|
||||||
if (gd->env_valid == ENV_INVALID)
|
|
||||||
env = default_environment;
|
|
||||||
else
|
|
||||||
env = (const char *)gd->env_addr;
|
|
||||||
|
|
||||||
for (p = env; *p != '\0'; p = end + 1) {
|
for (p = env; *p != '\0'; p = end + 1) {
|
||||||
const char *value;
|
const char *value;
|
||||||
unsigned res;
|
unsigned res;
|
||||||
@ -193,6 +186,21 @@ int env_get_f(const char *name, char *buf, unsigned len)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Look up variable from environment for restricted C runtime env.
|
||||||
|
*/
|
||||||
|
int env_get_f(const char *name, char *buf, unsigned len)
|
||||||
|
{
|
||||||
|
const char *env;
|
||||||
|
|
||||||
|
if (gd->env_valid == ENV_INVALID)
|
||||||
|
env = default_environment;
|
||||||
|
else
|
||||||
|
env = (const char *)gd->env_addr;
|
||||||
|
|
||||||
|
return env_get_from_linear(env, name, buf, len);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Decode the integer value of an environment variable and return it.
|
* Decode the integer value of an environment variable and return it.
|
||||||
*
|
*
|
||||||
@ -232,17 +240,12 @@ int env_get_yesno(const char *var)
|
|||||||
*/
|
*/
|
||||||
char *env_get_default(const char *name)
|
char *env_get_default(const char *name)
|
||||||
{
|
{
|
||||||
char *ret_val;
|
if (env_get_from_linear(default_environment, name,
|
||||||
unsigned long really_valid = gd->env_valid;
|
(char *)(gd->env_buf),
|
||||||
unsigned long real_gd_flags = gd->flags;
|
sizeof(gd->env_buf)) >= 0)
|
||||||
|
return (char *)(gd->env_buf);
|
||||||
|
|
||||||
/* Pretend that the image is bad. */
|
return NULL;
|
||||||
gd->flags &= ~GD_FLG_ENV_READY;
|
|
||||||
gd->env_valid = ENV_INVALID;
|
|
||||||
ret_val = env_get(name);
|
|
||||||
gd->env_valid = really_valid;
|
|
||||||
gd->flags = real_gd_flags;
|
|
||||||
return ret_val;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void env_set_default(const char *s, int flags)
|
void env_set_default(const char *s, int flags)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user