Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
SG_READ_BUFFER(8)		    SG3_UTILS		       SG_READ_BUFFER(8)

NAME
     sg_read_buffer - send SCSI READ BUFFER command

SYNOPSIS
     sg_read_buffer  [--eh_code=EHC]  [--help]	[--hex]  [--id=ID]  [--inhex=FN]
     [--length=LEN] [--mode=MO] [--no_output]  [--offset=OFF]  [--raw]	[--read-
     only] [--specific=MS] [--verbose] [--version] DEVICE

DESCRIPTION
     Sends  a SCSI READ BUFFER command to the DEVICE, and if there is a response
     either decodes it, prints it in hexadecimal or sends it in binary	to  std-
     out. If a response is received for a "descriptor" mode then, in the absence
     of  --hex	and  --raw, it is decoded. Response for non-descriptor modes are
     output in hexadecimal unless the --raw option is given.

     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.

     This  utility  may  be called without a DEVICE but with a --inhex=FN option
     instead. FN 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.

OPTIONS
     Arguments to long options are mandatory for short options as well.

     -e, --eh_code=EHC
	    EHC 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 equiv-
	    alent  to using the '--mode=eh --id=EHC' 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 in-
	    creased to 64 bytes when may need to be increased  (if  so	that  is
	    noted if the output is truncated).
	    An	example  is setting EHC to 0 in which case the error history di-
	    rectory will be decoded (unless --hex or --raw options is given).

     -h, --help
	    output the usage message then exit.  If  used  multiple  times  also
	    prints the mode names and their acronyms.

     -H, --hex
	    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 --inhex=FN option on a subsequent invocation.

     -i, --id=ID
	    this  option  sets the Buffer ID field in the cdb. ID is a value be-
	    tween 0 (default) and 255 inclusive. The meaning of  the  Buffer  ID
	    field varies with the value in the Mode field of the cdb.

     -I, --inhex=FN
	    FN	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 --mode=MO, --id=ID and possible --specific=MS op-
	    tions, since these are not present in the response.  See  the  "HEX,
	    BINARY  AND  JSON FORMATS" section in the sg3_utils manpage for more
	    information. If the --raw option is also given then the contents  of
	    FN is treated as binary.

     -l, --length=LEN
	    where LEN 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.
	    If	the  --inhex=FN  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 FN.

     -m, --mode=MO
	    this  option sets the mode field in the cdb. MO 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 ab-
	    breviations use an invalid one (e.g. '--mode=xxx'). As  an	example,
	    to fetch the read buffer descriptor give '--mode=desc' .

     -N, --no_output
	    when  this option is given after sending the SCSI command to the DE-
	    VICE the response is processed, looking for  any  errors,  and  then
	    this  utility exits. Any data read by the READ BUFFER command is ig-
	    nored.
	    May be useful for timing larger reads  from  the  DEVICE  buffer  in
	    'data' mode [0x2].

     -o, --offset=OFF
	    this  option sets the buffer offset field in the cdb. OFF is a value
	    between 0 (default) and 2**24-1 . It is a byte offset.

     -r, --raw
	    if a response is received then it is sent in binary to stdout.  When
	    this  option  is given together with --inhex=FN then the contents of
	    FN is assumed to be binary and the output of this utility is  normal
	    ASCII (i.e. _not_ in binary).

     -R, --readonly
	    open  the  DEVICE  read-only  (e.g. in Unix with the O_RDONLY flag).
	    The default is to open it read-write.

     -S, --specific=MS
	    this option sets the mode specific field in the cdb. MS is	a  value
	    between 0 and 7 as this is a 3 bit field.

     -v, --verbose
	    increase the level of verbosity, (i.e. debug output).

     -V, --version
	    print the version string and then exit.

MODES
     Following	is  a  list  of READ BUFFER command settings for the MODE field.
     First is an acronym accepted by the MO argument of this utility.  Following
     the acronym in square brackets are the corresponding decimal and hex values
     that may also be given for MO. The following are listed in numerical order.

     hd  [0, 0x0]
	    Combined header and data (obsolete in SPC-4).

     vendor  [1, 0x1]
	    Vendor specific.

     data  [2, 0x2]
	    Data.

     desc  [3, 0x3]
	    Descriptor: yields 4 bytes that contain an offset boundary field  (1
	    byte) and buffer capacity (3 bytes).

     echo  [10, 0xa]
	    Read data from echo buffer (was called "Echo buffer" in SPC-3).

     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.

     rd_microc_st  [15, 0xf]
	    Read microcode status. Added in spc5r20 .

     en_ex  [26, 0x1a]
	    Enable expander communications protocol and Echo buffer. Made  obso-
	    lete in SPC-4.

     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.

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").

EXIT STATUS
     The exit status of sg_read_buffer is 0 when it is successful. Otherwise see
     the sg3_utils(8) man page.

AUTHORS
     Written by Luben Tuikov and Douglas Gilbert.

REPORTING BUGS
     Report bugs to <dgilbert at interlog dot com>.

COPYRIGHT
     Copyright (C) 2006-2023 Luben Tuikov and Douglas Gilbert
     This software is distributed under a BSD-2-Clause license. There is NO war-
     ranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

SEE ALSO
     sg_write_buffer(sg3_utils)

sg3_utils-1.48			    June 2023		       SG_READ_BUFFER(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=sg_read_buffer&sektion=8&manpath=FreeBSD+Ports+15.1.quarterly>

home | help