[Kos-dev] Driver TTY

Thomas Petazzoni kos-dev@enix.org
Tue, 06 May 2003 21:17:14 +0200


Raphaël Junqueira <fenix@club-internet.fr> writes:

Hello,

> je pense que tu as raison, mais on pourra facilement evoluer au cas
> ou

Oui, tout à fait, c'est ce que je m'etais dit la première fois que
j'ai fait le driver TTY : faisons un truc crade, on pourra facilement
évoluer au cas où. Viens le moment de refaire ce bout de code, donc la
question d'un nouveau design se pose, voila tout ;-)

> Moi j'aurait pris le clavier. Le tty je ne voit pas en quoi serait
> il bloquant (surtout qu'il se peut que l'entre ne soit pas tjs le
> clavier)

Je ne sais pas, parce qu'a priori un tty est toujours bloquant en
lecture. Ceci dit, c'est peut être plus simple que le mécanisme de
blocage se situe au niveau de l'endroit ou se fait la lecture, c'est
sans doute là que le machin est le plus au courant des interruptions,
etc..

Pour le moment en fait, le driver tty enregistrait un "handler" dans
le driver clavier. Ce handler était appelé à chaque touche pressée par
le driver clavier après conversion des keycodes en ASCII.

> ben pour moi je le verrait plutot que la console n'aurait
> connaissance que d'un /dev/activetty. la console ne serait que le
> moteur d'affichage du buffer de /dev/activetty

Oui, mais comment elle connait le TTY actif ? Un pointeur ? Pourquoi
devrait-elle connaitre des choses qui se passent au dessus d'elle
(dans les couches d'abstraction) ?

> Ben comme vu ci-dessus, le ttyYY (qui est actuellement
> /dev/activetty) recevrait via le "klavier" l'ordre de passer la main
> au ttyXX qui devient le nouveau /dev/activetty, la konsole recevrait
> alors la notification que /dev/activetty vient de changer (donc
> refresh)

Encore une fois, pourquoi la console sait cela ? J'ai l'impression
quand même que le cas des consoles textes sur une console classique
est un peu étrange.

> Avec mon truc il ne le notifie pas vraiment, il ne fait que passer
> la main de tty actif a un autre tty. Ca serait la console qui serait
> a l'ecoute des modification de tty actifs.

Mouais, j'avoue que j'arrive pas trop à voir comment le driver de
console irait taper dans /dev/activetty. Il fait un open() à chaque
fois ?

>> Par une interface spéciale lui permettant de dire quelle est l'adresse de la
>> console à afficher ?
>
> s/console/tty
> Pkoi pas ca peut etre une solution

Ca éviterait l'histoire de /dev/activetty, mais ça fait que le driver
tty doit être spécialisé pour le cas des ttys sur console. Mais à mon
avis il n'y a pas le choix : il n'y a vraiment que dans ce cas qu'il y
a des consoles multiples.

Thomas

PS: Ceux qui ont une connexion permanente et qui s'ennuient le soir
peuvent me rejoindre sur irc.utbm.info / 6667, #kosdev.
-- 
PETAZZONI Thomas - thomas.petazzoni@enix.org - UIN : 34937744
http://www.enix.org/~thomas/
KOS: http://kos.enix.org/ - Lolut: http://lolut.utbm.info
Fingerprint : 0BE1 4CF3 CEA4 AC9D CC6E  1624 F653 CB30 98D3 F7A7