Clarity, grammar, title corrections.
Approved by: gjb (mentor)
This commit is contained in:
parent
e17c7b544f
commit
714ce759e2
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=38154
1 changed files with 19 additions and 19 deletions
|
@ -84,18 +84,18 @@
|
|||
|
||||
<indexterm><primary>block devices</primary></indexterm>
|
||||
|
||||
<para><emphasis>Block devices</emphasis> performed in way that
|
||||
<para><emphasis>Block devices</emphasis> performed in a way that
|
||||
used fixed size blocks [of data]. This type of driver
|
||||
depended on the so called <emphasis>buffer cache</emphasis>,
|
||||
which had the purpose to cache accessed blocks of data in a
|
||||
dedicated part of the memory. Often this buffer cache was
|
||||
depended on the so-called <emphasis>buffer cache</emphasis>,
|
||||
which had cached accessed blocks of data in a
|
||||
dedicated part of memory. Often this buffer cache was
|
||||
based on write-behind, which meant that when data was modified
|
||||
in memory it got synced to disk whenever the system did its
|
||||
periodical disk flushing, thus optimizing writes.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Character devices</title>
|
||||
<title>Character Devices</title>
|
||||
|
||||
<indexterm><primary>character devices</primary></indexterm>
|
||||
|
||||
|
@ -119,7 +119,7 @@
|
|||
introduction in FreeBSD 3.0 when the Alpha port was imported
|
||||
into the source tree. It was not until 4.0 before it became the
|
||||
default system to use for device drivers. Its goals are to
|
||||
provide a more object oriented means of interconnecting the
|
||||
provide a more object-oriented means of interconnecting the
|
||||
various busses and devices which a host system provides to the
|
||||
<emphasis>Operating System</emphasis>.</para>
|
||||
|
||||
|
@ -132,7 +132,7 @@
|
|||
</itemizedlist>
|
||||
|
||||
<para>One of the most prominent changes is the migration from the
|
||||
flat and ad-hoc system to a device tree lay-out.</para>
|
||||
flat and ad-hoc system to a device tree layout.</para>
|
||||
|
||||
<para>At the top level resides the
|
||||
<emphasis><quote>root</quote></emphasis> device which is the
|
||||
|
@ -140,8 +140,8 @@
|
|||
there is typically a single child of <quote>root</quote> which
|
||||
has such things as <emphasis>host-to-PCI bridges</emphasis>,
|
||||
etc. attached to it. For x86, this <quote>root</quote> device
|
||||
is the <emphasis><quote>nexus</quote></emphasis> device and for
|
||||
Alpha, various different different models of Alpha have
|
||||
is the <emphasis><quote>nexus</quote></emphasis> device. For
|
||||
Alpha, various different models of Alpha have
|
||||
different top-level devices corresponding to the different
|
||||
hardware chipsets, including <emphasis>lca</emphasis>,
|
||||
<emphasis>apecs</emphasis>, <emphasis>cia</emphasis> and
|
||||
|
@ -152,12 +152,12 @@
|
|||
represented by a Newbus device. Any device in the system can
|
||||
have children; a device which has children is often called a
|
||||
<emphasis><quote>bus</quote></emphasis>. Examples of common
|
||||
busses in the system are ISA and PCI which manage lists of
|
||||
busses in the system are ISA and PCI, which manage lists of
|
||||
devices attached to ISA and PCI busses respectively.</para>
|
||||
|
||||
<para>Often, a connection between different kinds of bus is
|
||||
represented by a <emphasis><quote>bridge</quote></emphasis>
|
||||
device which normally has one child for the attached bus. An
|
||||
device, which normally has one child for the attached bus. An
|
||||
example of this is a <emphasis>PCI-to-PCI bridge</emphasis>
|
||||
which is represented by a device
|
||||
<emphasis><devicename>pcibN</devicename></emphasis> on the
|
||||
|
@ -233,7 +233,7 @@
|
|||
<para>The interfaces are described by an interface definition
|
||||
language similar to the language used to define vnode operations
|
||||
for file systems. The interface would be stored in a methods
|
||||
file (which would normally named
|
||||
file (which would normally be named
|
||||
<filename>foo_if.m</filename>).</para>
|
||||
|
||||
<example>
|
||||
|
@ -326,7 +326,7 @@
|
|||
of this document.</para>
|
||||
|
||||
<sect2>
|
||||
<title>Important locations in the source hierarchy</title>
|
||||
<title>Important Locations in the Source Hierarchy</title>
|
||||
|
||||
<para><filename>src/sys/[arch]/[arch]</filename> - Kernel code
|
||||
for a specific machine architecture resides in this directory.
|
||||
|
@ -347,12 +347,12 @@
|
|||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Important structures and type definitions</title>
|
||||
<title>Important Structures and Type Definitions</title>
|
||||
|
||||
<para><literal>devclass_t</literal> - This is a type definition
|
||||
of a pointer to a <literal>struct devclass</literal>.</para>
|
||||
|
||||
<para><literal>device_method_t</literal> - This is same as
|
||||
<para><literal>device_method_t</literal> - This is the same as
|
||||
<literal>kobj_method_t</literal> (see
|
||||
<filename>src/sys/kobj.h</filename>).</para>
|
||||
|
||||
|
@ -364,13 +364,13 @@
|
|||
implementation details.</para>
|
||||
|
||||
<para><literal>driver_t</literal> - This is a type definition
|
||||
which, references <literal>struct driver</literal>. The
|
||||
which references <literal>struct driver</literal>. The
|
||||
<literal>driver</literal> struct is a class of the
|
||||
<literal>device</literal> kernel object; it also holds data
|
||||
private to for the driver.</para>
|
||||
private to the driver.</para>
|
||||
|
||||
<figure>
|
||||
<title><emphasis>driver_t</emphasis> implementation</title>
|
||||
<title><emphasis>driver_t</emphasis> Implementation</title>
|
||||
|
||||
<programlisting> struct driver {
|
||||
KOBJ_CLASS_FIELDS;
|
||||
|
@ -385,7 +385,7 @@
|
|||
|
||||
<figure>
|
||||
<title>Device
|
||||
states<emphasis>device_state_t</emphasis></title>
|
||||
States <emphasis>device_state_t</emphasis></title>
|
||||
|
||||
<programlisting> /*
|
||||
* src/sys/sys/bus.h
|
||||
|
|
Loading…
Reference in a new issue