|
DECLARE_MODULE(9)
Contents
|
DECLARE_MODULE -- kernel module declaration macro
#include <sys/param.h>
#include <sys/kernel.h>
#include <sys/module.h>
DECLARE_MODULE(name, moduledata_t data, sub, order);
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). However, it can
be called directly of course, for example in order to implement dynamic
sysctls.
The arguments to DECLARE_MODULE():
name is the name of the module, which will be used in the SYSINIT() call
to identify the module.
data is 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 is 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.
The order value is another 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>).
DEV_MODULE(9), DRIVER_MODULE(9), module(9), SYSCALL_MODULE(9)
/usr/include/sys/kernel.h, /usr/share/examples/kld
This manual page was written by Alexander Langer <[email protected]>,
inspired by the KLD Facility Programming Tutorial by Andrew Reiter
<[email protected]>.
FreeBSD 5.2.1 March 3, 2001 FreeBSD 5.2.1 [ Back ] |