neophyte: tcsetattr() gives 22 error in i386, not in amd64?

N.J. Mann njm at njm.f2s.com
Sat Oct 25 09:31:37 UTC 2008


In message <20081025081305.GA55683 at icarus.home.lan>,
	Jeremy Chadwick (koitsu at FreeBSD.org) wrote:
> On Sat, Oct 25, 2008 at 06:29:54PM +1030, en0f wrote:
> > Jeremy Chadwick wrote:
> > > On Sat, Oct 25, 2008 at 06:06:38PM +1030, en0f wrote:
> > >> Nate Eldredge wrote:
> > >>> On Fri, 24 Oct 2008, Steve Franks wrote:
> > >>>
> > >>>> Hi,
> > >>>>
> > >>>> I'm getting a 22 errno from tcsetattr() on 7-STABLE i386 in code which
> > >>>> was working under 7-STABLE amd64.  Serial device is a ucom (silabs
> > >>>> cp2103).  Permissions on /dev/cuaU0 look fine.  Cutecom/Minicom
> > >>>> appears to open the port without error...
> > >>> I don't see anything obviously wrong, but I'd bet a bug related to
> > >>> 32/64-bit types.  Can you post a complete piece of code that can be
> > >>> compiled and run and demonstrates the problem?  Also, try compiling with
> > >>> -Wall -W and investigate any warnings that are produced.
> > >>>
> > >>> By the way, errno 22 is EINVAL, "Invalid argument".  perror() is your
> > >>> friend.
> > >> Strange freebsd doesnt document error numbers. On POSIX, errno 22 is
> > >> EINVAL as well (documented in errno(3)). Is this applicable to freebsd?
> > > 
> > > /usr/include/errno.h isn't documentation of error numbers?
> > 
> > Gahhhhh! But Jeremy, I dont have magic brains to work me way out of
> > source code :)
> 
> You're confusing me.  :P  The errors in errno.h are commented, and it's
> quite readable.  Of course, it matches what's in errno(3).

Just in case someone actually goes looking for errno(3)...   It is
actually errno(2), but I'm sure you knew that. :-)


Cheers,
       Nick.
-- 



More information about the freebsd-hackers mailing list