スポンサーリンク

DECLARE_MODULE(9) FreeBSD カーネル開発者マニュアル DECLARE_MODULE(9)

名称

DECLARE_MODULE − カーネルモジュール宣言マクロ

書式

#include <sys/param.h>
#include <sys/kernel.h>
#include <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

作者

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

FreeBSD 10.0 January 6, 2005 FreeBSD 10.0

スポンサーリンク