dev_module(9)
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 mod
- ule. 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 DE
- CLARE_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 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; /* 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>.
- BSD March 11, 2001