Soporte de Módulos de Linux (2)
26 Diciembre 1996
 

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

Nuevo comentario