man.bsd.lv manual page server

Manual Page Search Parameters

DECLARE_MODULE(9) Kernel Developer's Manual DECLARE_MODULE(9)

DECLARE_MODULEkernel module declaration macro

#include <sys/module.h>

DECLARE_MODULE(name, moduledata_t data, sub, order);

The () 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 ():

name is the name of the module, which will be used in the () 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 () 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 (). It represents the KLDs order of initialization within the subsystem. Valid values are defined in the sysinit_elem_order enumeration (see <sys/kernel.h>).

DEV_MODULE(9), DRIVER_MODULE(9), module(9), SYSCALL_MODULE(9)

<sys/kernel.h>, /usr/share/examples/kld

This manual page was written by Alexander Langer <alex@FreeBSD.org>, inspired by the KLD Facility Programming Tutorial by Andrew Reiter <arr@watson.org>.

March 3, 2001 DragonFly-5.6.1