driver linux

driver linux - C - Programmation

Marsh Posté le 19-04-2005 à 08:56:09    

Salut a tous
 
Je suis en train de développer un driver Linux.
Pour le moment, je fais un module simple avec des fonctionnalités de base.
 
J'ai créé une application qui communique avec le driver.
L'application lance une fonction par l'IOCTL qui signale au driver de
lancer un timer.
L'application n'est alors pas bloquée. Jusqu'ici tout va bien.
Ce que je n'arrive pas à faire, c'est signaler à l'application que le
timer est fini (sachant qu'elle n'est pas bloquée).
 
J'ai essayé plusieurs pistes, mais aucune n'a abouti.
 
Merci d'avance pour vos reponses

Reply

Marsh Posté le 19-04-2005 à 08:56:09   

Reply

Marsh Posté le 19-04-2005 à 09:07:18    

nico_du_63 a écrit :

Salut a tous
 
Je suis en train de développer un driver Linux.
Pour le moment, je fais un module simple avec des fonctionnalités de base.
 
J'ai créé une application qui communique avec le driver.
L'application lance une fonction par l'IOCTL qui signale au driver de
lancer un timer.
L'application n'est alors pas bloquée. Jusqu'ici tout va bien.
Ce que je n'arrive pas à faire, c'est signaler à l'application que le
timer est fini (sachant qu'elle n'est pas bloquée).
 
J'ai essayé plusieurs pistes, mais aucune n'a abouti.
 
Merci d'avance pour vos reponses


 
Si tu lances un timer avec la fonction "alarm(n)" alors ton appli recevra un signal "SIGALRM" lorsque le timer se sera écoulé => tu le trappes avec "signal(SIGALRM, fct)" et tu programmes ta fonction "void fct(int s)"  

Reply

Marsh Posté le 19-04-2005 à 09:39:08    

Merci pour ta reponse Sve@r
j'ai essayé. ca marche bien mais le probleme c'est que tu met alarm()
dans l'appli, mais moi ce que je voudrai c'est notifier la fin du timer qui se deroule dans le driver

Reply

Marsh Posté le 19-04-2005 à 10:27:06    

nico_du_63 a écrit :

Merci pour ta reponse Sve@r
j'ai essayé. ca marche bien mais le probleme c'est que tu met alarm()
dans l'appli, mais moi ce que je voudrai c'est notifier la fin du timer qui se deroule dans le driver


 
Ben tu places un "alarm" dans le driver et dans la fonction "fct" (qui se situe aussi dans le driver) tu utilises ton outil de comm entre appli et driver pour faire remonter l'info vers l'appli...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 19-04-2005 à 10:42:48    

tu peux pas utiliser la fonction alarm dans le driver
car tu peux pas inclure unistd.h

Reply

Marsh Posté le 19-04-2005 à 10:44:43    

je reviens a ta reponse
c'est justement ca mon pb:j'arrive pas a faire remonter l'info vers l'appli

Reply

Marsh Posté le 19-04-2005 à 14:04:38    

...

Reply

Marsh Posté le 19-04-2005 à 20:12:02    

nico_du_63 a écrit :

je reviens a ta reponse
c'est justement ca mon pb:j'arrive pas a faire remonter l'info vers l'appli


Je ne connais pas le détail des drivers Linux, mais la méthode habituelle est le callback.
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed