[U-Boot] image-fit: switch ENOLINK to ENOENT

Jonathan Gray jsg at jsg.id.au
Thu Sep 8 15:53:48 CEST 2016


On Thu, Sep 08, 2016 at 09:15:45AM -0400, Tom Rini wrote:
> On Thu, Sep 08, 2016 at 11:06:34PM +1000, Jonathan Gray wrote:
> > On Thu, Sep 08, 2016 at 08:48:53AM -0400, Tom Rini wrote:
> > > On Thu, Sep 08, 2016 at 10:01:52PM +1000, Jonathan Gray wrote:
> > > > On Wed, Sep 07, 2016 at 02:00:19PM -0400, Tom Rini wrote:
> > > > > On Sat, Sep 03, 2016 at 08:30:14AM +1000, Jonathan Gray wrote:
> > > > > 
> > > > > > ENOLINK is not required by POSIX and does not exist on OpenBSD
> > > > > > and likely other systems.
> > > > > > 
> > > > > > Signed-off-by: Jonathan Gray <jsg at jsg.id.au>
> > > > > 
> > > > > Applied to u-boot/master, thanks!
> > > > 
> > > > Thanks for applying this and the other patch.
> > > > 
> > > > In tools/kwboot.c I've also locally changed EPROTO and EBADMSG as they
> > > > aren't on OpenBSD either.
> > > > 
> > > > They are in POSIX however so I am trying to get them into OpenBSD,
> > > > but it will need some time to be scheduled as introducing errnos
> > > > involves cranking the major version of libc due to the size of the array
> > > > with errno strings changing.
> > > > 
> > > > I wasn't sure if the following would be accepted for that reason,
> > > > thoughts?
> > > 
> > > Well, looking over the code in question, we're talking about error
> > > handling during xmodem transfers.  What are the errno values that get
> > > used there by xmodem tools?  Thanks!
> > 
> > I don't see how xmodem tools would use those errno values themselves?
> > From what I understood, kwboot attaches directly to serial /dev devices
> > and handles xmodem and terminal emulation itself.
> > 
> > In the kwboot case nothing in the return path seems to check for
> > specific errno values.  The return sequence looks like
> > 
> > kwboot_xm_sendblock
> > kwboot_xmodem
> > main
> > perror("xmodem");
> 
> Right.  But we're also using it to indicate to the caller that there was
> a problem.  I can see using EIO for unknown error but I don't like
> ECONNREFUSED for an explicit NAK.  So what I'm asking is, what's passed
> around in other tools when you get a NAK reply in xmodem?

I haven't found any that display an errno based string

http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/usr.bin/cu/xmodem.c?rev=HEAD&content-type=text/plain

lrzsz src/lsz.c
zperr(_("NAK on sector")); (prints to stderr non-fatally without errno)

kermit code seems to be quite hard to follow...

The list of errnos currently implemented on OpenBSD can be found here:
http://man.openbsd.org/OpenBSD-current/man2/intro.2

The strings perror/strerror(errno) use can be found here
http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/lib/libc/gen/errlist.c?rev=HEAD&content-type=text/plain
And in the above manual page.

ENOMSG "No message of desired type." might work

Though it is documented as

"An IPC message queue does not contain a message of the desired type,
or a message catalog does not contain the requested message."

on OpenBSD and in POSIX as

"No message of the desired type. The message queue does not contain a
message of the required type during XSI interprocess communication."

Neither EBADMSG or ENOMSG appear to be documented in glibc beyond
mentioning that they are valid values?

https://www.gnu.org/software/libc/manual/html_node/Error-Codes.html


More information about the U-Boot mailing list