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

FreeBSD Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
DECLARE_MODULE(9)      FreeBSD 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).  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 inter-
	     faces.  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 ini-
	     tialization 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>.

FreeBSD	9.2			January	6, 2005			   FreeBSD 9.2

NAME | SYNOPSIS | DESCRIPTION | SEE ALSO | AUTHORS

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

home | help