remove siisata and esl. (KIYOHARA Takashi)diff -r1.68 -r1.69 src/share/man/man4/audio.4
(christos)
--- src/share/man/man4/audio.4 2008/04/30 13:10:53 1.68
+++ src/share/man/man4/audio.4 2009/01/03 17:44:20 1.69
@@ -1,718 +1,716 @@ | @@ -1,718 +1,716 @@ | |||
1 | .\" $NetBSD: audio.4,v 1.68 2008/04/30 13:10:53 martin Exp $ | 1 | .\" $NetBSD: audio.4,v 1.69 2009/01/03 17:44:20 christos Exp $ | |
2 | .\" | 2 | .\" | |
3 | .\" Copyright (c) 1996 The NetBSD Foundation, Inc. | 3 | .\" Copyright (c) 1996 The NetBSD Foundation, Inc. | |
4 | .\" All rights reserved. | 4 | .\" All rights reserved. | |
5 | .\" | 5 | .\" | |
6 | .\" This code is derived from software contributed to The NetBSD Foundation | 6 | .\" This code is derived from software contributed to The NetBSD Foundation | |
7 | .\" by John T. Kohl. | 7 | .\" by John T. Kohl. | |
8 | .\" | 8 | .\" | |
9 | .\" Redistribution and use in source and binary forms, with or without | 9 | .\" Redistribution and use in source and binary forms, with or without | |
10 | .\" modification, are permitted provided that the following conditions | 10 | .\" modification, are permitted provided that the following conditions | |
11 | .\" are met: | 11 | .\" are met: | |
12 | .\" 1. Redistributions of source code must retain the above copyright | 12 | .\" 1. Redistributions of source code must retain the above copyright | |
13 | .\" notice, this list of conditions and the following disclaimer. | 13 | .\" notice, this list of conditions and the following disclaimer. | |
14 | .\" 2. Redistributions in binary form must reproduce the above copyright | 14 | .\" 2. Redistributions in binary form must reproduce the above copyright | |
15 | .\" notice, this list of conditions and the following disclaimer in the | 15 | .\" notice, this list of conditions and the following disclaimer in the | |
16 | .\" documentation and/or other materials provided with the distribution. | 16 | .\" documentation and/or other materials provided with the distribution. | |
17 | .\" | 17 | .\" | |
18 | .\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS | 18 | .\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS | |
19 | .\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED | 19 | .\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED | |
20 | .\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | 20 | .\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | |
21 | .\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS | 21 | .\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS | |
22 | .\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | 22 | .\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
23 | .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | 23 | .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
24 | .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | 24 | .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | |
25 | .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | 25 | .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | |
26 | .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | 26 | .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | |
27 | .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | 27 | .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | |
28 | .\" POSSIBILITY OF SUCH DAMAGE. | 28 | .\" POSSIBILITY OF SUCH DAMAGE. | |
29 | .\" | 29 | .\" | |
30 | .Dd June 11, 2007 | 30 | .Dd January 3, 2009 | |
31 | .Dt AUDIO 4 | 31 | .Dt AUDIO 4 | |
32 | .Os | 32 | .Os | |
33 | .Sh NAME | 33 | .Sh NAME | |
34 | .Nm audio | 34 | .Nm audio | |
35 | .Nd device-independent audio driver layer | 35 | .Nd device-independent audio driver layer | |
36 | .Sh SYNOPSIS | 36 | .Sh SYNOPSIS | |
37 | .In sys/audioio.h | 37 | .In sys/audioio.h | |
38 | .Sh DESCRIPTION | 38 | .Sh DESCRIPTION | |
39 | The | 39 | The | |
40 | .Nm | 40 | .Nm | |
41 | driver provides support for various audio peripherals. | 41 | driver provides support for various audio peripherals. | |
42 | It provides a uniform programming interface layer above different | 42 | It provides a uniform programming interface layer above different | |
43 | underlying audio hardware drivers. | 43 | underlying audio hardware drivers. | |
44 | The audio layer provides full-duplex operation if the | 44 | The audio layer provides full-duplex operation if the | |
45 | underlying hardware configuration supports it. | 45 | underlying hardware configuration supports it. | |
46 | .Pp | 46 | .Pp | |
47 | There are four device files available for audio operation: | 47 | There are four device files available for audio operation: | |
48 | .Pa /dev/audio , | 48 | .Pa /dev/audio , | |
49 | .Pa /dev/sound , | 49 | .Pa /dev/sound , | |
50 | .Pa /dev/audioctl , | 50 | .Pa /dev/audioctl , | |
51 | and | 51 | and | |
52 | .Pa /dev/mixer . | 52 | .Pa /dev/mixer . | |
53 | .Pp | 53 | .Pp | |
54 | .Pa /dev/audio | 54 | .Pa /dev/audio | |
55 | and | 55 | and | |
56 | .Pa /dev/sound | 56 | .Pa /dev/sound | |
57 | are used for recording or playback of digital samples. | 57 | are used for recording or playback of digital samples. | |
58 | .Pp | 58 | .Pp | |
59 | .Pa /dev/mixer | 59 | .Pa /dev/mixer | |
60 | is used to manipulate volume, recording source, or other audio mixer | 60 | is used to manipulate volume, recording source, or other audio mixer | |
61 | functions. | 61 | functions. | |
62 | .Pp | 62 | .Pp | |
63 | .Pa /dev/audioctl | 63 | .Pa /dev/audioctl | |
64 | accepts the same | 64 | accepts the same | |
65 | .Xr ioctl 2 | 65 | .Xr ioctl 2 | |
66 | operations as | 66 | operations as | |
67 | .Pa /dev/sound , | 67 | .Pa /dev/sound , | |
68 | but no other operations. | 68 | but no other operations. | |
69 | .Pp | 69 | .Pp | |
70 | In contrast to | 70 | In contrast to | |
71 | .Pa /dev/sound | 71 | .Pa /dev/sound | |
72 | which has the exclusive open property | 72 | which has the exclusive open property | |
73 | .Pa /dev/audioctl | 73 | .Pa /dev/audioctl | |
74 | can be opened at any time and can be used to manipulate the audio device | 74 | can be opened at any time and can be used to manipulate the audio device | |
75 | while it is in use. | 75 | while it is in use. | |
76 | .Sh SAMPLING DEVICES | 76 | .Sh SAMPLING DEVICES | |
77 | When | 77 | When | |
78 | .Pa /dev/audio | 78 | .Pa /dev/audio | |
79 | is opened, it automatically directs the underlying driver to manipulate | 79 | is opened, it automatically directs the underlying driver to manipulate | |
80 | monaural 8-bit mu-law samples. | 80 | monaural 8-bit mu-law samples. | |
81 | In addition, if it is opened read-only | 81 | In addition, if it is opened read-only | |
82 | (write-only) the device is set to half-duplex record (play) mode with | 82 | (write-only) the device is set to half-duplex record (play) mode with | |
83 | recording (playing) unpaused and playing (recording) paused. | 83 | recording (playing) unpaused and playing (recording) paused. | |
84 | When | 84 | When | |
85 | .Pa /dev/sound | 85 | .Pa /dev/sound | |
86 | is opened, it maintains the previous audio sample mode and | 86 | is opened, it maintains the previous audio sample mode and | |
87 | record/playback mode. | 87 | record/playback mode. | |
88 | In all other respects | 88 | In all other respects | |
89 | .Pa /dev/audio | 89 | .Pa /dev/audio | |
90 | and | 90 | and | |
91 | .Pa /dev/sound | 91 | .Pa /dev/sound | |
92 | are identical. | 92 | are identical. | |
93 | .Pp | 93 | .Pp | |
94 | Only one process may hold open a sampling device at a given time | 94 | Only one process may hold open a sampling device at a given time | |
95 | (although file descriptors may be shared between processes once the | 95 | (although file descriptors may be shared between processes once the | |
96 | first open completes). | 96 | first open completes). | |
97 | .Pp | 97 | .Pp | |
98 | On a half-duplex device, writes while recording is in progress will be | 98 | On a half-duplex device, writes while recording is in progress will be | |
99 | immediately discarded. | 99 | immediately discarded. | |
100 | Similarly, reads while playback is in progress | 100 | Similarly, reads while playback is in progress | |
101 | will be filled with silence but delayed to return at the current | 101 | will be filled with silence but delayed to return at the current | |
102 | sampling rate. | 102 | sampling rate. | |
103 | If both playback and recording are requested on a half-duplex | 103 | If both playback and recording are requested on a half-duplex | |
104 | device, playback mode takes precedence and recordings will get silence. | 104 | device, playback mode takes precedence and recordings will get silence. | |
105 | .Pp | 105 | .Pp | |
106 | On a full-duplex device, reads and writes may operate | 106 | On a full-duplex device, reads and writes may operate | |
107 | concurrently without interference. | 107 | concurrently without interference. | |
108 | If a full-duplex capable audio device is opened for both reading and writing | 108 | If a full-duplex capable audio device is opened for both reading and writing | |
109 | it will start in half-duplex play mode; full-duplex mode has to be set | 109 | it will start in half-duplex play mode; full-duplex mode has to be set | |
110 | explicitly. | 110 | explicitly. | |
111 | .Pp | 111 | .Pp | |
112 | On either type of device, if the playback mode is paused then silence is | 112 | On either type of device, if the playback mode is paused then silence is | |
113 | played instead of the provided samples, and if recording is paused then | 113 | played instead of the provided samples, and if recording is paused then | |
114 | the process blocks in | 114 | the process blocks in | |
115 | .Xr read 2 | 115 | .Xr read 2 | |
116 | until recording is unpaused. | 116 | until recording is unpaused. | |
117 | .Pp | 117 | .Pp | |
118 | If a writing process does not call | 118 | If a writing process does not call | |
119 | .Xr write 2 | 119 | .Xr write 2 | |
120 | frequently enough to provide samples at the pace the hardware | 120 | frequently enough to provide samples at the pace the hardware | |
121 | consumes them silence is inserted. | 121 | consumes them silence is inserted. | |
122 | If the | 122 | If the | |
123 | .Dv AUMODE_PLAY_ALL | 123 | .Dv AUMODE_PLAY_ALL | |
124 | mode is not set the writing process must | 124 | mode is not set the writing process must | |
125 | provide enough data via | 125 | provide enough data via | |
126 | subsequent write calls to | 126 | subsequent write calls to | |
127 | .Dq catch up | 127 | .Dq catch up | |
128 | in time to the current audio | 128 | in time to the current audio | |
129 | block before any more process-provided samples will be played. | 129 | block before any more process-provided samples will be played. | |
130 | If a reading process does not call | 130 | If a reading process does not call | |
131 | .Xr read 2 | 131 | .Xr read 2 | |
132 | frequently enough, it will simply miss samples. | 132 | frequently enough, it will simply miss samples. | |
133 | .Pp | 133 | .Pp | |
134 | The audio device is normally accessed with | 134 | The audio device is normally accessed with | |
135 | .Xr read 2 | 135 | .Xr read 2 | |
136 | or | 136 | or | |
137 | .Xr write 2 | 137 | .Xr write 2 | |
138 | calls, but it can also be mapped into user memory with | 138 | calls, but it can also be mapped into user memory with | |
139 | .Xr mmap 2 | 139 | .Xr mmap 2 | |
140 | (when supported by the device). | 140 | (when supported by the device). | |
141 | Once the device has been mapped it can no longer be accessed | 141 | Once the device has been mapped it can no longer be accessed | |
142 | by read or write; all access is by reading and writing to | 142 | by read or write; all access is by reading and writing to | |
143 | the mapped memory. | 143 | the mapped memory. | |
144 | The device appears as a block of memory | 144 | The device appears as a block of memory | |
145 | of size | 145 | of size | |
146 | .Va buffersize | 146 | .Va buffersize | |
147 | (as available via | 147 | (as available via | |
148 | .Dv AUDIO_GETINFO | 148 | .Dv AUDIO_GETINFO | |
149 | or | 149 | or | |
150 | .Dv AUDIO_GETBUFINFO ) . | 150 | .Dv AUDIO_GETBUFINFO ) . | |
151 | The device driver will continuously move data from this buffer | 151 | The device driver will continuously move data from this buffer | |
152 | from/to the audio hardware, wrapping around at the end of the buffer. | 152 | from/to the audio hardware, wrapping around at the end of the buffer. | |
153 | To find out where the hardware is currently accessing data in the buffer the | 153 | To find out where the hardware is currently accessing data in the buffer the | |
154 | .Dv AUDIO_GETIOFFS | 154 | .Dv AUDIO_GETIOFFS | |
155 | and | 155 | and | |
156 | .Dv AUDIO_GETOOFFS | 156 | .Dv AUDIO_GETOOFFS | |
157 | calls can be used. | 157 | calls can be used. | |
158 | The playing and recording buffers are distinct and must be | 158 | The playing and recording buffers are distinct and must be | |
159 | mapped separately if both are to be used. | 159 | mapped separately if both are to be used. | |
160 | Only encodings that are not emulated (i.e. where | 160 | Only encodings that are not emulated (i.e. where | |
161 | .Dv AUDIO_ENCODINGFLAG_EMULATED | 161 | .Dv AUDIO_ENCODINGFLAG_EMULATED | |
162 | is not set) work properly for a mapped device. | 162 | is not set) work properly for a mapped device. | |
163 | .Pp | 163 | .Pp | |
164 | The audio device, like most devices, can be used in | 164 | The audio device, like most devices, can be used in | |
165 | .Va select , | 165 | .Va select , | |
166 | can be set in non-blocking mode and can be set (with a | 166 | can be set in non-blocking mode and can be set (with a | |
167 | .Dv FIOASYNC | 167 | .Dv FIOASYNC | |
168 | ioctl) to send a | 168 | ioctl) to send a | |
169 | .Dv SIGIO | 169 | .Dv SIGIO | |
170 | when I/O is possible. | 170 | when I/O is possible. | |
171 | The mixer device can be set to generate a | 171 | The mixer device can be set to generate a | |
172 | .Dv SIGIO | 172 | .Dv SIGIO | |
173 | whenever a mixer value is changed. | 173 | whenever a mixer value is changed. | |
174 | .Pp | 174 | .Pp | |
175 | The following | 175 | The following | |
176 | .Xr ioctl 2 | 176 | .Xr ioctl 2 | |
177 | commands are supported on the sample devices: | 177 | commands are supported on the sample devices: | |
178 | .Pp | 178 | .Pp | |
179 | .Bl -tag -width indent | 179 | .Bl -tag -width indent | |
180 | .It Dv AUDIO_FLUSH | 180 | .It Dv AUDIO_FLUSH | |
181 | This command stops all playback and recording, clears all queued | 181 | This command stops all playback and recording, clears all queued | |
182 | buffers, resets error counters, and restarts recording and playback as | 182 | buffers, resets error counters, and restarts recording and playback as | |
183 | appropriate for the current sampling mode. | 183 | appropriate for the current sampling mode. | |
184 | .It Dv AUDIO_RERROR (int) | 184 | .It Dv AUDIO_RERROR (int) | |
185 | This command fetches the count of dropped input samples into its integer | 185 | This command fetches the count of dropped input samples into its integer | |
186 | argument. | 186 | argument. | |
187 | There is no information regarding when in the sample stream | 187 | There is no information regarding when in the sample stream | |
188 | they were dropped. | 188 | they were dropped. | |
189 | .It Dv AUDIO_WSEEK (int) | 189 | .It Dv AUDIO_WSEEK (int) | |
190 | This command fetches the count of samples that are queued ahead of the | 190 | This command fetches the count of samples that are queued ahead of the | |
191 | first sample in the most recent sample block written into its integer argument. | 191 | first sample in the most recent sample block written into its integer argument. | |
192 | .It Dv AUDIO_DRAIN | 192 | .It Dv AUDIO_DRAIN | |
193 | This command suspends the calling process until all queued playback | 193 | This command suspends the calling process until all queued playback | |
194 | samples have been played by the hardware. | 194 | samples have been played by the hardware. | |
195 | .It Dv AUDIO_GETDEV (audio_device_t) | 195 | .It Dv AUDIO_GETDEV (audio_device_t) | |
196 | This command fetches the current hardware device information into the | 196 | This command fetches the current hardware device information into the | |
197 | audio_device_t argument. | 197 | audio_device_t argument. | |
198 | .Bd -literal | 198 | .Bd -literal | |
199 | typedef struct audio_device { | 199 | typedef struct audio_device { | |
200 | char name[MAX_AUDIO_DEV_LEN]; | 200 | char name[MAX_AUDIO_DEV_LEN]; | |
201 | char version[MAX_AUDIO_DEV_LEN]; | 201 | char version[MAX_AUDIO_DEV_LEN]; | |
202 | char config[MAX_AUDIO_DEV_LEN]; | 202 | char config[MAX_AUDIO_DEV_LEN]; | |
203 | } audio_device_t; | 203 | } audio_device_t; | |
204 | .Ed | 204 | .Ed | |
205 | .It Dv AUDIO_GETFD (int) | 205 | .It Dv AUDIO_GETFD (int) | |
206 | The command returns the current setting of the full duplex mode. | 206 | The command returns the current setting of the full duplex mode. | |
207 | .It Dv AUDIO_GETENC (audio_encoding_t) | 207 | .It Dv AUDIO_GETENC (audio_encoding_t) | |
208 | This command is used iteratively to fetch sample encoding names and | 208 | This command is used iteratively to fetch sample encoding names and | |
209 | format_ids into the input/output audio_encoding_t argument. | 209 | format_ids into the input/output audio_encoding_t argument. | |
210 | .Bd -literal | 210 | .Bd -literal | |
211 | typedef struct audio_encoding { | 211 | typedef struct audio_encoding { | |
212 | int index; /* input: nth encoding */ | 212 | int index; /* input: nth encoding */ | |
213 | char name[MAX_AUDIO_DEV_LEN]; /* name of encoding */ | 213 | char name[MAX_AUDIO_DEV_LEN]; /* name of encoding */ | |
214 | int encoding; /* value for encoding parameter */ | 214 | int encoding; /* value for encoding parameter */ | |
215 | int precision; /* value for precision parameter */ | 215 | int precision; /* value for precision parameter */ | |
216 | int flags; | 216 | int flags; | |
217 | #define AUDIO_ENCODINGFLAG_EMULATED 1 /* software emulation mode */ | 217 | #define AUDIO_ENCODINGFLAG_EMULATED 1 /* software emulation mode */ | |
218 | } audio_encoding_t; | 218 | } audio_encoding_t; | |
219 | .Ed | 219 | .Ed | |
220 | .Pp | 220 | .Pp | |
221 | To query | 221 | To query | |
222 | all the supported encodings, start with an index field of 0 and | 222 | all the supported encodings, start with an index field of 0 and | |
223 | continue with successive encodings (1, 2, ...) until the command returns | 223 | continue with successive encodings (1, 2, ...) until the command returns | |
224 | an error. | 224 | an error. | |
225 | .It Dv AUDIO_SETFD (int) | 225 | .It Dv AUDIO_SETFD (int) | |
226 | This command sets the device into full-duplex operation if its integer | 226 | This command sets the device into full-duplex operation if its integer | |
227 | argument has a non-zero value, or into half-duplex operation if it | 227 | argument has a non-zero value, or into half-duplex operation if it | |
228 | contains a zero value. | 228 | contains a zero value. | |
229 | If the device does not support full-duplex | 229 | If the device does not support full-duplex | |
230 | operation, attempting to set full-duplex mode returns an error. | 230 | operation, attempting to set full-duplex mode returns an error. | |
231 | .It Dv AUDIO_GETPROPS (int) | 231 | .It Dv AUDIO_GETPROPS (int) | |
232 | This command gets a bit set of hardware properties. | 232 | This command gets a bit set of hardware properties. | |
233 | If the hardware | 233 | If the hardware | |
234 | has a certain property the corresponding bit is set, otherwise it is not. | 234 | has a certain property the corresponding bit is set, otherwise it is not. | |
235 | The properties can have the following values: | 235 | The properties can have the following values: | |
236 | .Pp | 236 | .Pp | |
237 | .Bl -tag -width AUDIO_PROP_INDEPENDENT -compact | 237 | .Bl -tag -width AUDIO_PROP_INDEPENDENT -compact | |
238 | .It Dv AUDIO_PROP_FULLDUPLEX | 238 | .It Dv AUDIO_PROP_FULLDUPLEX | |
239 | the device admits full duplex operation. | 239 | the device admits full duplex operation. | |
240 | .It Dv AUDIO_PROP_MMAP | 240 | .It Dv AUDIO_PROP_MMAP | |
241 | the device can be used with | 241 | the device can be used with | |
242 | .Xr mmap 2 . | 242 | .Xr mmap 2 . | |
243 | .It Dv AUDIO_PROP_INDEPENDENT | 243 | .It Dv AUDIO_PROP_INDEPENDENT | |
244 | the device can set the playing and recording encoding parameters | 244 | the device can set the playing and recording encoding parameters | |
245 | independently. | 245 | independently. | |
246 | .El | 246 | .El | |
247 | .It Dv AUDIO_GETIOFFS (audio_offset_t) | 247 | .It Dv AUDIO_GETIOFFS (audio_offset_t) | |
248 | .It Dv AUDIO_GETOOFFS (audio_offset_t) | 248 | .It Dv AUDIO_GETOOFFS (audio_offset_t) | |
249 | This command fetches the current offset in the input(output) buffer where | 249 | This command fetches the current offset in the input(output) buffer where | |
250 | the audio hardware's DMA engine will be putting(getting) data. | 250 | the audio hardware's DMA engine will be putting(getting) data. | |
251 | It mostly useful when the device | 251 | It mostly useful when the device | |
252 | buffer is available in user space via the | 252 | buffer is available in user space via the | |
253 | .Xr mmap 2 | 253 | .Xr mmap 2 | |
254 | call. | 254 | call. | |
255 | The information is returned in the audio_offset structure. | 255 | The information is returned in the audio_offset structure. | |
256 | .Bd -literal | 256 | .Bd -literal | |
257 | typedef struct audio_offset { | 257 | typedef struct audio_offset { | |
258 | u_int samples; /* Total number of bytes transferred */ | 258 | u_int samples; /* Total number of bytes transferred */ | |
259 | u_int deltablks; /* Blocks transferred since last checked */ | 259 | u_int deltablks; /* Blocks transferred since last checked */ | |
260 | u_int offset; /* Physical transfer offset in buffer */ | 260 | u_int offset; /* Physical transfer offset in buffer */ | |
261 | } audio_offset_t; | 261 | } audio_offset_t; | |
262 | .Ed | 262 | .Ed | |
263 | .It Dv AUDIO_GETINFO (audio_info_t) | 263 | .It Dv AUDIO_GETINFO (audio_info_t) | |
264 | .It Dv AUDIO_GETBUFINFO (audio_info_t) | 264 | .It Dv AUDIO_GETBUFINFO (audio_info_t) | |
265 | .It Dv AUDIO_SETINFO (audio_info_t) | 265 | .It Dv AUDIO_SETINFO (audio_info_t) | |
266 | Get or set audio information as encoded in the audio_info structure. | 266 | Get or set audio information as encoded in the audio_info structure. | |
267 | .Bd -literal | 267 | .Bd -literal | |
268 | typedef struct audio_info { | 268 | typedef struct audio_info { | |
269 | struct audio_prinfo play; /* info for play (output) side */ | 269 | struct audio_prinfo play; /* info for play (output) side */ | |
270 | struct audio_prinfo record; /* info for record (input) side */ | 270 | struct audio_prinfo record; /* info for record (input) side */ | |
271 | u_int monitor_gain; /* input to output mix */ | 271 | u_int monitor_gain; /* input to output mix */ | |
272 | /* BSD extensions */ | 272 | /* BSD extensions */ | |
273 | u_int blocksize; /* H/W read/write block size */ | 273 | u_int blocksize; /* H/W read/write block size */ | |
274 | u_int hiwat; /* output high water mark */ | 274 | u_int hiwat; /* output high water mark */ | |
275 | u_int lowat; /* output low water mark */ | 275 | u_int lowat; /* output low water mark */ | |
276 | u_int _ispare1; | 276 | u_int _ispare1; | |
277 | u_int mode; /* current device mode */ | 277 | u_int mode; /* current device mode */ | |
278 | #define AUMODE_PLAY 0x01 | 278 | #define AUMODE_PLAY 0x01 | |
279 | #define AUMODE_RECORD 0x02 | 279 | #define AUMODE_RECORD 0x02 | |
280 | #define AUMODE_PLAY_ALL 0x04 /* do not do real-time correction */ | 280 | #define AUMODE_PLAY_ALL 0x04 /* do not do real-time correction */ | |
281 | } audio_info_t; | 281 | } audio_info_t; | |
282 | .Ed | 282 | .Ed | |
283 | .Pp | 283 | .Pp | |
284 | When setting the current state with | 284 | When setting the current state with | |
285 | .Dv AUDIO_SETINFO , | 285 | .Dv AUDIO_SETINFO , | |
286 | the audio_info structure should first be initialized with | 286 | the audio_info structure should first be initialized with | |
287 | .Dv AUDIO_INITINFO Po \*[Am]info Pc | 287 | .Dv AUDIO_INITINFO Po \*[Am]info Pc | |
288 | and then the particular values to be changed should be set. | 288 | and then the particular values to be changed should be set. | |
289 | This allows the audio driver to only set those things that you wish | 289 | This allows the audio driver to only set those things that you wish | |
290 | to change and eliminates the need to query the device with | 290 | to change and eliminates the need to query the device with | |
291 | .Dv AUDIO_GETINFO | 291 | .Dv AUDIO_GETINFO | |
292 | or | 292 | or | |
293 | .Dv AUDIO_GETBUFINFO | 293 | .Dv AUDIO_GETBUFINFO | |
294 | first. | 294 | first. | |
295 | .Pp | 295 | .Pp | |
296 | The | 296 | The | |
297 | .Va mode | 297 | .Va mode | |
298 | field should be set to | 298 | field should be set to | |
299 | .Dv AUMODE_PLAY , | 299 | .Dv AUMODE_PLAY , | |
300 | .Dv AUMODE_RECORD , | 300 | .Dv AUMODE_RECORD , | |
301 | .Dv AUMODE_PLAY_ALL , | 301 | .Dv AUMODE_PLAY_ALL , | |
302 | or a bitwise OR combination of the three. | 302 | or a bitwise OR combination of the three. | |
303 | Only full-duplex audio devices support | 303 | Only full-duplex audio devices support | |
304 | simultaneous record and playback. | 304 | simultaneous record and playback. | |
305 | .Pp | 305 | .Pp | |
306 | .Va hiwat | 306 | .Va hiwat | |
307 | and | 307 | and | |
308 | .Va lowat | 308 | .Va lowat | |
309 | are used to control write behavior. | 309 | are used to control write behavior. | |
310 | Writes to the audio devices will queue up blocks until the high-water | 310 | Writes to the audio devices will queue up blocks until the high-water | |
311 | mark is reached, at which point any more write calls will block | 311 | mark is reached, at which point any more write calls will block | |
312 | until the queue is drained to the low-water mark. | 312 | until the queue is drained to the low-water mark. | |
313 | .Va hiwat | 313 | .Va hiwat | |
314 | and | 314 | and | |
315 | .Va lowat | 315 | .Va lowat | |
316 | set those high- and low-water marks (in audio blocks). | 316 | set those high- and low-water marks (in audio blocks). | |
317 | The default for | 317 | The default for | |
318 | .Va hiwat | 318 | .Va hiwat | |
319 | is the maximum value and for | 319 | is the maximum value and for | |
320 | .Va lowat | 320 | .Va lowat | |
321 | 75 % of | 321 | 75 % of | |
322 | .Va hiwat . | 322 | .Va hiwat . | |
323 | .Pp | 323 | .Pp | |
324 | .Va blocksize | 324 | .Va blocksize | |
325 | sets the current audio blocksize. | 325 | sets the current audio blocksize. | |
326 | The generic audio driver layer and the hardware driver have the | 326 | The generic audio driver layer and the hardware driver have the | |
327 | opportunity to adjust this block size to get it within | 327 | opportunity to adjust this block size to get it within | |
328 | implementation-required limits. | 328 | implementation-required limits. | |
329 | Upon return from an | 329 | Upon return from an | |
330 | .Dv AUDIO_SETINFO | 330 | .Dv AUDIO_SETINFO | |
331 | call, the actual blocksize set is returned in this field. | 331 | call, the actual blocksize set is returned in this field. | |
332 | Normally the | 332 | Normally the | |
333 | .Va blocksize | 333 | .Va blocksize | |
334 | is calculated to correspond to 50ms of sound and it is recalculated | 334 | is calculated to correspond to 50ms of sound and it is recalculated | |
335 | when the encoding parameter changes, but if the | 335 | when the encoding parameter changes, but if the | |
336 | .Va blocksize | 336 | .Va blocksize | |
337 | is set explicitly this value becomes sticky, i.e., it remains | 337 | is set explicitly this value becomes sticky, i.e., it remains | |
338 | even when the encoding is changed. | 338 | even when the encoding is changed. | |
339 | The stickiness can be cleared by reopening the device or setting the | 339 | The stickiness can be cleared by reopening the device or setting the | |
340 | .Va blocksize | 340 | .Va blocksize | |
341 | to 0. | 341 | to 0. | |
342 | .Bd -literal | 342 | .Bd -literal | |
343 | struct audio_prinfo { | 343 | struct audio_prinfo { | |
344 | u_int sample_rate; /* sample rate in samples/s */ | 344 | u_int sample_rate; /* sample rate in samples/s */ | |
345 | u_int channels; /* number of channels, usually 1 or 2 */ | 345 | u_int channels; /* number of channels, usually 1 or 2 */ | |
346 | u_int precision; /* number of bits/sample */ | 346 | u_int precision; /* number of bits/sample */ | |
347 | u_int encoding; /* data encoding (AUDIO_ENCODING_* below) */ | 347 | u_int encoding; /* data encoding (AUDIO_ENCODING_* below) */ | |
348 | u_int gain; /* volume level */ | 348 | u_int gain; /* volume level */ | |
349 | u_int port; /* selected I/O port */ | 349 | u_int port; /* selected I/O port */ | |
350 | u_long seek; /* BSD extension */ | 350 | u_long seek; /* BSD extension */ | |
351 | u_int avail_ports; /* available I/O ports */ | 351 | u_int avail_ports; /* available I/O ports */ | |
352 | u_int buffer_size; /* total size audio buffer */ | 352 | u_int buffer_size; /* total size audio buffer */ | |
353 | u_int _ispare[1]; | 353 | u_int _ispare[1]; | |
354 | /* Current state of device: */ | 354 | /* Current state of device: */ | |
355 | u_int samples; /* number of samples */ | 355 | u_int samples; /* number of samples */ | |
356 | u_int eof; /* End Of File (zero-size writes) counter */ | 356 | u_int eof; /* End Of File (zero-size writes) counter */ | |
357 | u_char pause; /* non-zero if paused, zero to resume */ | 357 | u_char pause; /* non-zero if paused, zero to resume */ | |
358 | u_char error; /* non-zero if underflow/overflow occurred */ | 358 | u_char error; /* non-zero if underflow/overflow occurred */ | |
359 | u_char waiting; /* non-zero if another process hangs in open */ | 359 | u_char waiting; /* non-zero if another process hangs in open */ | |
360 | u_char balance; /* stereo channel balance */ | 360 | u_char balance; /* stereo channel balance */ | |
361 | u_char cspare[2]; | 361 | u_char cspare[2]; | |
362 | u_char open; /* non-zero if currently open */ | 362 | u_char open; /* non-zero if currently open */ | |
363 | u_char active; /* non-zero if I/O is currently active */ | 363 | u_char active; /* non-zero if I/O is currently active */ | |
364 | }; | 364 | }; | |
365 | .Ed | 365 | .Ed | |
366 | .Pp | 366 | .Pp | |
367 | Note: many hardware audio drivers require identical playback and | 367 | Note: many hardware audio drivers require identical playback and | |
368 | recording sample rates, sample encodings, and channel counts. | 368 | recording sample rates, sample encodings, and channel counts. | |
369 | The playing information is always set last and will prevail on such hardware. | 369 | The playing information is always set last and will prevail on such hardware. | |
370 | If the hardware can handle different settings the | 370 | If the hardware can handle different settings the | |
371 | .Dv AUDIO_PROP_INDEPENDENT | 371 | .Dv AUDIO_PROP_INDEPENDENT | |
372 | property is set. | 372 | property is set. | |
373 | .Pp | 373 | .Pp | |
374 | The encoding parameter can have the following values: | 374 | The encoding parameter can have the following values: | |
375 | .Pp | 375 | .Pp | |
376 | .Bl -tag -width AUDIO_ENCODING_SLINEAR_BE -compact | 376 | .Bl -tag -width AUDIO_ENCODING_SLINEAR_BE -compact | |
377 | .It Dv AUDIO_ENCODING_ULAW | 377 | .It Dv AUDIO_ENCODING_ULAW | |
378 | mu-law encoding, 8 bits/sample | 378 | mu-law encoding, 8 bits/sample | |
379 | .It Dv AUDIO_ENCODING_ALAW | 379 | .It Dv AUDIO_ENCODING_ALAW | |
380 | A-law encoding, 8 bits/sample | 380 | A-law encoding, 8 bits/sample | |
381 | .It Dv AUDIO_ENCODING_SLINEAR | 381 | .It Dv AUDIO_ENCODING_SLINEAR | |
382 | two's complement signed linear encoding with the platform byte order | 382 | two's complement signed linear encoding with the platform byte order | |
383 | .It Dv AUDIO_ENCODING_ULINEAR | 383 | .It Dv AUDIO_ENCODING_ULINEAR | |
384 | unsigned linear encoding with the platform byte order | 384 | unsigned linear encoding with the platform byte order | |
385 | .It Dv AUDIO_ENCODING_ADPCM | 385 | .It Dv AUDIO_ENCODING_ADPCM | |
386 | ADPCM encoding, 8 bits/sample | 386 | ADPCM encoding, 8 bits/sample | |
387 | .It Dv AUDIO_ENCODING_SLINEAR_LE | 387 | .It Dv AUDIO_ENCODING_SLINEAR_LE | |
388 | two's complement signed linear encoding with little endian byte order | 388 | two's complement signed linear encoding with little endian byte order | |
389 | .It Dv AUDIO_ENCODING_SLINEAR_BE | 389 | .It Dv AUDIO_ENCODING_SLINEAR_BE | |
390 | two's complement signed linear encoding with big endian byte order | 390 | two's complement signed linear encoding with big endian byte order | |
391 | .It Dv AUDIO_ENCODING_ULINEAR_LE | 391 | .It Dv AUDIO_ENCODING_ULINEAR_LE | |
392 | unsigned linear encoding with little endian byte order | 392 | unsigned linear encoding with little endian byte order | |
393 | .It Dv AUDIO_ENCODING_ULINEAR_BE | 393 | .It Dv AUDIO_ENCODING_ULINEAR_BE | |
394 | unsigned linear encoding with big endian byte order | 394 | unsigned linear encoding with big endian byte order | |
395 | .El | 395 | .El | |
396 | .Pp | 396 | .Pp | |
397 | The | 397 | The | |
398 | .Va gain , | 398 | .Va gain , | |
399 | .Va port | 399 | .Va port | |
400 | and | 400 | and | |
401 | .Va balance | 401 | .Va balance | |
402 | settings provide simple shortcuts to the richer mixer | 402 | settings provide simple shortcuts to the richer mixer | |
403 | interface described below and are not obtained by | 403 | interface described below and are not obtained by | |
404 | .Dv AUDIO_GETBUFINFO . | 404 | .Dv AUDIO_GETBUFINFO . | |
405 | The gain should be in the range | 405 | The gain should be in the range | |
406 | .Bq Dv AUDIO_MIN_GAIN , Dv AUDIO_MAX_GAIN | 406 | .Bq Dv AUDIO_MIN_GAIN , Dv AUDIO_MAX_GAIN | |
407 | and the balance in the range | 407 | and the balance in the range | |
408 | .Bq Dv AUDIO_LEFT_BALANCE , Dv AUDIO_RIGHT_BALANCE | 408 | .Bq Dv AUDIO_LEFT_BALANCE , Dv AUDIO_RIGHT_BALANCE | |
409 | with the normal setting at | 409 | with the normal setting at | |
410 | .Dv AUDIO_MID_BALANCE . | 410 | .Dv AUDIO_MID_BALANCE . | |
411 | .Pp | 411 | .Pp | |
412 | The input port should be a combination of: | 412 | The input port should be a combination of: | |
413 | .Pp | 413 | .Pp | |
414 | .Bl -tag -width AUDIO_MICROPHONE -compact | 414 | .Bl -tag -width AUDIO_MICROPHONE -compact | |
415 | .It Dv AUDIO_MICROPHONE | 415 | .It Dv AUDIO_MICROPHONE | |
416 | to select microphone input. | 416 | to select microphone input. | |
417 | .It Dv AUDIO_LINE_IN | 417 | .It Dv AUDIO_LINE_IN | |
418 | to select line input. | 418 | to select line input. | |
419 | .It Dv AUDIO_CD | 419 | .It Dv AUDIO_CD | |
420 | to select CD input. | 420 | to select CD input. | |
421 | .El | 421 | .El | |
422 | .Pp | 422 | .Pp | |
423 | The output port should be a combination of: | 423 | The output port should be a combination of: | |
424 | .Pp | 424 | .Pp | |
425 | .Bl -tag -width AUDIO_HEADPHONE -compact | 425 | .Bl -tag -width AUDIO_HEADPHONE -compact | |
426 | .It Dv AUDIO_SPEAKER | 426 | .It Dv AUDIO_SPEAKER | |
427 | to select speaker output. | 427 | to select speaker output. | |
428 | .It Dv AUDIO_HEADPHONE | 428 | .It Dv AUDIO_HEADPHONE | |
429 | to select headphone output. | 429 | to select headphone output. | |
430 | .It Dv AUDIO_LINE_OUT | 430 | .It Dv AUDIO_LINE_OUT | |
431 | to select line output. | 431 | to select line output. | |
432 | .El | 432 | .El | |
433 | .Pp | 433 | .Pp | |
434 | The available ports can be found in | 434 | The available ports can be found in | |
435 | .Va avail_ports | 435 | .Va avail_ports | |
436 | .Dv ( AUDIO_GETBUFINFO | 436 | .Dv ( AUDIO_GETBUFINFO | |
437 | only). | 437 | only). | |
438 | .Pp | 438 | .Pp | |
439 | .Va buffer_size | 439 | .Va buffer_size | |
440 | is the total size of the audio buffer. | 440 | is the total size of the audio buffer. | |
441 | The buffer size divided by the | 441 | The buffer size divided by the | |
442 | .Va blocksize | 442 | .Va blocksize | |
443 | gives the maximum value for | 443 | gives the maximum value for | |
444 | .Va hiwat . | 444 | .Va hiwat . | |
445 | Currently the | 445 | Currently the | |
446 | .Va buffer_size | 446 | .Va buffer_size | |
447 | can only be read and not set. | 447 | can only be read and not set. | |
448 | .Pp | 448 | .Pp | |
449 | The | 449 | The | |
450 | .Va seek | 450 | .Va seek | |
451 | and | 451 | and | |
452 | .Va samples | 452 | .Va samples | |
453 | fields are only used by | 453 | fields are only used by | |
454 | .Dv AUDIO_GETINFO | 454 | .Dv AUDIO_GETINFO | |
455 | and | 455 | and | |
456 | .Dv AUDIO_GETBUFINFO . | 456 | .Dv AUDIO_GETBUFINFO . | |
457 | .Va seek | 457 | .Va seek | |
458 | represents the count of | 458 | represents the count of | |
459 | samples pending; | 459 | samples pending; | |
460 | .Va samples | 460 | .Va samples | |
461 | represents the total number of bytes recorded or played, less those | 461 | represents the total number of bytes recorded or played, less those | |
462 | that were dropped due to inadequate consumption/production rates. | 462 | that were dropped due to inadequate consumption/production rates. | |
463 | .Pp | 463 | .Pp | |
464 | .Va pause | 464 | .Va pause | |
465 | returns the current pause/unpause state for recording or playback. | 465 | returns the current pause/unpause state for recording or playback. | |
466 | For | 466 | For | |
467 | .Dv AUDIO_SETINFO , | 467 | .Dv AUDIO_SETINFO , | |
468 | if the pause value is specified it will either pause | 468 | if the pause value is specified it will either pause | |
469 | or unpause the particular direction. | 469 | or unpause the particular direction. | |
470 | .El | 470 | .El | |
471 | .Sh MIXER DEVICE | 471 | .Sh MIXER DEVICE | |
472 | The mixer device, | 472 | The mixer device, | |
473 | .Pa /dev/mixer , | 473 | .Pa /dev/mixer , | |
474 | may be manipulated with | 474 | may be manipulated with | |
475 | .Xr ioctl 2 | 475 | .Xr ioctl 2 | |
476 | but does not support | 476 | but does not support | |
477 | .Xr read 2 | 477 | .Xr read 2 | |
478 | or | 478 | or | |
479 | .Xr write 2 . | 479 | .Xr write 2 . | |
480 | It supports the following | 480 | It supports the following | |
481 | .Xr ioctl 2 | 481 | .Xr ioctl 2 | |
482 | commands: | 482 | commands: | |
483 | .Bl -tag -width indent | 483 | .Bl -tag -width indent | |
484 | .It Dv AUDIO_GETDEV (audio_device_t) | 484 | .It Dv AUDIO_GETDEV (audio_device_t) | |
485 | This command is the same as described above for the sampling devices. | 485 | This command is the same as described above for the sampling devices. | |
486 | .It Dv AUDIO_MIXER_READ (mixer_ctrl_t) | 486 | .It Dv AUDIO_MIXER_READ (mixer_ctrl_t) | |
487 | .It Dv AUDIO_MIXER_WRITE (mixer_ctrl_t) | 487 | .It Dv AUDIO_MIXER_WRITE (mixer_ctrl_t) | |
488 | These commands read the current mixer state or set new mixer state for | 488 | These commands read the current mixer state or set new mixer state for | |
489 | the specified device | 489 | the specified device | |
490 | .Va dev . | 490 | .Va dev . | |
491 | .Va type | 491 | .Va type | |
492 | identifies which type of value is supplied in the | 492 | identifies which type of value is supplied in the | |
493 | .Va mixer_ctrl_t | 493 | .Va mixer_ctrl_t | |
494 | argument. | 494 | argument. | |
495 | .Bd -literal | 495 | .Bd -literal | |
496 | #define AUDIO_MIXER_CLASS 0 | 496 | #define AUDIO_MIXER_CLASS 0 | |
497 | #define AUDIO_MIXER_ENUM 1 | 497 | #define AUDIO_MIXER_ENUM 1 | |
498 | #define AUDIO_MIXER_SET 2 | 498 | #define AUDIO_MIXER_SET 2 | |
499 | #define AUDIO_MIXER_VALUE 3 | 499 | #define AUDIO_MIXER_VALUE 3 | |
500 | typedef struct mixer_ctrl { | 500 | typedef struct mixer_ctrl { | |
501 | int dev; /* input: nth device */ | 501 | int dev; /* input: nth device */ | |
502 | int type; | 502 | int type; | |
503 | union { | 503 | union { | |
504 | int ord; /* enum */ | 504 | int ord; /* enum */ | |
505 | int mask; /* set */ | 505 | int mask; /* set */ | |
506 | mixer_level_t value; /* value */ | 506 | mixer_level_t value; /* value */ | |
507 | } un; | 507 | } un; | |
508 | } mixer_ctrl_t; | 508 | } mixer_ctrl_t; | |
509 | 509 | |||
510 | #define AUDIO_MIN_GAIN 0 | 510 | #define AUDIO_MIN_GAIN 0 | |
511 | #define AUDIO_MAX_GAIN 255 | 511 | #define AUDIO_MAX_GAIN 255 | |
512 | typedef struct mixer_level { | 512 | typedef struct mixer_level { | |
513 | int num_channels; | 513 | int num_channels; | |
514 | u_char level[8]; /* [num_channels] */ | 514 | u_char level[8]; /* [num_channels] */ | |
515 | } mixer_level_t; | 515 | } mixer_level_t; | |
516 | #define AUDIO_MIXER_LEVEL_MONO 0 | 516 | #define AUDIO_MIXER_LEVEL_MONO 0 | |
517 | #define AUDIO_MIXER_LEVEL_LEFT 0 | 517 | #define AUDIO_MIXER_LEVEL_LEFT 0 | |
518 | #define AUDIO_MIXER_LEVEL_RIGHT 1 | 518 | #define AUDIO_MIXER_LEVEL_RIGHT 1 | |
519 | .Ed | 519 | .Ed | |
520 | .Pp | 520 | .Pp | |
521 | For a mixer value, the | 521 | For a mixer value, the | |
522 | .Va value | 522 | .Va value | |
523 | field specifies both the number of channels and the values for each | 523 | field specifies both the number of channels and the values for each | |
524 | channel. | 524 | channel. | |
525 | If the channel count does not match the current channel count, the | 525 | If the channel count does not match the current channel count, the | |
526 | attempt to change the setting may fail (depending on the hardware | 526 | attempt to change the setting may fail (depending on the hardware | |
527 | device driver implementation). | 527 | device driver implementation). | |
528 | For an enumeration value, the | 528 | For an enumeration value, the | |
529 | .Va ord | 529 | .Va ord | |
530 | field should be set to one of the possible values as returned by a prior | 530 | field should be set to one of the possible values as returned by a prior | |
531 | .Dv AUDIO_MIXER_DEVINFO | 531 | .Dv AUDIO_MIXER_DEVINFO | |
532 | command. | 532 | command. | |
533 | The type | 533 | The type | |
534 | .Dv AUDIO_MIXER_CLASS | 534 | .Dv AUDIO_MIXER_CLASS | |
535 | is only used for classifying particular mixer device | 535 | is only used for classifying particular mixer device | |
536 | types and is not used for | 536 | types and is not used for | |
537 | .Dv AUDIO_MIXER_READ | 537 | .Dv AUDIO_MIXER_READ | |
538 | or | 538 | or | |
539 | .Dv AUDIO_MIXER_WRITE . | 539 | .Dv AUDIO_MIXER_WRITE . | |
540 | .It Dv AUDIO_MIXER_DEVINFO (mixer_devinfo_t) | 540 | .It Dv AUDIO_MIXER_DEVINFO (mixer_devinfo_t) | |
541 | This command is used iteratively to fetch audio mixer device information | 541 | This command is used iteratively to fetch audio mixer device information | |
542 | into the input/output mixer_devinfo_t argument. | 542 | into the input/output mixer_devinfo_t argument. | |
543 | To query all the supported devices, start with an index field of | 543 | To query all the supported devices, start with an index field of | |
544 | 0 and continue with successive devices (1, 2, ...) until the | 544 | 0 and continue with successive devices (1, 2, ...) until the | |
545 | command returns an error. | 545 | command returns an error. | |
546 | .Bd -literal | 546 | .Bd -literal | |
547 | typedef struct mixer_devinfo { | 547 | typedef struct mixer_devinfo { | |
548 | int index; /* input: nth mixer device */ | 548 | int index; /* input: nth mixer device */ | |
549 | audio_mixer_name_t label; | 549 | audio_mixer_name_t label; | |
550 | int type; | 550 | int type; | |
551 | int mixer_class; | 551 | int mixer_class; | |
552 | int next, prev; | 552 | int next, prev; | |
553 | #define AUDIO_MIXER_LAST -1 | 553 | #define AUDIO_MIXER_LAST -1 | |
554 | union { | 554 | union { | |
555 | struct audio_mixer_enum { | 555 | struct audio_mixer_enum { | |
556 | int num_mem; | 556 | int num_mem; | |
557 | struct { | 557 | struct { | |
558 | audio_mixer_name_t label; | 558 | audio_mixer_name_t label; | |
559 | int ord; | 559 | int ord; | |
560 | } member[32]; | 560 | } member[32]; | |
561 | } e; | 561 | } e; | |
562 | struct audio_mixer_set { | 562 | struct audio_mixer_set { | |
563 | int num_mem; | 563 | int num_mem; | |
564 | struct { | 564 | struct { | |
565 | audio_mixer_name_t label; | 565 | audio_mixer_name_t label; | |
566 | int mask; | 566 | int mask; | |
567 | } member[32]; | 567 | } member[32]; | |
568 | } s; | 568 | } s; | |
569 | struct audio_mixer_value { | 569 | struct audio_mixer_value { | |
570 | audio_mixer_name_t units; | 570 | audio_mixer_name_t units; | |
571 | int num_channels; | 571 | int num_channels; | |
572 | int delta; | 572 | int delta; | |
573 | } v; | 573 | } v; | |
574 | } un; | 574 | } un; | |
575 | } mixer_devinfo_t; | 575 | } mixer_devinfo_t; | |
576 | .Ed | 576 | .Ed | |
577 | .Pp | 577 | .Pp | |
578 | The | 578 | The | |
579 | .Va label | 579 | .Va label | |
580 | field identifies the name of this particular mixer control. | 580 | field identifies the name of this particular mixer control. | |
581 | The | 581 | The | |
582 | .Va index | 582 | .Va index | |
583 | field may be used as the | 583 | field may be used as the | |
584 | .Va dev | 584 | .Va dev | |
585 | field in | 585 | field in | |
586 | .Dv AUDIO_MIXER_READ | 586 | .Dv AUDIO_MIXER_READ | |
587 | and | 587 | and | |
588 | .Dv AUDIO_MIXER_WRITE | 588 | .Dv AUDIO_MIXER_WRITE | |
589 | commands. | 589 | commands. | |
590 | The | 590 | The | |
591 | .Va type | 591 | .Va type | |
592 | field identifies the type of this mixer control. | 592 | field identifies the type of this mixer control. | |
593 | Enumeration types are typically used for on/off style controls (e.g. a | 593 | Enumeration types are typically used for on/off style controls (e.g. a | |
594 | mute control) or for input/output device selection (e.g. select | 594 | mute control) or for input/output device selection (e.g. select | |
595 | recording input source from CD, line in, or microphone). | 595 | recording input source from CD, line in, or microphone). | |
596 | Set types are similar to enumeration types but any combination | 596 | Set types are similar to enumeration types but any combination | |
597 | of the mask bits can be used. | 597 | of the mask bits can be used. | |
598 | .Pp | 598 | .Pp | |
599 | The | 599 | The | |
600 | .Va mixer_class | 600 | .Va mixer_class | |
601 | field identifies what class of control this is. | 601 | field identifies what class of control this is. | |
602 | The | 602 | The | |
603 | .Pq arbitrary | 603 | .Pq arbitrary | |
604 | value set by the hardware driver may be determined by examining the | 604 | value set by the hardware driver may be determined by examining the | |
605 | .Va mixer_class | 605 | .Va mixer_class | |
606 | field of the class itself, | 606 | field of the class itself, | |
607 | a mixer of type | 607 | a mixer of type | |
608 | .Dv AUDIO_MIXER_CLASS . | 608 | .Dv AUDIO_MIXER_CLASS . | |
609 | For example, a mixer controlling the input gain on the line in circuit | 609 | For example, a mixer controlling the input gain on the line in circuit | |
610 | would have a | 610 | would have a | |
611 | .Va mixer_class | 611 | .Va mixer_class | |
612 | that matches an input class device with the name | 612 | that matches an input class device with the name | |
613 | .Dq inputs | 613 | .Dq inputs | |
614 | .Dv ( AudioCinputs ) , | 614 | .Dv ( AudioCinputs ) , | |
615 | and would have a | 615 | and would have a | |
616 | .Va label | 616 | .Va label | |
617 | of | 617 | of | |
618 | .Dq line | 618 | .Dq line | |
619 | .Dv ( AudioNline ) . | 619 | .Dv ( AudioNline ) . | |
620 | Mixer controls which control audio circuitry for a particular audio | 620 | Mixer controls which control audio circuitry for a particular audio | |
621 | source (e.g. line-in, CD in, DAC output) are collected under the input class, | 621 | source (e.g. line-in, CD in, DAC output) are collected under the input class, | |
622 | while those which control all audio sources (e.g. master volume, | 622 | while those which control all audio sources (e.g. master volume, | |
623 | equalization controls) are under the output class. | 623 | equalization controls) are under the output class. | |
624 | Hardware devices capable of recording typically also have a record class, | 624 | Hardware devices capable of recording typically also have a record class, | |
625 | for controls that only affect recording, | 625 | for controls that only affect recording, | |
626 | and also a monitor class. | 626 | and also a monitor class. | |
627 | .Pp | 627 | .Pp | |
628 | The | 628 | The | |
629 | .Va next | 629 | .Va next | |
630 | and | 630 | and | |
631 | .Va prev | 631 | .Va prev | |
632 | may be used by the hardware device driver to provide hints for the next | 632 | may be used by the hardware device driver to provide hints for the next | |
633 | and previous devices in a related set (for example, the line in level | 633 | and previous devices in a related set (for example, the line in level | |
634 | control would have the line in mute as its | 634 | control would have the line in mute as its | |
635 | .Dq next | 635 | .Dq next | |
636 | value). | 636 | value). | |
637 | If there is no relevant next or previous value, | 637 | If there is no relevant next or previous value, | |
638 | .Dv AUDIO_MIXER_LAST | 638 | .Dv AUDIO_MIXER_LAST | |
639 | is specified. | 639 | is specified. | |
640 | .Pp | 640 | .Pp | |
641 | For | 641 | For | |
642 | .Dv AUDIO_MIXER_ENUM | 642 | .Dv AUDIO_MIXER_ENUM | |
643 | mixer control types, | 643 | mixer control types, | |
644 | the enumeration values and their corresponding names are filled in. | 644 | the enumeration values and their corresponding names are filled in. | |
645 | For example, a mute control would return appropriate values paired with | 645 | For example, a mute control would return appropriate values paired with | |
646 | .Dv AudioNon | 646 | .Dv AudioNon | |
647 | and | 647 | and | |
648 | .Dv AudioNoff . | 648 | .Dv AudioNoff . | |
649 | For | 649 | For | |
650 | .Dv AUDIO_MIXER_VALUE | 650 | .Dv AUDIO_MIXER_VALUE | |
651 | and | 651 | and | |
652 | .Dv AUDIO_MIXER_SET | 652 | .Dv AUDIO_MIXER_SET | |
653 | mixer control types, the channel count is | 653 | mixer control types, the channel count is | |
654 | returned; the units name specifies what the level controls (typical | 654 | returned; the units name specifies what the level controls (typical | |
655 | values are | 655 | values are | |
656 | .Dv AudioNvolume , | 656 | .Dv AudioNvolume , | |
657 | .Dv AudioNtreble , | 657 | .Dv AudioNtreble , | |
658 | .Dv AudioNbass ) . | 658 | .Dv AudioNbass ) . | |
659 | .\" For AUDIO_MIXER_SET mixer control types, what is what? | 659 | .\" For AUDIO_MIXER_SET mixer control types, what is what? | |
660 | .El | 660 | .El | |
661 | .Pp | 661 | .Pp | |
662 | By convention, all the mixer devices can be distinguished from other | 662 | By convention, all the mixer devices can be distinguished from other | |
663 | mixer controls because they use a name from one of the | 663 | mixer controls because they use a name from one of the | |
664 | .Dv AudioC* | 664 | .Dv AudioC* | |
665 | string values. | 665 | string values. | |
666 | .Sh FILES | 666 | .Sh FILES | |
667 | .Bl -tag -width /dev/audioctl -compact | 667 | .Bl -tag -width /dev/audioctl -compact | |
668 | .It Pa /dev/audio | 668 | .It Pa /dev/audio | |
669 | .It Pa /dev/audioctl | 669 | .It Pa /dev/audioctl | |
670 | .It Pa /dev/sound | 670 | .It Pa /dev/sound | |
671 | .It Pa /dev/mixer | 671 | .It Pa /dev/mixer | |
672 | .El | 672 | .El | |
673 | .Sh SEE ALSO | 673 | .Sh SEE ALSO | |
674 | .Xr audioctl 1 , | 674 | .Xr audioctl 1 , | |
675 | .Xr mixerctl 1 , | 675 | .Xr mixerctl 1 , | |
676 | .Xr ioctl 2 , | 676 | .Xr ioctl 2 , | |
677 | .Xr ossaudio 3 , | 677 | .Xr ossaudio 3 , | |
678 | .Xr midi 4 , | 678 | .Xr midi 4 , | |
679 | .Xr radio 4 | 679 | .Xr radio 4 | |
680 | .Ss ISA bus | 680 | .Ss ISA bus | |
681 | .Xr aria 4 , | 681 | .Xr aria 4 , | |
682 | .Xr ess 4 , | 682 | .Xr ess 4 , | |
683 | .Xr gus 4 , | 683 | .Xr gus 4 , | |
684 | .Xr guspnp 4 , | 684 | .Xr guspnp 4 , | |
685 | .Xr pas 4 , | 685 | .Xr pas 4 , | |
686 | .Xr sb 4 , | 686 | .Xr sb 4 , | |
687 | .Xr wss 4 , | 687 | .Xr wss 4 , | |
688 | .Xr ym 4 | 688 | .Xr ym 4 | |
689 | .Ss PCI bus | 689 | .Ss PCI bus | |
690 | .Xr auacer 4 , | 690 | .Xr auacer 4 , | |
691 | .Xr auich 4 , | 691 | .Xr auich 4 , | |
692 | .Xr auixp 4 , | 692 | .Xr auixp 4 , | |
693 | .Xr autri 4 , | 693 | .Xr autri 4 , | |
694 | .Xr auvia 4 , | 694 | .Xr auvia 4 , | |
695 | .Xr azalia 4 , | 695 | .Xr azalia 4 , | |
696 | .Xr clcs 4 , | 696 | .Xr clcs 4 , | |
697 | .Xr clct 4 , | 697 | .Xr clct 4 , | |
698 | .Xr cmpci 4 , | 698 | .Xr cmpci 4 , | |
699 | .Xr eap 4 , | 699 | .Xr eap 4 , | |
700 | .Xr emuxki 4 , | 700 | .Xr emuxki 4 , | |
701 | .Xr esa 4 , | 701 | .Xr esa 4 , | |
702 | .Xr esm 4 , | 702 | .Xr esm 4 , | |
703 | .Xr eso 4 , | 703 | .Xr eso 4 , | |
704 | .Xr fms 4 , | 704 | .Xr fms 4 , | |
705 | .Xr neo 4 , | 705 | .Xr neo 4 , | |
706 | .Xr sv 4 , | 706 | .Xr sv 4 , | |
707 | .Xr yds 4 | 707 | .Xr yds 4 | |
708 | .Ss PCMCIA | |||
709 | .Xr esl 4 | |||
710 | .Ss TURBOchannel | 708 | .Ss TURBOchannel | |
711 | .Xr bba 4 | 709 | .Xr bba 4 | |
712 | .Ss USB | 710 | .Ss USB | |
713 | .Xr uaudio 4 | 711 | .Xr uaudio 4 | |
714 | .Sh BUGS | 712 | .Sh BUGS | |
715 | If the device is used in | 713 | If the device is used in | |
716 | .Xr mmap 2 | 714 | .Xr mmap 2 | |
717 | it is currently always mapped for writing (playing) due to | 715 | it is currently always mapped for writing (playing) due to | |
718 | VM system weirdness. | 716 | VM system weirdness. |
--- src/share/man/man4/opl.4 2008/04/30 13:10:54 1.19
+++ src/share/man/man4/opl.4 2009/01/03 17:44:20 1.20
@@ -1,88 +1,86 @@ | @@ -1,88 +1,86 @@ | |||
1 | .\" $NetBSD: opl.4,v 1.19 2008/04/30 13:10:54 martin Exp $ | 1 | .\" $NetBSD: opl.4,v 1.20 2009/01/03 17:44:20 christos Exp $ | |
2 | .\" | 2 | .\" | |
3 | .\" Copyright (c) 1999 The NetBSD Foundation, Inc. | 3 | .\" Copyright (c) 1999 The NetBSD Foundation, Inc. | |
4 | .\" All rights reserved. | 4 | .\" All rights reserved. | |
5 | .\" | 5 | .\" | |
6 | .\" This code is derived from software contributed to The NetBSD Foundation | 6 | .\" This code is derived from software contributed to The NetBSD Foundation | |
7 | .\" by Lennart Augustsson. | 7 | .\" by Lennart Augustsson. | |
8 | .\" | 8 | .\" | |
9 | .\" Redistribution and use in source and binary forms, with or without | 9 | .\" Redistribution and use in source and binary forms, with or without | |
10 | .\" modification, are permitted provided that the following conditions | 10 | .\" modification, are permitted provided that the following conditions | |
11 | .\" are met: | 11 | .\" are met: | |
12 | .\" 1. Redistributions of source code must retain the above copyright | 12 | .\" 1. Redistributions of source code must retain the above copyright | |
13 | .\" notice, this list of conditions and the following disclaimer. | 13 | .\" notice, this list of conditions and the following disclaimer. | |
14 | .\" 2. Redistributions in binary form must reproduce the above copyright | 14 | .\" 2. Redistributions in binary form must reproduce the above copyright | |
15 | .\" notice, this list of conditions and the following disclaimer in the | 15 | .\" notice, this list of conditions and the following disclaimer in the | |
16 | .\" documentation and/or other materials provided with the distribution. | 16 | .\" documentation and/or other materials provided with the distribution. | |
17 | .\" | 17 | .\" | |
18 | .\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS | 18 | .\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS | |
19 | .\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED | 19 | .\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED | |
20 | .\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | 20 | .\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | |
21 | .\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS | 21 | .\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS | |
22 | .\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | 22 | .\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
23 | .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | 23 | .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
24 | .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | 24 | .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | |
25 | .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | 25 | .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | |
26 | .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | 26 | .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | |
27 | .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | 27 | .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | |
28 | .\" POSSIBILITY OF SUCH DAMAGE. | 28 | .\" POSSIBILITY OF SUCH DAMAGE. | |
29 | .\" | 29 | .\" | |
30 | .Dd October 7, 2006 | 30 | .Dd January 3, 2009 | |
31 | .Dt OPL 4 | 31 | .Dt OPL 4 | |
32 | .Os | 32 | .Os | |
33 | .Sh NAME | 33 | .Sh NAME | |
34 | .Nm opl | 34 | .Nm opl | |
35 | .Nd Yamaha OPL2 and OPL3 FM MIDI synthesizer driver | 35 | .Nd Yamaha OPL2 and OPL3 FM MIDI synthesizer driver | |
36 | .Sh SYNOPSIS | 36 | .Sh SYNOPSIS | |
37 | .Cd "opl* at cmpci? flags 1" | 37 | .Cd "opl* at cmpci? flags 1" | |
38 | .Cd "opl* at esl?" | |||
39 | .Cd "opl* at eso?" | 38 | .Cd "opl* at eso?" | |
40 | .Cd "opl* at ess?" | 39 | .Cd "opl* at ess?" | |
41 | .Cd "opl* at fms?" | 40 | .Cd "opl* at fms?" | |
42 | .Cd "opl0 at isa? port 0x388" | 41 | .Cd "opl0 at isa? port 0x388" | |
43 | .Cd "opl* at sb?" | 42 | .Cd "opl* at sb?" | |
44 | .Cd "opl* at sv?" | 43 | .Cd "opl* at sv?" | |
45 | .Cd "opl* at wss?" | 44 | .Cd "opl* at wss?" | |
46 | .Cd "opl* at yds?" | 45 | .Cd "opl* at yds?" | |
47 | .Cd "opl* at ym?" | 46 | .Cd "opl* at ym?" | |
48 | .Cd "midi* at opl?" | 47 | .Cd "midi* at opl?" | |
49 | .Sh DESCRIPTION | 48 | .Sh DESCRIPTION | |
50 | The | 49 | The | |
51 | .Nm | 50 | .Nm | |
52 | driver provides support for the Yamaha OPL2 (YM3812) and OPL3 | 51 | driver provides support for the Yamaha OPL2 (YM3812) and OPL3 | |
53 | (YMF262) chips. The chips are FM synthesizers and are capable | 52 | (YMF262) chips. The chips are FM synthesizers and are capable | |
54 | of producing a wide range of sounds. | 53 | of producing a wide range of sounds. | |
55 | .Pp | 54 | .Pp | |
56 | Access to the device is through the MIDI driver. | 55 | Access to the device is through the MIDI driver. | |
57 | .Pp | 56 | .Pp | |
58 | The | 57 | The | |
59 | .Nm | 58 | .Nm | |
60 | driver usually attaches to a sound card, but it can also sit | 59 | driver usually attaches to a sound card, but it can also sit | |
61 | directly on the ISA bus. | 60 | directly on the ISA bus. | |
62 | .Pp | 61 | .Pp | |
63 | If | 62 | If | |
64 | .Dq flags 1 | 63 | .Dq flags 1 | |
65 | is specified, the | 64 | is specified, the | |
66 | .Nm | 65 | .Nm | |
67 | driver handles left and right channels of OPL3 swapped. | 66 | driver handles left and right channels of OPL3 swapped. | |
68 | Use this flag if your device has such problem. | 67 | Use this flag if your device has such problem. | |
69 | .Sh SEE ALSO | 68 | .Sh SEE ALSO | |
70 | .Xr cmpci 4 , | 69 | .Xr cmpci 4 , | |
71 | .Xr esl 4 , | |||
72 | .Xr eso 4 , | 70 | .Xr eso 4 , | |
73 | .Xr ess 4 , | 71 | .Xr ess 4 , | |
74 | .Xr fms 4 , | 72 | .Xr fms 4 , | |
75 | .Xr isa 4 , | 73 | .Xr isa 4 , | |
76 | .Xr midi 4 , | 74 | .Xr midi 4 , | |
77 | .Xr sb 4 , | 75 | .Xr sb 4 , | |
78 | .Xr sv 4 , | 76 | .Xr sv 4 , | |
79 | .Xr wss 4 , | 77 | .Xr wss 4 , | |
80 | .Xr yds 4 , | 78 | .Xr yds 4 , | |
81 | .Xr ym 4 | 79 | .Xr ym 4 | |
82 | .Sh HISTORY | 80 | .Sh HISTORY | |
83 | The | 81 | The | |
84 | .Nm | 82 | .Nm | |
85 | device driver appeared in | 83 | device driver appeared in | |
86 | .Nx 1.4 . | 84 | .Nx 1.4 . | |
87 | .Sh BUGS | 85 | .Sh BUGS | |
88 | The OPL3 chip is operated in OPL2 mode despite being more capable. | 86 | The OPL3 chip is operated in OPL2 mode despite being more capable. |
--- src/share/man/man4/pci.4 2008/12/16 02:14:24 1.89
+++ src/share/man/man4/pci.4 2009/01/03 17:44:20 1.90
@@ -1,517 +1,515 @@ | @@ -1,517 +1,515 @@ | |||
1 | .\" $NetBSD: pci.4,v 1.89 2008/12/16 02:14:24 jakllsch Exp $ | 1 | .\" $NetBSD: pci.4,v 1.90 2009/01/03 17:44:20 christos Exp $ | |
2 | .\" | 2 | .\" | |
3 | .\" Copyright (c) 1997 Jason R. Thorpe. All rights reserved. | 3 | .\" Copyright (c) 1997 Jason R. Thorpe. All rights reserved. | |
4 | .\" Copyright (c) 1997 Jonathan Stone | 4 | .\" Copyright (c) 1997 Jonathan Stone | |
5 | .\" All rights reserved. | 5 | .\" All rights reserved. | |
6 | .\" | 6 | .\" | |
7 | .\" Redistribution and use in source and binary forms, with or without | 7 | .\" Redistribution and use in source and binary forms, with or without | |
8 | .\" modification, are permitted provided that the following conditions | 8 | .\" modification, are permitted provided that the following conditions | |
9 | .\" are met: | 9 | .\" are met: | |
10 | .\" 1. Redistributions of source code must retain the above copyright | 10 | .\" 1. Redistributions of source code must retain the above copyright | |
11 | .\" notice, this list of conditions and the following disclaimer. | 11 | .\" notice, this list of conditions and the following disclaimer. | |
12 | .\" 2. Redistributions in binary form must reproduce the above copyright | 12 | .\" 2. Redistributions in binary form must reproduce the above copyright | |
13 | .\" notice, this list of conditions and the following disclaimer in the | 13 | .\" notice, this list of conditions and the following disclaimer in the | |
14 | .\" documentation and/or other materials provided with the distribution. | 14 | .\" documentation and/or other materials provided with the distribution. | |
15 | .\" 3. All advertising materials mentioning features or use of this software | 15 | .\" 3. All advertising materials mentioning features or use of this software | |
16 | .\" must display the following acknowledgements: | 16 | .\" must display the following acknowledgements: | |
17 | .\" This product includes software developed by Jonathan Stone | 17 | .\" This product includes software developed by Jonathan Stone | |
18 | .\" 4. The name of the author may not be used to endorse or promote products | 18 | .\" 4. The name of the author may not be used to endorse or promote products | |
19 | .\" derived from this software without specific prior written permission | 19 | .\" derived from this software without specific prior written permission | |
20 | .\" | 20 | .\" | |
21 | .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR | 21 | .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR | |
22 | .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | 22 | .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |
23 | .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | 23 | .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | |
24 | .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | 24 | .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | |
25 | .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | 25 | .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | |
26 | .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 26 | .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | |
27 | .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 27 | .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |
28 | .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 28 | .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
29 | .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | 29 | .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | |
30 | .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 30 | .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
31 | .\" | 31 | .\" | |
32 | .Dd December 16, 2008 | 32 | .Dd January 3, 2009 | |
33 | .Dt PCI 4 | 33 | .Dt PCI 4 | |
34 | .Os | 34 | .Os | |
35 | .Sh NAME | 35 | .Sh NAME | |
36 | .Nm pci | 36 | .Nm pci | |
37 | .Nd introduction to machine-independent PCI bus support and drivers | 37 | .Nd introduction to machine-independent PCI bus support and drivers | |
38 | .Sh SYNOPSIS | 38 | .Sh SYNOPSIS | |
39 | .Cd "pci* at mainbus? bus ?" | 39 | .Cd "pci* at mainbus? bus ?" | |
40 | .Cd "pci* at pchb? bus ?" | 40 | .Cd "pci* at pchb? bus ?" | |
41 | .Cd "pci* at ppb? bus ?" | 41 | .Cd "pci* at ppb? bus ?" | |
42 | .Pp | 42 | .Pp | |
43 | .Cd options PCIVERBOSE | 43 | .Cd options PCIVERBOSE | |
44 | .Cd options PCI_CONFIG_DUMP | 44 | .Cd options PCI_CONFIG_DUMP | |
45 | .Cd options PCI_ADDR_FIXUP | 45 | .Cd options PCI_ADDR_FIXUP | |
46 | .Cd options PCI_BUS_FIXUP | 46 | .Cd options PCI_BUS_FIXUP | |
47 | .Cd options PCI_INTR_FIXUP | 47 | .Cd options PCI_INTR_FIXUP | |
48 | .Sh DESCRIPTION | 48 | .Sh DESCRIPTION | |
49 | Other | 49 | Other | |
50 | .Nm | 50 | .Nm | |
51 | attachments are machine-dependent and depend on the bus topology and | 51 | attachments are machine-dependent and depend on the bus topology and | |
52 | .Tn PCI | 52 | .Tn PCI | |
53 | bus interface of your system. | 53 | bus interface of your system. | |
54 | See | 54 | See | |
55 | .Xr intro 4 | 55 | .Xr intro 4 | |
56 | for your system for details. | 56 | for your system for details. | |
57 | .Pp | 57 | .Pp | |
58 | .Nx | 58 | .Nx | |
59 | includes a machine-independent | 59 | includes a machine-independent | |
60 | .Tn PCI | 60 | .Tn PCI | |
61 | bus subsystem and | 61 | bus subsystem and | |
62 | several machine-independent | 62 | several machine-independent | |
63 | .Tn PCI | 63 | .Tn PCI | |
64 | device drivers. | 64 | device drivers. | |
65 | .Pp | 65 | .Pp | |
66 | Your system may support additional | 66 | Your system may support additional | |
67 | .Tn PCI | 67 | .Tn PCI | |
68 | devices. | 68 | devices. | |
69 | Drivers for | 69 | Drivers for | |
70 | .Tn PCI | 70 | .Tn PCI | |
71 | devices not listed here are machine-dependent. | 71 | devices not listed here are machine-dependent. | |
72 | Consult your system's | 72 | Consult your system's | |
73 | .Xr intro 4 | 73 | .Xr intro 4 | |
74 | for additional information. | 74 | for additional information. | |
75 | .Sh OPTIONS | 75 | .Sh OPTIONS | |
76 | .Bl -tag -width PCI_ADDR_FIXUP -offset 3n | 76 | .Bl -tag -width PCI_ADDR_FIXUP -offset 3n | |
77 | .It Dv PCI_ADDR_FIXUP | 77 | .It Dv PCI_ADDR_FIXUP | |
78 | Fixup PCI I/O and memory addresses. | 78 | Fixup PCI I/O and memory addresses. | |
79 | .Pp | 79 | .Pp | |
80 | Some i386 and amd64 BIOS implementations don't allocate I/O space and | 80 | Some i386 and amd64 BIOS implementations don't allocate I/O space and | |
81 | memory space for some PCI devices -- primarily BIOS in PnP mode, or laptops | 81 | memory space for some PCI devices -- primarily BIOS in PnP mode, or laptops | |
82 | that expect devices to be configured via ACPI. | 82 | that expect devices to be configured via ACPI. | |
83 | Since necessary space isn't allocated, those devices | 83 | Since necessary space isn't allocated, those devices | |
84 | will not work without special handling. | 84 | will not work without special handling. | |
85 | .Pp | 85 | .Pp | |
86 | This option allocates I/O space and memory space | 86 | This option allocates I/O space and memory space | |
87 | instead of relying upon the BIOS to do so. | 87 | instead of relying upon the BIOS to do so. | |
88 | .Pp | 88 | .Pp | |
89 | If necessary space is already correctly assigned to the devices, | 89 | If necessary space is already correctly assigned to the devices, | |
90 | this option leaves the space as is. | 90 | this option leaves the space as is. | |
91 | .Pp | 91 | .Pp | |
92 | .It Dv PCI_BUS_FIXUP | 92 | .It Dv PCI_BUS_FIXUP | |
93 | Fixup PCI bus numbering; needed for many | 93 | Fixup PCI bus numbering; needed for many | |
94 | .Xr cardbus 4 | 94 | .Xr cardbus 4 | |
95 | bridges. | 95 | bridges. | |
96 | .Pp | 96 | .Pp | |
97 | Each PCI bus and CardBus should have a unique bus number. | 97 | Each PCI bus and CardBus should have a unique bus number. | |
98 | But some BIOS implementations don't assign a bus number | 98 | But some BIOS implementations don't assign a bus number | |
99 | for subordinate PCI buses. | 99 | for subordinate PCI buses. | |
100 | And many BIOS implementations | 100 | And many BIOS implementations | |
101 | don't assign a bus number for CardBuses. | 101 | don't assign a bus number for CardBuses. | |
102 | .Pp | 102 | .Pp | |
103 | A typical symptom of this is the following boot message: | 103 | A typical symptom of this is the following boot message: | |
104 | .D1 Sy cardbus0 at cardslot0: bus 0 device 0... | 104 | .D1 Sy cardbus0 at cardslot0: bus 0 device 0... | |
105 | Please note that this cardbus0 has a bus number | 105 | Please note that this cardbus0 has a bus number | |
106 | .Sq 0 , | 106 | .Sq 0 , | |
107 | but normally the bus number 0 is used by the machine's | 107 | but normally the bus number 0 is used by the machine's | |
108 | primary PCI bus. | 108 | primary PCI bus. | |
109 | Thus, this bus number for cardbus is incorrect | 109 | Thus, this bus number for cardbus is incorrect | |
110 | .Pq not assigned . | 110 | .Pq not assigned . | |
111 | In this situation, a device located in cardbus0 doesn't | 111 | In this situation, a device located in cardbus0 doesn't | |
112 | show correct device ID, | 112 | show correct device ID, | |
113 | because its bus number 0 incorrectly refers to the primary | 113 | because its bus number 0 incorrectly refers to the primary | |
114 | PCI bus, and a device ID in the primary PCI bus is shown | 114 | PCI bus, and a device ID in the primary PCI bus is shown | |
115 | in the boot message instead of the device's ID in the cardbus0. | 115 | in the boot message instead of the device's ID in the cardbus0. | |
116 | .Pp | 116 | .Pp | |
117 | This option assigns bus numbers for all subordinate | 117 | This option assigns bus numbers for all subordinate | |
118 | PCI buses and CardBuses. | 118 | PCI buses and CardBuses. | |
119 | .Pp | 119 | .Pp | |
120 | Since this option renumbers all PCI buses and CardBuses, | 120 | Since this option renumbers all PCI buses and CardBuses, | |
121 | all bus numbers of subordinate buses become different | 121 | all bus numbers of subordinate buses become different | |
122 | when this option is enabled. | 122 | when this option is enabled. | |
123 | .It Dv PCI_INTR_FIXUP | 123 | .It Dv PCI_INTR_FIXUP | |
124 | Fixup PCI interrupt routing via PCIBIOS or ACPI. | 124 | Fixup PCI interrupt routing via PCIBIOS or ACPI. | |
125 | .Pp | 125 | .Pp | |
126 | Some i386 and amd64 BIOS implementations don't assign an interrupt for | 126 | Some i386 and amd64 BIOS implementations don't assign an interrupt for | |
127 | some devices. | 127 | some devices. | |
128 | .Pp | 128 | .Pp | |
129 | This option assigns an interrupt for such devices instead | 129 | This option assigns an interrupt for such devices instead | |
130 | of relying upon the BIOS to do so. | 130 | of relying upon the BIOS to do so. | |
131 | .Pp | 131 | .Pp | |
132 | If a valid interrupt has already been assigned to a device, this | 132 | If a valid interrupt has already been assigned to a device, this | |
133 | option leaves the interrupt as is. | 133 | option leaves the interrupt as is. | |
134 | .El | 134 | .El | |
135 | .Sh HARDWARE | 135 | .Sh HARDWARE | |
136 | .Nx | 136 | .Nx | |
137 | includes machine-independent | 137 | includes machine-independent | |
138 | .Tn PCI | 138 | .Tn PCI | |
139 | drivers, sorted by device type and driver name: | 139 | drivers, sorted by device type and driver name: | |
140 | .Ss SCSI interfaces | 140 | .Ss SCSI interfaces | |
141 | .Bl -tag -width pcdisplay -offset indent | 141 | .Bl -tag -width pcdisplay -offset indent | |
142 | .It ahc | 142 | .It ahc | |
143 | Adaptec 29xx, 39xx, and other AIC-7xxx-based | 143 | Adaptec 29xx, 39xx, and other AIC-7xxx-based | |
144 | .Tn SCSI | 144 | .Tn SCSI | |
145 | interfaces. | 145 | interfaces. | |
146 | .It adv | 146 | .It adv | |
147 | Advansys | 147 | Advansys | |
148 | .Tn SCSI | 148 | .Tn SCSI | |
149 | interfaces. | 149 | interfaces. | |
150 | .It adw | 150 | .It adw | |
151 | Advansys Ultra Wide | 151 | Advansys Ultra Wide | |
152 | .Tn SCSI | 152 | .Tn SCSI | |
153 | interfaces. | 153 | interfaces. | |
154 | .It bha | 154 | .It bha | |
155 | Buslogic BT-9xx | 155 | Buslogic BT-9xx | |
156 | .Tn SCSI | 156 | .Tn SCSI | |
157 | interfaces. | 157 | interfaces. | |
158 | .It dpt | 158 | .It dpt | |
159 | DPT SmartCache/SmartRAID III and IV | 159 | DPT SmartCache/SmartRAID III and IV | |
160 | .Tn SCSI | 160 | .Tn SCSI | |
161 | interfaces. | 161 | interfaces. | |
162 | .It iha | 162 | .It iha | |
163 | Initio INIC-940/950 | 163 | Initio INIC-940/950 | |
164 | .Tn SCSI | 164 | .Tn SCSI | |
165 | interfaces. | 165 | interfaces. | |
166 | .It isp | 166 | .It isp | |
167 | QLogic ISP-1020, ISP-1040, and ISP-2100 | 167 | QLogic ISP-1020, ISP-1040, and ISP-2100 | |
168 | .Tn SCSI | 168 | .Tn SCSI | |
169 | and | 169 | and | |
170 | .Tn FibreChannel | 170 | .Tn FibreChannel | |
171 | interfaces. | 171 | interfaces. | |
172 | .It mfi | 172 | .It mfi | |
173 | LSI Logic \*[Am] Dell MegaRAID SAS RAID controllers. | 173 | LSI Logic \*[Am] Dell MegaRAID SAS RAID controllers. | |
174 | .It mly | 174 | .It mly | |
175 | Mylex AcceleRAID and eXtremeRAID controllers with v6 firmware. | 175 | Mylex AcceleRAID and eXtremeRAID controllers with v6 firmware. | |
176 | .It pcscp | 176 | .It pcscp | |
177 | Advanced Micro Devices Am53c974 PCscsi-PCI | 177 | Advanced Micro Devices Am53c974 PCscsi-PCI | |
178 | .Tn SCSI | 178 | .Tn SCSI | |
179 | interfaces. | 179 | interfaces. | |
180 | .It siop | 180 | .It siop | |
181 | Symbios Logic/NCR 53c8xx-family | 181 | Symbios Logic/NCR 53c8xx-family | |
182 | .Tn SCSI | 182 | .Tn SCSI | |
183 | interfaces. | 183 | interfaces. | |
184 | .It trm | 184 | .It trm | |
185 | Tekram TRM-S1040 ASIC based | 185 | Tekram TRM-S1040 ASIC based | |
186 | .Tn SCSI | 186 | .Tn SCSI | |
187 | interfaces. | 187 | interfaces. | |
188 | .El | 188 | .El | |
189 | .Ss Disk and tape controllers | 189 | .Ss Disk and tape controllers | |
190 | .Bl -tag -width pcdisplay -offset indent | 190 | .Bl -tag -width pcdisplay -offset indent | |
191 | .It aac | 191 | .It aac | |
192 | The Adaptec AAC family of RAID controllers. | 192 | The Adaptec AAC family of RAID controllers. | |
193 | .It ahcisata | 193 | .It ahcisata | |
194 | AHCI 1.0 and 1.1 compliant SATA controllers. | 194 | AHCI 1.0 and 1.1 compliant SATA controllers. | |
195 | .It amr | 195 | .It amr | |
196 | The AMI and LSI Logic MegaRAID family of RAID controllers. | 196 | The AMI and LSI Logic MegaRAID family of RAID controllers. | |
197 | .It cac | 197 | .It cac | |
198 | Compaq array controllers. | 198 | Compaq array controllers. | |
199 | .It icp | 199 | .It icp | |
200 | ICP Vortex GDT and Intel Storage RAID controllers. | 200 | ICP Vortex GDT and Intel Storage RAID controllers. | |
201 | .It mlx | 201 | .It mlx | |
202 | Mylex DAC960 and DEC SWXCR RAID controllers. | 202 | Mylex DAC960 and DEC SWXCR RAID controllers. | |
203 | .It pciide | 203 | .It pciide | |
204 | IDE disk controllers. | 204 | IDE disk controllers. | |
205 | .It siisata | |||
206 | Silicon Image SATA-II controllers. | |||
207 | .It twe | 205 | .It twe | |
208 | 3Ware Escalade RAID controllers. | 206 | 3Ware Escalade RAID controllers. | |
209 | .El | 207 | .El | |
210 | .Ss Network interfaces | 208 | .Ss Network interfaces | |
211 | .Bl -tag -width pcdisplay -offset indent | 209 | .Bl -tag -width pcdisplay -offset indent | |
212 | .It an | 210 | .It an | |
213 | .Tn Aironet | 211 | .Tn Aironet | |
214 | 4500/4800 and | 212 | 4500/4800 and | |
215 | .Tn Cisco | 213 | .Tn Cisco | |
216 | 340 series 802.11 interfaces. | 214 | 340 series 802.11 interfaces. | |
217 | .It bnx | 215 | .It bnx | |
218 | Broadcom NetXtreme II 10/100/1000 Ethernet interfaces. | 216 | Broadcom NetXtreme II 10/100/1000 Ethernet interfaces. | |
219 | .It de | 217 | .It de | |
220 | .Tn DEC | 218 | .Tn DEC | |
221 | DC21x4x (Tulip) based | 219 | DC21x4x (Tulip) based | |
222 | .Tn Ethernet | 220 | .Tn Ethernet | |
223 | interfaces, including the DE435, | 221 | interfaces, including the DE435, | |
224 | DE450, and DE500, and Znyx, SMC, Cogent/Adaptec, and Asante single- and | 222 | DE450, and DE500, and Znyx, SMC, Cogent/Adaptec, and Asante single- and | |
225 | multi-port | 223 | multi-port | |
226 | .Tn Ethernet | 224 | .Tn Ethernet | |
227 | interfaces. | 225 | interfaces. | |
228 | .It en | 226 | .It en | |
229 | Midway-based Efficient Networks Inc. and Adaptec ATM interfaces. | 227 | Midway-based Efficient Networks Inc. and Adaptec ATM interfaces. | |
230 | .It ep | 228 | .It ep | |
231 | 3Com 3c590, 3c595, 3c900, and 3c905 | 229 | 3Com 3c590, 3c595, 3c900, and 3c905 | |
232 | .Tn Ethernet | 230 | .Tn Ethernet | |
233 | interfaces. | 231 | interfaces. | |
234 | .It epic | 232 | .It epic | |
235 | SMC83C170 (EPIC/100) | 233 | SMC83C170 (EPIC/100) | |
236 | .Tn Ethernet | 234 | .Tn Ethernet | |
237 | interfaces. | 235 | interfaces. | |
238 | .It esh | 236 | .It esh | |
239 | RoadRunner-based HIPPI interfaces. | 237 | RoadRunner-based HIPPI interfaces. | |
240 | .It ex | 238 | .It ex | |
241 | 3Com 3c900, 3c905, and 3c980 | 239 | 3Com 3c900, 3c905, and 3c980 | |
242 | .Tn Ethernet | 240 | .Tn Ethernet | |
243 | interfaces. | 241 | interfaces. | |
244 | .It fpa | 242 | .It fpa | |
245 | .Tn DEC | 243 | .Tn DEC | |
246 | DEFPA | 244 | DEFPA | |
247 | .Tn FDDI | 245 | .Tn FDDI | |
248 | interfaces. | 246 | interfaces. | |
249 | .It fxp | 247 | .It fxp | |
250 | Intel EtherExpress PRO 10+/100B | 248 | Intel EtherExpress PRO 10+/100B | |
251 | .Tn Ethernet | 249 | .Tn Ethernet | |
252 | interfaces. | 250 | interfaces. | |
253 | .It gsip | 251 | .It gsip | |
254 | National Semiconductor DP83820 based Gigabit | 252 | National Semiconductor DP83820 based Gigabit | |
255 | .Tn Ethernet | 253 | .Tn Ethernet | |
256 | interfaces. | 254 | interfaces. | |
257 | .It hme | 255 | .It hme | |
258 | Sun Microelectronics STP2002-STQ | 256 | Sun Microelectronics STP2002-STQ | |
259 | .Tn Ethernet | 257 | .Tn Ethernet | |
260 | interfaces. | 258 | interfaces. | |
261 | .It le | 259 | .It le | |
262 | PCNet-PCI | 260 | PCNet-PCI | |
263 | .Tn Ethernet | 261 | .Tn Ethernet | |
264 | interfaces. | 262 | interfaces. | |
265 | Note, the | 263 | Note, the | |
266 | .Xr pcn 4 | 264 | .Xr pcn 4 | |
267 | driver supersedes this driver. | 265 | driver supersedes this driver. | |
268 | .It lmc | 266 | .It lmc | |
269 | LAN Media Corp WAN interfaces. | 267 | LAN Media Corp WAN interfaces. | |
270 | .It msk | 268 | .It msk | |
271 | Marvell Yukon 2 based Gigabit | 269 | Marvell Yukon 2 based Gigabit | |
272 | .Tn Ethernet | 270 | .Tn Ethernet | |
273 | interfaces. | 271 | interfaces. | |
274 | .It ne | 272 | .It ne | |
275 | NE2000-compatible | 273 | NE2000-compatible | |
276 | .Tn Ethernet | 274 | .Tn Ethernet | |
277 | interfaces. | 275 | interfaces. | |
278 | .It nfe | 276 | .It nfe | |
279 | NVIDIA nForce | 277 | NVIDIA nForce | |
280 | .Tn Ethernet | 278 | .Tn Ethernet | |
281 | interfaces. | 279 | interfaces. | |
282 | .It ntwoc | 280 | .It ntwoc | |
283 | SDL Communications N2pci and WAN/ic 400 synchronous serial interfaces. | 281 | SDL Communications N2pci and WAN/ic 400 synchronous serial interfaces. | |
284 | .It pcn | 282 | .It pcn | |
285 | AMD PCnet-PCI family of | 283 | AMD PCnet-PCI family of | |
286 | .Tn Ethernet | 284 | .Tn Ethernet | |
287 | interfaces. | 285 | interfaces. | |
288 | .It ral | 286 | .It ral | |
289 | Ralink Technology RT2500/RT2600-based 802.11a/b/g wireless network interfaces. | 287 | Ralink Technology RT2500/RT2600-based 802.11a/b/g wireless network interfaces. | |
290 | .It rtk | 288 | .It rtk | |
291 | Realtek 8129/8139 based | 289 | Realtek 8129/8139 based | |
292 | .Tn Ethernet | 290 | .Tn Ethernet | |
293 | interfaces. | 291 | interfaces. | |
294 | .It sf | 292 | .It sf | |
295 | Adaptec AIC-6915 10/100 | 293 | Adaptec AIC-6915 10/100 | |
296 | .Tn Ethernet | 294 | .Tn Ethernet | |
297 | interfaces. | 295 | interfaces. | |
298 | .It sip | 296 | .It sip | |
299 | Silicon Integrated Systems SiS 900, SiS 7016, and National Semiconductor | 297 | Silicon Integrated Systems SiS 900, SiS 7016, and National Semiconductor | |
300 | DP83815 based | 298 | DP83815 based | |
301 | .Tn Ethernet | 299 | .Tn Ethernet | |
302 | interfaces. | 300 | interfaces. | |
303 | .It sk | 301 | .It sk | |
304 | SysKonnect SK-98xx based Gigabit | 302 | SysKonnect SK-98xx based Gigabit | |
305 | .Tn Ethernet | 303 | .Tn Ethernet | |
306 | interfaces. | 304 | interfaces. | |
307 | .It ste | 305 | .It ste | |
308 | Sundance ST-201 10/100 based | 306 | Sundance ST-201 10/100 based | |
309 | .Tn Ethernet | 307 | .Tn Ethernet | |
310 | interfaces. | 308 | interfaces. | |
311 | .It stge | 309 | .It stge | |
312 | Sundance/Tamarack TC9021 based Gigabit | 310 | Sundance/Tamarack TC9021 based Gigabit | |
313 | .Tn Ethernet | 311 | .Tn Ethernet | |
314 | interfaces. | 312 | interfaces. | |
315 | .It ti | 313 | .It ti | |
316 | Alteon Networks Tigon I and Tigon II Gigabit Ethernet driver. | 314 | Alteon Networks Tigon I and Tigon II Gigabit Ethernet driver. | |
317 | .It tl | 315 | .It tl | |
318 | Texas Instruments ThunderLAN-based | 316 | Texas Instruments ThunderLAN-based | |
319 | .Tn Ethernet | 317 | .Tn Ethernet | |
320 | interfaces. | 318 | interfaces. | |
321 | .It tlp | 319 | .It tlp | |
322 | DECchip 21x4x and clone | 320 | DECchip 21x4x and clone | |
323 | .Tn Ethernet | 321 | .Tn Ethernet | |
324 | interfaces. | 322 | interfaces. | |
325 | .It vge | 323 | .It vge | |
326 | VIA Networking Technologies VT6122 PCI Gigabit Ethernet adapter driver. | 324 | VIA Networking Technologies VT6122 PCI Gigabit Ethernet adapter driver. | |
327 | .It vr | 325 | .It vr | |
328 | VIA VT3043 (Rhine) and VT86C100A (Rhine-II) | 326 | VIA VT3043 (Rhine) and VT86C100A (Rhine-II) | |
329 | .Tn Ethernet | 327 | .Tn Ethernet | |
330 | interfaces. | 328 | interfaces. | |
331 | .It wi | 329 | .It wi | |
332 | WaveLAN/IEEE and PRISM-II 802.11 wireless interfaces. | 330 | WaveLAN/IEEE and PRISM-II 802.11 wireless interfaces. | |
333 | .It wm | 331 | .It wm | |
334 | Intel i8254x Gigabit | 332 | Intel i8254x Gigabit | |
335 | .Tn Ethernet | 333 | .Tn Ethernet | |
336 | driver. | 334 | driver. | |
337 | .El | 335 | .El | |
338 | .Ss Serial interfaces | 336 | .Ss Serial interfaces | |
339 | .Bl -tag -width pcdisplay -offset indent | 337 | .Bl -tag -width pcdisplay -offset indent | |
340 | .It cy | 338 | .It cy | |
341 | Cyclades Cyclom-4Y, -8Y, and -16Y multi-port serial interfaces. | 339 | Cyclades Cyclom-4Y, -8Y, and -16Y multi-port serial interfaces. | |
342 | .It cz | 340 | .It cz | |
343 | Cyclades-Z series multi-port serial interfaces. | 341 | Cyclades-Z series multi-port serial interfaces. | |
344 | .El | 342 | .El | |
345 | .Ss Audio devices | 343 | .Ss Audio devices | |
346 | .Bl -tag -width pcdisplay -offset indent | 344 | .Bl -tag -width pcdisplay -offset indent | |
347 | .It auacer | 345 | .It auacer | |
348 | Acer Labs M5455 I/O Controller Hub integrated AC'97 audio device. | 346 | Acer Labs M5455 I/O Controller Hub integrated AC'97 audio device. | |
349 | .It auich | 347 | .It auich | |
350 | Intel I/O Controller Hub integrated AC'97 audio device. | 348 | Intel I/O Controller Hub integrated AC'97 audio device. | |
351 | .It auvia | 349 | .It auvia | |
352 | VIA VT82C686A integrated AC'97 audio device. | 350 | VIA VT82C686A integrated AC'97 audio device. | |
353 | .It autri | 351 | .It autri | |
354 | Trident 4DWAVE-DX/NX, SiS 7018, ALi M5451 AC'97 audio device. | 352 | Trident 4DWAVE-DX/NX, SiS 7018, ALi M5451 AC'97 audio device. | |
355 | .It clcs | 353 | .It clcs | |
356 | Cirrus Logic CS4280 audio device. | 354 | Cirrus Logic CS4280 audio device. | |
357 | .It clct | 355 | .It clct | |
358 | Cirrus Logic CS4281 audio device. | 356 | Cirrus Logic CS4281 audio device. | |
359 | .It cmpci | 357 | .It cmpci | |
360 | C-Media CMI8x38 audio device. | 358 | C-Media CMI8x38 audio device. | |
361 | .It eap | 359 | .It eap | |
362 | Ensoniq AudioPCI audio device. | 360 | Ensoniq AudioPCI audio device. | |
363 | .It emuxki | 361 | .It emuxki | |
364 | Creative Labs SBLive! and PCI 512 audio device. | 362 | Creative Labs SBLive! and PCI 512 audio device. | |
365 | .It esa | 363 | .It esa | |
366 | ESS Technology Allegro-1 / Maestro-3 audio device. | 364 | ESS Technology Allegro-1 / Maestro-3 audio device. | |
367 | .It esm | 365 | .It esm | |
368 | ESS Maestro-1/2/2e PCI AC'97 Audio Accelerator audio device. | 366 | ESS Maestro-1/2/2e PCI AC'97 Audio Accelerator audio device. | |
369 | .It eso | 367 | .It eso | |
370 | ESS Solo-1 PCI AudioDrive audio device. | 368 | ESS Solo-1 PCI AudioDrive audio device. | |
371 | .It fms | 369 | .It fms | |
372 | Forte Media FM801 audio device. | 370 | Forte Media FM801 audio device. | |
373 | .It neo | 371 | .It neo | |
374 | NeoMagic MagicMedia 256 audio device. | 372 | NeoMagic MagicMedia 256 audio device. | |
375 | .It sv | 373 | .It sv | |
376 | S3 SonicVibes audio device. | 374 | S3 SonicVibes audio device. | |
377 | .It yds | 375 | .It yds | |
378 | Yamaha YMF724/740/744/754-based audio device. | 376 | Yamaha YMF724/740/744/754-based audio device. | |
379 | .El | 377 | .El | |
380 | .Ss Bridges | 378 | .Ss Bridges | |
381 | .Bl -tag -width pcdisplay -offset indent | 379 | .Bl -tag -width pcdisplay -offset indent | |
382 | .It cbb | 380 | .It cbb | |
383 | .Tn PCI | 381 | .Tn PCI | |
384 | Yenta compatible | 382 | Yenta compatible | |
385 | .Tn CardBus | 383 | .Tn CardBus | |
386 | bridges. | 384 | bridges. | |
387 | .It ppb | 385 | .It ppb | |
388 | Generic | 386 | Generic | |
389 | .Tn PCI Ns \- Ns Tn PCI | 387 | .Tn PCI Ns \- Ns Tn PCI | |
390 | bridges, including | 388 | bridges, including | |
391 | .Tn PCI | 389 | .Tn PCI | |
392 | expansion backplanes. | 390 | expansion backplanes. | |
393 | .El | 391 | .El | |
394 | .Ss Miscellaneous devices | 392 | .Ss Miscellaneous devices | |
395 | .Bl -tag -width pcdisplay -offset indent | 393 | .Bl -tag -width pcdisplay -offset indent | |
396 | .It bktr | 394 | .It bktr | |
397 | Brooktree 848 compatible TV cards. | 395 | Brooktree 848 compatible TV cards. | |
398 | .It ehci | 396 | .It ehci | |
399 | USB EHCI host controllers. | 397 | USB EHCI host controllers. | |
400 | .It iop | 398 | .It iop | |
401 | I2O I/O processors. | 399 | I2O I/O processors. | |
402 | .It mr | 400 | .It mr | |
403 | Guillemot Maxi Radio FM 2000 FM radio device. | 401 | Guillemot Maxi Radio FM 2000 FM radio device. | |
404 | .It oboe | 402 | .It oboe | |
405 | Toshiba OBOE IrDA SIR/FIR controller. | 403 | Toshiba OBOE IrDA SIR/FIR controller. | |
406 | .It ohci | 404 | .It ohci | |
407 | USB OHCI host controllers. | 405 | USB OHCI host controllers. | |
408 | .It pcic | 406 | .It pcic | |
409 | .Tn PCI | 407 | .Tn PCI | |
410 | .Tn PCMCIA | 408 | .Tn PCMCIA | |
411 | controllers, including the Cirrus Logic GD6729. | 409 | controllers, including the Cirrus Logic GD6729. | |
412 | .It puc | 410 | .It puc | |
413 | PCI | 411 | PCI | |
414 | .Dq universal | 412 | .Dq universal | |
415 | communications cards, containing | 413 | communications cards, containing | |
416 | .Xr com 4 | 414 | .Xr com 4 | |
417 | and | 415 | and | |
418 | .Xr lpt 4 | 416 | .Xr lpt 4 | |
419 | communications ports. | 417 | communications ports. | |
420 | .It uhci | 418 | .It uhci | |
421 | USB UHCI host controllers. | 419 | USB UHCI host controllers. | |
422 | .It viapm | 420 | .It viapm | |
423 | VIA VT82C686A hardware monitors. | 421 | VIA VT82C686A hardware monitors. | |
424 | .It vga | 422 | .It vga | |
425 | VGA graphics boards. | 423 | VGA graphics boards. | |
426 | .El | 424 | .El | |
427 | .Sh SEE ALSO | 425 | .Sh SEE ALSO | |
428 | .Xr aac 4 , | 426 | .Xr aac 4 , | |
429 | .Xr adv 4 , | 427 | .Xr adv 4 , | |
430 | .Xr adw 4 , | 428 | .Xr adw 4 , | |
431 | .Xr agp 4 , | 429 | .Xr agp 4 , | |
432 | .Xr ahc 4 , | 430 | .Xr ahc 4 , | |
433 | .Xr ahcisata 4 , | 431 | .Xr ahcisata 4 , | |
434 | .Xr amr 4 , | 432 | .Xr amr 4 , | |
435 | .Xr an 4 , | 433 | .Xr an 4 , | |
436 | .Xr auich 4 , | 434 | .Xr auich 4 , | |
437 | .Xr autri 4 , | 435 | .Xr autri 4 , | |
438 | .Xr auvia 4 , | 436 | .Xr auvia 4 , | |
439 | .Xr bha 4 , | 437 | .Xr bha 4 , | |
440 | .Xr bktr 4 , | 438 | .Xr bktr 4 , | |
441 | .Xr bnx 4 , | 439 | .Xr bnx 4 , | |
442 | .Xr cac 4 , | 440 | .Xr cac 4 , | |
443 | .Xr cbb 4 , | 441 | .Xr cbb 4 , | |
444 | .Xr clcs 4 , | 442 | .Xr clcs 4 , | |
445 | .Xr cmpci 4 , | 443 | .Xr cmpci 4 , | |
446 | .Xr cy 4 , | 444 | .Xr cy 4 , | |
447 | .Xr cz 4 , | 445 | .Xr cz 4 , | |
448 | .Xr de 4 , | 446 | .Xr de 4 , | |
449 | .Xr dpt 4 , | 447 | .Xr dpt 4 , | |
450 | .Xr eap 4 , | 448 | .Xr eap 4 , | |
451 | .Xr ehci 4 , | 449 | .Xr ehci 4 , | |
452 | .Xr emuxki 4 , | 450 | .Xr emuxki 4 , | |
453 | .Xr en 4 , | 451 | .Xr en 4 , | |
454 | .Xr ep 4 , | 452 | .Xr ep 4 , | |
455 | .Xr epic 4 , | 453 | .Xr epic 4 , | |
456 | .Xr esa 4 , | 454 | .Xr esa 4 , | |
457 | .Xr esh 4 , | 455 | .Xr esh 4 , | |
458 | .Xr esm 4 , | 456 | .Xr esm 4 , | |
459 | .Xr eso 4 , | 457 | .Xr eso 4 , | |
460 | .Xr ex 4 , | 458 | .Xr ex 4 , | |
461 | .Xr fms 4 , | 459 | .Xr fms 4 , | |
462 | .Xr fpa 4 , | 460 | .Xr fpa 4 , | |
463 | .Xr fxp 4 , | 461 | .Xr fxp 4 , | |
464 | .Xr gsip 4 , | 462 | .Xr gsip 4 , | |
465 | .Xr hme 4 , | 463 | .Xr hme 4 , | |
466 | .Xr icp 4 , | 464 | .Xr icp 4 , | |
467 | .Xr iha 4 , | 465 | .Xr iha 4 , | |
468 | .Xr intro 4 , | 466 | .Xr intro 4 , | |
469 | .Xr iop 4 , | 467 | .Xr iop 4 , | |
470 | .Xr isp 4 , | 468 | .Xr isp 4 , | |
471 | .Xr le 4 , | 469 | .Xr le 4 , | |
472 | .Xr lmc 4 , | 470 | .Xr lmc 4 , | |
473 | .Xr mfi 4 , | 471 | .Xr mfi 4 , | |
474 | .Xr mlx 4 , | 472 | .Xr mlx 4 , | |
475 | .Xr mly 4 , | 473 | .Xr mly 4 , | |
476 | .Xr mpt 4 , | 474 | .Xr mpt 4 , | |
477 | .Xr msk 4 , | 475 | .Xr msk 4 , | |
478 | .Xr ne 4 , | 476 | .Xr ne 4 , | |
479 | .Xr neo 4 , | 477 | .Xr neo 4 , | |
480 | .Xr nfe 4 , | 478 | .Xr nfe 4 , | |
481 | .Xr ntwoc 4 , | 479 | .Xr ntwoc 4 , | |
482 | .Xr oboe 4 , | 480 | .Xr oboe 4 , | |
483 | .Xr ohci 4 , | 481 | .Xr ohci 4 , | |
484 | .Xr pcic 4 , | 482 | .Xr pcic 4 , | |
485 | .Xr pciide 4 , | 483 | .Xr pciide 4 , | |
486 | .Xr pcn 4 , | 484 | .Xr pcn 4 , | |
487 | .Xr pcscp 4 , | 485 | .Xr pcscp 4 , | |
488 | .Xr ppb 4 , | 486 | .Xr ppb 4 , | |
489 | .Xr puc 4 , | 487 | .Xr puc 4 , | |
490 | .Xr ral 4 , | 488 | .Xr ral 4 , | |
491 | .Xr rtk 4 , | 489 | .Xr rtk 4 , | |
492 | .Xr sf 4 , | 490 | .Xr sf 4 , | |
493 | .Xr siop 4 , | 491 | .Xr siop 4 , | |
494 | .Xr sip 4 , | 492 | .Xr sip 4 , | |
495 | .Xr sk 4 , | 493 | .Xr sk 4 , | |
496 | .Xr ste 4 , | 494 | .Xr ste 4 , | |
497 | .Xr stge 4 , | 495 | .Xr stge 4 , | |
498 | .Xr sv 4 , | 496 | .Xr sv 4 , | |
499 | .Xr ti 4 , | 497 | .Xr ti 4 , | |
500 | .Xr tl 4 , | 498 | .Xr tl 4 , | |
501 | .Xr tlp 4 , | 499 | .Xr tlp 4 , | |
502 | .Xr trm 4 , | 500 | .Xr trm 4 , | |
503 | .Xr twe 4 , | 501 | .Xr twe 4 , | |
504 | .Xr uhci 4 , | 502 | .Xr uhci 4 , | |
505 | .Xr vga 4 , | 503 | .Xr vga 4 , | |
506 | .Xr vge 4 , | 504 | .Xr vge 4 , | |
507 | .Xr viapm 4 , | 505 | .Xr viapm 4 , | |
508 | .Xr vr 4 , | 506 | .Xr vr 4 , | |
509 | .Xr wi 4 , | 507 | .Xr wi 4 , | |
510 | .Xr wm 4 , | 508 | .Xr wm 4 , | |
511 | .Xr wscons 4 , | 509 | .Xr wscons 4 , | |
512 | .Xr yds 4 | 510 | .Xr yds 4 | |
513 | .Sh HISTORY | 511 | .Sh HISTORY | |
514 | The machine-independent | 512 | The machine-independent | |
515 | .Tn PCI | 513 | .Tn PCI | |
516 | subsystem appeared in | 514 | subsystem appeared in | |
517 | .Nx 1.2 . | 515 | .Nx 1.2 . |
--- src/share/man/man4/pcmcia.4 2008/04/30 13:10:54 1.34
+++ src/share/man/man4/pcmcia.4 2009/01/03 17:44:20 1.35
@@ -1,231 +1,226 @@ | @@ -1,231 +1,226 @@ | |||
1 | .\" $NetBSD: pcmcia.4,v 1.34 2008/04/30 13:10:54 martin Exp $ | 1 | .\" $NetBSD: pcmcia.4,v 1.35 2009/01/03 17:44:20 christos Exp $ | |
2 | .\" | 2 | .\" | |
3 | .\" Copyright (c) 1999, 2002 The NetBSD Foundation, Inc. | 3 | .\" Copyright (c) 1999, 2002 The NetBSD Foundation, Inc. | |
4 | .\" All rights reserved. | 4 | .\" All rights reserved. | |
5 | .\" | 5 | .\" | |
6 | .\" This code is derived from software contributed to The NetBSD Foundation | 6 | .\" This code is derived from software contributed to The NetBSD Foundation | |
7 | .\" by Lennart Augustsson. | 7 | .\" by Lennart Augustsson. | |
8 | .\" | 8 | .\" | |
9 | .\" Redistribution and use in source and binary forms, with or without | 9 | .\" Redistribution and use in source and binary forms, with or without | |
10 | .\" modification, are permitted provided that the following conditions | 10 | .\" modification, are permitted provided that the following conditions | |
11 | .\" are met: | 11 | .\" are met: | |
12 | .\" 1. Redistributions of source code must retain the above copyright | 12 | .\" 1. Redistributions of source code must retain the above copyright | |
13 | .\" notice, this list of conditions and the following disclaimer. | 13 | .\" notice, this list of conditions and the following disclaimer. | |
14 | .\" 2. Redistributions in binary form must reproduce the above copyright | 14 | .\" 2. Redistributions in binary form must reproduce the above copyright | |
15 | .\" notice, this list of conditions and the following disclaimer in the | 15 | .\" notice, this list of conditions and the following disclaimer in the | |
16 | .\" documentation and/or other materials provided with the distribution. | 16 | .\" documentation and/or other materials provided with the distribution. | |
17 | .\" | 17 | .\" | |
18 | .\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS | 18 | .\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS | |
19 | .\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED | 19 | .\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED | |
20 | .\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | 20 | .\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | |
21 | .\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS | 21 | .\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS | |
22 | .\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | 22 | .\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
23 | .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | 23 | .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
24 | .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | 24 | .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | |
25 | .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | 25 | .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | |
26 | .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | 26 | .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | |
27 | .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | 27 | .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | |
28 | .\" POSSIBILITY OF SUCH DAMAGE. | 28 | .\" POSSIBILITY OF SUCH DAMAGE. | |
29 | .\" | 29 | .\" | |
30 | .Dd August 21, 2007 | 30 | .Dd January 3, 2009 | |
31 | .Dt PCMCIA 4 | 31 | .Dt PCMCIA 4 | |
32 | .Os | 32 | .Os | |
33 | .Sh NAME | 33 | .Sh NAME | |
34 | .Nm pcmcia | 34 | .Nm pcmcia | |
35 | .Nd | 35 | .Nd | |
36 | introduction to | 36 | introduction to | |
37 | .Tn PCMCIA | 37 | .Tn PCMCIA | |
38 | .Pq Tn "PC Card" | 38 | .Pq Tn "PC Card" | |
39 | support | 39 | support | |
40 | .Sh SYNOPSIS | 40 | .Sh SYNOPSIS | |
41 | .Cd "pcmcia* at pcic? controller ? socket ?" | 41 | .Cd "pcmcia* at pcic? controller ? socket ?" | |
42 | .Cd "pcmcia* at tcic? controller ? socket ?" | 42 | .Cd "pcmcia* at tcic? controller ? socket ?" | |
43 | .Cd "pcmcia* at cardslot?" | 43 | .Cd "pcmcia* at cardslot?" | |
44 | .Pp | 44 | .Pp | |
45 | .Cd options PCMCIAVERBOSE | 45 | .Cd options PCMCIAVERBOSE | |
46 | .Ss amiga | 46 | .Ss amiga | |
47 | .Cd "pcmcia* at pccard0" | 47 | .Cd "pcmcia* at pccard0" | |
48 | .Ss hpcmips | 48 | .Ss hpcmips | |
49 | .Cd "pcmcia* at it8368e? controller ? socket ?" | 49 | .Cd "pcmcia* at it8368e? controller ? socket ?" | |
50 | .Cd "pcmcia* at plumpcmcia? controller ? socket ?" | 50 | .Cd "pcmcia* at plumpcmcia? controller ? socket ?" | |
51 | .Ss hpcsh | 51 | .Ss hpcsh | |
52 | .Cd "pcmcia* at hd64461pcmcia? controller ? socket ?" | 52 | .Cd "pcmcia* at hd64461pcmcia? controller ? socket ?" | |
53 | .Ss sh3 | 53 | .Ss sh3 | |
54 | .Cd "pcmcia* at shpcic? controller ? socket ?" | 54 | .Cd "pcmcia* at shpcic? controller ? socket ?" | |
55 | .Ss sparc | 55 | .Ss sparc | |
56 | .Cd "pcmcia* at nell?" | 56 | .Cd "pcmcia* at nell?" | |
57 | .Sh DESCRIPTION | 57 | .Sh DESCRIPTION | |
58 | .Nx | 58 | .Nx | |
59 | provides machine-independent bus support and drivers for | 59 | provides machine-independent bus support and drivers for | |
60 | .Tn PCMCIA | 60 | .Tn PCMCIA | |
61 | .Pq Personal Computer Memory Card International Association | 61 | .Pq Personal Computer Memory Card International Association | |
62 | a.k.a. | 62 | a.k.a. | |
63 | .Tn "PC Card" , | 63 | .Tn "PC Card" , | |
64 | .Tn CardBus | 64 | .Tn CardBus | |
65 | devices. | 65 | devices. | |
66 | .Sh HARDWARE | 66 | .Sh HARDWARE | |
67 | .Nx | 67 | .Nx | |
68 | includes the following machine-independent | 68 | includes the following machine-independent | |
69 | .Tn PCMCIA | 69 | .Tn PCMCIA | |
70 | drivers, sorted by function and driver name: | 70 | drivers, sorted by function and driver name: | |
71 | .Ss Serial interfaces and modems | 71 | .Ss Serial interfaces and modems | |
72 | .Bl -tag -width speaker -offset indent | 72 | .Bl -tag -width speaker -offset indent | |
73 | .It com | 73 | .It com | |
74 | 8250/16450/16550-compatible PCMCIA serial cards and modems. | 74 | 8250/16450/16550-compatible PCMCIA serial cards and modems. | |
75 | .El | 75 | .El | |
76 | .Ss Network interfaces | 76 | .Ss Network interfaces | |
77 | .Bl -tag -width speaker -offset indent | 77 | .Bl -tag -width speaker -offset indent | |
78 | .It an | 78 | .It an | |
79 | Aironet 4500/4800 and Cisco 340 series 802.11 controller. | 79 | Aironet 4500/4800 and Cisco 340 series 802.11 controller. | |
80 | .It awi | 80 | .It awi | |
81 | 802.11 controller based on the AMD PCnetMobile chipset. | 81 | 802.11 controller based on the AMD PCnetMobile chipset. | |
82 | .It cnw | 82 | .It cnw | |
83 | Netwave AirSurfer Wireless LAN interface. | 83 | Netwave AirSurfer Wireless LAN interface. | |
84 | .It ep | 84 | .It ep | |
85 | 3Com 3c589 EtherLink III Ethernet card. | 85 | 3Com 3c589 EtherLink III Ethernet card. | |
86 | .It mbe | 86 | .It mbe | |
87 | Ethernet card based on the Fujitsu MB86960A/MB86965A chipset. | 87 | Ethernet card based on the Fujitsu MB86960A/MB86965A chipset. | |
88 | .It mhzc | 88 | .It mhzc | |
89 | Megahertz Ethernet/Modem combo cards | 89 | Megahertz Ethernet/Modem combo cards | |
90 | .It ne | 90 | .It ne | |
91 | NE2000 compatible cards. | 91 | NE2000 compatible cards. | |
92 | .It ray | 92 | .It ray | |
93 | Raytheon Raylink and WebGear Aviator2.4 802.11 controller. | 93 | Raytheon Raylink and WebGear Aviator2.4 802.11 controller. | |
94 | .It sm | 94 | .It sm | |
95 | Megahertz Ethernet card. | 95 | Megahertz Ethernet card. | |
96 | .It wi | 96 | .It wi | |
97 | Lucent WaveLAN/IEEE and PRISM-II based 802.11 controller. | 97 | Lucent WaveLAN/IEEE and PRISM-II based 802.11 controller. | |
98 | .It xi | 98 | .It xi | |
99 | Xircom CreditCard Ethernet | 99 | Xircom CreditCard Ethernet | |
100 | .El | 100 | .El | |
101 | .Ss SCSI controllers | 101 | .Ss SCSI controllers | |
102 | .Bl -tag -width speaker -offset indent | 102 | .Bl -tag -width speaker -offset indent | |
103 | .It aic | 103 | .It aic | |
104 | Adaptec APA-1460 | 104 | Adaptec APA-1460 | |
105 | .Tn SCSI | 105 | .Tn SCSI | |
106 | controller card. | 106 | controller card. | |
107 | .It esp | 107 | .It esp | |
108 | NCR 53C9x, Emulex ESP406, and Qlogic FAS408 | 108 | NCR 53C9x, Emulex ESP406, and Qlogic FAS408 | |
109 | .Tn SCSI | 109 | .Tn SCSI | |
110 | controllers. | 110 | controllers. | |
111 | .It spc | 111 | .It spc | |
112 | Fujitsu MB87030/MB89352 | 112 | Fujitsu MB87030/MB89352 | |
113 | .Tn SCSI | 113 | .Tn SCSI | |
114 | controllers. | 114 | controllers. | |
115 | .El | 115 | .El | |
116 | .Ss IDE controllers | 116 | .Ss IDE controllers | |
117 | .Bl -tag -width speaker -offset indent | 117 | .Bl -tag -width speaker -offset indent | |
118 | .It wdc | 118 | .It wdc | |
119 | Digital Hinote Ultra Mobile Media Adapter | 119 | Digital Hinote Ultra Mobile Media Adapter | |
120 | .El | 120 | .El | |
121 | .Ss Audio devices | |||
122 | .Bl -tag -width speaker -offset indent | |||
123 | .It esl | |||
124 | Eiger Labs ESS1688 AudioDrive. | |||
125 | .El | |||
126 | .Ss Bluetooth devices | 121 | .Ss Bluetooth devices | |
127 | .Bl -tag -width speaker -offset indent | 122 | .Bl -tag -width speaker -offset indent | |
128 | .It bt3c | 123 | .It bt3c | |
129 | 3Com 3CRWB6096 Bluetooth PC Card driver. | 124 | 3Com 3CRWB6096 Bluetooth PC Card driver. | |
130 | .It btbc | 125 | .It btbc | |
131 | AnyCom Bluetooth BlueCard driver. | 126 | AnyCom Bluetooth BlueCard driver. | |
132 | .El | 127 | .El | |
133 | .Ss USB Controller | 128 | .Ss USB Controller | |
134 | .Bl -tag -width speaker -offset indent | 129 | .Bl -tag -width speaker -offset indent | |
135 | .It slhci | 130 | .It slhci | |
136 | Cypress/ScanLogic SL811HS USB Host Controller driver. | 131 | Cypress/ScanLogic SL811HS USB Host Controller driver. | |
137 | .El | 132 | .El | |
138 | .Sh SEE ALSO | 133 | .Sh SEE ALSO | |
139 | .Xr aic 4 , | 134 | .Xr aic 4 , | |
140 | .Xr an 4 , | 135 | .Xr an 4 , | |
141 | .Xr awi 4 , | 136 | .Xr awi 4 , | |
142 | .Xr bt3c 4 , | 137 | .Xr bt3c 4 , | |
143 | .Xr btbc 4 , | 138 | .Xr btbc 4 , | |
144 | .Xr cardbus 4 , | 139 | .Xr cardbus 4 , | |
145 | .Xr cnw 4 , | 140 | .Xr cnw 4 , | |
146 | .Xr com 4 , | 141 | .Xr com 4 , | |
147 | .Xr ep 4 , | 142 | .Xr ep 4 , | |
148 | .Xr esl 4 , | 143 | .Xr esl 4 , | |
149 | .Xr esp 4 , | 144 | .Xr esp 4 , | |
150 | .Xr intro 4 , | 145 | .Xr intro 4 , | |
151 | .Xr isa 4 , | 146 | .Xr isa 4 , | |
152 | .Xr mbe 4 , | 147 | .Xr mbe 4 , | |
153 | .Xr mhzc 4 , | 148 | .Xr mhzc 4 , | |
154 | .Xr ne 4 , | 149 | .Xr ne 4 , | |
155 | .Xr options 4 , | 150 | .Xr options 4 , | |
156 | .Xr pcic 4 , | 151 | .Xr pcic 4 , | |
157 | .Xr pcmcom 4 , | 152 | .Xr pcmcom 4 , | |
158 | .Xr ray 4 , | 153 | .Xr ray 4 , | |
159 | .Xr slhci 4 , | 154 | .Xr slhci 4 , | |
160 | .Xr sm 4 , | 155 | .Xr sm 4 , | |
161 | .Xr spc 4 , | 156 | .Xr spc 4 , | |
162 | .Xr tcic 4 , | 157 | .Xr tcic 4 , | |
163 | .Xr wi 4 , | 158 | .Xr wi 4 , | |
164 | .Xr xi 4 | 159 | .Xr xi 4 | |
165 | .Pp | 160 | .Pp | |
166 | .Pa http://www.pcmcia.org/ | 161 | .Pa http://www.pcmcia.org/ | |
167 | .Sh HISTORY | 162 | .Sh HISTORY | |
168 | The | 163 | The | |
169 | .Nm | 164 | .Nm | |
170 | driver appeared in | 165 | driver appeared in | |
171 | .Nx 1.3 . | 166 | .Nx 1.3 . | |
172 | .Sh BUGS | 167 | .Sh BUGS | |
173 | .Ss IO space conflicts | 168 | .Ss IO space conflicts | |
174 | .Nx | 169 | .Nx | |
175 | probes the | 170 | probes the | |
176 | .Tn PCMCIA | 171 | .Tn PCMCIA | |
177 | IO bus width and uses that information to decide | 172 | IO bus width and uses that information to decide | |
178 | where to map | 173 | where to map | |
179 | .Tn PCMCIA | 174 | .Tn PCMCIA | |
180 | IO space. For 10-bit wide cards, 0x300-0x3ff is | 175 | IO space. For 10-bit wide cards, 0x300-0x3ff is | |
181 | used. For 12-bit wide cards, 0x400-0x4ff is used. | 176 | used. For 12-bit wide cards, 0x400-0x4ff is used. | |
182 | .Pp | 177 | .Pp | |
183 | Neither choice is perfect. In the 12-bit case, 0x400 appears to work | 178 | Neither choice is perfect. In the 12-bit case, 0x400 appears to work | |
184 | on substantially more devices than 0x300. In the event that | 179 | on substantially more devices than 0x300. In the event that | |
185 | .Tn PCMCIA | 180 | .Tn PCMCIA | |
186 | devices are mapped in 0x400-0x4ff and appear to be nonfunctional, | 181 | devices are mapped in 0x400-0x4ff and appear to be nonfunctional, | |
187 | remapping to 0x300-0x3ff may be appropriate; consult | 182 | remapping to 0x300-0x3ff may be appropriate; consult | |
188 | .Cd options PCIC_ISA_ALLOC_IOBASE | 183 | .Cd options PCIC_ISA_ALLOC_IOBASE | |
189 | and | 184 | and | |
190 | .Cd options PCIC_ISA_ALLOC_IOSIZE | 185 | .Cd options PCIC_ISA_ALLOC_IOSIZE | |
191 | in | 186 | in | |
192 | .Xr options 4 . | 187 | .Xr options 4 . | |
193 | Example: | 188 | Example: | |
194 | .Bd -literal -offset indent | 189 | .Bd -literal -offset indent | |
195 | # Avoid PCMCIA bus space conflicts with the default IO space | 190 | # Avoid PCMCIA bus space conflicts with the default IO space | |
196 | # allocation on 12-bit wide busses (base 0x300 size 0xff). | 191 | # allocation on 12-bit wide busses (base 0x300 size 0xff). | |
197 | options PCIC_ISA_ALLOC_IOBASE=0x300 | 192 | options PCIC_ISA_ALLOC_IOBASE=0x300 | |
198 | options PCIC_ISA_ALLOC_IOSIZE=0x0ff | 193 | options PCIC_ISA_ALLOC_IOSIZE=0x0ff | |
199 | .Ed | 194 | .Ed | |
200 | .Ss Interrupt conflicts | 195 | .Ss Interrupt conflicts | |
201 | .Nx | 196 | .Nx | |
202 | attempts to probe for available interrupts to assign to | 197 | attempts to probe for available interrupts to assign to | |
203 | .Tn PCMCIA | 198 | .Tn PCMCIA | |
204 | devices. In some cases, it is not possible to detect | 199 | devices. In some cases, it is not possible to detect | |
205 | all interrupts in use; in such cases, use of | 200 | all interrupts in use; in such cases, use of | |
206 | .Cd options PCIC_ISA_INTR_ALLOC_MASK | 201 | .Cd options PCIC_ISA_INTR_ALLOC_MASK | |
207 | may be necessary. See | 202 | may be necessary. See | |
208 | .Xr options 4 . | 203 | .Xr options 4 . | |
209 | .Ss Unconfigured devices | 204 | .Ss Unconfigured devices | |
210 | During autoconfiguration, if a message is displayed saying that your card | 205 | During autoconfiguration, if a message is displayed saying that your card | |
211 | is "not configured" it indicates that there isn't support for your card | 206 | is "not configured" it indicates that there isn't support for your card | |
212 | compiled into the kernel. To fix this problem, it may simply be a matter | 207 | compiled into the kernel. To fix this problem, it may simply be a matter | |
213 | of adding the manufacturer and product IDs to the | 208 | of adding the manufacturer and product IDs to the | |
214 | .Tn PCMCIA | 209 | .Tn PCMCIA | |
215 | database or adding a front-end attachment to an existing driver. In | 210 | database or adding a front-end attachment to an existing driver. In | |
216 | the latter case, it is normally always necessary to get a dump of the | 211 | the latter case, it is normally always necessary to get a dump of the | |
217 | CIS table from the card. You can do this by adding | 212 | CIS table from the card. You can do this by adding | |
218 | .Cd options PCMCIACISDEBUG | 213 | .Cd options PCMCIACISDEBUG | |
219 | and | 214 | and | |
220 | .Cd options PCMCIADEBUG | 215 | .Cd options PCMCIADEBUG | |
221 | into your kernel config file. Additionally, you will have to patch the | 216 | into your kernel config file. Additionally, you will have to patch the | |
222 | kernel to enable run-time debugging. This can be done in the source | 217 | kernel to enable run-time debugging. This can be done in the source | |
223 | by changing the variables | 218 | by changing the variables | |
224 | .Va pcmcia_debug | 219 | .Va pcmcia_debug | |
225 | and | 220 | and | |
226 | .Va pcmciacis_debug | 221 | .Va pcmciacis_debug | |
227 | to 0xff. Alternatively, you can patch the same variables at run-time | 222 | to 0xff. Alternatively, you can patch the same variables at run-time | |
228 | using | 223 | using | |
229 | .Xr ddb 4 . | 224 | .Xr ddb 4 . | |
230 | For most drivers you should also consider enabling any driver-specific | 225 | For most drivers you should also consider enabling any driver-specific | |
231 | debugging options. | 226 | debugging options. |