[U-Boot] [PATCH v4 03/13] common: add run_command2 for running simple or hush commands

Mike Frysinger vapier at gentoo.org
Tue Aug 23 23:46:56 CEST 2011


On Tuesday, August 23, 2011 17:06:51 Jason Hobbs wrote:
> Signed-off-by: Jason Hobbs <jason.hobbs at calxeda.com>
> ---
> changes in v2:
> - whitespace correction
> 
> changes in v4:
> - fix indention of a run_command2 line
> - make run_command2 static inline
> 
>  common/hush.c  |    2 +-
>  common/main.c  |   50 +++++++++++++++++++++-----------------------------
>  include/hush.h |    2 +-
>  3 files changed, 23 insertions(+), 31 deletions(-)
> 
> diff --git a/common/hush.c b/common/hush.c
> index 85a6030..940889b 100644
> --- a/common/hush.c
> +++ b/common/hush.c
> @@ -3217,7 +3217,7 @@ int parse_stream_outer(struct in_str *inp, int flag)
>  #ifndef __U_BOOT__
>  static int parse_string_outer(const char *s, int flag)
>  #else
> -int parse_string_outer(char *s, int flag)
> +int parse_string_outer(const char *s, int flag)
>  #endif	/* __U_BOOT__ */
>  {
>  	struct in_str input;
> diff --git a/common/main.c b/common/main.c
> index b97d89e..e9e8350 100644
> --- a/common/main.c
> +++ b/common/main.c
> @@ -83,8 +83,7 @@ extern void mdm_init(void); /* defined in board.c */
> 
>  /*************************************************************************
> ** * Watch for 'delay' seconds for autoboot stop or autoboot delay string.
> - * returns: 0 -  no key string, allow autoboot
> - *          1 - got key string, abort
> + * returns: 0 -  no key string, allow autoboot 1 - got key string, abort
>   */
>  #if defined(CONFIG_BOOTDELAY) && (CONFIG_BOOTDELAY >= 0)
>  # if defined(CONFIG_AUTOBOOT_KEYED)
> @@ -266,6 +265,20 @@ int abortboot(int bootdelay)
>  # endif	/* CONFIG_AUTOBOOT_KEYED */
>  #endif	/* CONFIG_BOOTDELAY >= 0  */
> 
> +static inline
> +int run_command2(const char *cmd, int flag)
> +{
> +#ifndef CONFIG_SYS_HUSH_PARSER
> +	if (run_command(cmd, flag) == -1)
> +		return 1;
> +#else
> +	if (parse_string_outer(cmd,
> +	    FLAG_PARSE_SEMICOLON | FLAG_EXIT_FROM_LOOP) != 0)
> +		return 1;
> +#endif
> +	return 0;
> +}

do you need to do your own return value munging ?  seems like "returns 0 on 
success, non-zero on failure" would allow you to do:
{
#ifndef CONFIG_SYS_HUSH_PARSER
	return run_command(cmd, flag);
#else
	return parse_string_outer(cmd,
		FLAG_PARSE_SEMICOLON | FLAG_EXIT_FROM_LOOP);
#endif
}
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.denx.de/pipermail/u-boot/attachments/20110823/e0487afe/attachment.pgp 


More information about the U-Boot mailing list