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