From owner-freebsd-stable@FreeBSD.ORG Mon Feb 4 13:10:20 2008 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5DCAC16A46B for ; Mon, 4 Feb 2008 13:10:20 +0000 (UTC) (envelope-from jdc@parodius.com) Received: from mx01.sc1.parodius.com (mx01.sc1.parodius.com [72.20.106.3]) by mx1.freebsd.org (Postfix) with ESMTP id 4938C13C461 for ; Mon, 4 Feb 2008 13:10:20 +0000 (UTC) (envelope-from jdc@parodius.com) Received: by mx01.sc1.parodius.com (Postfix, from userid 1000) id 432171CC033; Mon, 4 Feb 2008 05:10:20 -0800 (PST) Date: Mon, 4 Feb 2008 05:10:20 -0800 From: Jeremy Chadwick To: Eugene Grosbein Message-ID: <20080204131020.GA5830@eos.sc1.parodius.com> References: <47A69A66.2080109@micom.mng.net> <20080204063023.GA91789@eos.sc1.parodius.com> <47A6B2AB.2060308@micom.mng.net> <20080204065122.GA92674@eos.sc1.parodius.com> <20080204070832.GA97372@svzserv.kemerovo.su> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20080204070832.GA97372@svzserv.kemerovo.su> User-Agent: Mutt/1.5.16 (2007-06-09) Cc: Ganbold , FreeBSD Stable Mailing List Subject: Re: /dev/cuad0: Device busy X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Feb 2008 13:10:20 -0000 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 |