GET_KERNEL_SYMS(2)

NOM
get_kernel_syms - Obtenir les symboles exportes par le noyau et les modules.

SYNOPSIS
#include <linux/module.h>

int get_kernel_syms(struct kernel_sym *table);

DESCRIPTION
Si table est NULL, get_kernel_syms renvoie le nombre de symboles disponibles. Sinon, il remplit la table avec des structures :

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

Les groupes de symboles sont separes par des symboles "magiques" de la forme #nom_de_module Pour les symboles du noyau, nom_de_module est vide. La valeur associee avec un tel symbole magique est l'adresse a laquelle le module est charge.

L'ensemble des symboles exportes par un module suit le symbole magique du module. Les modules sont presentes en ordre inverse du chargement.

VALEUR RENVOYEE
Renvoie le nombre de symboles exportes. Il n'y a pas d'erreur possible.

VOIR AUSSI
create_module(2), init_module(2), delete_module(2), query_module(2).

BUGS
Il n'y a pas de moyen d'indiquer la taille du buffer alloue pour la table. Si des modules sont ajoutes dans le noyau entre la lecture du nombre de symboles disponibles, et la lecture des symboles proprement dite, la memoire sera corrompue.

La longueur des noms des symboles exportes est limitee a 59.

A cause de ces limites, cet appel-systeme est deconseille, il vaut mieux utiliser query_module(2).