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

Jeremy Chadwick koitsu at FreeBSD.org
Sat Oct 25 08:13:07 UTC 2008


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).

If you're wanting to track down how/why tcsetattr(3) results in EINVAL,
using truss or ktrace might come in handy.  Otherwise, you literally
will have to throw some debugging code into the ucom(4) driver to
try and figure out what function is kicking out code 22.

-- 
| Jeremy Chadwick                                jdc at parodius.com |
| Parodius Networking                       http://www.parodius.com/ |
| UNIX Systems Administrator                  Mountain View, CA, USA |
| Making life hard for others since 1977.              PGP: 4BD6C0CB |



More information about the freebsd-hackers mailing list