bionic (2) delete_module.2.gz

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