get_kernel_syms(2)

NOMBRE
get_kernel_syms - recupera símbolos exportados del núcleo y de módulos

SINOPSIS
#include <linux/module.h>

[[a extinguir]] int get_kernel_syms(struct kernel_sym *tabla);

DESCRIPCIÓN
Nota: esta llamada de sistema sólo existe en versiones del núcleo de Linux anteriores a 2.6.

Si tabla es NULL, get_kernel_syms() devuelve el número de símbolos disponibles para consultar. En otro caso rellena una tabla de estructuras:

    struct kernel_sym {
        unsigned long value;
        char          name[60];
    };

Los símbolos están mezclados con símbolos mágicos de la forma #nombre-de-módulo donde el núcleo tiene un nombre vacío. El valor asociado a un símbolo de esta forma es la dirección en la cual el módulo se carga.

Los símbolos exportados de cada módulo siguen su etiqueta mágica de módulo y los módulos se devuelven en orden inverso de su carga.

VALOR DEVUELTO
En caso de éxito se retorna la cantidad de símbolos copiados de tabla. En caso de error se devuelve -1, y errno toma el valor indicativo de dicho error.

ERRORES
Sólo existe una posibilidad en el estado de salida de error:

ENOSYS
    get_kernel_syms() no tiene soporte en esta versión del núcleo.

ESTÁNDARES
Linux.

HISTORIAL
Eliminado en Linux 2.6.

Esta llamada al sistema está obsoleta y no es compatible con glibc. No se aporta ninguna declaración en las cabeceras de glibc, pero, por una peculiaridad histórica, las versiones de glibc anteriores a glibc 2.23 sí exportaban una ABI para esta llamada al sistema. Por lo tanto, para emplear esta llamada al sistema, bastaba con declarar manualmente la interfaz en el código. También se podía invocar la llamada al sistema mediante syscall(2).

ERRORES
No hay forma de indicar el tamaño del búfer reservado para tabla. Si se han añadido símbolos al núcleo desde que el programa interrogó sobre el tamaño de la tabla de símbolos, la memoria se corromperá.

La longitud de los nombres de símbolos exportados está limitada a 59 caracteres.

Debido a estas limitaciones, esta llamada al sistema está obsoleta en favor de query_module(2) (que a su vez está obsoleta en favor de otras interfaces descritas en su página de manual).

VÉASE TAMBIÉN
create_module(2), delete_module(2), init_module(2), query_module(2)

TRADUCCIÓN
La traducción al español de esta página del manual fue creada por Gerardo Aburruzaga García <gerardo.aburruzaga@uca.es> y Marcos Fouces <marcos@debian.org>

Esta traducción es documentación libre; lea la GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD.

Si encuentra algún error en la traducción de esta página del manual, envíe un correo electrónico a debian-l10n-spanish@lists.debian.org.