trusty (9) DECLARE_MODULE.9freebsd.gz

Provided by: freebsd-manpages_9.2+1-1_all bug

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