From 06c771f80f3b8d079e3f8a07181fc01b1654a9e5 Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 9 Mar 2001 14:11:56 +0000 Subject: [PATCH] Add a manpage for the kernel macro DECLARE_MODULE. Reviewed by: dfr, ru --- share/man/man9/DECLARE_MODULE.9 | 113 ++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 share/man/man9/DECLARE_MODULE.9 diff --git a/share/man/man9/DECLARE_MODULE.9 b/share/man/man9/DECLARE_MODULE.9 new file mode 100644 index 000000000000..65eb8d0c27fc --- /dev/null +++ b/share/man/man9/DECLARE_MODULE.9 @@ -0,0 +1,113 @@ +.\" -*- 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 March 3, 2001 +.Dt DECLARE_MODULE 9 +.Os +.Sh NAME +.Nm DECLARE_MODULE +.Nd kernel module declaration macro +.Sh SYNOPSIS +.Fd #include +.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 CDEV_MODULE 9 +and +.Xr SYSCALL_MODULE 9 . +However, it can be called directly of course, for example in +order to implement dynamic sysctls. +.Pp +The arguments to +.Fn DECLARE_MODULE : +.Pp +.Fa name +is the name of the module, which will be used in the +.Fn SYSINIT +call to identify the module. +.Pp +.Fa data +is a pointer to the +.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 . +.Pp +.Fa sub +is an argument directed to the +.Fn SYSINIT +macro. +Valid values for this are contained in the +.Vt sysstem_sub_id +enumeration +(see +.Pa 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. +.Pp +The +.Fa order +value is another 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 +.Pa ( kernel.h ) . +.Sh SEE ALSO +.Xr CDEV_MODULE 9 , +.Xr DRIVER_MODULE 9 , +.Xr SYSCALL_MODULE 9 , +.Xr module 9 , +.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 .