DEV_MODULE(9) FreeBSD カーネル開発者マニュアル DEV_MODULE(9)
名称
DEV_MODULE − デバイスドライバモジュール宣言マクロ |
書式
#include <sys/param.h> |
DEV_MODULE(name, modeventhand_t evh, void *arg); |
解説 |
DEV_MODULE() マクロはデバイスドライバカーネルモジュールを宣言します。これ は moduledata_t 構造体を埋めて、それから DECLARE_MODULE() を正しい引数で 呼び出します。ここで、 name はモジュール名で、 (arg を引数として持つ) evh はそのモジュールのためのイベントハンドラです (詳細については DECLARE_MODULE(9) を参照)。イベントハンドラはロード時に make_dev() でデバ イスを作成し、アンロードされる時に destroy_dev() でそのデバイスを破壊する ことを、期待されています。 |
使用例
#include <sys/module.h> #include <sys/conf.h> static struct cdevsw foo_devsw = { ... }; static dev_t sdev; static int foo_load(module_t mod, int cmd, void *arg) { int err = 0; switch (cmd) { case MOD_LOAD: sdev = make_dev(&foo_devsw, 0, UID_ROOT, GID_WHEEL, 0600, "foo"); break; /* 成功 */ case MOD_UNLOAD: case MOD_SHUTDOWN: destroy_dev(sdev); break; /* 成功 */ default: err = EINVAL; break; } return(err); } DEV_MODULE(foo, foo_load, NULL); |
関連項目
作者
このマニュアルページは Alexander Langer 〈alex@FreeBSD.org〉 が書きました。 FreeBSD 10.0 March 11, 2001 FreeBSD 10.0 |