tail head cat sleep
QR code linking to this page

manページ  — DRIVER_MODULE

名称

DRIVER_MODULE – カーネルドライバ宣言マクロ

内容

書式

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

driverdriver_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> が書きました。

DRIVER_MODULE (9) May 16, 2000

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

The last good thing written in C was Franz Schubert's Symphony #9.
— Erwin Dietrich