Module Name: src
Committed By: nat
Date: Mon Oct 28 15:04:26 UTC 2024
Modified Files:
src/share/man/man9: scsipi.9
Log Message:
Document scsipi_done_once(9).
Same as scsipi_done(9) but does not run more commands from the xfer queue. It
is up to the caller of scsipi_done once to check the queue once the transfer
is complete.
To generate a diff of this commit:
cvs rdiff -u -r1.31 -r1.32 src/share/man/man9/scsipi.9
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/share/man/man9/scsipi.9
diff -u src/share/man/man9/scsipi.9:1.31 src/share/man/man9/scsipi.9:1.32
--- src/share/man/man9/scsipi.9:1.31 Mon Jul 3 21:28:48 2017
+++ src/share/man/man9/scsipi.9 Mon Oct 28 15:04:26 2024
@@ -1,4 +1,4 @@
-.\" $NetBSD: scsipi.9,v 1.31 2017/07/03 21:28:48 wiz Exp $
+.\" $NetBSD: scsipi.9,v 1.32 2024/10/28 15:04:26 nat Exp $
.\"
.\"
.\" Copyright (c) 2001 Manuel Bouyer.
@@ -24,7 +24,7 @@
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.\"
-.Dd November 20, 2016
+.Dd October 28, 2024
.Dt SCSIPI 9
.Os
.Sh NAME
@@ -50,6 +50,8 @@
.Ft void
.Fn scsipi_done "struct scsipi_xfer *xs"
.Ft void
+.Fn scsipi_done_once "struct scsipi_xfer *xs"
+.Ft void
.Fn scsipi_printaddr "struct scsipi_periph *periph"
.Ft int
.Fn scsipi_target_detach "struct scsipi_channel *chan" "int target" "int lun" "int flags"
@@ -85,7 +87,9 @@ A request is sent to the HBA driver thro
callback.
The HBA driver signals completion (with or without errors) of the
request through
-.Fn scsipi_done .
+.Fn scsipi_done
+or
+.Fn scsipi_done_once .
.Nm
knows the resource's limits of the HBA (max number of concurrent requests per
adapter of channel, and per periph), and will make sure the HBA won't receive
@@ -274,7 +278,9 @@ status flags:
.Bl -tag -width XS_STS_PRIVATE -compact
.It Va XS_STS_DONE
xfer is done (set by
-.Fn scsipi_done )
+.Fn scsipi_done
+or
+.Fn scspi_done_once )
.It Va XS_STS_PRIVATE
mask of flags reserved for HBA's use (0xf0000000)
.El
@@ -287,6 +293,8 @@ The HBA should start the timeout at the
by the device.
If the timeout happens, the HBA shall terminate the command through
.Fn scsipi_done
+or
+.Fn scsipi_done_once
with a XS_TIMEOUT error
.It Va struct scsipi_generic *cmd
scsipi command to execute
@@ -339,6 +347,8 @@ is a pointer to the
.Va struct scsipi_xfer .
Once the xfer is complete the HBA driver shall call
.Fn scsipi_done
+or
+.Fn scsipi_done_once
with updated status and error information.
.It Dv ADAPTER_REQ_GROW_RESOURCES
ask the adapter to increase resources of the channel (grow
@@ -471,8 +481,12 @@ mid-layer for SCSI CHECK CONDITION handl
.El
.Pp
.It Fn scsipi_done "struct scsipi_xfer *xs"
+.It Fn scsipi_done_once "struct scsipi_xfer *xs"
shall be called by the HBA when the xfer is complete, or when it needs to
be requeued by the mid-layer.
+.Fn scsi_pi_done_once
+does not run more commands from the xfer queue, it is up
+to the caller to check the queue after the xfer is complete.
.Va error
in the scsipi_xfer shall be set to one of the following:
.Bl -tag -width xxxxxxxx -compact