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 |