EN JA
DEV_MODULE(9)
DEV_MODULE(9) FreeBSD Kernel Developer's Manual DEV_MODULE(9)

名称

DEV_MODULEデバイスドライバモジュール宣言マクロ

書式

#include < sys/param.h>
#include < sys/kernel.h>
#include < sys/module.h>
#include < sys/conf.h>

DEV_MODULE( name, modeventhand_t evh, void *arg);

解説

DEV_MODULE() マクロは、デバイスドライバのカーネルモジュールを宣言します。それは、 moduledata_t 構造体に書き込んで、次に、正しい引数で DECLARE_MODULE() を呼びだします、ここで name は、モジュールの名前で、 evh (その引数 arg を付けて) は、モジュールのためにイベントハンドラです (詳細については、 DECLARE_MODULE(9) を参照)。イベントハンドラは、ロード時に make_dev() でデバイスを作成し、 destroy_dev() を使用して、それがアンロードされるとき、破壊することになっています。

使用例

#include <sys/module.h> 
#include <sys/conf.h> 
 
static struct cdevsw foo_devsw = { ... }; 
 
static struct cdev *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>によって書かれました。
January 19, 2012 FreeBSD