Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

dev_module(9) [debian man page]

DEV_MODULE(9)						   BSD Kernel Developer's Manual					     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 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 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 BSD

Check Out this Related Man Page

DECLARE_MODULE(9)					   BSD Kernel Developer's Manual					 DECLARE_MODULE(9)

NAME
DECLARE_MODULE -- kernel module declaration macro SYNOPSIS
#include <sys/param.h> #include <sys/kernel.h> #include <sys/module.h> DECLARE_MODULE(name, moduledata_t data, sub, order); DESCRIPTION
The DECLARE_MODULE() macro declares a generic kernel module. It is used to register the module with the system, using the SYSINIT() macro. DECLARE_MODULE() is usually used within other macros, such as DRIVER_MODULE(9), DEV_MODULE(9) and SYSCALL_MODULE(9). Of course, it can also be called directly, for example in order to implement dynamic sysctls. The arguments it expects are: name The module name, which will be used in the SYSINIT() call to identify the module. data A moduledata_t structure, which contains two main items, the official name of the module name, which will be used in the module_t structure and a pointer to the event handler function of type modeventhand_t. sub An argument directed to the SYSINIT() macro. Valid values for this are contained in the sysinit_sub_id enumeration (see <sys/kernel.h>) and specify the type of system startup interfaces. The DRIVER_MODULE(9) macro uses a value of SI_SUB_DRIVERS here for example, since these modules contain a driver for a device. For kernel modules that are loaded at runtime, a value of SI_SUB_EXEC is common. order An argument for SYSINIT(). It represents the KLDs order of initialization within the subsystem. Valid values are defined in the sysinit_elem_order enumeration (<sys/kernel.h>). SEE ALSO
DEV_MODULE(9), DRIVER_MODULE(9), module(9), SYSCALL_MODULE(9) /usr/include/sys/kernel.h, /usr/share/examples/kld AUTHORS
This manual page was written by Alexander Langer <alex@FreeBSD.org>, inspired by the KLD Facility Programming Tutorial by Andrew Reiter <arr@watson.org>. BSD
January 6, 2005 BSD
Man Page