"" -> <quote></quote>
Also, fix a typo. PR: docs/35089 Submitted by: Ceri <setantae@submonkey.net>
This commit is contained in:
parent
fdfdce0cb7
commit
6d7cfec6d8
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=12254
2 changed files with 56 additions and 56 deletions
en_US.ISO8859-1/books
|
@ -36,7 +36,7 @@
|
||||||
<para>and from the CAM code itself (by Justing T. Gibbs, see
|
<para>and from the CAM code itself (by Justing T. Gibbs, see
|
||||||
<filename>/sys/cam/*</filename>). When some solution looked the
|
<filename>/sys/cam/*</filename>). When some solution looked the
|
||||||
most logical and was essentially verbatim extracted from the code
|
most logical and was essentially verbatim extracted from the code
|
||||||
by Justin Gibbs, I marked it as "recommended".</para>
|
by Justin Gibbs, I marked it as <quote>recommended</quote>.</para>
|
||||||
|
|
||||||
<para>The document is illustrated with examples in
|
<para>The document is illustrated with examples in
|
||||||
pseudo-code. Although sometimes the examples have many details
|
pseudo-code. Although sometimes the examples have many details
|
||||||
|
@ -174,7 +174,7 @@
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
|
|
||||||
<listitem><para>driver_name - the name of the actual driver,
|
<listitem><para>driver_name - the name of the actual driver,
|
||||||
such as "ncr" or "wds"</para></listitem>
|
such as <quote>ncr</quote> or <quote>wds</quote>.</para></listitem>
|
||||||
|
|
||||||
<listitem><para><structName>softc</structName> - pointer to the
|
<listitem><para><structName>softc</structName> - pointer to the
|
||||||
driver's internal descriptor for this SCSI card. This
|
driver's internal descriptor for this SCSI card. This
|
||||||
|
@ -182,7 +182,7 @@
|
||||||
data.</para></listitem>
|
data.</para></listitem>
|
||||||
|
|
||||||
<listitem><para>unit - the controller unit number, for example
|
<listitem><para>unit - the controller unit number, for example
|
||||||
for controller "wds0" this number will be
|
for controller <quote>wds0</quote> this number will be
|
||||||
0</para></listitem>
|
0</para></listitem>
|
||||||
|
|
||||||
<listitem><para>max_dev_transactions - maximal number of
|
<listitem><para>max_dev_transactions - maximal number of
|
||||||
|
@ -237,7 +237,7 @@
|
||||||
|
|
||||||
<para>A typical example of such an event is a device reset. Each
|
<para>A typical example of such an event is a device reset. Each
|
||||||
transaction and event identifies the devices to which it applies
|
transaction and event identifies the devices to which it applies
|
||||||
by the means of "path". The target-specific events normally
|
by the means of <quote>path</quote>. The target-specific events normally
|
||||||
occur during a transaction with this device. So the path from
|
occur during a transaction with this device. So the path from
|
||||||
that transaction may be re-used to report this event (this is
|
that transaction may be re-used to report this event (this is
|
||||||
safe because the event path is copied in the event reporting
|
safe because the event path is copied in the event reporting
|
||||||
|
@ -273,10 +273,10 @@
|
||||||
(<function>cam_sim_path(sim)</function>)</para></listitem>
|
(<function>cam_sim_path(sim)</function>)</para></listitem>
|
||||||
|
|
||||||
<listitem><para>SCSI target number of the device (CAM_TARGET_WILDCARD
|
<listitem><para>SCSI target number of the device (CAM_TARGET_WILDCARD
|
||||||
means "all devices")</para></listitem>
|
means <quote>all devices</quote>)</para></listitem>
|
||||||
|
|
||||||
<listitem><para>SCSI LUN number of the subdevice (CAM_LUN_WILDCARD means
|
<listitem><para>SCSI LUN number of the subdevice (CAM_LUN_WILDCARD means
|
||||||
"all LUNs")</para></listitem>
|
<quote>all LUNs</quote>)</para></listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
<para>If the driver can not allocate this path it will not be able to
|
<para>If the driver can not allocate this path it will not be able to
|
||||||
|
@ -324,13 +324,13 @@
|
||||||
|
|
||||||
<para>Do some action on request of the CAM subsystem. Sim
|
<para>Do some action on request of the CAM subsystem. Sim
|
||||||
describes the SIM for the request, CCB is the request
|
describes the SIM for the request, CCB is the request
|
||||||
itself. CCB stands for "CAM Control Block". It is a union of
|
itself. CCB stands for <quote>CAM Control Block</quote>. It is a union of
|
||||||
many specific instances, each describing arguments for some type
|
many specific instances, each describing arguments for some type
|
||||||
of transactions. All of these instances share the CCB header
|
of transactions. All of these instances share the CCB header
|
||||||
where the common part of arguments is stored.</para>
|
where the common part of arguments is stored.</para>
|
||||||
|
|
||||||
<para>CAM supports the SCSI controllers working in both initiator
|
<para>CAM supports the SCSI controllers working in both initiator
|
||||||
("normal") mode and target (simulating a SCSI device) mode. Here
|
(<quote>normal</quote>) mode and target (simulating a SCSI device) mode. Here
|
||||||
we only consider the part relevant to the initiator mode.</para>
|
we only consider the part relevant to the initiator mode.</para>
|
||||||
|
|
||||||
<para>There are a few function and macros (in other words,
|
<para>There are a few function and macros (in other words,
|
||||||
|
@ -398,7 +398,7 @@
|
||||||
are a surprising number of status values defined in
|
are a surprising number of status values defined in
|
||||||
<filename>/sys/cam/cam.h</filename> which should be able to
|
<filename>/sys/cam/cam.h</filename> which should be able to
|
||||||
represent the status of a request in great detail. More
|
represent the status of a request in great detail. More
|
||||||
interesting yet, the status is in fact a "bitwise or" of an
|
interesting yet, the status is in fact a <quote>bitwise or</quote> of an
|
||||||
enumerated status value (the lower 6 bits) and possible
|
enumerated status value (the lower 6 bits) and possible
|
||||||
additional flag-like bits (the upper bits). The enumerated
|
additional flag-like bits (the upper bits). The enumerated
|
||||||
values will be discussed later in more detail. The summary of
|
values will be discussed later in more detail. The summary of
|
||||||
|
@ -447,7 +447,7 @@
|
||||||
allowed to sleep, so all the synchronization for resource access
|
allowed to sleep, so all the synchronization for resource access
|
||||||
must be done using SIM or device queue freezing. Besides the
|
must be done using SIM or device queue freezing. Besides the
|
||||||
aforementioned flags the CAM subsystem provides functions
|
aforementioned flags the CAM subsystem provides functions
|
||||||
<function>xpt_selease_simq()</function> and
|
<function>xpt_release_simq()</function> and
|
||||||
<function>xpt_release_devq()</function> to unfreeze the queues
|
<function>xpt_release_devq()</function> to unfreeze the queues
|
||||||
directly, without passing a CCB to CAM.</para>
|
directly, without passing a CCB to CAM.</para>
|
||||||
|
|
||||||
|
@ -497,7 +497,7 @@
|
||||||
<listitem><para><emphasis>XPT_SCSI_IO</emphasis> - execute an
|
<listitem><para><emphasis>XPT_SCSI_IO</emphasis> - execute an
|
||||||
I/O transaction</para>
|
I/O transaction</para>
|
||||||
|
|
||||||
<para>The instance "struct ccb_scsiio csio" of the union ccb is
|
<para>The instance <quote>struct ccb_scsiio csio</quote> of the union ccb is
|
||||||
used to transfer the arguments. They are:</para>
|
used to transfer the arguments. They are:</para>
|
||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
|
@ -785,8 +785,8 @@
|
||||||
}</programlisting>
|
}</programlisting>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem><para><emphasis>XPT_RESET_DEV</emphasis> - send the SCSI "BUS
|
<listitem><para><emphasis>XPT_RESET_DEV</emphasis> - send the SCSI <quote>BUS
|
||||||
DEVICE RESET" message to a device</para>
|
DEVICE RESET</quote> message to a device</para>
|
||||||
|
|
||||||
<para>There is no data transferred in CCB except the header and
|
<para>There is no data transferred in CCB except the header and
|
||||||
the most interesting argument of it is target_id. Depending on
|
the most interesting argument of it is target_id. Depending on
|
||||||
|
@ -877,8 +877,8 @@
|
||||||
<listitem><para><emphasis>XPT_ABORT</emphasis> - abort the specified
|
<listitem><para><emphasis>XPT_ABORT</emphasis> - abort the specified
|
||||||
CCB</para>
|
CCB</para>
|
||||||
|
|
||||||
<para>The arguments are transferred in the instance "struct
|
<para>The arguments are transferred in the instance <quote>struct
|
||||||
ccb_abort cab" of the union ccb. The only argument field in it
|
ccb_abort cab</quote> of the union ccb. The only argument field in it
|
||||||
is:</para>
|
is:</para>
|
||||||
|
|
||||||
<para><emphasis>abort_ccb</emphasis> - pointer to the CCB to be
|
<para><emphasis>abort_ccb</emphasis> - pointer to the CCB to be
|
||||||
|
@ -1037,7 +1037,7 @@
|
||||||
<listitem><para><emphasis>XPT_SET_TRAN_SETTINGS</emphasis> - explicitly
|
<listitem><para><emphasis>XPT_SET_TRAN_SETTINGS</emphasis> - explicitly
|
||||||
set values of SCSI transfer settings</para>
|
set values of SCSI transfer settings</para>
|
||||||
|
|
||||||
<para>The arguments are transferred in the instance "struct ccb_trans_setting cts"
|
<para>The arguments are transferred in the instance <quote>struct ccb_trans_setting cts</quote>
|
||||||
of the union ccb:</para>
|
of the union ccb:</para>
|
||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
|
@ -1096,8 +1096,8 @@ of the union ccb:</para>
|
||||||
|
|
||||||
<para>The current settings are, as the name says,
|
<para>The current settings are, as the name says,
|
||||||
current. Changing them means that the parameters must be
|
current. Changing them means that the parameters must be
|
||||||
re-negotiated on the next transfer. Again, these "new current
|
re-negotiated on the next transfer. Again, these <quote>new current
|
||||||
settings" are not supposed to be forced on the device, just they
|
settings</quote> are not supposed to be forced on the device, just they
|
||||||
are used as the initial step of negotiations. Also they must be
|
are used as the initial step of negotiations. Also they must be
|
||||||
limited by actual capabilities of the SCSI controller: for
|
limited by actual capabilities of the SCSI controller: for
|
||||||
example, if the SCSI controller has 8-bit bus and the request
|
example, if the SCSI controller has 8-bit bus and the request
|
||||||
|
@ -1121,7 +1121,7 @@ of the union ccb:</para>
|
||||||
in effect</para></listitem>
|
in effect</para></listitem>
|
||||||
|
|
||||||
<listitem><para><emphasis>goal</emphasis> - those requested by
|
<listitem><para><emphasis>goal</emphasis> - those requested by
|
||||||
setting of the "current" parameters</para></listitem>
|
setting of the <quote>current</quote> parameters</para></listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
<para>The code looks like:</para>
|
<para>The code looks like:</para>
|
||||||
|
@ -1207,8 +1207,8 @@ of the union ccb:</para>
|
||||||
SCSI transfer settings</para>
|
SCSI transfer settings</para>
|
||||||
|
|
||||||
<para>This operations is the reverse of
|
<para>This operations is the reverse of
|
||||||
XPT_SET_TRAN_SETTINGS. Fill up the CCB instance "struct
|
XPT_SET_TRAN_SETTINGS. Fill up the CCB instance <quote>struct
|
||||||
ccb_trans_setting cts" with data as requested by the flags
|
ccb_trans_setting cts</quote> with data as requested by the flags
|
||||||
CCB_TRANS_CURRENT_SETTINGS or CCB_TRANS_USER_SETTINGS (if both
|
CCB_TRANS_CURRENT_SETTINGS or CCB_TRANS_USER_SETTINGS (if both
|
||||||
are set then the existing drivers return the current
|
are set then the existing drivers return the current
|
||||||
settings). Set all the bits in the valid field.</para></listitem>
|
settings). Set all the bits in the valid field.</para></listitem>
|
||||||
|
@ -1216,8 +1216,8 @@ of the union ccb:</para>
|
||||||
<listitem><para><emphasis>XPT_CALC_GEOMETRY</emphasis> - calculate logical
|
<listitem><para><emphasis>XPT_CALC_GEOMETRY</emphasis> - calculate logical
|
||||||
(BIOS) geometry of the disk</para>
|
(BIOS) geometry of the disk</para>
|
||||||
|
|
||||||
<para>The arguments are transferred in the instance "struct
|
<para>The arguments are transferred in the instance <quote>struct
|
||||||
ccb_calc_geometry ccg" of the union ccb:</para>
|
ccb_calc_geometry ccg</quote> of the union ccb:</para>
|
||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
|
|
||||||
|
@ -1269,7 +1269,7 @@ of the union ccb:</para>
|
||||||
|
|
||||||
<para>This gives the general idea, the exact calculation depends
|
<para>This gives the general idea, the exact calculation depends
|
||||||
on the quirks of the particular BIOS. If BIOS provides no way
|
on the quirks of the particular BIOS. If BIOS provides no way
|
||||||
set the "extended translation" flag in EEPROM this flag should
|
set the <quote>extended translation</quote> flag in EEPROM this flag should
|
||||||
normally be assumed equal to 1. Other popular geometries
|
normally be assumed equal to 1. Other popular geometries
|
||||||
are:</para>
|
are:</para>
|
||||||
|
|
||||||
|
@ -1286,8 +1286,8 @@ of the union ccb:</para>
|
||||||
words get the SIM driver and SCSI controller (also known as HBA
|
words get the SIM driver and SCSI controller (also known as HBA
|
||||||
- Host Bus Adapter) properties</para>
|
- Host Bus Adapter) properties</para>
|
||||||
|
|
||||||
<para>The properties are returned in the instance "struct
|
<para>The properties are returned in the instance <quote>struct
|
||||||
ccb_pathinq cpi" of the union ccb:</para>
|
ccb_pathinq cpi</quote> of the union ccb:</para>
|
||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
|
|
||||||
|
@ -1534,7 +1534,7 @@ ahc_async(void *callback_arg, u_int32_t code, struct cam_path *path, void *arg)<
|
||||||
|
|
||||||
<para>The conditions handled by the interrupt routine and the
|
<para>The conditions handled by the interrupt routine and the
|
||||||
details depend very much on the hardware. We consider the set of
|
details depend very much on the hardware. We consider the set of
|
||||||
"typical" conditions.</para>
|
<quote>typical</quote> conditions.</para>
|
||||||
|
|
||||||
<para>First, we check if a SCSI reset was encountered on the bus
|
<para>First, we check if a SCSI reset was encountered on the bus
|
||||||
(probably caused by another SCSI controller on the same SCSI
|
(probably caused by another SCSI controller on the same SCSI
|
||||||
|
@ -1899,7 +1899,7 @@ ahc_async(void *callback_arg, u_int32_t code, struct cam_path *path, void *arg)<
|
||||||
SCSI bus reset</para></listitem>
|
SCSI bus reset</para></listitem>
|
||||||
|
|
||||||
<listitem><para><emphasis>CAM_REQ_CMP_ERR</emphasis> -
|
<listitem><para><emphasis>CAM_REQ_CMP_ERR</emphasis> -
|
||||||
"impossible" SCSI phase occurred or something else as weird or
|
<quote>impossible</quote> SCSI phase occurred or something else as weird or
|
||||||
just a generic error if further detail is not
|
just a generic error if further detail is not
|
||||||
available</para></listitem>
|
available</para></listitem>
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
<para>and from the CAM code itself (by Justing T. Gibbs, see
|
<para>and from the CAM code itself (by Justing T. Gibbs, see
|
||||||
<filename>/sys/cam/*</filename>). When some solution looked the
|
<filename>/sys/cam/*</filename>). When some solution looked the
|
||||||
most logical and was essentially verbatim extracted from the code
|
most logical and was essentially verbatim extracted from the code
|
||||||
by Justin Gibbs, I marked it as "recommended".</para>
|
by Justin Gibbs, I marked it as <quote>recommended</quote>.</para>
|
||||||
|
|
||||||
<para>The document is illustrated with examples in
|
<para>The document is illustrated with examples in
|
||||||
pseudo-code. Although sometimes the examples have many details
|
pseudo-code. Although sometimes the examples have many details
|
||||||
|
@ -174,7 +174,7 @@
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
|
|
||||||
<listitem><para>driver_name - the name of the actual driver,
|
<listitem><para>driver_name - the name of the actual driver,
|
||||||
such as "ncr" or "wds"</para></listitem>
|
such as <quote>ncr</quote> or <quote>wds</quote>.</para></listitem>
|
||||||
|
|
||||||
<listitem><para><structName>softc</structName> - pointer to the
|
<listitem><para><structName>softc</structName> - pointer to the
|
||||||
driver's internal descriptor for this SCSI card. This
|
driver's internal descriptor for this SCSI card. This
|
||||||
|
@ -182,7 +182,7 @@
|
||||||
data.</para></listitem>
|
data.</para></listitem>
|
||||||
|
|
||||||
<listitem><para>unit - the controller unit number, for example
|
<listitem><para>unit - the controller unit number, for example
|
||||||
for controller "wds0" this number will be
|
for controller <quote>wds0</quote> this number will be
|
||||||
0</para></listitem>
|
0</para></listitem>
|
||||||
|
|
||||||
<listitem><para>max_dev_transactions - maximal number of
|
<listitem><para>max_dev_transactions - maximal number of
|
||||||
|
@ -237,7 +237,7 @@
|
||||||
|
|
||||||
<para>A typical example of such an event is a device reset. Each
|
<para>A typical example of such an event is a device reset. Each
|
||||||
transaction and event identifies the devices to which it applies
|
transaction and event identifies the devices to which it applies
|
||||||
by the means of "path". The target-specific events normally
|
by the means of <quote>path</quote>. The target-specific events normally
|
||||||
occur during a transaction with this device. So the path from
|
occur during a transaction with this device. So the path from
|
||||||
that transaction may be re-used to report this event (this is
|
that transaction may be re-used to report this event (this is
|
||||||
safe because the event path is copied in the event reporting
|
safe because the event path is copied in the event reporting
|
||||||
|
@ -273,10 +273,10 @@
|
||||||
(<function>cam_sim_path(sim)</function>)</para></listitem>
|
(<function>cam_sim_path(sim)</function>)</para></listitem>
|
||||||
|
|
||||||
<listitem><para>SCSI target number of the device (CAM_TARGET_WILDCARD
|
<listitem><para>SCSI target number of the device (CAM_TARGET_WILDCARD
|
||||||
means "all devices")</para></listitem>
|
means <quote>all devices</quote>)</para></listitem>
|
||||||
|
|
||||||
<listitem><para>SCSI LUN number of the subdevice (CAM_LUN_WILDCARD means
|
<listitem><para>SCSI LUN number of the subdevice (CAM_LUN_WILDCARD means
|
||||||
"all LUNs")</para></listitem>
|
<quote>all LUNs</quote>)</para></listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
<para>If the driver can not allocate this path it will not be able to
|
<para>If the driver can not allocate this path it will not be able to
|
||||||
|
@ -324,13 +324,13 @@
|
||||||
|
|
||||||
<para>Do some action on request of the CAM subsystem. Sim
|
<para>Do some action on request of the CAM subsystem. Sim
|
||||||
describes the SIM for the request, CCB is the request
|
describes the SIM for the request, CCB is the request
|
||||||
itself. CCB stands for "CAM Control Block". It is a union of
|
itself. CCB stands for <quote>CAM Control Block</quote>. It is a union of
|
||||||
many specific instances, each describing arguments for some type
|
many specific instances, each describing arguments for some type
|
||||||
of transactions. All of these instances share the CCB header
|
of transactions. All of these instances share the CCB header
|
||||||
where the common part of arguments is stored.</para>
|
where the common part of arguments is stored.</para>
|
||||||
|
|
||||||
<para>CAM supports the SCSI controllers working in both initiator
|
<para>CAM supports the SCSI controllers working in both initiator
|
||||||
("normal") mode and target (simulating a SCSI device) mode. Here
|
(<quote>normal</quote>) mode and target (simulating a SCSI device) mode. Here
|
||||||
we only consider the part relevant to the initiator mode.</para>
|
we only consider the part relevant to the initiator mode.</para>
|
||||||
|
|
||||||
<para>There are a few function and macros (in other words,
|
<para>There are a few function and macros (in other words,
|
||||||
|
@ -398,7 +398,7 @@
|
||||||
are a surprising number of status values defined in
|
are a surprising number of status values defined in
|
||||||
<filename>/sys/cam/cam.h</filename> which should be able to
|
<filename>/sys/cam/cam.h</filename> which should be able to
|
||||||
represent the status of a request in great detail. More
|
represent the status of a request in great detail. More
|
||||||
interesting yet, the status is in fact a "bitwise or" of an
|
interesting yet, the status is in fact a <quote>bitwise or</quote> of an
|
||||||
enumerated status value (the lower 6 bits) and possible
|
enumerated status value (the lower 6 bits) and possible
|
||||||
additional flag-like bits (the upper bits). The enumerated
|
additional flag-like bits (the upper bits). The enumerated
|
||||||
values will be discussed later in more detail. The summary of
|
values will be discussed later in more detail. The summary of
|
||||||
|
@ -447,7 +447,7 @@
|
||||||
allowed to sleep, so all the synchronization for resource access
|
allowed to sleep, so all the synchronization for resource access
|
||||||
must be done using SIM or device queue freezing. Besides the
|
must be done using SIM or device queue freezing. Besides the
|
||||||
aforementioned flags the CAM subsystem provides functions
|
aforementioned flags the CAM subsystem provides functions
|
||||||
<function>xpt_selease_simq()</function> and
|
<function>xpt_release_simq()</function> and
|
||||||
<function>xpt_release_devq()</function> to unfreeze the queues
|
<function>xpt_release_devq()</function> to unfreeze the queues
|
||||||
directly, without passing a CCB to CAM.</para>
|
directly, without passing a CCB to CAM.</para>
|
||||||
|
|
||||||
|
@ -497,7 +497,7 @@
|
||||||
<listitem><para><emphasis>XPT_SCSI_IO</emphasis> - execute an
|
<listitem><para><emphasis>XPT_SCSI_IO</emphasis> - execute an
|
||||||
I/O transaction</para>
|
I/O transaction</para>
|
||||||
|
|
||||||
<para>The instance "struct ccb_scsiio csio" of the union ccb is
|
<para>The instance <quote>struct ccb_scsiio csio</quote> of the union ccb is
|
||||||
used to transfer the arguments. They are:</para>
|
used to transfer the arguments. They are:</para>
|
||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
|
@ -785,8 +785,8 @@
|
||||||
}</programlisting>
|
}</programlisting>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem><para><emphasis>XPT_RESET_DEV</emphasis> - send the SCSI "BUS
|
<listitem><para><emphasis>XPT_RESET_DEV</emphasis> - send the SCSI <quote>BUS
|
||||||
DEVICE RESET" message to a device</para>
|
DEVICE RESET</quote> message to a device</para>
|
||||||
|
|
||||||
<para>There is no data transferred in CCB except the header and
|
<para>There is no data transferred in CCB except the header and
|
||||||
the most interesting argument of it is target_id. Depending on
|
the most interesting argument of it is target_id. Depending on
|
||||||
|
@ -877,8 +877,8 @@
|
||||||
<listitem><para><emphasis>XPT_ABORT</emphasis> - abort the specified
|
<listitem><para><emphasis>XPT_ABORT</emphasis> - abort the specified
|
||||||
CCB</para>
|
CCB</para>
|
||||||
|
|
||||||
<para>The arguments are transferred in the instance "struct
|
<para>The arguments are transferred in the instance <quote>struct
|
||||||
ccb_abort cab" of the union ccb. The only argument field in it
|
ccb_abort cab</quote> of the union ccb. The only argument field in it
|
||||||
is:</para>
|
is:</para>
|
||||||
|
|
||||||
<para><emphasis>abort_ccb</emphasis> - pointer to the CCB to be
|
<para><emphasis>abort_ccb</emphasis> - pointer to the CCB to be
|
||||||
|
@ -1037,7 +1037,7 @@
|
||||||
<listitem><para><emphasis>XPT_SET_TRAN_SETTINGS</emphasis> - explicitly
|
<listitem><para><emphasis>XPT_SET_TRAN_SETTINGS</emphasis> - explicitly
|
||||||
set values of SCSI transfer settings</para>
|
set values of SCSI transfer settings</para>
|
||||||
|
|
||||||
<para>The arguments are transferred in the instance "struct ccb_trans_setting cts"
|
<para>The arguments are transferred in the instance <quote>struct ccb_trans_setting cts</quote>
|
||||||
of the union ccb:</para>
|
of the union ccb:</para>
|
||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
|
@ -1096,8 +1096,8 @@ of the union ccb:</para>
|
||||||
|
|
||||||
<para>The current settings are, as the name says,
|
<para>The current settings are, as the name says,
|
||||||
current. Changing them means that the parameters must be
|
current. Changing them means that the parameters must be
|
||||||
re-negotiated on the next transfer. Again, these "new current
|
re-negotiated on the next transfer. Again, these <quote>new current
|
||||||
settings" are not supposed to be forced on the device, just they
|
settings</quote> are not supposed to be forced on the device, just they
|
||||||
are used as the initial step of negotiations. Also they must be
|
are used as the initial step of negotiations. Also they must be
|
||||||
limited by actual capabilities of the SCSI controller: for
|
limited by actual capabilities of the SCSI controller: for
|
||||||
example, if the SCSI controller has 8-bit bus and the request
|
example, if the SCSI controller has 8-bit bus and the request
|
||||||
|
@ -1121,7 +1121,7 @@ of the union ccb:</para>
|
||||||
in effect</para></listitem>
|
in effect</para></listitem>
|
||||||
|
|
||||||
<listitem><para><emphasis>goal</emphasis> - those requested by
|
<listitem><para><emphasis>goal</emphasis> - those requested by
|
||||||
setting of the "current" parameters</para></listitem>
|
setting of the <quote>current</quote> parameters</para></listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
<para>The code looks like:</para>
|
<para>The code looks like:</para>
|
||||||
|
@ -1207,8 +1207,8 @@ of the union ccb:</para>
|
||||||
SCSI transfer settings</para>
|
SCSI transfer settings</para>
|
||||||
|
|
||||||
<para>This operations is the reverse of
|
<para>This operations is the reverse of
|
||||||
XPT_SET_TRAN_SETTINGS. Fill up the CCB instance "struct
|
XPT_SET_TRAN_SETTINGS. Fill up the CCB instance <quote>struct
|
||||||
ccb_trans_setting cts" with data as requested by the flags
|
ccb_trans_setting cts</quote> with data as requested by the flags
|
||||||
CCB_TRANS_CURRENT_SETTINGS or CCB_TRANS_USER_SETTINGS (if both
|
CCB_TRANS_CURRENT_SETTINGS or CCB_TRANS_USER_SETTINGS (if both
|
||||||
are set then the existing drivers return the current
|
are set then the existing drivers return the current
|
||||||
settings). Set all the bits in the valid field.</para></listitem>
|
settings). Set all the bits in the valid field.</para></listitem>
|
||||||
|
@ -1216,8 +1216,8 @@ of the union ccb:</para>
|
||||||
<listitem><para><emphasis>XPT_CALC_GEOMETRY</emphasis> - calculate logical
|
<listitem><para><emphasis>XPT_CALC_GEOMETRY</emphasis> - calculate logical
|
||||||
(BIOS) geometry of the disk</para>
|
(BIOS) geometry of the disk</para>
|
||||||
|
|
||||||
<para>The arguments are transferred in the instance "struct
|
<para>The arguments are transferred in the instance <quote>struct
|
||||||
ccb_calc_geometry ccg" of the union ccb:</para>
|
ccb_calc_geometry ccg</quote> of the union ccb:</para>
|
||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
|
|
||||||
|
@ -1269,7 +1269,7 @@ of the union ccb:</para>
|
||||||
|
|
||||||
<para>This gives the general idea, the exact calculation depends
|
<para>This gives the general idea, the exact calculation depends
|
||||||
on the quirks of the particular BIOS. If BIOS provides no way
|
on the quirks of the particular BIOS. If BIOS provides no way
|
||||||
set the "extended translation" flag in EEPROM this flag should
|
set the <quote>extended translation</quote> flag in EEPROM this flag should
|
||||||
normally be assumed equal to 1. Other popular geometries
|
normally be assumed equal to 1. Other popular geometries
|
||||||
are:</para>
|
are:</para>
|
||||||
|
|
||||||
|
@ -1286,8 +1286,8 @@ of the union ccb:</para>
|
||||||
words get the SIM driver and SCSI controller (also known as HBA
|
words get the SIM driver and SCSI controller (also known as HBA
|
||||||
- Host Bus Adapter) properties</para>
|
- Host Bus Adapter) properties</para>
|
||||||
|
|
||||||
<para>The properties are returned in the instance "struct
|
<para>The properties are returned in the instance <quote>struct
|
||||||
ccb_pathinq cpi" of the union ccb:</para>
|
ccb_pathinq cpi</quote> of the union ccb:</para>
|
||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
|
|
||||||
|
@ -1534,7 +1534,7 @@ ahc_async(void *callback_arg, u_int32_t code, struct cam_path *path, void *arg)<
|
||||||
|
|
||||||
<para>The conditions handled by the interrupt routine and the
|
<para>The conditions handled by the interrupt routine and the
|
||||||
details depend very much on the hardware. We consider the set of
|
details depend very much on the hardware. We consider the set of
|
||||||
"typical" conditions.</para>
|
<quote>typical</quote> conditions.</para>
|
||||||
|
|
||||||
<para>First, we check if a SCSI reset was encountered on the bus
|
<para>First, we check if a SCSI reset was encountered on the bus
|
||||||
(probably caused by another SCSI controller on the same SCSI
|
(probably caused by another SCSI controller on the same SCSI
|
||||||
|
@ -1899,7 +1899,7 @@ ahc_async(void *callback_arg, u_int32_t code, struct cam_path *path, void *arg)<
|
||||||
SCSI bus reset</para></listitem>
|
SCSI bus reset</para></listitem>
|
||||||
|
|
||||||
<listitem><para><emphasis>CAM_REQ_CMP_ERR</emphasis> -
|
<listitem><para><emphasis>CAM_REQ_CMP_ERR</emphasis> -
|
||||||
"impossible" SCSI phase occurred or something else as weird or
|
<quote>impossible</quote> SCSI phase occurred or something else as weird or
|
||||||
just a generic error if further detail is not
|
just a generic error if further detail is not
|
||||||
available</para></listitem>
|
available</para></listitem>
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue