get_kernel_syms(2) System Calls Manual get_kernel_syms(2)

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

#include <linux/module.h>
[[a extinguir]] int get_kernel_syms(struct kernel_sym *tabla);

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.

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.

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

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

Linux.

Removed in Linux 2.6.

This obsolete system call is not supported by glibc. No declaration is provided in glibc headers, but, through a quirk of history, glibc versions before glibc 2.23 did export an ABI for this system call. Therefore, in order to employ this system call, it was sufficient to manually declare the interface in your code; alternatively, you could invoke the system call using syscall(2).

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

The length of exported symbol names is limited to 59 characters.

Because of these limitations, this system call is deprecated in favor of query_module(2) (which is itself nowadays deprecated in favor of other interfaces described on its manual page).

create_module(2), delete_module(2), init_module(2), query_module(2)

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

2 Mayo 2024 Páginas de Manual de Linux 6.8