DECLARE_MODULE(9) kernel module declaration macro


In sys/param.h In sys/kernel.h In sys/module.h Fn DECLARE_MODULE name moduledata_t data sub order


The Fn DECLARE_MODULE macro declares a generic kernel module. It is used to register the module with the system, using the Fn SYSINIT macro. Fn DECLARE_MODULE is usually used within other macros, such as DRIVER_MODULE9, DEV_MODULE9 and SYSCALL_MODULE9. Of course, it can also be called directly, for example in order to implement dynamic sysctls.

The arguments it expects are:

Fa name
The module name, which will be used in the Fn SYSINIT call to identify the module.
Fa data
A Vt moduledata_t structure, which contains two main items, the official name of the module name, which will be used in the Vt module_t structure and a pointer to the event handler function of type Vt modeventhand_t .
Fa sub
An argument directed to the Fn SYSINIT macro. Valid values for this are contained in the Vt sysinit_sub_id enumeration (see In sys/kernel.h ) and specify the type of system startup interfaces. The DRIVER_MODULE9 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.
Fa order
An argument for Fn SYSINIT . It represents the KLDs order of initialization within the subsystem. Valid values are defined in the Vt sysinit_elem_order enumeration (In sys/kernel.h )


An -nosplit This manual page was written by An Alexander Langer Aq [email protected] , inspired by the KLD Facility Programming Tutorial by An Andrew Reiter Aq [email protected] .