[U-Boot] [RFC PATCH] env: Add a setenv that allows passing flags

Chris Packham Chris.Packham at alliedtelesis.co.nz
Tue Jun 14 22:47:01 CEST 2016


Hi Joe,

On 06/15/2016 07:01 AM, Joe Hershberger wrote:
> In some cases an interactive feature will be implemented using the
> programmatic APIs, so the developer will want "interactive" behavior as
> a result, so provide an API that will allow that to be specified.
>
> Signed-off-by: Joe Hershberger <joe.hershberger at ni.com>

Thanks looks great

Reviewed-by: Chris Packham <chris.packham at alliedtelesis.co.nz>

I'll also give it a test on some of our setups here and report back.

> ---
>
>   cmd/nvedit.c     | 11 ++++++++---
>   include/common.h |  5 +++--
>   2 files changed, 11 insertions(+), 5 deletions(-)
>
> diff --git a/cmd/nvedit.c b/cmd/nvedit.c
> index b67563b..c7c24e3 100644
> --- a/cmd/nvedit.c
> +++ b/cmd/nvedit.c
> @@ -284,7 +284,7 @@ static int _do_env_set(int flag, int argc, char * const argv[], int env_flag)
>   	return 0;
>   }
>
> -int setenv(const char *varname, const char *varvalue)
> +int setenv_w_flags(const char *varname, const char *varvalue, int flags)
>   {
>   	const char * const argv[4] = { "setenv", varname, varvalue, NULL };
>
> @@ -293,9 +293,14 @@ int setenv(const char *varname, const char *varvalue)
>   		return 1;
>
>   	if (varvalue == NULL || varvalue[0] == '\0')
> -		return _do_env_set(0, 2, (char * const *)argv, H_PROGRAMMATIC);
> +		return _do_env_set(0, 2, (char * const *)argv, flags);
>   	else
> -		return _do_env_set(0, 3, (char * const *)argv, H_PROGRAMMATIC);
> +		return _do_env_set(0, 3, (char * const *)argv, flags);
> +}
> +
> +int setenv(const char *varname, const char *varvalue)
> +{
> +	return setenv_w_flags(varname, varvalue, H_PROGRAMMATIC);
>   }
>
>   /**
> diff --git a/include/common.h b/include/common.h
> index f9f4605..199e0e2 100644
> --- a/include/common.h
> +++ b/include/common.h
> @@ -377,8 +377,9 @@ ulong getenv_hex(const char *varname, ulong default_val);
>    * Return -1 if variable does not exist (default to true)
>    */
>   int getenv_yesno(const char *var);
> -int	saveenv	     (void);
> -int	setenv	     (const char *, const char *);
> +int saveenv(void);
> +int setenv_w_flags(const char *varname, const char *varvalue, int flags);
> +int setenv(const char *varname, const char *varvalue);
>   int setenv_ulong(const char *varname, ulong value);
>   int setenv_hex(const char *varname, ulong value);
>   /**
>



More information about the U-Boot mailing list