Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 Sep 2004 17:07:41 +0400
From:      Roman Kurakin <rik@cronyx.ru>
To:        Poul-Henning Kamp <phk@phk.freebsd.dk>
Cc:        arch@FreeBSD.org
Subject:   Re: [HEADSUP] naming of tty devices.
Message-ID:  <414ED61D.5080607@cronyx.ru>
In-Reply-To: <46041.1095665925@critter.freebsd.dk>
References:  <46041.1095665925@critter.freebsd.dk>

next in thread | previous in thread | raw e-mail | index | archive | help
Just an idea:

    Why not to add some general device enumeration for all devices, 
especially
if devices would behave the same?

tty%{global_port}
cua%{global_port}

rik

Poul-Henning Kamp wrote:

>I am convinced that it is important that a serial port behaves
>predictably no matter what driver implements it, and this is far
>from the case today.  The tty cleanup I'm doing now in preparation
>for being able to pull all the tty stuff out from under Giant
>is more or less a matter of getting the drivers to do the same thing
>by using the same code.
>
>There is one outstanding issue though:  Device naming
>
>The traditional BSD naming scheme as far as I can tell was
>
>	tty[%{adapter}]%{port}
>
>Sun (?) introduced the "cua" devices (Calling Unit Attachment in case
>you wondered) to allow a modem to be used in both in- and out-going
>direction at once.
>
>Our sio driver, which for many intents and purposes is our reference
>driver, almost follows this convention:
>
>	tty[il]d0 + cua[il]a0 = port 0
>
>	The 'i' and 'l' reference the "init" and "lock" state respectively.
>	
>Other drivers have resorted to various variations of this scheme
>(if they were copy&pasted from sio.c) or rolled their own private
>naming system.  In other words: it's a pretty mess right now.
>
>We discussed this naming of tty devices earlier this year (on
>current) and didn't reach a concensus.  This is IMO one of those
>areas where there is no "perfect" solution given backwards compatibility
>and therefore the closest to perfect we can get is to define a
>naming scheme which retains as much compatibility as possible and
>stick to it.
>
>My suggestion is the following:
>
>	All drivers will offer "tty${something}" devices, and
>	generally ${something} will consist of a letter followed
>	by a number, possibly in base 36 ([0-9a-z]).
>
>	All drivers which attach to external equipment via a serial
>	connector should also offer "cua${thesamething}".  "Embedded"
>	serial ports, pseudo drivers etc, do not have to offer the
>	"cua" if DCD state on open is not an issue.
>
>	The init and lock devices will be called ${base_device}.[init,lock]
>	and they will possibly be provided by on-demand devices so that
>	they do not clutter up /dev.
>
>This results in the following major compatibility issues:
>
>	sio's cuaa* gets renamed to cuad*
>
>	sio's {tty,cua}[il]%d gets renamed to {tty,cua}%d.{init,lock}
>
>	ucom's ucom%d gets renamed to ttyU%d
>
>	ucom gains cuaU%d and .init and .lock devices.
>	
>	uart gains cuau%d and .init and .lock devices.
>
>The remaining drivers are pretty obscure and have limited user communities
>and they will just have to live with things getting straigthend out.
>
>
>I'll admit that this should have been done 10 years ago, but better late
>than never.
>
>Well-argued protests or researched alternatives before friday please.
>
>Thanks in advance,
>
>Poul-Henning
>	
>  
>





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?414ED61D.5080607>