table of contents
| DECLARE_MODULE(9) | Kernel Developer's Manual | 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¶
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). 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 ofSI_SUB_DRIVERShere for example, since these modules contain a driver for a device. For kernel modules that are loaded at runtime, a value ofSI_SUB_EXECis 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>.| January 6, 2005 | Linux 4.9.0-9-amd64 |