Linux |
CentOS 4.8 |
|
get_kernel_syms(2) |
get_kernel_syms − Obtenir les symboles exportés par le noyau et les modules. |
#include <linux/module.h> int get_kernel_syms(struct kernel_sym *table); |
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 séparés par des symboles "magiques" de la forme #nom_de_module Pour les symboles du noyau, nom_de_module est vide. La valeur associée avec un tel symbole magique est l’adresse à laquelle le module est chargé. L’ensemble des symboles exportés suit le symbole magique du module. Les modules sont présentés en ordre inverse du chargement. |
Renvoie le nombre de symboles exportés. Il n’y a pas d’erreur possible. |
create_module(2), init_module(2), delete_module(2), query_module(2). |
Il n’y a pas de moyen d’indiquer la taille du buffer alloué pour la table. Si des modules sont ajoutés dans le noyau entre la lecture du nombre de symboles disponibles, et la lecture des symboles proprement dite, la mémoire sera corrompue. La longueur des noms des symboles exportés est limitée à 59. A cause de ces limites, cet appel-système est déconseillé, il vaut mieux utiliser query_module(2). |
Christophe Blaess, 1997. |
get_kernel_syms(2) |