PROBE_IRQ_ON
Section: Fonctions du Noyau de Linux (9) Updated: 1997/08/14 07:53:32 Index
NOM
SYNOPSIS
DESCRIPTION
Usage
Exemple
VALEUR RENVOYÉE
DISPONIBILITÉ
VOIR AUSSI
AUTEUR
TRADUCTEUR
BOGUES
NOM
probe_irq_on, probe_irq_off - recherche d'IRQ
SYNOPSIS
#include <linux/interrupt.h>
-
unsigned long probe_irq_on(void)
-
int probe_irq_off(unsigned long irqs);
DESCRIPTION
Usage
probe_irq_on()
active la recherche d'IRQ. Les interruptions sans gestionnaires (c'est-à-dire
que le pointeur sur le gestionnaire est NULL) sont activées. La routine
générique de gestion des interruptions désactive les interruptions qui se
produisent.
probe_irq_on()
ajoute un vecteur à toutes les IRQ dont le numéro est passé en paramètre.
Cette fonction attend 100 ms pour masquer une interruption qui se produirait
puis retourne le vecteur.
probe_irq_off()
teste si
irqs
appartient à une liste interne d'IRQ activées.
irqs
devrait être la valeur renvoyée par le dernier appel à
probe_irq_on().
Cette fonction permet de détecter les IRQ dont le vecteur a été désactivé,
c'est-à-dire, celles ayant reçu une interruption.
Exemple
Comme cette explication est confuse, voici un exemple pour le pilote du FUBAR
2000 pour détecter une IRQ :
-
unsigned long irqs;
int irq;
irqs = probe_irq_on();
outb(FB2K_GIVE_ME_AN_INTERRUPT_OR_GIVE_ME_DEATH,
FB2K_CONTROL_PORT);
/* L'interruption peut prendre du temps pour se produire */
udelay(1000);
irq = probe_irq_off(irqs);
if (irq == 0) {
printk("fb2k: Impossible de détecter une IRQ.\n");
printk("fb2k: Échec de l'nstallation.\n");
} else if (irq == -1) {
printk("fb2k: plusieurs IRQ ont été détectées.\n");
printk("fb2k: L'installation a échoué.\n");
} else {
fb2k_dev->irq = irq;
printk("fb2k: utilisation de l'IRQ IRQ %d.\n", irq);
VALEUR RENVOYÉE
probe_irq_on()
retourne la liste des interruptions non gérées (sauf celle qui reçoivent des
interruptions inattendues). Cette valeur doit être passée comme paramètre du
prochain appel à
probe_irq_off().
probe_irq_off()
retourne le numéro d'IRQ pour laquelle une interruption non gérée s'est
produite depuis le dermier appel à
probe_irq_on().
Si aucune intterruption ne s'est produite sur les IRQ indiquées, 0 est
renvoyé ; sinon -1 est renvoyé.
DISPONIBILITÉ
Linux 1.2+. (sauf sur les machines à base de m68k).
VOIR AUSSI
AUTEUR
TRADUCTEUR
BOGUES
Comme mentionné précédemment, ces fonctions ne sont pas disponibles sur les
systèmes à base de microprocesseurs Motonrola (m68k : atari, amiga, mac, ...).
Cette page est confuse.
|