DEV_MODULE(9)

명칭
DEV_MODULE - 디바이스 드라이버 모듈 선언 매크로

서식
<sys/param.h> <sys/kernel.h> <sys/module.h> <sys/conf.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);

관련 항목
DECLARE_MODULE(9), destroy_dev(9), make_dev(9), module(9)

저자
이 메뉴얼 페이지는 Alexander Langer <alex@FreeBSD.org> 하지만 썼습니다.