[PATCH v2 1/3] doc: usage: Add general rule for `$?`
    Tom Rini 
    trini at konsulko.com
       
    Fri Oct 24 18:55:22 CEST 2025
    
    
  
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 <trini at konsulko.com>
> > ---
> > 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20251024/566bdce8/attachment.sig>
    
    
More information about the U-Boot
mailing list