MODULE(9)

名称
module - カーネルモジュールの構造記述

解説
カーネル内の個々のモジュールは module_t 構造体によって記述されます。 この構造体は、幾つかのカーネルの内部データはもちろん、デバイスの名前、 固有の ID 番号、イベントハンドラ関数へのポインタ、および イベントハンドラに渡される引数を含んでいます。

DECLARE_MODULE(9) マクロはシステムにモジュールを登録します。 そのモジュールがロードされた時に、 what 引数に MOD_LOAD が設定されて、イベントハンドラ関数が呼び出されます。 アンロード時には、 what には MOD_UNLOAD が設定されます。 システムがシャットダウンされる時には、 what は MOD_SHUTDOWN の値を含みます。

使用例

    #include <sys/param.h>
    #include <sys/kernel.h>
    #include <sys/module.h>
    static int foo_handler(module_t mod, int /*modeventtype_t*/ what,
                           void *arg);
    static moduledata_t mod_data= {
            "foo",
            foo_handler,
            0
    };
    MODULE_VERSION(foo, 1);
    MODULE_DEPEND(foo, bar, 1, 3, 4);
    DECLARE_MODULE(foo, mod_data, SI_SUB_EXEC, SI_ORDER_ANY);

関連項目
DECLARE_MODULE(9), DEV_MODULE(9), DRIVER_MODULE(9), MODULE_DEPEND(9), MODULE_VERSION(9), SYSCALL_MODULE(9)

/usr/share/examples/kld

作者
このマニュアルページは Alexander Langer <alex@FreeBSD.org> が書きました。