diff options
Diffstat (limited to 'share/man/man9/DECLARE_MODULE.9')
-rw-r--r-- | share/man/man9/DECLARE_MODULE.9 | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/share/man/man9/DECLARE_MODULE.9 b/share/man/man9/DECLARE_MODULE.9 new file mode 100644 index 000000000000..d33c18ed6081 --- /dev/null +++ b/share/man/man9/DECLARE_MODULE.9 @@ -0,0 +1,112 @@ +.\" -*- nroff -*- +.\" +.\" Copyright (c) 2000 Alexander Langer +.\" +.\" All rights reserved. +.\" +.\" This program is free software. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd January 6, 2005 +.Dt DECLARE_MODULE 9 +.Os +.Sh NAME +.Nm DECLARE_MODULE +.Nd kernel module declaration macro +.Sh SYNOPSIS +.In sys/param.h +.In sys/kernel.h +.In sys/module.h +.Fn DECLARE_MODULE "name" "moduledata_t data" "sub" "order" +.Sh DESCRIPTION +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 +.Xr DRIVER_MODULE 9 , +.Xr DEV_MODULE 9 +and +.Xr SYSCALL_MODULE 9 . +Of course, it can also be called directly, for example in +order to implement dynamic sysctls. +.Pp +The arguments it expects are: +.Bl -tag -width indent +.It Fa name +The module name, which will be used in the +.Fn SYSINIT +call to identify the module. +.It 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 . +.It 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 +.Xr DRIVER_MODULE 9 +macro uses a value of +.Dv 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 +.Dv SI_SUB_EXEC +is common. +.It 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 +.Pq In sys/kernel.h . +.El +.Sh SEE ALSO +.Xr DEV_MODULE 9 , +.Xr DRIVER_MODULE 9 , +.Xr module 9 , +.Xr SYSCALL_MODULE 9 +.Pp +.Pa /usr/include/sys/kernel.h , +.Pa /usr/share/examples/kld +.Sh AUTHORS +.An -nosplit +This manual page was written by +.An Alexander Langer Aq alex@FreeBSD.org , +inspired by the KLD Facility Programming Tutorial by +.An Andrew Reiter Aq arr@watson.org . |