Provided by: manpages-fr-dev_3.65d1p1-1_all bug

NOM

       delete_module - Décharger un module de noyau

SYNOPSIS

       int delete_module(const char *name, int flags);

       Remarque :  il  n'existe  pas  de  fonction  glibc autour de cet appel système ; consultez
       NOTES.

DESCRIPTION

       L'appel système delete_module() essaye  de  supprimer  une  entrée  de  module  chargeable
       inutilisée identifiée par name. Si le module à une fonction exit, alors cette fonction est
       exécutée avant de décharger le module. L'argument  flags  est  utilisé  pour  modifier  le
       comportement  de  l'appel  système,  conformément  à  la description ci-dessous. Cet appel
       système nécessite des droits.

       La suppression de module est essayée d'après les règles suivantes.

       1.  Si d'autres modules chargés dépendent de (c'est-à-dire  font  référence  aux  symboles
           définis dans) ce module, alors l'appel échoue.

       2.  Sinon,  si le nombre de références pour ce module (c'est-à-dire le nombre de processus
           utilisant actuellement ce module) est nul, alors le module est immédiatement déchargé.

       3.  Si un module a un nombre de références non nul, alors le comportement dépend des  bits
           définis  dans  flags.  En utilisation normale (consultez NOTES), l'attribut O_NONBLOCK
           est toujours indiqué, et l'attribut O_TRUNC pourrait être aussi indiqué.

           Les diverses combinaisons de flags ont les effets suivants.

           flags == O_NONBLOCK
                  L'appel se termine immédiatement, avec une erreur.

           flags == (O_NONBLOCK | O_TRUNC)
                  Le module est déchargé immédiatement, quelque soit le nombre de références.

           (flags & O_NONBLOCK) == 0
                  Si flags n'indique pas O_NONBLOCK, les étapes suivantes se succèdent :

                  *  le module est  marqué  de  telle  sorte  qu'aucune  nouvelle  référence  est
                     permise ;

                  *  si  le  nombre  de références du module est non nul, l'appelant est placé en
                     état de sommeil non interruptible (TASK_UNINTERRUPTIBLE) jusqu'à ce  que  le
                     nombre de références soit nul, à ce moment l'appel est débloqué ;

                  *  le module est déchargé normalement

       L'attribut  O_TRUNC  a  un  effet supplémentaire sur les réglés décrites précédemment. Par
       défaut, si un module a une fonction init mais pas de fonction exit, essayer  de  supprimer
       ce module échouera. Cependant, si O_TRUNC a été indiqué, cette condition est contournée.

       Utiliser  l'attribut  O_TRUNC  est  dangereux.  Si  le  noyau  n'a  pas été construit avec
       CONFIG_MODULE_FORCE_UNLOAD,  cet  attribut  est   ignoré   silencieusement   (normalement,
       CONFIG_MODULE_FORCE_UNLOAD   est   activé).   Utiliser  cet  attribut  corrompt  le  noyau
       (TAINT_FORCED_RMMOD).

VALEUR RENVOYÉE

       S'il réussit, cet appel système renvoie 0. S'il échoue, il renvoie -1 et définit errno  en
       conséquence.

ERREURS

       EBUSY  Le   module   n'est   pas   « actif »  (c'est-à-dire  qu'il  est  encore  en  cours
              d'initialisation ou déjà marqué pour la suppression), ou le module a  une  fonction
              init mais pas de fonction exit, et O_TRUNC n'a pas été indiqué dans flags.

       EFAULT name  fait  référence à un emplacement en dehors de l'espace d'adressage accessible
              du processus.

       ENOENT Il n'existe aucun module de ce nom.

       EPERM  L'appelant n'avait pas les droits (n'avait pas la capacité CAP_SYS_MODULE),  ou  le
              déchargement  de  module est désactivé (consultez /proc/sys/kernel/modules_disabled
              dans proc(5)).

       EWOULDBLOCK
              D'autres modules dépendent de ce module, ou O_NONBLOCK a été  indiqué  dans  flags,
              mais le nombre de références est non nul et O_TRUNC n'a pas été indiqué dans flags.

CONFORMITÉ

       delete_module()  est spécifique à Linux.

NOTES

       La glibc ne fournit pas de fonction autour de cet appel système ; utilisez syscall(2) pour
       l'appeler.

       Le sommeil non interruptible qui  peut  arriver  si  O_NONBLOCK  est  omis  de  flags  est
       considéré  indésirable, parce que le processus dormant est laissé dans un état non tuable.
       Avec Linux 3.7, indiquer O_NONBLOCK est facultatif, mais à l'avenir, ce sera  probablement
       obligatoire.

   Linux 2.4 et antérieurs
       Dans Linux 2.4 et antérieurs, l'appel système ne prend qu'un argument :

        int delete_module(const char *name);

       Si  name  est  NULL, tous les modules non utilisés marqués à nettoyer automatiquement sont
       supprimés.

       De plus amples précisions sur les différences  de  comportement  de  delete_module()  dans
       Linux 2.4 et antérieurs ne sont actuellement pas expliquées dans cette page de manuel.

VOIR AUSSI

       create_module(2), init_module(2), query_module(2), lsmod(8), modprobe(8), rmmod(8)

COLOPHON

       Cette  page  fait partie de la publication 3.65 du projet man-pages Linux. Une description
       du projet et des  instructions  pour  signaler  des  anomalies  peuvent  être  trouvées  à
       l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Depuis    2010,    cette   traduction   est   maintenue   à   l'aide   de   l'outil   po4a
       <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du  projet
       perkamon <http://perkamon.alioth.debian.org/>.

       Alain Portal <http://manpagesfr.free.fr/> (2006-2007).

       Veuillez     signaler     toute     erreur     de     traduction     en     écrivant     à
       <debian-l10n-french@lists.debian.org>  ou  par  un  rapport  de  bogue   sur   le   paquet
       manpages-fr.

       Vous  pouvez  toujours  avoir  accès  à la version anglaise de ce document en utilisant la
       commande « man -L C <section> <page_de_man> ».