[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