Subject: Re: README: kernel pty struct allocation change
To: Andrew Brown <atatat@atatdot.net>
From: Todd Vierling <tv@wasabisystems.com>
List: current-users
Date: 09/11/2000 10:32:01
On Mon, 11 Sep 2000, Andrew Brown wrote:

: indeed!  and...isn't pcvt gone?

Yes, but ttyvX still isn't available for i386 to use, I believe.

: so...how does it work?  i don't see a way for it to exit the
: while/switch without returning an error...maybe i'm reading it wrong?

It's backpedaling into sys_open() to get a new fd and then doing a very
interesting trick, used by the /dev/fd nodes.  {struct proc}->p_dupfd is
Magic.  If a filedescriptor is put here, and a device open() call returns
ENXIO, the created file will be that fd, instead of a fd connected to the
ptmx device.  In essence, the user gets an open file on /dev/pty??.

This is how the returned file contains a st_rdev that isn't the same device
number as the /dev/ptmx device itself (see prior post).  It's not a pretty
hack, but it works; ideally, we should have a better way to handle
"masquerading" devices.

-- 
-- Todd Vierling <tv@wasabisystems.com>  *  http://www.wasabisystems.com/
-- Speed, stability, security, and support.  Wasabi NetBSD:  Run with it.