.TH SG_READ_BUFFER "8" "February 2022" "sg3_utils\-1.48" SG3_UTILS
.SH NAME
sg_read_buffer \- send SCSI READ BUFFER command
.SH SYNOPSIS
.B sg_read_buffer
[\fI\-\-eh_code=EHC\fR] [\fI\-\-help\fR] [\fI\-\-hex\fR] [\fI\-\-id=ID\fR]
[\fI\-\-inhex=FN\fR] [\fI\-\-length=LEN\fR] [\fI\-\-mode=MO\fR]
[\fI\-\-no_output\fR] [\fI\-\-offset=OFF\fR] [\fI\-\-raw\fR]
[\fI\-\-readonly\fR] [\fI\-\-specific=MS\fR] [\fI\-\-verbose\fR]
[\fI\-\-version\fR] \fIDEVICE\fR
.SH DESCRIPTION
.\" Add any additional description here
.PP
Sends a SCSI READ BUFFER command to the \fIDEVICE\fR, and if there is a
response either decodes it, prints it in hexadecimal or sends it in binary to
stdout. If a response is received for a "descriptor" mode then, in the absence
of \fI\-\-hex\fR and \fI\-\-raw\fR, it is decoded. Response for
non\-descriptor modes are output in hexadecimal unless the \fI\-\-raw\fR
option is given.
.PP
The responses to the Read microcode status ('rd_microc_st' [0xf]) and Error
history ('err_hist' [0x1c]) modes are decoded as described in spc6r06.pdf and
earlier T10 documents.
.PP
This utility may be called without a \fIDEVICE\fR but with a
\fI\-\-inhex=FN\fR option instead. \fIFN\fR is expected to be a file name (or
 '\-' for stdin). The contents of the file (or stdin stream) is assumed to be
hexadecimal (or binary) data that represents a SCSI READ BUFFER command
response and is decoded as such.
.SH OPTIONS
Arguments to long options are mandatory for short options as well.
.TP
\fB\-e\fR, \fB\-\-eh_code\fR=\fIEHC\fR
\fIEHC\fR is the error history code placed in the Buffer ID field of the cdb.
The Mode field is set to err_hist [0x1c]. The option is equivalent to using
the '\fI\-\-mode=eh\fR \fI\-\-id=EHC\fR' options. If this option and one of
the other options is given, then an error will be generated if they
contradict. The default (maximum) response length is increased to 64 bytes
when may need to be increased (if so that is noted if the output is
truncated).
.br
An example is setting \fIEHC\fR to 0 in which case the error history
directory will be decoded (unless \fI\-\-hex\fR or \fI\-\-raw\fR options
is given).
.TP
\fB\-h\fR, \fB\-\-help\fR
output the usage message then exit. If used multiple times also prints
the mode names and their acronyms.
.TP
\fB\-H\fR, \fB\-\-hex\fR
output the response in hexadecimal. When given twice the response is
output in hex with the corresponding representation in ASCII to the
right of each line. When given three time the hex is printed without
addresses (indexes) at the start of each line; this type of format is
suitable for the \fI\-\-inhex=FN\fR option on a subsequent invocation.
.TP
\fB\-i\fR, \fB\-\-id\fR=\fIID\fR
this option sets the Buffer ID field in the cdb. \fIID\fR is a value between
0 (default) and 255 inclusive. The meaning of the Buffer ID field varies
with the value in the Mode field of the cdb.
.TP
\fB\-I\fR, \fB\-\-inhex\fR=\fIFN\fR
\fIFN\fR is expected to be a file name (or '\-' for stdin) which contains
ASCII hexadecimal or binary representing a READ BUFFER response. If known
this utility will then decode that response. It is preferable to also supply
the \fI\-\-mode=MO\fR, \fI\-\-id=ID\fR and possible \fI\-\-specific=MS\fR
options, since these are not present in the response. See the "FORMAT OF
FILES CONTAINING ASCII HEX" section in the sg3_utils manpage for more
information. If the \fI\-\-raw\fR option is also given then the contents
of \fIFN\fR is treated as binary.
.TP
\fB\-l\fR, \fB\-\-length\fR=\fILEN\fR
where \fILEN\fR is the length, in bytes, that is placed in the "allocation
length" field in the cdb. The default value is 4 (bytes) which is increased
to 64 if the 'err_hist' mode [0x1c] is given or implied. The device may
respond with less bytes.
.br
If the \fI\-\-inhex=FN\fR option is given, then the default value of the
length is increased to 8192 bytes. This length may then be reduced to match
the number of bytes decoded from the contents of \fIFN\fR.
.TP
\fB\-m\fR, \fB\-\-mode\fR=\fIMO\fR
this option sets the mode field in the cdb. \fIMO\fR is a value between
0 (default) and 31 inclusive. Alternatively an abbreviation can be given.
See the MODES section below. To list the available mode abbreviations use
an invalid one (e.g. '\-\-mode=xxx'). As an example, to fetch the read
buffer descriptor give '\-\-mode=desc' .
.TP
\fB\-N\fR, \fB\-\-no_output\fR
when this option is given after sending the SCSI command to the \fIDEVICE\fR
the response is processed, looking for any errors, and then this utility
exits. Any data read by the READ BUFFER command is ignored.
.br
May be useful for timing larger reads from the \fIDEVICE\fR buffer in 'data'
mode [0x2].
.TP
\fB\-o\fR, \fB\-\-offset\fR=\fIOFF\fR
this option sets the buffer offset field in the cdb. \fIOFF\fR is a value
between 0 (default) and 2**24\-1 . It is a byte offset.
.TP
\fB\-r\fR, \fB\-\-raw\fR
if a response is received then it is sent in binary to stdout. When this
option is given together with \fI\-\-inhex=FN\fR then the contents of
\fIFN\fR is assumed to be binary and the output of this utility is
normal ASCII (i.e. _not_ in binary).
.TP
\fB\-R\fR, \fB\-\-readonly\fR
open the \fIDEVICE\fR read\-only (e.g. in Unix with the O_RDONLY flag).
The default is to open it read\-write.
.TP
\fB\-S\fR, \fB\-\-specific\fR=\fIMS\fR
this option sets the mode specific field in the cdb. \fIMS\fR is a value
between 0 and 7 as this is a 3 bit field.
.TP
\fB\-v\fR, \fB\-\-verbose\fR
increase the level of verbosity, (i.e. debug output).
.TP
\fB\-V\fR, \fB\-\-version\fR
print the version string and then exit.
.SH MODES
Following is a list of READ BUFFER command settings for the MODE field.
First is an acronym accepted by the \fIMO\fR argument of this utility.
Following the acronym in square brackets are the corresponding decimal and
hex values that may also be given for \fIMO\fR. The following are listed
in numerical order.
.TP
hd  [0, 0x0]
Combined header and data (obsolete in SPC\-4).
.TP
vendor  [1, 0x1]
Vendor specific.
.TP
data  [2, 0x2]
Data.
.TP
desc  [3, 0x3]
Descriptor: yields 4 bytes that contain an offset boundary field (1 byte)
and buffer capacity (3 bytes).
.TP
echo  [10, 0xa]
Read data from echo buffer (was called "Echo buffer" in SPC\-3).
.TP
echo_desc  [11, 0xb]
Echo buffer descriptor: yields 4 bytes of which the last (lowest) 13 bits
represent the echo buffer capacity. The maximum echo buffer size is 4096
bytes.
.TP
rd_microc_st  [15, 0xf]
Read microcode status. Added in spc5r20 .
.TP
en_ex  [26, 0x1a]
Enable expander communications protocol and Echo buffer. Made obsolete in
SPC\-4.
.TP
err_hist|eh  [28, 0x1c]
Error history. Either 'err_hist' or the short 'eh' abbreviation can be used
for this mode. Introduced in SPC\-4.
.SH NOTES
All numbers given with options are assumed to be decimal.
Alternatively numerical values can be given in hexadecimal preceded by
either "0x" or "0X" (or has a trailing "h" or "H").
.SH EXIT STATUS
The exit status of sg_read_buffer is 0 when it is successful. Otherwise
see the sg3_utils(8) man page.
.SH AUTHORS
Written by Luben Tuikov and Douglas Gilbert.
.SH "REPORTING BUGS"
Report bugs to <dgilbert at interlog dot com>.
.SH COPYRIGHT
Copyright \(co 2006\-2019 Luben Tuikov and 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_write_buffer(sg3_utils)
