GET_KERNEL_SYMS(2)

名前
get_kernel_syms - エクスポートされているカーネルとモジュールのシンボルを取得する

書式
#include <linux/module.h>

int get_kernel_syms(struct kernel_sym *table);

このマニュアルについて
これは、Linux Kernel 2.4 の時代に使われていた modutils パッケージ所収の古いマニュアルです。(2022/12/02, Linux JM Project)

説明
table が NULL ならば、get_kernel_syms は問い合わせで きるシンボルの数を返す。NULL でなければ、以下の構造体に値を入れ て返す:

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

シンボルの中には #モジュール名 という形式の、カーネルが空の名前を持っているマジックシンボルが散在して いる。 この形式のシンボルに対応する値は、モジュールがロードされた位置のアドレ スである。

それぞれのモジュールからエクスポートされたシンボルは、マジックモジュール タグの後に置かれる。また、モジュールはロードされた順番と逆順で返される。

返り値
返り値は返されるシンボル数である。エラーで復帰することはない。

関連項目
create_module(2), init_module(2), delete_module(2), query_module(2)

バグ
table のために確保したバッファの大きさを伝える方法がない。 プログラムがシンボルテーブルの大きさを問い合わせた後にカーネルに シンボルが追加されると、メモリの内容が破壊される。

エクスポートされるシンボル名の長さは 59 文字に制限される。

以上の制限により、このシステムコールよりは query_module を使う方 が望ましい。