.TH SG_WRITE_X "8" "October 2021" "sg3_utils\-1.47" SG3_UTILS
.SH NAME
sg_write_x \- SCSI WRITE normal/ATOMIC/SAME/SCATTERED/STREAM, ORWRITE commands
.SH SYNOPSIS
.B sg_write_x
[\fI\-\-16\fR] [\fI\-\-32\fR] [\fI\-\-app\-tag=AT\fR] [\fI\-\-atomic=AB\fR]
[\fI\-\-bmop=OP,PGP\fR] [\fI\-\-bs=BS\fR] [\fI\-\-combined=DOF\fR]
[\fI\-\-dld=DLD\fR] [\fI\-\-dpo\fR] [\fI\-\-dry\-run\fR] [\fI\-\-fua\fR]
[\fI\-\-generation=EOG,NOG\fR] [\fI\-\-grpnum=GN\fR] [\fI\-\-help\fR]
\fI\-\-in=IF\fR [\fI\-\-lba=LBA[,LBA...]\fR] [\fI\-\-normal\fR]
[\fI\-\-num=NUM[,NUM...]\fR] [\fI\-\-offset=OFF[,DLEN]\fR] [\fI\-\-or\fR]
[\fI\-\-quiet\fR] [\fI\-\-ref\-tag=RT\fR] [\fI\-\-same=NDOB\fR]
[\fI\-\-scat\-file=SF\fR] [\fI\-\-scat\-raw\fR] [\fI\-\-scattered=RD\fR]
[\fI\-\-stream=ID\fR] [\fI\-\-strict\fR] [\fI\-\-tag\-mask=TM\fR]
[\fI\-\-timeout=TO\fR] [\fI\-\-unmap=U_A\fR] [\fI\-\-verbose\fR]
[\fI\-\-version\fR] [\fI\-\-wrprotect=WPR\fR] \fIDEVICE\fR
.PP
Synopsis per supported command:
.PP
.B sg_write_x
\fI\-\-normal\fR \fI\-\-in=IF\fR [\fI\-\-16\fR] [\fI\-\-32\fR]
[\fI\-\-app\-tag=AT\fR] [\fI\-\-bs=BS\fR] [\fI\-\-dld=DLD\fR] [\fI\-\-dpo\fR]
[\fI\-\-fua\fR] [\fI\-\-grpnum=GN\fR] [\fI\-\-lba=LBA\fR] [\fI\-\-num=NUM\fR]
[\fI\-\-offset=OFF[,DLEN]\fR] [\fI\-\-ref\-tag=RT\fR] [\fI\-\-strict\fR]
[\fI\-\-tag\-mask=TM\fR] [\fI\-\-timeout=TO\fR] [\fI\-\-wrprotect=WPR\fR]
\fIDEVICE\fR
.PP
.B sg_write_x
\fI\-\-or\fR \fI\-\-in=IF\fR [\fI\-\-16\fR] [\fI\-\-32\fR]
[\fI\-\-bmop=OP,PGP\fR] [\fI\-\-bs=BS\fR] [\fI\-\-dpo\fR] [\fI\-\-fua\fR]
[\fI\-\-generation=EOG,NOG\fR] [\fI\-\-grpnum=GN\fR] [\fI\-\-lba=LBA\fR]
[\fI\-\-num=NUM\fR] [\fI\-\-offset=OFF[,DLEN]\fR] [\fI\-\-strict\fR]
[\fI\-\-timeout=TO\fR] [\fI\-\-wrprotect=OPR\fR] \fIDEVICE\fR
.PP
.B sg_write_x
\fI\-\-atomic=AB\fR \fI\-\-in=IF\fR [\fI\-\-16\fR] [\fI\-\-32\fR]
[\fI\-\-app-tag=AT\fR] [\fI\-\-bs=BS\fR] [\fI\-\-dpo\fR] [\fI\-\-fua\fR]
[\fI\-\-grpnum=GN\fR] [\fI\-\-lba=LBA\fR] [\fI\-\-num=NUM\fR]
[\fI\-\-offset=OFF[,DLEN]\fR] [\fI\-\-ref\-tag=RT\fR] [\fI\-\-strict\fR]
[\fI\-\-timeout=TO\fR] [\fI\-\-wrprotect=WPR\fR] \fIDEVICE\fR
.PP
.B sg_write_x
\fI\-\-same=NDOB\fR [\fI\-\-16\fR] [\fI\-\-32\fR] [\fI\-\-app-tag=AT\fR]
[\fI\-\-bs=BS\fR] [\fI\-\-dpo\fR] [\fI\-\-fua\fR] [\fI\-\-grpnum=GN\fR]
[\fI\-\-in=IF\fR] [\fI\-\-lba=LBA\fR] [\fI\-\-num=NUM\fR]
[\fI\-\-offset=OFF[,DLEN]\fR] [\fI\-\-ref\-tag=RT\fR] [\fI\-\-strict\fR]
[\fI\-\-timeout=TO\fR] [\fI\-\-unmap=U_A\fR]
[\fI\-\-wrprotect=WPR\fR] \fIDEVICE\fR
.PP
.B sg_write_x
\fI\-\-scattered=RD\fR \fI\-\-in=IF\fR [\fI\-\-16\fR] [\fI\-\-32\fR]
[\fI\-\-app-tag=AT\fR] [\fI\-\-bs=BS\fR] [\fI\-\-dld=DLD\fR] [\fI\-\-dpo\fR]
[\fI\-\-fua\fR] [\fI\-\-grpnum=GN\fR] [\fI\-\-lba=LBA[,LBA...]\fR]
[\fI\-\-num=NUM[,NUM...]\fR] [\fI\-\-offset=OFF[,DLEN]\fR]
[\fI\-\-ref\-tag=RT\fR] [\fI\-\-scat\-file=SF\fR] [\fI\-\-scat\-raw\fR]
[\fI\-\-strict\fR] [\fI\-\-tag\-mask=TM\fR] [\fI\-\-timeout=TO\fR]
[\fI\-\-wrprotect=WPR\fR] \fIDEVICE\fR
.PP
.B sg_write_x
\fI\-\-stream=ID\fR \fI\-\-in=IF\fR [\fI\-\-16\fR] [\fI\-\-32\fR]
[\fI\-\-app-tag=AT\fR] [\fI\-\-bs=BS\fR] [\fI\-\-dpo\fR] [\fI\-\-fua\fR]
[\fI\-\-grpnum=GN\fR] [\fI\-\-lba=LBA\fR] [\fI\-\-num=NUM\fR]
[\fI\-\-offset=OFF[,DLEN]\fR] [\fI\-\-ref\-tag=RT\fR] [\fI\-\-strict\fR]
[\fI\-\-tag\-mask=TM\fR] [\fI\-\-timeout=TO\fR] [\fI\-\-wrprotect=WPR\fR]
\fIDEVICE\fR
.SH DESCRIPTION
.\" Add any additional description here
This utility will send one of six SCSI commands, all associated with writing
data to the given \fIDEVICE\fR. They are a "normal" WRITE, ORWRITE, WRITE
ATOMIC, WRITE SAME, WRITE SCATTERED or WRITE STREAM. This utility supports
the 16 and 32 byte variants of all six commands. Hence some closely related
commands are not supported (e.g. WRITE(10)). All 32 byte variants, apart from
ORWRITE(32), require the \fIDEVICE\fR to be formatted with type 1, 2 or 3
Protection Information (PI), making all logical blocks 8 bytes (or a multiple
of 8 bytes) longer on the media.
.PP
The command line interface is a little crowded with over thirty options. Hence
the SYNOPSIS, after listing all the (long) options, lists those applicable
to each supported command. For each command synopsis, the option that selects
the SCSI command is shown first followed by any required options. If no
command option is given then a "normal" WRITE is assumed. Even though the
\fI\-\-scat\-file=SF\fR option can be given for every command, it is only
shown for WRITE SCATTERED where it is most useful. If the
\fI\-\-scat\-file=SF\fR option is given then neither the
\fI\-\-lba=LBA[,LBA...]\fR nor the \fI\-\-num=NUM[,NUM...]\fR options
should be given. Only the first item of the \fI\-\-lba=LBA[,LBA...]\fR and
the \fI\-\-num=NUM[,NUM...]\fR options (or first pair (or quintet) from the
\fI\-\-scat\-file=SF\fR option) is used for all but the WRITE SCATTERED
command. All commands can take \fI\-\-dry\-run\fR and \fI\-\-verbose\fR in
addition to those shown in the SYNOPSIS.
.PP
The logical block size in bytes can be given explicitly with the
\fI\-\-bs=BS\fR option, as long as \fIBS\fR is greater than zero. It
is typically a power of two, 512 or greater. If the \fI\-\-bs=BS\fR option
is not given or \fIBS\fR is zero then the SCSI READ CAPACITY command is
used to find the logical block size. First the READ CAPACITY(16) command is
tried and if successful the logical block size in the response is typically
used as the actual block size for this utility. The exception is when
PROT_EN is set in the response and the \fI\-\-wrprotect=WPR\fR option is
given and non\-zero; in which case 8 (bytes) is added to the logical block
size to yield the actual block size used by this utility. If READ
CAPACITY(16) fails then READ CAPACITY(10) is tried and if that works then
the logical block size in the response is used as the actual block size.
.PP
The number of bytes this utility will attempt to read from the file named by
\fIIF\fR is the product of the actual block size and the
number_of_blocks (\fINUM\fR or the sum of \fINUM\fR arguments). If less bytes
are read from the file \fIIF\fR and the \fI\-\-strict\fR option is given then
this utility exits with an exit status of SG_LIB_FILE_ERROR. If less bytes
are read from the file \fIIF\fR and the \fI\-\-strict\fR option is not
given then bytes of zero are substituted for the "missing" bytes and this
utility continues.
.PP
Attempts to write multi megabyte data with a single command are likely to fail
for one of several reasons. First the operating system might object to
allocating a buffer that large. Next the SCSI pass\-through usually limits
data blocks to a few megabytes or less. Finally the storage device might
have a limited amount of RAM to support a write operation such as atomic (as
it may need to roll back). The storage device can inform the application
client of its limitations via the block limits VPD page (0xb0), with the
maximum atomic transfer length field amongst others.
.PP
A degenerate LBA (Logical Block Address) range descriptor with no PI has
an LBA and NUM of zero. A degenerate LBA range descriptor with PI
additionally has its RT, AT and TM fields set to zero (note: that is not
the default values for RT, AT and TM). They are degenerate in the sense
that they are indistinguishable from a pad of zeros that follow the scatter
list in the data\-out buffer. SBC\-4 makes clear that a degenerate LBA
range descriptor is valid. This may become an issue if \fIRD\fR given in the
\fI\-\-scattered=RD\fR option has the value 0. In this case the logic may
need to scan the user provided data to calculate the number of LBA
range descriptors which is required by the WRITE SCATTERED cdb. In the
absence of other information the logic will take a degenerate LBA range
descriptor as a terminator of the scatter list.
.PP
The reference for these commands is SBC\-4 (T10/BSR INCITS 506\-2021)
and draft SBC\-5 INCITS 571 revision 1 dated 21 May 2021. All six SCSI
commands are described in those documents. WRITE ATOMIC was added in
SBC\-4 revision 3; WRITE STREAM was added in SBC\-4 revision 7; WRITE
SCATTERED was added in SBC\-4 revision 11 while the others are in the
previous SBC\-3 standard.
.SH OPTIONS
Arguments to long options are mandatory for short options as well.
The options are arranged in alphabetical order based on the long
option name.
.TP
\fB\-6\fR, \fB\-\-16\fR
send the 16 byte cdb variant of the selected SCSI command. If no command
is selected then the (normal) SCSI WRITE(16) command is sent. If neither
this option nor the \fI\-\-32\fR option is given then this option is
assumed.
.TP
\fB\-3\fR, \fB\-\-32\fR
send the 32 byte cdb variant of the selected SCSI command. If no command
is selected then the (normal) SCSI WRITE(32) command is sent. If neither
this option nor the \fI\-\-16\fR option is given then then the
\fI\-\-16\fR option is assumed. If both this option and the \fI\-\-16\fR
option are given then this option takes precedence. Note that apart
from ORWRITE(32) all other 32 byte cdb variants require a \fIDEVICE\fR
formatted with type 1, 2 or 3 protection information.
.TP
\fB\-a\fR, \fB\-\-app\-tag\fR=\fIAT\fR
where \fIAT\fR is the "expected logical block application tag" field found in
most of the 32 byte cdb variants (the exception is ORWRITE(32)). \fIAT\fR is
a 16 bit field which means the maximum value is 0xffff. The default value
is 0xffff .
.TP
\fB\-A\fR, \fB\-\-atomic\fR=\fIAB\fR
selects the WRITE ATOMIC command and \fIAB\fR is placed in the Atomic
Boundary field of its cdb. It is a 16 bit field so the maximum value
is 0xffff. If unsure what value to set, try 0 which will attempt to
write the whole data\-out buffer in a single atomic operation.
.TP
\fB\-B\fR, \fB\-\-bmop\fR=\fIOP,PGP\fR
where \fIOP\fR and \fIPGP\fR are the values to be placed in ORWRITE(32)'s
BMOP and 'Previous Generation Processing' fields respectively. BMOP is
a 3 bit field (ranges from 0 to 7) and PGP is a 4 bit field (ranges from
0 to 15). Both fields default to 0.
.TP
\fB\-b\fR, \fB\-\-bs\fR=\fIBS\fR
where \fIBS\fR is the logical block size or the actual block size which
will be slightly bigger. The default value is zero. If this option
is not given or is given with a \fIBS\fR of zero then the SCSI READ
CAPACITY(16) command is sent to \fIDEVICE\fR. If that fails then the READ
CAPACITY(10) command is sent. The logical and actual block size will be
derived from the response of the READ CAPACITY command.
.br
This section assumes \fIBS\fR is greater than zero. If \fIBS\fR is less than
512 (bytes) or not a multiple of 8, a warning is issued and the utility
continues unless the \fI\-\-strict\fR option is also given. If \fIBS\fR
is a power of two (e.g. 512) then the logical and actual block size is
set to \fIBS\fR (e.g. 512). If \fIBS\fR is not a power of two (e.g. 520)
then the logical block size is set to the closest power of two less than
\fIBS\fR (e.g. 512) and the actual block size is set to \fIBS\fR (e.g.
520).
.br
If the logical and actual block size are different then a later check
will reduce the actual block size back to the logical block size unless
\fI\-\-wrprotect=WPR\fR is greater than zero.
.TP
\fB\-c\fR, \fB\-\-combined\fR=\fIDOF\fR
This option only applies to WRITE SCATTERED and assumes the whole data\-out
buffer can be read from \fIIF\fR given by the \fI\-\-in=IF\fR option. The
whole data\-out buffer is the parameter list header, followed by zero or more
LBA range descriptors, optionally followed by some pad bytes and then the
data to be written to the media. If the \fI\-\-lba=LBA[,LBA...]\fR,
\fI\-\-num=NUM[,NUM...]\fR or \fI\-\-scat\-file=SF\fR options are also given
then an error is generated. The \fIDOF\fR argument should be the value
suitable for the 'Logical Block Data Offset' field in the WRITE SCATTERED
cdb. This is the offset in the data\-out buffer where the data to write
to the media commences. The unit of that field is the actual block size
which is the logical block size plus a multiple of 8, if protection
information (PI) is being sent. When \fIWPR\fR (from \fI\-\-wrprotect=WPR\fR)
is greater than zero then PI is expected. SBC\-4 revision 15 does not state
it but it would appear that a \fIDOF\fR value of 0 is invalid. It is
suggested that this option be used with the \fI\-\-strict\fR option while
experimenting as random or incorrect data fed in via the \fI\-\-in=IF\fR
option could write a lot of "interesting" data all over the \fIDEVICE\fR.
If \fIDOF\fR is given as 0 the utility will scan the data in \fIIF\fR until
\fIRD\fR LBA range descriptors are found; or if \fIRD\fR is also 0 until a
degenerate LBA range descriptor is found.
.TP
\fB\-D\fR, \fB\-\-dld\fR=\fIDLD\fR
where \fIDLD\fR is the duration limits descriptor spread across 3 bits in
the SCSI WRITE(16) and the WRITE SCATTERED(16) cdbs. \fIDLD\fR is between 0
to 7 inclusive with a default of zero. The DLD0 field in WRITE(16) and WRITE
SCATTERED(16) is set if (0x1 & \fIDLD\fR) is non\-zero. The DLD1 field in
both cdbs is set if (0x2 & \fIDLD\fR) is non\-zero. The DLD2 field in both
cdbs is set if (0x4 & \fIDLD\fR) is non\-zero.
.TP
\fB\-d\fR, \fB\-\-dpo\fR
if this option is given then the DPO (disable page out) bit field in the
cdb is set. The default is to clear this bit field. Applies to all
commands supported by thus utility except WRITE SAME.
.TP
\fB\-x\fR, \fB\-\-dry\-run\fR
this option exits (with a status of 0) just before it would otherwise send
the selected SCSI write command. It may still send a SCSI READ CAPACITY
command (16 byte variant and perhaps 10 byte variant as well) so the
\fIDEVICE\fR is still required. It reads the data in and processes it if the
\fI\-\-in=IF\fR and/or the \fI\-\-scat\-file=SF\fR options are given. All
command line processing and sanity checks (e.g. if the \fI\-\-strict\fR
option is given) will be performed and if there is an error then there will
be a non zero exit status value.
.br
If this option is given twice (e.g. \-xx) then instead of performing the
selected write SCSI command, the data\-out buffer is written to a file
called sg_write_x.bin . If it doesn't exist then that file is created in
the current directory and is truncated if it previously did exist with
longer contents. The data\-out buffer is written in binary with some
information about it written to stdout. For writes other than scattered
the filename and its length in bytes is output to stdout. For write
scattered additionally its number of LBA range descriptors and its
logical block data offset written to stdout.
.TP
\fB\-f\fR, \fB\-\-fua\fR
if this option is given then the FUA (force unit access) bit field in the
cdb is set. The default is to clear this bit field. Applies to all
commands supported by thus utility except WRITE SAME.
.TP
\fB\-G\fR, \fB\-\-generation\fR=\fIEOG,NOG\fR
the arguments for this option are used by the ORWITE(32) command only.
\fIEOG\fR is placed in the "Expected ORWgeneration" field while \fINOG\fR
is placed in the "New ORWgeneration" field. Both are 32 bits long and
default to zero.
.TP
\fB\-g\fR, \fB\-\-grpnum\fR=\fIGN\fR
sets the 'Group number' field to \fIGN\fR. Defaults to a value of zero.
\fIGN\fR should be a value between 0 and 63.
.TP
\fB\-h\fR, \fB\-\-help\fR
output the usage message then exit. Use multiple times for more help.
Currently '\-h' to '\-hhhh' provide different output.
.TP
\fB\-i\fR, \fB\-\-in\fR=\fIIF\fR
read data (in binary) from a file named \fIIF\fR in a single OS system
call (in Unix: read(2)). That data is placed in a continuous buffer and then
used as the data\-out buffer for all SCSI write commands apart from WRITE
SCATTERED(16 or 32) which may include other data in the data\-out buffer.
For WRITE SCATTERED (16 or 32) the data\-out buffer is made up of 3 or 4
components in this order: a parameter list header (32 zero bytes); zero or
more LBA range descriptors, optionally some pad bytes (zeros) and then data
to write to the media. For WRITE SCATTERED \fIIF\fR only provides the data
to write to the media unless \fI\-\-combined=DOF\fR is given. When the
\fI\-\-combined=DOF\fR option is given \fIIF\fR contains all components of
the WRITE SCATTERED data\-out buffer in binary. The data read from \fIIF\fR
starts from byte offset \fIOFF\fR which defaults to zero and no more than
\fIDLEN\fR bytes are read from that point (i.e. from the file byte offset
\fIOFF\fR). If \fIDLEN\fR is zero or not given the rest of the file \fIIF\fR
is read. This option is mandatory apart from when \-\-same=1 is given (that
sets the NDOB bit which stands for "No Data Out Buffer"). In Unix based
OSes, any number of zeros can be produced by using the /dev/zero device file.
.br
\fIIF\fR may be "\-" which is taken as stdin. In this case the
\fI\-\-offset=OFF,DLEN\fR can be given with \fIOFF\fR set to 0 and
\fILEN\fR set to a non\-zero value, preferably a multiple of the actual block
size. The utility can also deduce how long the \fIIF\fR should be from
\fINUM\fR (or the sum of them in the case of a scatter list).
.TP
\fB\-l\fR, \fB\-\-lba\fR=\fILBA[,LBA...]\fR
where the argument is a single Logical Block Address (LBA) or a comma
separated list of \fILBA\fRs each of which is the address of the first block
written by the selected write command. Only the WRITE SCATTERED command
can usefully take more than one \fILBA\fR. Whatever number of \fILBA\fRs is
given, there needs to be an equal number of \fINUM\fRs given to the
\fI\-\-num=NUM[,NUM...]\fR option. The first given \fILBA\fR joins with the
first given \fINUM\fR to form the first LBA range descriptor (which T10
number from zero in SBC\-4). The second \fILBA\fR joins with the second
\fILBA\fR to form the second LBA range descriptor, etc. A more convenient
way to define a large number of LBA range descriptors is with the
\fI\-\-scat\-file=SF\fR option. Defaults to logical block 0 (which could be
dangerous) while \fINUM\fR defaults to 0 which makes the combination harmless.
\fILBA\fR is assumed to be in decimal unless prefixed with '0x' or has a
trailing 'h'.
.TP
\fB\-N\fR, \fB\-\-normal\fR
the choice of a "normal" WRITE (16 or 32) command can be made explicitly
with this option. In the absence of selecting any other command (e.g.
\fI\-\-atomic=AB\fR ), the choice of a "normal" WRITE is the default.
.TP
\fB\-n\fR, \fB\-\-num\fR=\fINUM[,NUM...]\fR
where the argument is a single NUMber of blocks (NUM) or a comma separated
list of \fINUM\fRs that pair with the corresponding entries in the
\fI\-\-lba=LBA[,LBA...]\fR option. If a \fINUM\fR is given and is not
provided by another method (e.g. by using the \fI\-\-scat\-file=SF\fR option)
then it defaults to the number of blocks derived from the size of the file
named by \fIIF\fR (starting at byte offset \fIOFF\fR to the end or the file
or \fIDLEN\fR). Apart from the \fI\-\-combined=DOF\fR option, an LBA must
be explicitly given (either with \fII\-\-lba=LBA\fR or via
\fI\-\-scat\-file=SF\fR), if not \fINUM\fR defaults to 0 as a safety measure.
.TP
\fB\-o\fR, \fB\-\-offset\fR=\fIOFF[,DLEN]\fR
where \fIOFF\fR is the byte offset within the file named \fIIF\fR to start
reading from. The default value of \fIOFF\fR is zero which is the beginning
of file named \fIIF\fR. \fIDLEN\fR is the maximum number of bytes to read,
starting at byte offset \fIOFF\fR, from the file named \fIIF\fR. Less bytes
will be read if an end of file occurs before \fIDLEN\fR is exhausted. If
\fIDLEN\fR is zero or not given then reading from byte offset \fIOFF\fR to
the end of the file named \fIIF\fR is assumed.
.TP
\fB\-O\fR, \fB\-\-or\fR
selects the ORWRITE command. ORWRITE(16) has similar fields to WRITE(16)
apart from the WRPROTECT field being named ORPROTECT with slightly different
semantics and the absence of the 3 DLD bit fields. ORWRITE(32) has four
extra fields that are set with the \fI\-\-bmop=OP,PGP\fR and
\fI\-\-generation=EOG,NOG\fR options. ORWRITE(32) is the only 32 byte cdb
command in this utility that does not require a \fIDEVICE\fR formatted with
type 1, 2 or 3 PI (although it will still work if it is formatted with PI).
.TP
\fB\-Q\fR, \fB\-\-quiet\fR
suppress some informational messages such as the ones associated with
detected errors when this utility is about to exit. The exit status value
is still returned to the operating system when this utility exits.
.TP
\fB\-r\fR, \fB\-\-ref\-tag\fR=\fIRT\fR
where \fIRT\fR is the "expected initial logical block reference tag" field
found in the 32 byte cdb variants of WRITE, WRITE ATOMIC, WRITE SAME and
WRITE STREAM.  The field is also found in the WRITE SCATTERED(32) LBA range
descriptors. It is a 32 bit field which means the maximum value is
0xffffffff. The default value is 0xffffffff.
.TP
\fB\-S\fR, \fB\-\-same\fR=\fINDOB\fR
selects the WRITE SAME command with the NDOB field set to \fINDOB\fR which
stands for No Data\-Out Buffer. \fINDOB\fR can take values 0 or 1 (i.e. it
is a single bit field). When \-\-same=1 all options associated with the
data\-out buffer are ignored.
.TP
\fB\-q\fR, \fB\-\-scat\-file\fR=\fISF\fR
where \fISF\fR is the name of an auxiliary file containing the scatter list
for the WRITE SCATTERED command. If the \fI\-\-scat\-raw\fR option is also
given then \fISF\fR is assumed to contain both the parameter list header (32
bytes of zeros) followed by zero or more LBA range descriptors which are
also 32 bytes long each. These components are as defined by SBC\-4 (i.e.
in binary with integers in big endian format). If the \fI\-\-scat\-raw\fR
option is not given then a file of ACSII hexadecimal is expected as described
in the SCATTERED FILE ASCII FORMAT section below.
.br
If this option is given with the \fI\-\-combined=DOF\fR option then this
utility will exit with a syntax error. \fISF\fR must not be "\-", a way
of stopping the user trying to redirect stdin.
.TP
\fB\-R\fR, \fB\-\-scat\-raw\fR
this option only effects the way that the file named \fISF\fR from the
\fI\-\-scat\-file=SF\fR option for WRITE SCATTERED is interpreted. By
default (i.e. without this option), \fISF\fR is parsed as ASCII hexadecimal
with blank lines and line contents from and including '#' to the end of
line ignored. Hence it can contain comments and other indications. When
this option is given, the file named \fISF\fR is interpreted as binary.
As binary it is assumed to contain 32 bytes of zeros (the WRITE SCATTERED
parameter list header) followed by zero or more LBA range descriptors (which
are 32 bytes each). If the \fI\-\-strict\fR option is given the reserved
field in those two items are checked with any non zero bytes causing an
error.
.TP
\fB\-S\fR, \fB\-\-scattered\fR=\fIRD\fR
selects the WRITE SCATTERED command with \fIRD\fR being the number of LBA
range descriptors that will be placed in the data\-out buffer. If \fIRD\fR
is zero then the logic will try and determine the number of range descriptors
by other means (e.g. by parsing the file named by \fISF\fR, if there is one).
The LBA range descriptors differ between the 16 and 32 byte cdb variants of
WRITE SCATTERED. In the 16 byte cdb variant the 32 byte LBA range descriptor
is made up of an 8 byte LBA, followed by a 4 byte number_of_blocks followed
by 20 bytes of zeros. In the 32 byte variant the LBA and number_of_blocks
are followed by a RT (4 bytes), an AT (2 bytes) and a TM (2 bytes) then
12 bytes of zeros.
.br
This paragraph applies when \fIRD\fR is greater than zero.
If \fIRD\fR is less than the number of LBA range descriptors built from
command line options, from the \fI\-\-scat\-file=SF\fR option or
decoded from \fIIF\fR (when the \fI\-\-combined=DOF\fR option is given)
then \fIRD\fR takes precedence; so \fIRD\fR is placed in the "Number of
LBA Range Descriptors" field in the cdb. If \fIRD\fR is greater than
the number of LBA range descriptors found from the provided data and
options, then an error is generated.
.TP
\fB\-T\fR, \fB\-\-stream\fR=\fIID\fR
selects the WRITE STREAM command with the STR_ID field set to \fIID\fR.
\fIID\fR can take values from 0 to 0xffff (i.e. it is a 16 bit field).
.TP
\fB\-s\fR, \fB\-\-strict\fR
when this option is present, more things (e.g. that reserved fields contain
zeros) and any irregularities will terminate the utility with a message to
stderr and an indicative exit status. While experimenting with these commands,
especially WRITE SCATTERED, it is recommended to use this option.
.TP
\fB\-t\fR, \fB\-\-tag\-mask\fR=\fITM\fR
where \fITM\fR is the "logical block application tag mask" field  found in the
32 byte cdb variants of WRITE, WRITE ATOMIC, WRITE SAME and WRITE STREAM. The
field is also found in the WRITE SCATTERED(32) LBA range descriptors. It is a
16 bit field which means the maximum value is 0xffff. The default value is
0xffff.
.TP
\fB\-I\fR, \fB\-\-timeout\fR=\fITO\fR
where \fITO\fR is the command timeout value in seconds. The default value is
120 seconds. If \fINUM\fR is large on slow media then these WRITE commands
may require considerably more time than 120 seconds to complete.
.TP
\fB\-u\fR, \fB\-\-unmap\fR=\fIU_A\fR
where \fIU_A\fR is OR\-ed bit values used to set the UNMAP and ANCHOR bit
fields in the WRITE SAME (16 or 32) cdb. If \fIU_A\fR is 1 then the UNMAP
bit field is set; if \fIU_A\fR is 2 then the ANCHOR bit field is set; if
\fIU_A\fR is 3 then both the UNMAP and ANCHOR bit fields are set. The
default value for both bit fields is clear (0); setting \fIU_A\fR to 0 will
also clear both bit fields.
.TP
\fB\-v\fR, \fB\-\-verbose\fR
increase the degree of verbosity (debug messages). These messages are usually
written to stderr.
.TP
\fB\-V\fR, \fB\-\-version\fR
output version string then exit.
.TP
\fB\-w\fR, \fB\-\-wrprotect\fR=\fIWPR\fR
sets the WRPROTECT field (3 bits) in all sg_write_x commands apart from
ORWRITE which has a 3 bit ORPROTECT field (and the synopsis shows \fIOPR\fR
to highlight the difference). In all cases \fIWPR\fR is placed
in that 3 bit field. The default value is zero which does not send any PI
in the data\-out buffer. \fIWPR\fR should be a value between 0 and 7.
.SH SCATTERED FILE ASCII FORMAT
All commands in this utility can take a \fI\-\-scat\-file=SF\fR and that
option can be seen as a replacement for the \fI\-\-lba=LBA[,LBA...]\fR and
\fI\-\-num=NUM[,NUM...]\fR options. if both the \fI\-\-scat\-file=SF\fR and
\fI\-\-scat\-raw\fR options are given then the file named \fISF\fR is
expected to be binary and contain the parameter list header (32 bytes of
zeros for both the 16 and 32 byte variants) followed by zero or more LBA
range descriptors, each of 32 bytes each. This section describes what is
expected in \fISF\fR when the \fI\-\-scat\-raw\fR option is not given.
.PP
The ASCII hexadecimal "scatter file" (named by \fISF\fR) can contain
comments, empty lines and numbers. If multiple numbers appear on one line
they can be separated by spaces, tabs or a single comma. Numbers are parsed
as decimal unless prefixed by "0x" (or "0X") or have a suffix of "h". Ox is
the prefix of hexadecimal number is the C language while T10 uses the "h"
suffix for the same purpose. Anything from and including a "#" character
to the end\-of\-line is ignored, so comments can be placed there.
.PP
For the WRITE SCATTERED (16) command, its LBA range descriptors contain two
items per descriptor: an 8 byte LBA followed by a 4 byte number_of_blocks.
The remaining 20 bytes of the descriptor are zeros. The format accepted
is relatively loose with each decoded value being placed in an LBA and
then a number_of_blocks until the end\-of\-file is reached. The pattern
starts with a LBA and if it doesn't finish with a number_of_blocks (i.e.
an odd number of values are parsed) an error occurs. So the number of
LBA range descriptors generated will be half the number of values parsed
in \fISF\fR.
.PP
For the WRITE SCATTERED (32) command, its LBA range descriptors contain five
items per descriptor: an 8 byte LBA followed by a 4 byte number_of_blocks,
then a 4 byte RT, a 2 byte AT, and a 2 byte TM. The last three items are
associated with protection information (PI). The accepted format in the
\fISF\fR file is more constrained than the 16 byte cdb variant. The items
for each LBA range descriptor must be found on one line with adjacent items
being comma separated. The first two items (LBA and number_of_blocks) must be
given, and if no more items are on the line then RT, AT and TM are given
their default values (all "ff" bytes). Spaces and tabs may appear between
items but commas are the separators. Two commas with no value between them
will cause the "missing" item to receive its default value.
.SH NOTES
Various numeric arguments (e.g. \fILBA\fR) may include multiplicative
suffixes or be given in hexadecimal. See the "NUMERIC ARGUMENTS" section
in the sg3_utils(8) man page.
.PP
In Linux, prior to lk 3.17, the sg driver did not support cdb sizes greater
than 16 bytes. Hence a device node like /dev/sg1 which is associated with
the sg driver would fail with this utility if the \fI\-\-32\fR option was
given (or implied by other options). The bsg driver with device nodes like
/dev/bsg/6:0:0:1 does support cdb sizes greater than 16 bytes since its
introduction in lk 2.6.28 .
.SH EXIT STATUS
The exit status of sg_write_x is 0 when it is successful. Otherwise see
the sg3_utils(8) man page.
.SH EXAMPLES
One simple usage is to write 4 blocks of zeros from (and including) a given
LBA according to the rules of WRITE ATOMIC with an atomic boundary of 0.
Since no cdb size option is given, the 16 byte cdb will be assumed (i.e.
WRITE ATOMIC(16)):
.PP
  sg_write_x \-\-atomic=0 \-\-in=/dev/zero \-\-lba=0x1234 \-\-num=4 /dev/sdc
.PP
Since \fI\-\-bs=BS\fR has not been given, then this utility will call the
READ CAPACITY(16) command on /dev/sdc to determine the number of bytes in a
logical block. If the READ CAPACITY(16) command fails then the READ
CAPACITY(10) command is tried. Let us assume one of them works and that
the number of bytes in each logical block is 512 bytes. So 4 blocks of
zeros (each block containing 512 bytes) will be written from (and including)
LBA 0x1234 . Now to bypass the need for the READ CAPACITY command(s) the
\fI\-\-bs=BS\fR option can be used:
.PP
  sg_write_x \-\-atomic=0 \-\-bs=512 \-\-in=/dev/zero \-\-lba=0x1234 \-\-num=4
/dev/sdc
.PP
Since \-\-bs= is given and its value (512) is a power of 2, then the actual
block size is also 512. If instead 520 was given then the logical block size
would be 512 (the highest power of 2 less than 520) and the actual block size
would be 520 bytes. To send the 32 byte variant add \-\-32 as in:
.PP
  sg_write_x \-\-atomic=0 \-\-32 \-\-bs=512 \-\-in=/dev/zero \-\-lba=0x1234
\-\-num=4 /dev/sdc
.PP
For examples using 'sg_write_x \-\-same=NDOB' see the manpage for
sg_write_same(8). The syntax is a little different but the semantics are the
same.
.PP
To send a WRITE STREAM(32) with a STR_ID of 1 use the following:
.PP
  sg_write_x \-\-stream=1 \-\-32 \-\-bs=512 \-\-in=/dev/zero \-\-lba=0x1234
\-\-num=4 /dev/sdc
.PP
Next is a WRITE SCATTERED(16) command with the scatter list, split between
the \-\-lba= and \-\-num= options, on the command line:
.PP
  sg_write_x  \-\-scattered=2 \-\-lba=2,0x33 \-\-num=4,1 -i /dev/zero /dev/sg1
.PP
Example of a WRITE SCATTERED(16) command with a degenerate LBA range
descriptor (first element to \-\-lba= and \-\-num=):
.PP
  sg_write_x  \-\-scattered=2 \-\-lba=0,0x33 \-\-num=0,1 -i /dev/zero /dev/sg1
.PP
Example of a WRITE SCATTERED(16) command with the scatter list in
scat_file.txt
.PP
  sg_write_x  \-\-scattered=3 \-q scat_file.txt \-i /dev/zero /dev/sg1
.PP
Next a WRITE SCATTERED(16) command with its scatter list and data in a
single file. Note that the argument to \-\-scattered= is 0 so the number of
LBA range descriptors is calculated by analyzing the first two blocks of
scat_data.bin (because the argument to \-\-combined= is 2) :
.PP
  sg_write_x  \-\-scattered=0 \-\-combined=2 \-i scat_data.bin /dev/sg1
.PP
When the \-xx option is used, a WRITE SCATTERED command is not executed
but instead the contents of the data\-out buffer are written to a file
called sg_write_x.bin . In the case of WRITE SCATTERED that binary file
is suitable for supplying to a later invocation to do the actual write
to media. For example:
.PP
  sg_write_x  \-\-scattered=3 \-q scat_file.txt \-xx \-i /dev/zero /dev/sg1
.br
Wrote 8192 bytes to sg_write_x.bin, LB data offset: 1
.br
Number of LBA range descriptors: 3
.br
  sg_write_x  \-\-scattered=0 \-\-combined=1 \-i sg_write_x.bin /dev/sg1
.PP
Notice when the sg_write_x.bin is written (and nothing is written to the
media), a summary of what has happened is sent to stdout. The value shown
for "LB data offset:" (1) should be given to the \-\-combined= option
when the write to media actually occurs (i.e. the second invocation shown
directly above).
.SH AUTHORS
Written by Douglas Gilbert.
.SH "REPORTING BUGS"
Report bugs to <dgilbert at interlog dot com>.
.SH COPYRIGHT
Copyright \(co 2017\-2021 Douglas Gilbert
.br
This software is distributed under a BSD\-2\-Clause license. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
.SH "SEE ALSO"
.B sg_readcap,sg_vpd,sg_write_same,sg_stream_ctl(sg3_utils)
