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
列挙型に
<(>
を参照) 含まれていて、システムスタートアップインタフェースの型を明示します。
例えば
DRIVER_MODULE(9)
マクロは、これらのモジュールがデバイスのためのドライバを含んでいるので、
ここで
SI_SUB_DRIVERS
の値を使用します。
実行時にロードされるカーネルモジュールでは、
SI_SUB_EXEC
の値は共通です。
|
order
|
|
SYSINIT()
のための引数です。
これは KLD のサブシステム内の初期化の順序を意味します。
有効な値は
sysinit_elem_order
列挙型
(<sys/kernel.h>)
で定義されています。
|