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> ».

Linux                                            8 novembre 2012                                DELETE_MODULE(2)