Clean up some errors from textproc/igor

by wrapping long lines.

Event:	vBSDcon Hackathon
This commit is contained in:
Benedict Reuschling 2019-09-05 16:59:08 +00:00
parent 999f8925ae
commit 743c61d608
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=53370

View file

@ -4,15 +4,22 @@
$FreeBSD$ $FreeBSD$
--> -->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="oss"> <chapter xmlns="http://docbook.org/ns/docbook"
<info><title>Sound Subsystem</title> xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
<authorgroup> xml:id="oss">
<author><personname><firstname>Jean-Francois</firstname><surname>Dockes</surname></personname><contrib>Contributed by </contrib></author> <info>
</authorgroup> <title>Sound Subsystem</title>
</info>
<authorgroup>
<author>
<personname>
<firstname>Jean-Francois</firstname>
<surname>Dockes</surname>
</personname>
<contrib>Contributed by </contrib>
</author>
</authorgroup>
</info>
<sect1 xml:id="oss-intro"> <sect1 xml:id="oss-intro">
<title>Introduction</title> <title>Introduction</title>
@ -96,7 +103,9 @@
<title>Probing, Attaching, etc.</title> <title>Probing, Attaching, etc.</title>
<para>Sound drivers probe and attach in almost the same way as any <para>Sound drivers probe and attach in almost the same way as any
hardware driver module. You might want to look at the <link linkend="isa-driver"> ISA</link> or <link linkend="pci">PCI</link> specific sections of the handbook for hardware driver module. You might want to look at the <link
linkend="isa-driver">ISA</link> or <link
linkend="pci">PCI</link> specific sections of the handbook for
more information.</para> more information.</para>
<para>However, sound drivers differ in some ways:</para> <para>However, sound drivers differ in some ways:</para>
@ -104,9 +113,9 @@
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para>They declare themselves as <filename>pcm</filename> <para>They declare themselves as <filename>pcm</filename>
class devices, with a class devices, with a <varname
<varname remap="structname">struct snddev_info</varname> device private remap="structname">struct snddev_info</varname> device
structure:</para> private structure:</para>
<programlisting> static driver_t xxx_driver = { <programlisting> static driver_t xxx_driver = {
"pcm", "pcm",
@ -117,8 +126,11 @@
DRIVER_MODULE(snd_xxxpci, pci, xxx_driver, pcm_devclass, 0, 0); DRIVER_MODULE(snd_xxxpci, pci, xxx_driver, pcm_devclass, 0, 0);
MODULE_DEPEND(snd_xxxpci, snd_pcm, PCM_MINVER, PCM_PREFVER,PCM_MAXVER);</programlisting> MODULE_DEPEND(snd_xxxpci, snd_pcm, PCM_MINVER, PCM_PREFVER,PCM_MAXVER);</programlisting>
<para>Most sound drivers<indexterm><primary>device <para>Most sound drivers
drivers</primary><secondary>sound</secondary></indexterm> <indexterm>
<primary>device drivers</primary>
<secondary>sound</secondary>
</indexterm>
need to store additional private information about their need to store additional private information about their
device. A private data structure is usually allocated in device. A private data structure is usually allocated in
the attach routine. Its address is passed to the attach routine. Its address is passed to
@ -134,7 +146,8 @@
<para>The sound driver attach routine should declare its MIXER <para>The sound driver attach routine should declare its MIXER
or AC97 interface to <filename>pcm</filename> by calling or AC97 interface to <filename>pcm</filename> by calling
<function>mixer_init()</function>. For a MIXER interface, <function>mixer_init()</function>. For a MIXER interface,
this causes in turn a call to <link linkend="xxxmixer-init"><function>xxxmixer_init()</function></link>.</para> this causes in turn a call to <link
linkend="xxxmixer-init"><function>xxxmixer_init()</function></link>.</para>
</listitem> </listitem>
<listitem> <listitem>
@ -196,7 +209,8 @@
<title>Interfaces</title> <title>Interfaces</title>
<para>The interface between the <filename>pcm</filename> core <para>The interface between the <filename>pcm</filename> core
and the sound drivers is defined in terms of <link linkend="kernel-objects">kernel objects</link>.</para> and the sound drivers is defined in terms of <link
linkend="kernel-objects">kernel objects</link>.</para>
<para>There are two main interfaces that a sound driver will <para>There are two main interfaces that a sound driver will
usually provide: <emphasis>CHANNEL</emphasis> and either usually provide: <emphasis>CHANNEL</emphasis> and either
@ -235,11 +249,12 @@
<para>For sound data transfers, the <para>For sound data transfers, the
<filename>pcm</filename> core and the sound drivers <filename>pcm</filename> core and the sound drivers
communicate through a shared memory area, described by a communicate through a shared memory area, described by a
<varname remap="structname">struct snd_dbuf</varname>.</para> <varname remap="structname">struct
snd_dbuf</varname>.</para>
<para><varname remap="structname">struct snd_dbuf</varname> is private to <para><varname remap="structname">struct snd_dbuf</varname> is
<filename>pcm</filename>, and sound drivers obtain private to <filename>pcm</filename>, and sound drivers
values of interest by calls to accessor functions obtain values of interest by calls to accessor functions
(<function>sndbuf_getxxx()</function>).</para> (<function>sndbuf_getxxx()</function>).</para>
<para>The shared memory area has a size of <para>The shared memory area has a size of
@ -253,7 +268,8 @@
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para><filename>pcm</filename> initially fills up the <para><filename>pcm</filename> initially fills up the
buffer, then calls the sound driver's <link linkend="channel-trigger"> buffer, then calls the sound driver's <link
linkend="channel-trigger">
<function>xxxchannel_trigger()</function></link> <function>xxxchannel_trigger()</function></link>
function with a parameter of PCMTRIG_START.</para> function with a parameter of PCMTRIG_START.</para>
</listitem> </listitem>
@ -273,8 +289,9 @@
<listitem> <listitem>
<para><function>chn_intr()</function> arranges to copy new <para><function>chn_intr()</function> arranges to copy new
data to the area that was transferred to the device (now data to the area that was transferred to the device (now
free), and make appropriate updates to the free), and make appropriate updates to the <varname
<varname remap="structname">snd_dbuf</varname> structure.</para> remap="structname">snd_dbuf</varname>
structure.</para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
</sect3> </sect3>
@ -301,8 +318,8 @@
<calloutlist> <calloutlist>
<callout arearefs="co-chinit-params"> <callout arearefs="co-chinit-params">
<para><varname>b</varname> is the address for the channel <para><varname>b</varname> is the address for the channel
<varname remap="structname">struct snd_dbuf</varname>. It should be <varname remap="structname">struct snd_dbuf</varname>.
initialized in the function by calling It should be initialized in the function by calling
<function>sndbuf_alloc()</function>. The buffer size to <function>sndbuf_alloc()</function>. The buffer size to
use is normally a small multiple of the 'typical' unit use is normally a small multiple of the 'typical' unit
transfer size for your device.</para> transfer size for your device.</para>
@ -491,10 +508,10 @@
<callout arearefs="co-chgetcaps-return"> <callout arearefs="co-chgetcaps-return">
<para>The routine returns a pointer to a (usually <para>The routine returns a pointer to a (usually
statically-defined) statically-defined) <varname
<varname remap="structname">pcmchan_caps</varname> structure (defined remap="structname">pcmchan_caps</varname> structure
in <filename>sound/pcm/channel.h</filename>. The (defined in <filename>sound/pcm/channel.h</filename>.
structure holds the minimum and maximum sampling The structure holds the minimum and maximum sampling
frequencies, and the accepted sound formats. Look at frequencies, and the accepted sound formats. Look at
any sound driver for an example.</para> any sound driver for an example.</para>
</callout> </callout>
@ -626,7 +643,7 @@
<para><function>xxxmixer_uninit()</function> should ensure <para><function>xxxmixer_uninit()</function> should ensure
that all sound is muted and if possible mixer hardware that all sound is muted and if possible mixer hardware
should be powered down </para> should be powered down.</para>
<para><function>xxxmixer_reinit()</function> should ensure <para><function>xxxmixer_reinit()</function> should ensure
that the mixer hardware is powered up and any settings not that the mixer hardware is powered up and any settings not