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
Copyright © 2010-2024 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout