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 han - dler 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 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 ini
- tialization within the subsystem. Valid values are
- defined in
the sysinit_elem_order enumeration (
SEE ALSO
- DEV_MODULE(9), DRIVER_MODULE(9), module(9), SYSCALL_MOD
- ULE(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