diff mbox series

[U-Boot] common: Use command_ret_t enum values instead of values

Message ID 272bf4ea65f505eec557648ba5149fcaf4a63b91.1528112260.git.michal.simek@xilinx.com
State Deferred
Delegated to: Tom Rini
Headers show
Series [U-Boot] common: Use command_ret_t enum values instead of values | expand

Commit Message

Michal Simek June 4, 2018, 11:37 a.m. UTC
Use enum command_ret_t types in cmd_process_error().
Also handle USAGE failure separately.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
---

 common/command.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

Comments

Heinrich Schuchardt June 4, 2018, 7:22 p.m. UTC | #1
On 06/04/2018 01:37 PM, Michal Simek wrote:
> Use enum command_ret_t types in cmd_process_error().
> Also handle USAGE failure separately.
> 
> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
> ---
> 
>  common/command.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/common/command.c b/common/command.c
> index 52d47c133c3c..2433a89e0a8e 100644
> --- a/common/command.c
> +++ b/common/command.c
> @@ -547,10 +547,13 @@ enum command_ret_t cmd_process(int flag, int argc, char * const argv[],
>  
>  int cmd_process_error(cmd_tbl_t *cmdtp, int err)
>  {
> +	if (err == CMD_RET_USAGE)
> +		return CMD_RET_USAGE;

This changes the return value of the function (-1 instead of 1). So you
would have to change the comments in include/command.h.

Your commit message gives no clue why you do not want to return
CMD_RET_FAILURE here and which consequences this has especially in scripts.

Best regards

Heinrich

> +
>  	if (err) {
>  		printf("Command '%s' failed: Error %d\n", cmdtp->name, err);
> -		return 1;
> +		return CMD_RET_FAILURE;
>  	}
>  
> -	return 0;
> +	return CMD_RET_SUCCESS;
>  }
>
Michal Simek June 5, 2018, 2:37 p.m. UTC | #2
On 4.6.2018 21:22, Heinrich Schuchardt wrote:
> On 06/04/2018 01:37 PM, Michal Simek wrote:
>> Use enum command_ret_t types in cmd_process_error().
>> Also handle USAGE failure separately.
>>
>> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
>> ---
>>
>>  common/command.c | 7 +++++--
>>  1 file changed, 5 insertions(+), 2 deletions(-)
>>
>> diff --git a/common/command.c b/common/command.c
>> index 52d47c133c3c..2433a89e0a8e 100644
>> --- a/common/command.c
>> +++ b/common/command.c
>> @@ -547,10 +547,13 @@ enum command_ret_t cmd_process(int flag, int argc, char * const argv[],
>>  
>>  int cmd_process_error(cmd_tbl_t *cmdtp, int err)
>>  {
>> +	if (err == CMD_RET_USAGE)
>> +		return CMD_RET_USAGE;
> 
> This changes the return value of the function (-1 instead of 1). So you
> would have to change the comments in include/command.h.

thanks for pointer.

> 
> Your commit message gives no clue why you do not want to return
> CMD_RET_FAILURE here and which consequences this has especially in scripts.

I will improve commit message in v2.

CMD_RET_USAGE is one of 3 return values which should be handled.

These commands are affected by this change.
cmd/demo.c
cmd/efi.c
cmd/gpio.c
cmd/qfw.c
cmd/x86/fsp.c
test/dm/cmd_dm.c

And scripts shouldn't be affected because return value is not 0. But
every command implementation can choose what it is correct to pass.
I would expect that RET_USAGE is called when parameters are not
correctly passed (have incorrect value, missing parameters)
and RET_FAILURE when correct parameters are passed but command fails.

Thanks,
Michal
diff mbox series

Patch

diff --git a/common/command.c b/common/command.c
index 52d47c133c3c..2433a89e0a8e 100644
--- a/common/command.c
+++ b/common/command.c
@@ -547,10 +547,13 @@  enum command_ret_t cmd_process(int flag, int argc, char * const argv[],
 
 int cmd_process_error(cmd_tbl_t *cmdtp, int err)
 {
+	if (err == CMD_RET_USAGE)
+		return CMD_RET_USAGE;
+
 	if (err) {
 		printf("Command '%s' failed: Error %d\n", cmdtp->name, err);
-		return 1;
+		return CMD_RET_FAILURE;
 	}
 
-	return 0;
+	return CMD_RET_SUCCESS;
 }