Provided by: sg3-utils_1.17-2_i386 bug


       sg_test_rwbuf  -  Tests the SCSI host adapter by issuing write and read
       operations on a device’s buffer and calculating checksums.


       sg_test_rwbuf   [--addrd=<n>]    [--addwr=<n>]    [--help]    [--quick]
       --size=<sz> [--times=<n>] [--verbose] [--version] <scsi_device>
       or (an older deprecated format)
       sg_test_rwbuf <scsi_device> <sz> [<addwr>] [<addrd>]


       sg_test_rwbuf  writes and reads back sz bytes to the internal buffer of
       <scsi_device> (e.g. /dev/sda or /dev/sg0). A pseudo random  pattern  is
       written  to  the  data buffer on the device then read back. If the same
       pattern is found ’Success’ is reported. If they do not match (checksums
       unequal)  then this is reported and up to 24 bytes from the first point
       of mismatch are reported; the first line shows what was written and the
       second  line shows what was received. For testing purposes, you can ask
       it to write <addwr> or read <addrd> additional bytes.

       --addrd=<n> | -r <n>
              Read an additional <n> bytes (than indicated by <sz>)  from  the
              data buffer.  Checksum is performed over the first <sz> bytes.

       --addwr=<n> | -w <n>
              Write an additional <n> bytes (than indicated by <sz>) of zeroes
              into the data buffer.  Checksum is generated over the first <sz>

       --help | -h
              Print out a usage message the exit.

       --quick | -q
              Perform  a  READ  BUFFER  descriptor  command  to  find  out the
              available data buffer length and offset,  print  them  out  then
              exit (without testing with write/read sequences).

       --size=<sz> | -s <sz>
              Size  of  buffer  in  bytes to be written then read and checked.
              This number needs to be less than on equal to the  size  of  the
              device’s  data  buffer  which  can  be  seen  from the ’--quick’
              option. Either this option or the  ’--quick’  option  should  be

       --times=<n> | -t <n>
              Number of times to repeat the write/read to buffer test. Default
              value is 1 .

       --verbose | -v
              increase verbosity of output.

       --version | -V
              print version number (and data of last change) then exit.

       The microcode in a SCSI device is  _not_  modified  by  doing  a  WRITE
       BUFFER  command  with  its  mode  set  to  "data" (0x2) as done by this
       utility. Therefore this utility is safe in that respect.  [Mode  values
       0x4, 0x5, 0x6 and 0x7 are the dangerous ones :-)]

       WARNING: If you access the device at the same time (e.g. because it’s a
       hard disk with a mounted file system on it) the device’s buffer may  be
       used  by  the  device  itself  for  other  data  at  the same time, and
       overwriting it may or may not cause data corruption! HOWEVER the  SPC-3
       draft  standard  does  state in its WRITE BUFFER command: "This command
       shall not alter any medium of the logical unit when data  mode  ...  is
       specified".  This  implies  that  it _is_ safe to use this utility with
       devices that have mounted file systems on them.  Following  this  theme
       further,  a  disk  with  active mounted file systems may cause the data
       read back to be different (due to caching activity) to what was written
       and hence a checksum error.


       Written by D. Gilbert and K. Garloff


       Copyright © 2000-2005 Douglas Gilbert, Kurt Garloff
       This  software  is  distributed  under  the  GPL version 2. There is NO
       warranty; not even for MERCHANTABILITY  or  FITNESS  FOR  A  PARTICULAR