DRIVER_MODULE(9) FreeBSD カーネル開発者マニュアル DRIVER_MODULE(9)
名称
DRIVER_MODULE − カーネルドライバ宣言マクロ |
書式
#include <sys/param.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() の特殊バージョンであり、単一のド ライバインスタンスの代りにドライバリストを取ります。 |
関連項目
作者
このマニュアルページは Alexander Langer 〈alex@FreeBSD.org〉 が書きました。 FreeBSD 10.0 May 16, 2000 FreeBSD 10.0 |