svn commit: r43528 - head/en_US.ISO8859-1/books/arch-handbook/driverbasics
Warren Block
wblock at FreeBSD.org
Tue Jan 14 23:52:10 UTC 2014
Author: wblock
Date: Tue Jan 14 23:52:09 2014
New Revision: 43528
URL: http://svnweb.freebsd.org/changeset/doc/43528
Log:
Whitespace-only fixes, translators please ignore.
Modified:
head/en_US.ISO8859-1/books/arch-handbook/driverbasics/chapter.xml
Modified: head/en_US.ISO8859-1/books/arch-handbook/driverbasics/chapter.xml
==============================================================================
--- head/en_US.ISO8859-1/books/arch-handbook/driverbasics/chapter.xml Tue Jan 14 23:45:40 2014 (r43527)
+++ head/en_US.ISO8859-1/books/arch-handbook/driverbasics/chapter.xml Tue Jan 14 23:52:09 2014 (r43528)
@@ -4,16 +4,36 @@
$FreeBSD$
-->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="driverbasics">
- <info><title>Writing FreeBSD Device Drivers</title>
+
+<chapter xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
+ xml:id="driverbasics">
+
+ <info>
+ <title>Writing FreeBSD Device Drivers</title>
+
<authorgroup>
- <author><personname><firstname>Murray</firstname><surname>Stokely</surname></personname><contrib>Written by </contrib></author>
+ <author>
+ <personname>
+ <firstname>Murray</firstname>
+ <surname>Stokely</surname>
+ </personname>
+
+ <contrib>Written by </contrib>
+ </author>
</authorgroup>
+
<authorgroup>
- <author><personname><firstname>Jörg</firstname><surname>Wunsch</surname></personname><contrib>Based on intro(4) manual page by </contrib></author>
+ <author>
+ <personname>
+ <firstname>Jörg</firstname>
+ <surname>Wunsch</surname>
+ </personname>
+
+ <contrib>Based on intro(4) manual page by </contrib>
+ </author>
</authorgroup>
</info>
-
<sect1 xml:id="driverbasics-intro">
<title>Introduction</title>
@@ -48,8 +68,13 @@
<sect1 xml:id="driverbasics-kld">
<title>Dynamic Kernel Linker Facility - KLD</title>
- <indexterm><primary>kernel linking</primary><secondary>dynamic</secondary></indexterm>
- <indexterm><primary>kernel loadable modules (KLD)</primary></indexterm>
+ <indexterm>
+ <primary>kernel linking</primary>
+ <secondary>dynamic</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>kernel loadable modules (KLD)</primary>
+ </indexterm>
<para>The kld interface allows system administrators to
dynamically add and remove functionality from a running system.
@@ -61,8 +86,14 @@
<primary>kernel modules</primary>
<secondary>loading</secondary>
</indexterm>
- <indexterm><primary>kernel modules</primary><secondary>unloading</secondary></indexterm>
- <indexterm><primary>kernel modules</primary><secondary>listing</secondary></indexterm>
+ <indexterm>
+ <primary>kernel modules</primary>
+ <secondary>unloading</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>kernel modules</primary>
+ <secondary>listing</secondary>
+ </indexterm>
<para>The kld interface is used through:</para>
@@ -130,7 +161,7 @@ DECLARE_MODULE(skeleton, skel_mod, SI_SU
<title>Makefile</title>
<para>&os; provides a system makefile to simplify compiling a
- kernel module.</para>
+ kernel module.</para>
<programlisting>SRCS=skeleton.c
KMOD=skeleton
@@ -148,7 +179,9 @@ KMOD=skeleton
<sect1 xml:id="driverbasics-char">
<title>Character Devices</title>
- <indexterm><primary>character devices</primary></indexterm>
+ <indexterm>
+ <primary>character devices</primary>
+ </indexterm>
<para>A character device driver is one that transfers data
directly to and from a user process. This is the most common
type of device driver and there are plenty of simple examples in
@@ -160,7 +193,7 @@ KMOD=skeleton
<example>
<title>Example of a Sample Echo Pseudo-Device Driver for
- &os; 10.X</title>
+ &os; 10.X</title>
<programlisting>/*
* Simple Echo pseudo-device KLD
@@ -337,7 +370,8 @@ Opened device "echo" successfully.
Test Data
Closing device "echo".</screen>
- <para>Real hardware devices are described in the next chapter.</para>
+ <para>Real hardware devices are described in the next
+ chapter.</para>
</sect1>
<sect1 xml:id="driverbasics-block">
@@ -350,28 +384,30 @@ Closing device "echo".</screen>
for which the kernel provides caching. This caching makes
block-devices almost unusable, or at least dangerously
unreliable. The caching will reorder the sequence of write
- operations, depriving the application of the ability to know
- the exact disk contents at any one instant in time. This
- makes predictable and reliable crash recovery of on-disk data
- structures (filesystems, databases etc.) impossible.
- Since writes may be delayed, there is no way the kernel can
- report to the application which particular write operation
- encountered a write error, this further compounds the
- consistency problem. For this reason, no serious applications
- rely on block devices, and in fact, almost all applications
- which access disks directly take great pains to specify that
- character (or <quote>raw</quote>) devices should always be
- used. Because the implementation of the aliasing of each disk
- (partition) to two devices with different semantics significantly
- complicated the relevant kernel code &os; dropped support for
- cached disk devices as part of the modernization of the disk I/O
+ operations, depriving the application of the ability to know the
+ exact disk contents at any one instant in time. This makes
+ predictable and reliable crash recovery of on-disk data
+ structures (filesystems, databases etc.) impossible. Since
+ writes may be delayed, there is no way the kernel can report to
+ the application which particular write operation encountered a
+ write error, this further compounds the consistency problem.
+ For this reason, no serious applications rely on block devices,
+ and in fact, almost all applications which access disks directly
+ take great pains to specify that character (or
+ <quote>raw</quote>) devices should always be used. Because the
+ implementation of the aliasing of each disk (partition) to two
+ devices with different semantics significantly complicated the
+ relevant kernel code &os; dropped support for cached disk
+ devices as part of the modernization of the disk I/O
infrastructure.</para>
</sect1>
<sect1 xml:id="driverbasics-net">
<title>Network Drivers</title>
- <indexterm><primary>network devices</primary></indexterm>
+ <indexterm>
+ <primary>network devices</primary>
+ </indexterm>
<para>Drivers for network devices do not use device nodes in order
to be accessed. Their selection is based on other decisions
made inside the kernel and instead of calling open(), use of a
@@ -380,7 +416,5 @@ Closing device "echo".</screen>
<para>For more information see ifnet(9), the source of the
loopback device, and Bill Paul's network drivers.</para>
-
</sect1>
-
</chapter>
More information about the svn-doc-all
mailing list