On Fri, Oct 24, 2025 at 06:47:45PM +0200, Quentin Schulz wrote:
> Hi Tom,
> 
> On 10/24/25 6:02 PM, Tom Rini wrote:
> > For nearly all commands in U-Boot the '?' variable is handled the same
> > way with 0 meaning success, 1 meaning any failure.  Explain this in the
> > general rules section of the cmdline documentation (with a link to a
> > counter example) and then remove the redundant wording from most
> > commands. We retain a section about the return value in a number of
> > places where we are doing something such as always returning a specific
> > value or we have useful additional information to go along with the
> > normal return codes.
> > 
> > Signed-off-by: Tom Rini <[email protected]>
> > ---
> > Changes in v2:
> > - Rewordings suggested by Quentin
> > - After confirming that invalid syntax also always returns 1 and not -1,
> 
> For example cmd/scmi.c do_scmi_set_proto() can return CMD_RET_USAGE which is
> a -1 enum and the function returns an int, so I assume this would be
> propagated properly?
> 
> I don't have time today to check the cmd function call stack to see if it
> is, but this seems odd to me.

I spent a while Tuesday trying to dig in to this. We always pass
CMD_RET_USAGE internally, CMD_RET_USAGE is -1. I ended up getting stuck
on where we actually set the '?' environment variable. I don't know if
we have ever actually passed -1 to the shell. Testing things out in a
real shell, "2" is the value of invalid invalid syntax for a command
(e.g. /bin/bash --keyboardsmash;echo $?).

-- 
Tom

Attachment: signature.asc
Description: PGP signature

Reply via email to