/dev/cuad0: Device busy

Mark Andrews Mark_Andrews at isc.org
Mon Feb 4 13:56:45 UTC 2008


> On Mon, Feb 04, 2008 at 02:08:32PM +0700, Eugene Grosbein wrote:
> > > Personally, I never understood the concept of "dial-in" and "call-out"
> > > devices on FreeBSD.  I ran BBS software for years on both Apple II
> > > hardware and PC hardware; there was no distinction between such devices.
> > > A serial port is a serial port.  Chances are I'm not understanding why
> > > there's a distinction, but there doesn't appear to be any explanation of
> > > why there's a distinction within manpages or the handbook...
> > 
> > The distinction exists to allow an application to wait on the "dial-in"
> > port for incoming calls and another application to make outgoing call
> > mean time using the same port as "call-out" while the port is idle.
> 
> This is intruiging to me, because now I'm left wondering how that
> actually works behind the scenes!  :-)
> 
> What happens when program X has /dev/ttyd0 open (for incoming calls),
> receives a call, and then during which program Y attempts to open
> /dev/cuad0?  Does program Y indefinitely block/wait somewhere within the
> kernel until program X releases the fd?

	open blocks until CD is asserted when /dev/cuad0 is not open.

> If so, then I'm left wondering why Ganbold's cu -l cuad0 attempt
> returned an immediate EBUSY, rather than blocking indefinitely.

	EBUSY indicates that the open on /dev/ttyd0 completed.
 
> Also, the above mechanism must be fairly old, because I imagine it would
> be more effective to utilise kqueue/kevent to inform said programs of
> when the serial port is available for use.

	Only about 20 years old.
 
> -- 
> | 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 |
> 
> _______________________________________________
> freebsd-stable at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
> To unsubscribe, send any mail to "freebsd-stable-unsubscribe at freebsd.org"
-- 
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742                 INTERNET: Mark_Andrews at isc.org


More information about the freebsd-stable mailing list