Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 29 Jan 2001 13:58:48 -0800 (PST)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Brian Somers <brian@Awfulhak.org>
Cc:        freebsd-arch@FreeBSD.org, Poul-Henning Kamp <phk@critter.freebsd.dk>
Subject:   Re: Cloned open support
Message-ID:  <XFMail.010129135848.jhb@FreeBSD.org>
In-Reply-To: <200101291228.f0TCSgP60147@storm.FreeBSD.org.uk>

next in thread | previous in thread | raw e-mail | index | archive | help

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 <jhb@FreeBSD.org> -- 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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.010129135848.jhb>