DECLARE_MODULE
kernel module declaration macro
- Provided by: freebsd-manpages (Version: 10.1~RC1-1)
- Report a bug
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). Of
course, it can also be called directly, for example in order to implement
dynamic sysctls.
The arguments it expects are:
SYSINIT()
call to identify the module.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.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 ⟨alex@FreeBSD.org⟩, inspired by the KLD Facility Programming Tutorial by Andrew Reiter ⟨arr@watson.org⟩.