DRIVER_MODULE(9) FreeBSD 一般コマンドマニュアル

DRIVER_MODULE

前のページ 上に戻る 次のページ

DRIVER_MODULE


     #include <sys/bus.h>
     #include <sys/module.h>

     DRIVER_MODULE(name, busname, driver_t driver, devclass_t devclass,
             modeventhand_t evh, void *arg);

     MULTI_DRIVER_MODULE(name, busname, driver_t drivers[],
             devclass_t devclass, modeventhand_t evh, void *arg);


解説

     DRIVER_MODULE() マクロは、カーネルドライバを宣言します。 DRIVER_MODULE()
     は実際のドライバ宣言に展開し、そこで name はドライバとその関数の接頭辞と
     して使用されます。これはプレインテキストとして与えられ、 char または char
     * ではないことに注意してください。

     busname はドライバの親のバス (PCI, ISA, PPBUS, その他) で、 `pci', `isa',
     `ppbus' 等です。

     DRIVER_MODULE() の中で使用される識別子は、ドライバの名前と別のものにする
     ことができます。また、異なるバス上には同じドライバ識別子が存在できます。
     これは、同じドライバを使用する同一または異なるバス上の種々のカード用に、
     フロントエンドをうまくきれいに作成する方法です。例えば、次のようにできま
     す。

     DRIVER_MODULE(foo, isa, foo_driver, foo_devclass, NULL, NULL);

     DRIVER_MODULE(foo, pci, foo_driver, foo_devclass, NULL, NULL);

     driver は driver_t 型のドライバで、ドライバについての情報を含み、それゆえ
     DRIVER_MODULE() を呼び出すための最も重要な 2 つの部分のうちの 1 つです。

     引数 devclass はデバイスについてのカーネル内部の情報を含み、カーネルドラ
     イバモジュールの内部で使用されます。

     引数 evh はドライバ (またはモジュール) がロードまたはアンロードされた時に
     呼び出されるイベントハンドラです ( module(9) を参照してください)。

     現時点では arg は使用されず、 NULL ポインタであるべきです。

     MULTI_DRIVER_MODULE() は DRIVER_MODULE() の特殊バージョンであり、単一のド
     ライバインスタンスの代りにドライバリストを取ります。


関連項目

     device(9), driver(9), module(9)


作者

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

FreeBSD 4.4                      May 16, 2000                      FreeBSD 4.4

ABELNET VPSサービス