table of contents
DECLARE_MODULE(9) | Kernel Developer's Manual | DECLARE_MODULE(9) |
NAME¶
DECLARE_MODULE — kernel module declaration macroSYNOPSIS¶
#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 ofSI_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/kldAUTHORS¶
This manual page was written by Alexander Langer ⟨alex@FreeBSD.org⟩, inspired by the KLD Facility Programming Tutorial by Andrew Reiter ⟨arr@watson.org⟩.January 6, 2005 | Debian |