From owner-freebsd-arch Mon Jan 29 13:59:24 2001 Delivered-To: freebsd-arch@freebsd.org Received: from meow.osd.bsdi.com (meow.osd.bsdi.com [204.216.28.88]) by hub.freebsd.org (Postfix) with ESMTP id 626F737B402 for ; Mon, 29 Jan 2001 13:59:05 -0800 (PST) Received: from laptop.baldwin.cx (john@jhb-laptop.osd.bsdi.com [204.216.28.241]) by meow.osd.bsdi.com (8.11.1/8.9.3) with ESMTP id f0TLro345857; Mon, 29 Jan 2001 13:53:51 -0800 (PST) (envelope-from jhb@FreeBSD.org) Message-ID: X-Mailer: XFMail 1.4.0 on FreeBSD X-Priority: 3 (Normal) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 8bit MIME-Version: 1.0 In-Reply-To: <200101291228.f0TCSgP60147@storm.FreeBSD.org.uk> Date: Mon, 29 Jan 2001 13:58:48 -0800 (PST) From: John Baldwin To: Brian Somers Subject: Re: Cloned open support Cc: freebsd-arch@FreeBSD.org, Poul-Henning Kamp Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On 29-Jan-01 Brian Somers wrote: >> >2. Given that I'll need to change the d_open prototype (and >> > thus cdevsw) >> >> I'm not sure that is really a good idea. >> >> If you look at the device name clone stuff I think I have made >> it possible to handle it there. >> >> The idea being that you call it on "/dev/pty" and it will clone >> "/dev/pty38" for you and return the dev_t for that. You then >> complete the open on that dev_t. I have not quite thought >> it through though. >> >> Either way, I think cloning open should be kept out of d_open >> one way or another. > > The thing is that I believe the driver needs to be able to > decide what minor number will be opened. This idea is taken > from the Solaris implementation. For example, I have a > theoretical driver that does this: > > o Makes minor 0 available in /dev as a control device > o Makes minor 1 available as something that'll be cloned. > o The descriptor returned from opening minor 1 may itself > me made available via namefs (a vfs that allows you to > turn a descriptor into a mountpoint to give other users > access to it) and may be opened again. Such descriptors > are not cloned. > > Although this sounds exotic, it's quite practical, and > impossible to do outside of the driver. > > I think deciding on the minor outside the driver is too > limiting. Why not use an ioctl on the control device to get a minor number to use? The ioctl could then do a make_dev() on the appropriate device to create it. -- John Baldwin -- http://www.FreeBSD.org/~jhb/ PGP Key: http://www.baldwin.cx/~john/pgpkey.asc "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message