Provided by: manpages-ru-dev_4.21.0-2_all bug

ИМЯ

       query_module - запросить ядро о различных параметрах, касающихся модулей

СИНТАКСИС

       #include <linux/module.h>

       [[deprecated]] int query_module(const char *name, int which,
                                       void buf[.bufsize], size_t bufsize,
                                       size_t *ret);

ОПИСАНИЕ

       Note: This system call is present only before Linux 2.6.

       query_module()   запрашивает   информацию  у  ядра  о  загружаемых  модулях.  Возвращаемая
       информация помещается в буфер, указанный в buf. Вызывающий должен  указать  размер  buf  в
       bufsize.  Смысл  и формат возвращаемой информации зависит от операции, задаваемой в which.
       Для некоторых операций требуется заполнить name для указания на  уже  загруженный  модуль,
       для некоторых в name можно указать NULL, что указывает на получения свойства ядра.

       В which можно указать следующие значения:

       0      Завершается  успешно,  если  ядро  поддерживает  query_module().  Используется  для
              проверки доступности системного вызова.

       QM_MODULES
              Возвращает  имена   всех   загруженных   модулей.   Возвращаемый   буфер   содержит
              последовательность строк, оканчивающихся null; в ret указано количество модулей.

       QM_DEPS
              Возвращает  имена  всех модулей, используемых указанным модулем. Возвращаемый буфер
              содержит последовательность строк, оканчивающихся null; в  ret  указано  количество
              модулей.

       QM_REFS
              Возвращает  имена  всех  модулей,  использующих  указанный  модуль. Это обратная по
              отношению к QM_DEPS операция. Возвращаемый буфер содержит последовательность строк,
              оканчивающихся null; в ret указано количество модулей.

       QM_SYMBOLS
              Возвращает   символы  и  значения,  экспортируемые  ядром  или  указанным  модулем.
              Возвращаемый буфер содержит массив структур следующего формата:

                  struct module_symbol {
                      unsigned long value;
                      unsigned long name;
                  };

              завершаемого строками, оканчивающимися null. Значение name содержит смещение строки
              в знаках относительно начала buf; в ret указано количество символов.

       QM_INFO
              Возвращает различную информацию об указанном модуле. Формат результата в буфере:

                  struct module_info {
                      unsigned long address;
                      unsigned long size;
                      unsigned long flags;
                  };

              где  address  —  это  адрес  ядра, где располагается модуль, size — размер модуля в
              байтах, flags — маска MOD_RUNNING, MOD_AUTOCLEAN  и  т.  п.,  показывающая  текущее
              состояние  модуля (смотрите файл исходного кода ядра Linux include/linux/module.h).
              В ret указан размер структуры module_info.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       On success, zero is returned.  On error, -1 is returned and errno is set to  indicate  the
       error.

ОШИБКИ

       EFAULT Одно  из  значений  в  name,  buf  или  ret  находится  вне доступного программного
              адресного пространства.

       EINVAL Неправильное значение which; name равно NULL (указывающее "параметры ядра"), но оно
              не разрешено для указанного значения which.

       ENOENT Модуль с именем, указанным в name, не существует.

       ENOSPC Указанный  размер  буфера  слишком  мал. В ret возвращается минимальный необходимый
              размер.

       ENOSYS query_module()  is not supported in this version of the kernel (e.g., Linux 2.6  or
              later).

ВЕРСИИ

       This system call is present only up until Linux 2.4; it was removed in Linux 2.6.

СТАНДАРТЫ

       query_module() есть только в Linux.

ЗАМЕЧАНИЯ

       Некоторую  информацию, которая была ранее доступна через query_module(), можно получить из
       /proc/modules, /proc/kallsyms и файлов из каталога /sys/modules.

       Системный вызов query_module() не поддерживается glibc. В заголовочных файлах glibc он  не
       объявлен,  но  в  недавнем  прошлом  glibc  экспортировал ABI для этого системного вызова.
       Поэтому чтобы получить данный системный вызов  достаточно  вручную  объявить  интерфейс  в
       своём коде; или же вы можете вызвать его через syscall(2).

СМ. ТАКЖЕ

       create_module(2),    delete_module(2),   get_kernel_syms(2),   init_module(2),   lsmod(8),
       modinfo(8)

ПЕРЕВОД

       Русский    перевод    этой    страницы    руководства    был    сделан    Artyom    Kunyov
       <artkun@guitarplayer.ru>,    Azamat   Hackimov   <azamat.hackimov@gmail.com>,   Konstantin
       Shvaykovskiy <kot.shv@gmail.com> и Yuri Kozlov <yuray@komyakino.ru>

       Этот  перевод  является  бесплатной  документацией;  прочитайте  Стандартную  общественную
       лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если вы обнаружите ошибки в переводе  этой  страницы  руководства,  пожалуйста,  отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.