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

Debian                                           January 6, 2005                               DECLARE_MODULE(9)