NOMBRE¶
query_module - interroga al núcleo sobre varias cosas relacionadas con los
  módulos
SINOPSIS¶
#include <linux/module.h>
 
int query_module(const char *nombre, int que,
void *buf, size_t tambuf, size_t *ret);
DESCRIPCIÓN¶
query_module pide información al núcleo relativa a módulos
  cargables. La naturaleza precisa de la información y su formato depende
  de la subfunción 
que. Algunas funciones requieren que
  
nombre se refiera a un módulo cargado actualmente, otras permiten
  que 
nombre sea 
NULL, indicando el propio núcleo.
 
VALORES DE `QUE'¶
  - 0
 
  - Siempre devuelve `éxito'. Se emplea para probar la
      llamada al sistema.
 
  - QM_MODULES
 
  - Devuelve los nombres de todos los módulos cargados. El
      formato del búfer de salida consiste en cadenas de caracteres
      adyacentes terminadas en cero; ret contendrá el número de
      módulos.
 
  - QM_DEPS
 
  - Devuelve los nombres de todos los módulos utilizados
      por el módulo indicado. El formato del búfer de salida consiste
      en cadenas de caracteres adyacentes terminadas en cero; ret
      contendrá el número de módulos.
 
  - QM_REFS
 
  - Devuelve los nombres de todos los módulos que utilizan
      al indicado. Esto es lo inverso de QM_DEPS. El formato del
      búfer de salida consiste en cadenas de caracteres adyacentes
      terminadas en cero; ret contendrá el número de
      módulos.
 
  - QM_SYMBOLS
 
  - Devuelve los símbolos y valores exportados por el
      núcleo o el módulo indicado. El formato del búfer consiste
      en un vector de:
 
struct module_symbol
{
  unsigned long value;
  unsigned long name;
};
seguido por cadenas de caracteres terminadas en cero. El valor de 
nombre
  es el desplazamiento de la cadena relativo al comienzo de 
buf;
  
ret contendrá el número de símbolos.
 
  - QM_INFO
 
  - Devuelve información variada sobre el módulo
      indicado. El formato del búfer de salida es:
 
struct module_info
{
  unsigned long address;
  unsigned long size;
  unsigned long flags;
};
donde 
address es la dirección del núcleo en la que reside el
  módulo, 
size es el tamaño del modulo en bytes, y 
flags
  es una máscara de 
MOD_RUNNING, 
MOD_AUTOCLEAN,
  etcétera, que indica el estado actual del módulo. 
ret
  contendrá el tamaño de la struct 
module_info.
 
VALOR DEVUELTO¶
En caso de éxito, se devuelve cero. En caso de error, se devuelve -1 y se
  pone un valor apropiado en 
errno.
ERRORES¶
  - ENOENT
 
  - No existe ningún módulo con ese
    nombre.
 
  - EINVAL
 
  - Inválido que, o nombre le indica al
      núcleo una subfunción inapropiada.
 
  - ENOSPC
 
  - El tamaño del búfer proporcionado era demasiado
      pequeño. ret contendrá el mínimo tamaño que se
      necesita.
 
  - EFAULT
 
  - Al menos uno de nombre, buf o ret
      estaban afuera del espacio de direcciones accesible al programa.
 
VÉASE TAMBIÉN¶
create_module(2), 
init_module(2), 
delete_module(2).