Manpages

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