<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>3. Interruptions (IRQ) et accès DMA</title><link href="style.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.69.1" name="generator"><link rel="start" href="index.html" title=" Petit guide de programmation des ports d'entrées / sorties sous Linux "><link rel="up" href="index.html" title=" Petit guide de programmation des ports d'entrées / sorties sous Linux "><link rel="prev" href="ar01s02.html" title="2. Utilisation des ports d'entrées / sorties en langage C"><link rel="next" href="ar01s04.html" title="4. Temporisation de haute précision"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">3. Interruptions (IRQ) et accès DMA</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="ar01s02.html">Précédent</a> </td><th align="center" width="60%"> </th><td align="right" width="20%"> <a accesskey="n" href="ar01s04.html">Suivant</a></td></tr></table><hr></div><div class="sect1" lang="fr"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="N10225"></a>3. Interruptions (IRQ) et accès DMA</h2></div></div><div></div></div><p> Vous ne pouvez tout simplement pas utiliser directement les interruptions ou l'accès DMA depuis un processus en mode utilisateur. Pour cela, il vous faut développer un pilote pour le noyau. Reportez-vous au <a href="http://www.tldp.org/LDP/khg/HyperNews/get/khg.html" target="_top">Linux Kernel Hacker's Guide</a> pour plus de détails et au code source du noyau pour des exemples. </p><p> Vous avez cependant la possibilité de désactiver les interruptions depuis une application en mode utilisateur, mais cela peut s'avérer dangereux (même les pilotes du noyau ne le font que pour des périodes de temps très brèves). Après appel à <code class="function">iopl(3)</code>, vous pouvez désactiver les interruptions en utilisant <code class="function">asm("cli");</code> et les réactiver avec <code class="function">asm("sti");</code>. </p></div><div class="navfooter"><hr><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="ar01s02.html">Précédent</a> </td><td align="center" width="20%"> </td><td align="right" width="40%"> <a accesskey="n" href="ar01s04.html">Suivant</a></td></tr><tr><td valign="top" align="left" width="40%">2. Utilisation des ports d'entrées / sorties en langage C </td><td align="center" width="20%"><a accesskey="h" href="index.html">Sommaire</a></td><td valign="top" align="right" width="40%"> 4. Temporisation de haute précision</td></tr></table></div></body></html>