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.

UNIX has been evolving feverishly for close to 30 years, sort of like bacteria in a cesspool — only not as attractive
— John Levine, "Unix for Dummies"