Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
DECLARE_MODULE(9)	 BSD 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
     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).  However, it can
     be	called directly	of course, for example in order	to implement dynamic
     sysctls.

     The arguments to DECLARE_MODULE():

     name is the name of the module, which will	be used	in the SYSINIT() call
     to	identify the module.

     data is a moduledata_t structure, which contains two main items, the of-
     ficial name of the	module name, which will	be used	in the module_t	struc-
     ture and a	pointer	to the event handler function of type modeventhand_t.

     sub is 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	mod-
     ules 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 SYSINIT().	 It represents the
     KLDs order	of initialization within the subsystem.	 Valid values are de-
     fined 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>, in-
     spired by the KLD Facility	Programming Tutorial by	Andrew Reiter
     <arr@watson.org>.

BSD				 March 3, 2001				   BSD

NAME | SYNOPSIS | DESCRIPTION | SEE ALSO | AUTHORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=DECLARE_MODULE&sektion=9&manpath=FreeBSD+5.2-RELEASE>

home | help