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