File:  [DragonFly] / src / share / man / man9 / DECLARE_MODULE.9
Revision 1.2: download - view: text, annotated - select for diffs
Tue Jun 17 04:37:01 2003 UTC (11 years, 6 months ago) by dillon
Branches: MAIN
CVS tags: HEAD
Add the DragonFly cvs id and perform general cleanups on cvs/rcs/sccs ids.  Most
ids have been removed from !lint sections and moved into comment sections.

    1: .\" -*- nroff -*-
    2: .\"
    3: .\" Copyright (c) 2000 Alexander Langer
    4: .\"
    5: .\" All rights reserved.
    6: .\"
    7: .\" This program is free software.
    8: .\"
    9: .\" Redistribution and use in source and binary forms, with or without
   10: .\" modification, are permitted provided that the following conditions
   11: .\" are met:
   12: .\" 1. Redistributions of source code must retain the above copyright
   13: .\"    notice, this list of conditions and the following disclaimer.
   14: .\" 2. Redistributions in binary form must reproduce the above copyright
   15: .\"    notice, this list of conditions and the following disclaimer in the
   16: .\"    documentation and/or other materials provided with the distribution.
   17: .\"
   18: .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
   19: .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   20: .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
   21: .\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
   22: .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
   23: .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
   24: .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
   25: .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   26: .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
   27: .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   28: .\"
   29: .\" $FreeBSD: src/share/man/man9/DECLARE_MODULE.9,v 1.2.2.3 2001/12/17 11:30:18 ru Exp $
   30: .\" $DragonFly: src/share/man/man9/DECLARE_MODULE.9,v 1.2 2003/06/17 04:37:01 dillon Exp $
   31: .\"
   32: .Dd March 3, 2001
   33: .Dt DECLARE_MODULE 9
   34: .Os
   35: .Sh NAME
   36: .Nm DECLARE_MODULE
   37: .Nd kernel module declaration macro
   38: .Sh SYNOPSIS
   39: .In sys/module.h
   40: .Fn DECLARE_MODULE "name" "moduledata_t data" "sub" "order"
   41: .Sh DESCRIPTION
   42: The
   43: .Fn DECLARE_MODULE
   44: macro declares a generic kernel module.
   45: It is used to register the module with the system, using the
   46: .Fn SYSINIT
   47: macro.
   48: .Fn DECLARE_MODULE
   49: is usually used within other macros, such as
   50: .Xr DRIVER_MODULE 9 ,
   51: .Xr DEV_MODULE 9
   52: and
   53: .Xr SYSCALL_MODULE 9 .
   54: However, it can be called directly of course, for example in
   55: order to implement dynamic sysctls.
   56: .Pp
   57: The arguments to
   58: .Fn DECLARE_MODULE :
   59: .Pp
   60: .Fa name
   61: is the name of the module, which will be used in the
   62: .Fn SYSINIT
   63: call to identify the module.
   64: .Pp
   65: .Fa data
   66: is a pointer to the
   67: .Vt moduledata_t
   68: structure, which contains two main items, the official name of the
   69: module name, which will be used in the
   70: .Vt module_t
   71: structure and a pointer to the event handler function of type
   72: .Vt modeventhand_t .
   73: .Pp
   74: .Fa sub
   75: is an argument directed to the
   76: .Fn SYSINIT
   77: macro.
   78: Valid values for this are contained in the
   79: .Vt sysstem_sub_id
   80: enumeration
   81: (see
   82: .Pa kernel.h )
   83: and specify the type of system startup interfaces.
   84: The
   85: .Xr DRIVER_MODULE 9
   86: macro uses a value of
   87: .Dv SI_SUB_DRIVERS
   88: here for example, since these modules contain a driver for a device.
   89: For kernel modules that are loaded at runtime, a value of
   90: .Dv SI_SUB_EXEC
   91: is common.
   92: .Pp
   93: The
   94: .Fa order
   95: value is another argument for
   96: .Fn SYSINIT .
   97: It represents the KLDs order of initialization within the subsystem.
   98: Valid values are defined in the
   99: .Vt sysinit_elem_order
  100: enumeration
  101: .Pa ( kernel.h ) .
  102: .Sh SEE ALSO
  103: .Xr DEV_MODULE 9 ,
  104: .Xr DRIVER_MODULE 9 ,
  105: .Xr module 9 ,
  106: .Xr SYSCALL_MODULE 9
  107: .Pp
  108: .Pa /usr/include/sys/kernel.h ,
  109: .Pa /usr/share/examples/kld
  110: .Sh AUTHORS
  111: .An -nosplit
  112: This manual page was written by
  113: .An Alexander Langer Aq alex@FreeBSD.org ,
  114: inspired by the KLD Facility Programming Tutorial by
  115: .An Andrew Reiter Aq arr@watson.org .