NAME
DECLARE_MODULE
—
kernel module declaration
macro
SYNOPSIS
#include
<sys/module.h>
DECLARE_MODULE
(name,
moduledata_t data,
sub,
order);
DESCRIPTION
TheDECLARE_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 pointer to the moduledata_t structure, which contains two main items, the official name of the module, which will be used in the module 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
sysstem_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 (see
<sys/kernel.h>
).
SEE ALSO
DEV_MODULE(9), DRIVER_MODULE(9), module(9), SYSCALL_MODULE(9)
<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>.