[Kos-cvs] [kos] Modification CVS par thomas

KOS CVS kos-dev <kos-dev@enix.org>
Mon, 9 Jun 2003 22:57:26 +0200 (CEST)


Module :	kos
Modifié par :	thomas	09/06/03 22:57:26

Fichiers modifiés :
	grub           : Makefile 
	modules/console: _console.c 
	modules/debug  : bochs.c 
	modules/karm   : open.c 
	modules/klavier: _klavier.c klavier.h 
	modules/kos    : wolfgang.c 
	modules/pmm    : _pmm.h 
	modules/tty    : Makefile _ktty.c _tty.c _tty.h _tty_kres.c 
	                 tty.c tty.h 
Fichiers ajoutés :
	modules/tty    : _keymap.c _vt100.c defkeymap.c 

Détails :
* Correction de grub/Makefile, le script build_disk s'appelle
build_disk.sh et pas build_disk. D'ailleurs y'a des trucs bizarres
quand on construit une disquette. Si on fait make floppy, puis make
runbochs, ca chie dans la colle. Si on refait make runbochs, ca
chie dans la colle d'une autre maniere. Il faut faire make -C grub
clean pour que ca marche. On dirait que le mtoolsrc est pas nettoyé
comme il faut.

* modules/console : on affiche le numero de la console en haut a
droite de chaque console, sauf pour la console noyau (y'a le
twiddle). Bricolage pour que le switch de console marche
correctement + mise à jour du curseur en haut à droite (il bouge
pas pour le moment, ca sera pour plus tard).

* modules/debug/bochs.c : j'en avais marre d'avoir les messages de
bochs en bazar à cause du multithread -> ajout d'un spinlock pour
protéger tout ca, et donc d'un bochs_prints_unsafe

* modules/karm/open.c : ajout d'un gros spinlock pour protéger tout
ça. C'est vraiment de la methode brutos, et je le prends juste pour
le open(). Il faut sans doute le prendre a d'autres endroits.

* modules/klavier/_klavier.{c,h} : ajout des tables de mappage scancode
-> keycode, et mise en place de cette conversion.

* modules/kos/wolfgang.c : mini shell, sur ktty et tty1. Si on active
le shell sur tty2, ça part en vrille au niveau du open() : boucle
infinie dans le nscache, pour une raison inconnue.

* modules/tty : ajout de la conversion keycode -> ascii ou action (cf
_keymap.c), tres largement insipiré de Linux. D'ailleurs le
defkeymap.c est le résultat d'un loadkeys --mktable, juste bricolé
au niveau des includes et du typedef au début du fichier. Plein de
trucs pas implémentés, mais y'a au moins les touches normales, les
touches avec Shift, les touches de fonctions, les touches de
direction + le changement de console. A noter que 'A', 'B' et 'C'
permettent de switcher sur les 3 premieres console (sous Bochs,
Alt+Fx, ca marche pas à cause du Window Manager). Le fichier
_vt100.c c'est pour faire joli, pour l'instant y'a rien qui
interprete du VT100 dans la fonction. Trop galere à faire : la
machine à état pour analyser des séquences VT100 est bien trop
complexe.