[Kos-dev] [maus] la souris marche t'elle dans bochs ?

Thomas Petazzoni kos-dev@enix.org
Tue, 11 Jun 2002 10:23:47 +0200


> bonjour a tous,
> je me demande si la souris marche vraiment dans bochs.

Sisi je crois bien que la souris ps2 marche bien dans Bochs...

> j'y ai remarque que la fonction klavier_dst (int dsr_level, void *data) 
> etait appelee a chaque fois qu'une touche etait presse. j'en ai deduit 
> qu'il devait etre de meme pour la souris, lorsqu'un bouton est presse.
> j'ai dont mis dans maus.c la ligne

Non, c'est pas exactement comme ca que ca marche. Bon ton 
incomprehension est excusable etant donne que la partie idt n'est pas du 
tout documentee.

En fait dans klavier, klavier_dst n'est pas appele tout seul ! C'est la 
fonction _klavier qui est appellee a chaque interruption et qui demande 
mark_dsr(1) pour que le klavier_dsr soit execute.

Pour l'instant fais ca :

int _maus(void)
{
   __dbg_printk("Coucou\n");
   return 0;
}

et dans la fonction d'initialisation du module fais :

  if (_i8042_register_maus_handler(_maus) != -1)
     return 0;

En gros ne t'occupe pas pour l'instant des DSR. Si tu veux en savoir 
plus tu peux lire la doc de Linux sur les bottom half handlers (DSR) et 
les soft irqs (ou tasklets) (equivalent aux DST chez nous). Pour resumer 
ce sont des mecanismes permettant de deporter les traitements 
d'inerruption plus loin que le moment ou l'interruption arrive. Par 
exemple pour le clavier on pourrait imaginer que _klavier mette juste de 
cote le scancode de la touche, et qu'un dst ou dsr vienne convertir se 
scan code en ascii code plus tard. Pour l'instant ce n'est pas utilise, 
le dsr du klavier est juste la a des fins de tests.
Ces mecanismes servent a avoir une meilleure reactivite du systeme en 
ayant des traitants d'interruption les plus courts possibles.

> y aurait-il une ame charitable parmis vous qui veuille bien se pencher 
> sur le pb ? voici un tarball de mes sources.

J'ai pas regarde les sources, mais deja avec les indications donnees tu 
devrais pouvoir avancer.

Au fait, oublie pas de reviser le bac francais : J-3 !

Thomas
-- 
--
thomas.petazzoni@enix.org - icq #34937744
Projet KOS : http://kos.enix.org
Club LinUT : http://club-linut.enix.org
Page Perso : http://www.enix.org/~thomas/