DECLARE_MODULE(9)

名称
DECLARE_MODULE - カーネルモジュール宣言マクロ

書式
<sys/param.h> <sys/kernel.h> <sys/module.h> DECLARE_MODULE(name, moduledata_t data, sub, order)

解説
DECLARE_MODULE() マクロは一般的なカーネルモジュールを宣言します。 これは SYSINIT() マクロを使用して、そのモジュールをシステムに登録します。 DECLARE_MODULE() は通常、 DRIVER_MODULE(9), DEV_MODULE(9) および SYSCALL_MODULE(9) のような他のマクロの中で使用されます。 もちろん、例えば動的な sysctl を実装するために、 直接呼び出されることも可能です。

引数は以下のとおりです。

name
    モジュールを識別するために SYSINIT() 呼び出しで使用されるモジュールの名前です。

data
    module_t 構造体の中で使用されるモジュール名の正式名称および型 modeventhand_t のイベントハンドラ関数へのポインタの 2 つの主要な要素を含む moduledata_t 構造体です。

sub SYSINIT() マクロへの直接の引数です。 このための有効な値は sysinit_sub_id 列挙型に <(> sys/kernel.h を参照) 含まれていて、システムスタートアップインタフェースの型を明示します。 例えば DRIVER_MODULE(9) マクロは、これらのモジュールがデバイスのためのドライバを含んでいるので、 ここで SI_SUB_DRIVERS の値を使用します。 実行時にロードされるカーネルモジュールでは、 SI_SUB_EXEC の値は共通です。

order
    SYSINIT() のための引数です。 これは KLD のサブシステム内の初期化の順序を意味します。 有効な値は sysinit_elem_order 列挙型 (<sys/kernel.h>) で定義されています。

関連項目
DEV_MODULE(9), DRIVER_MODULE(9), module(9), SYSCALL_MODULE(9)

/usr/include/sys/kernel.h, /usr/share/examples/kld

作者
-nosplit このマニュアルページは Andrew Reiter <arr@watson.org> によって書かれた KLD Facility Programming Tutorial に触発されて、 Alexander Langer <alex@FreeBSD.org> によって書かれました。