Re: [PATCH RFC] char/tty_io: fix legacy pty name when more than 256pty devices are requested

From: Mauro Carvalho Chehab
Date: Tue Sep 08 2009 - 19:34:09 EST


Em Tue, 08 Sep 2009 15:48:48 -0700
"H. Peter Anvin" <hpa@xxxxxxxxx> escreveu:

> On 09/08/2009 10:49 AM, Mauro Carvalho Chehab wrote:
> >
> > It is important to preserve the old nomenclature for tty/pty devices for the
> > first 256 devices, to avoid breakage on existing applications and with udev.
> >
> > So, in order to allow more pty devices, the nomenclature were extended for
> > the devices with minor 256 or above. For those, the nomenclature will be:
> > ttyf0000-ttfpffff (pty slave)
> > ptyf0000-ttyfffff (pty master)
> >
>
> This would seem to be a somewhat silly way to extend it, especially
> given the arbitrary artificial limit of just over 2^16 entries.

> If you're going to do this, I would suggest using the following
> namespace, as such:
>
> [pt]ty[p-za-e][0-9a-f]+

To be backward compatible, the format should be, at least:

[pt]ty[p-za-e][0-9a-f].+

otherwise, it can potentially break backward compatibility, as the first 10 devices will be like:
/dev/ttyp0
/dev/ttyp1
...

instead of:

/dev/ttyp00
/dev/ttyp01

>
> sprintf(name, "%cty%c%x", slave ? 't' : 'p',
> "pqrstuvwxyzabcde"[(index >> 4) & 15],
> ((index >> 4) & ~15) | (index & 15));

We may use this, instead:

sprintf(name, "%cty%c%02x", slave ? 't' : 'p',
"pqrstuvwxyzabcde"[(index >> 4) & 15],
((index >> 4) & ~15) | (index & 15));

> No arbitrary limits, and it still extends the existing namespace with
> some reasonable continuity. It means bits [7:4] are weirdly encoded,
> but we get straightforward backwards compatibility as a result.

But it will also be a little more weird.
>




Cheers,
Mauro
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/