tail head cat sleep
QR code linking to this page

Manual Pages  — DEV_MODULE

NAME

DEV_MODULE – device driver module declaration macro

CONTENTS

SYNOPSIS

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

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

DESCRIPTION

The DEV_MODULE() macro declares a device driver kernel module. It fills in a moduledata_t structure and then calls DECLARE_MODULE() with the correct args, where name is the name of the module and evh (with its argument arg) is the event handler for the module (refer to DECLARE_MODULE(9) for more information). The event handler is supposed to create the device with make_dev() on load and to destroy it when it is unloaded using destroy_dev().

EXAMPLES

#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; /* Success*/

case MOD_UNLOAD: case MOD_SHUTDOWN: destroy_dev(sdev); break; /* Success*/

default: err = EINVAL; break; }

return(err); }

DEV_MODULE(foo, foo_load, NULL);

SEE ALSO

DECLARE_MODULE(9), destroy_dev(9), make_dev(9), module(9)

AUTHORS

This manual page was written by Alexander Langer <Mt alex@FreeBSD.org>.

DEV_MODULE (9) January 19, 2012

tail head cat sleep
QR code linking to this page


Please direct any comments about this manual page service to Ben Bullock. Privacy policy.

Modern Unix impedes progress in computer science, wastes billions of dollars, and destroys the common sense of many who seriously use it.
— The Unix Haters' handbook