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 (8 years, 11 months 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 .