/dev/cuad0: Device busy
Jeremy Chadwick
koitsu at FreeBSD.org
Mon Feb 4 13:10:20 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?
If so, then I'm left wondering why Ganbold's cu -l cuad0 attempt
returned an immediate EBUSY, rather than blocking indefinitely.
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.
--
| 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-stable
mailing list