NAME¶
DEV_MODULE
—
device driver module declaration macro
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 ⟨alex@FreeBSD.org⟩.