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⟩.