summaryrefslogtreecommitdiffstats
path: root/share/man/man9/DECLARE_MODULE.9
diff options
context:
space:
mode:
authoralex <alex@FreeBSD.org>2001-03-09 14:11:56 +0000
committeralex <alex@FreeBSD.org>2001-03-09 14:11:56 +0000
commit06c771f80f3b8d079e3f8a07181fc01b1654a9e5 (patch)
tree804f9557fcb59d34e5e59bdb8b7fd7d0b62a57b1 /share/man/man9/DECLARE_MODULE.9
parent1946903531cc5ee990fb18979802df77e6814bbf (diff)
downloadFreeBSD-src-06c771f80f3b8d079e3f8a07181fc01b1654a9e5.zip
FreeBSD-src-06c771f80f3b8d079e3f8a07181fc01b1654a9e5.tar.gz
Add a manpage for the kernel macro DECLARE_MODULE.
Reviewed by: dfr, ru
Diffstat (limited to 'share/man/man9/DECLARE_MODULE.9')
-rw-r--r--share/man/man9/DECLARE_MODULE.9113
1 files changed, 113 insertions, 0 deletions
diff --git a/share/man/man9/DECLARE_MODULE.9 b/share/man/man9/DECLARE_MODULE.9
new file mode 100644
index 0000000..65eb8d0
--- /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 <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 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 .
OpenPOWER on IntegriCloud