File:  [DragonFly] / src / share / man / man9 / DRIVER_MODULE.9
Revision 1.3: download - view: text, annotated - select for diffs
Tue Jun 1 11:36:53 2004 UTC (10 years, 1 month ago) by hmp
Branches: MAIN
CVS tags: HEAD, DragonFly_Stable, DragonFly_Snap29Sep2004, DragonFly_Snap13Sep2004, DragonFly_RELEASE_1_8_Slip, DragonFly_RELEASE_1_8, DragonFly_RELEASE_1_6_Slip, DragonFly_RELEASE_1_6, DragonFly_RELEASE_1_4_Slip, DragonFly_RELEASE_1_4, DragonFly_RELEASE_1_2_Slip, DragonFly_RELEASE_1_2, DragonFly_1_0_REL, DragonFly_1_0_RC1, DragonFly_1_0A_REL
Remove '-*- nroff -*-'.

Lets make a habit not to put editor-related magic into our base
files.  They are redundant and useless.

    1: .\" Copyright (c) 2000 Alexander Langer
    2: .\"
    3: .\" All rights reserved.
    4: .\"
    5: .\" This program is free software.
    6: .\"
    7: .\" Redistribution and use in source and binary forms, with or without
    8: .\" modification, are permitted provided that the following conditions
    9: .\" are met:
   10: .\" 1. Redistributions of source code must retain the above copyright
   11: .\"    notice, this list of conditions and the following disclaimer.
   12: .\" 2. Redistributions in binary form must reproduce the above copyright
   13: .\"    notice, this list of conditions and the following disclaimer in the
   14: .\"    documentation and/or other materials provided with the distribution.
   15: .\"
   16: .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
   17: .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   18: .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
   19: .\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
   20: .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
   21: .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
   22: .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
   23: .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   24: .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
   25: .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   26: .\"
   27: .\" $FreeBSD: src/share/man/man9/DRIVER_MODULE.9,v 1.1.2.5 2001/12/17 11:30:18 ru Exp $
   28: .\" $DragonFly: src/share/man/man9/DRIVER_MODULE.9,v 1.3 2004/06/01 11:36:53 hmp Exp $
   29: .\"
   30: .Dd May 16, 2000
   31: .Dt DRIVER_MODULE 9
   32: .Os
   33: .Sh NAME
   34: .Nm DRIVER_MODULE
   35: .Nd kernel driver declaration macro
   36: .Sh SYNOPSIS
   37: .In sys/types.h
   38: .In sys/bus.h
   39: .In sys/module.h
   40: .Fn DRIVER_MODULE name busname "driver_t driver" "devclass_t devclass" "modeventhand_t evh" "void *arg"
   41: .Fn MULTI_DRIVER_MODULE name busname "driver_t drivers[]" "devclass_t devclass" "modeventhand_t evh" "void *arg"
   42: .Sh DESCRIPTION
   43: The
   44: .Fn DRIVER_MODULE
   45: macro declares a kernel driver.
   46: .Fn DRIVER_MODULE
   47: expands to the real driver declaration, where the phrase
   48: .Fa name
   49: is used as the naming prefix for the driver and its functions.
   50: Note that it is supplied as plain text, and not a
   51: .Li char
   52: or
   53: .Li char * .
   54: .Pp
   55: .Fa busname
   56: is the parent bus of the driver (PCI, ISA, PPBUS and others), e.g.\&
   57: .Ql pci ,
   58: .Ql isa ,
   59: or
   60: .Ql ppbus .
   61: .Pp
   62: The identifier used in
   63: .Fn DRIVER_MODULE
   64: can be different from the driver name.
   65: Also, the same driver identifier can exist on different busses,
   66: which is a pretty clean way of making front ends for different cards
   67: using the same driver on the same or different busses.
   68: For example, the following is allowed:
   69: .Pp
   70: .Fn DRIVER_MODULE foo isa foo_driver foo_devclass NULL NULL ;
   71: .Pp
   72: .Fn DRIVER_MODULE foo pci foo_driver foo_devclass NULL NULL ;
   73: .Pp
   74: .Fa driver
   75: is the driver of type
   76: .Li driver_t ,
   77: which contains the information about the driver and is therefore one of the
   78: two most important parts of the call to
   79: .Fn DRIVER_MODULE .
   80: .Pp
   81: The
   82: .Fa devclass
   83: argument contains the kernel-internal information about the device,
   84: which will be used within the kernel driver module.
   85: .Pp
   86: The
   87: .Fa evh
   88: argument is the event handler which is called when the driver (or module)
   89: is loaded or unloaded (see
   90: .Xr module 9 ) .
   91: .Pp
   92: The
   93: .Fa arg
   94: is unused at this time and should be a
   95: .Dv NULL
   96: pointer.
   97: .Pp
   98: .Fn MULTI_DRIVER_MODULE
   99: is a special version of
  100: .Fn DRIVER_MODULE ,
  101: which takes a list of drivers instead of a single driver instance.
  102: .Sh SEE ALSO
  103: .Xr device 9 ,
  104: .Xr driver 9 ,
  105: .Xr module 9
  106: .Sh AUTHORS
  107: This manual page was written by
  108: .An Alexander Langer Aq alex@FreeBSD.org .