| 総合手引 | セクション 9 | English | オプション |
#include <sys/param.h> #include <sys/bus.h>static int foo_probe(device_t); static int foo_attach(device_t); static int foo_detach(device_t); static int foo_frob(device_t, int, int); static int foo_twiddle(device_t, char *);
static struct device_method_t foo_methods[] = { /* デバイスインタフェースからのメソッド */ DEVMETHOD(device_probe, foo_probe), DEVMETHOD(device_attach, foo_attach), DEVMETHOD(device_detach, foo_detach),
/* bogo インタフェースからのメソッド */ DEVMETHOD(bogo_frob, foo_frob), DEVMETHOD(bogo_twiddle, foo_twiddle),
/* メソッドリストの終端 */ { 0, 0 } };
static driver_t foo_driver { "foo", foo_methods, sizeof(struct foo_softc) };
static devclass_t foo_devclass;
DRIVER_MODULE(foo, bogo, foo_driver, foo_devclass, 0, 0);
ドライバが ( DRIVER_MODULE マクロによって、 DRIVER_MODULE(9) を参照) システムに登録される時に、 その親のバスタイプの devclass の中に含まれている ドライバのリストに追加されます。 例えば、全ての PCI ドライバは "pci" と名付けられた devclass に含まれ、 全ての ISA ドライバは "isa" と名付けられた devclass に含まれます。 ドライバが親のバスのデバイスオブジェクトの中に保持されない理由は、 与えられたバスのタイプの複数のインスタンスを取り扱うためです。 DRIVER_MODULE マクロはそのドライバの名前の devclass も生成します。 最後の 2 つの引数として追加のモジュールイベントハンドラとその引数を 与えることによって、 オプションでドライバの追加の初期化コードを呼び出すことができます。
| DRIVER (9) | June 16, 1998 |
| 総合手引 | セクション 9 | English | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.
| “ | Do you laugh when the waiter drops a tray full of dishes? Unix weenies do. They're the first ones to laugh at hapless users, trying to figure out an error message that doesn't have anything to do with what they just typed. | ” |
| — The Unix Haters' handbook | ||