| .TH SG_READ_BUFFER "8" "May 2019" "sg3_utils\-1.45" SG3_UTILS |
| .SH NAME |
| sg_read_buffer \- send SCSI READ BUFFER command |
| .SH SYNOPSIS |
| .B sg_read_buffer |
| [\fI\-\-help\fR] [\fI\-\-hex\fR] [\fI\-\-id=ID\fR] [\fI\-\-inhex=FN\fR] |
| [\fI\-\-length=LEN\fR] [\fI\-\-mode=MO\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 |
| 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\-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. |
| .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. |
| .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 and \fI\-\-specific=MS\fR options, since these |
| are not present in the response. The hexadecimal should be arranged as 1 or |
| 2 digits representing a byte each of which is whitespace or comma separated. |
| Anything from and including a hash mark to the end of line is ignored. If the |
| \fI\-\-raw\fR option is also given then \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). The device may |
| respond with less bytes. |
| .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\-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. |
| .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 [28, 0x1c] |
| Error history. 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 FreeBSD license. There is NO |
| warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
| .SH "SEE ALSO" |
| .B sg_write_buffer(sg3_utils) |