Subject: Re: pty number?
To: Emmanuel Dreyfus <>
From: Christoph Hellwig <>
List: tech-kern
Date: 02/13/2001 00:08:25
On Mon, Feb 12, 2001 at 11:53:27PM +0100, Emmanuel Dreyfus wrote:
> I carry on debugging Linux compatibility, and today, I have a problem
> with Linux's xterm.
> It fails on an ioctl that we don't emulate. It is about getting the pty
> number. I'd be happy to fix it, but... what is a pty number?

If you look at the new-style (Unix98) linux pty code, you will see that
it uses multiple major numbers - so just the minor number won't do as
count.  The reason why this is needed is because the Unix98 pty code uses
a clone device for opening a pty, so you will get a different number than
the one of the device you opened (/dev/ptmx).

The following code calculates it (drivers/char/pty.c +240):

static int pty_get_device_number(struct tty_struct *tty, unsigned int *value)
	unsigned int result = MINOR(tty->device)
		- tty->driver.minor_start + tty->driver.name_base;
	return put_user(result, value);

I hope that helps.


Whip me.  Beat me.  Make me maintain AIX.