Each utility has its own version number, date of last changes and
some description at the top of its ".c" file. "KG" indicates work by
Kurt Garloff <garloff@suse.de>.

Changelog for sg3_utils-1.05 [20031112]
  - sginfo: major rework; add IE page, clean up control, cache +
        disconnect pages (as per SPC-3 and SBC-2). 
      - when storing, update saved page (change from previous version)
      - use 10 byte mode sense and select by default (override with '-6')
      - mode subpage support
  - sg_dd, sgm_dd + sgp_dd: 
      - 64 bit capable (read capacity; count, skip and seek values). 
      - numerical arguments accept hex (prefixed by '0x' or '0X')
      - require bpt > 0
      - fix problem when reading /dev/null
  - sg_dd: Treat SIGUSR1 properly: print stats and continue;
  - sgp_dd: reduce READ CAPACITY response size to 8 bytes
  - sg_read: require bpt > 0
  - sg_test_rwbuf: switch from sg_header to sg_io_hdr interface
    N.B. After these changes no sg3_utils utilities (in the main directory)
    use the sg_header interface
  - sg_scan: switch from sg_header to sg_io_hdr interface
  - sg_senddiag: increase extended foreground timeout to 60 minutes
  - sg_inq: add names of peripheral device types
  - sg_readcap: show total size in bytes, MB, GB
  - sg_logs: read log pages twice (first time to get response length), for
    fragile HBAs; decode Seagate 0x37 + 0x3e pages; display pcbs
  - sg_modes: fix core dump when corrupted response, don't print extra pages
  - sg_map: increase sg device scanning from 128 to 256
  - change man page references from lk 2.5 to lk 2.6
  - examples/sg_iovec_tst: added testing sg_iovec (sg_io_hdr iovec's)
  - utils/hxascdmp: add utility for displaying ASCII hex

Changelog for sg3_utils-1.04 [20030513]
  - all remaining utilities in the main directory have man pages [thanks
    to Eric Schwartz <emschwar@debian.org> for 7 man pages]
  - add CREDITS file
  - sg_simple1, sg_simple2, sg_simple3, sg_simple4, sg_simple16 and
    scsi_inquiry: moved to the examples directory
  - sg_debug: moved to the archive directory
  - sg_modes: add '-subp=<n>' for sub page code, suggests 6/10 byte
    alternative if bad opcode sense received, flip -cpf flag to -pf,
    add page names for most peripheral types
  - sg_turs: default '-n=' argument to 1, only when '-n=1' print error
    message in full
  - sg_logs: print temperature "<not available>" for 255, '-t' switch
    for temperature (from either temperature or IE log page)
  - sg_dd: add '-odir=0|1' switch for O_DIRECT on block devices
  - sg_start: add '-imm', '-loej' and 'pc=<n>' switches plus man page
  - sg_readcap: add '-pmi' and 'lba=<n>' switches
  - open files O_NONBLOCK in sg_inq, sg_modes and sg_logs so they
    can be used on cd/dvd drivers when there is no disk present

Changelog for sg3_utils-1.03 [20030402]
  - sg_senddiag: added, allows self tests and listing of diag pages
  - sg_start: changed to use SG_IO so works on block devices
  - sg_err: print out some "sense key specific" data [Trent Piepho]
  - sg_modes: add "-6" switch for force 6 byte MODE SENSE [Trent Piepho]
  - sg_modes: more information on page codes and controls
  - sg_inq, sg_modes, sg_logs, sg_senddiag: add man pages
  - sg_dd: add "append=0|1" switch for glueing together large files
  - note in README about utilities offered by scsirastools package

Changelog for sg3_utils-1.02 [20030101]
  - sg_inq: check if cmddt or evpd bits ignored
  - sg_inq: warn -o=<n> not used for standard INQUIRY
  - sg_turs: add -t option to time Test Unit Ready commands
  - sg_errs: (used by most utilities) warn if sense buffer empty
  - sg_modes: make safe with block SG_IO (bypass SG_GET_SCSI_ID ioctl)
  - sg_logs: make safe with block SG_IO, self-test page work
  - sg_dd: add "blksg_io=" switch to experiment with block SG_IO
  - sg_read: now use SG_IO ioctl rather than sg write/read
  - sginfo: fix writing parameters, check for block devices that answer
    sg's ioctls, recognize "scd<n>" device names
  - sg_map: stop close error report on tape devices
  - sg_readcap: make safe with block SG_IO
  - sg_start: make safe with block SG_IO
  - sg_test_rwbuf: make safe with block SG_IO

Changelog for sg3_utils-1.01 [20020814]
----------------------------
  - add raw switch ("-r") to sg_inq [Martin Schwenke]

Changelog for sg3_utils-1.00 [20020728]
----------------------------
  - update sg_err [to SPC-3 T10/1416-D Rev 07 3 May 2002]
  - "sg_inq -cl" now outputs opcode names
  - add "continue on error" option to sg_dd
  - add _LARGEFILE64_SOURCE _FILE_OFFSET_BITS=64 defines to Makefile
  - drop 'gen' argument from sg_dd and friends, allow any file types
    except scsi tape device file names
  - treat of=/dev/null as special (skip write). Accept of=. as alias
    for of=/dev/null
  - decode various log pages in sg_logs
  - add 'dio' argument to sgm_dd for testing "zero copy" copies

Changelog for sg3_utils-0.99 [20020317]
----------------------------
  - add 'fua' and 'sync' arguments to sg_dd, sgp_dd and sgm_dd
  - improve sg_inq, add "-cl" and "-36" arguments
  - add sg_modes + sg_logs for MODE SENSE and LOG SENSE queries
  - add rescan-scsi-bus.sh [KG] to archive directory

Changelog for sg3_utils-0.98 [20020216]
----------------------------
  - move sg_reset back from archive to main directory + build
  - sprintf() to snprintf() changes
  - add "time=<n>" argument to sg_dd, sgp_dd and sgm_dd to time transfer
  - add man pages for sgm_dd and sg_read, update sg_dd and sgp_dd man pages
  - add "cdbsz=" argument to sg_dd, sgp_dd, sgm_dd + sg_read
  - add "gen=0|1" argument to sg_dd

Changelog for sg3_utils-0.97 [20011223]
----------------------------
  - move isosize to archive since introduced into util-linux-2.10s

Changelog for sg3_utils-0.96 [20011221]
----------------------------
  - add '-p' switch to sg_inq to provide PCI slot_name
  - add '-n' switch to scsi_inquiry for non-blocking open
  - new sgm_dd (dd variant) using mmap-ed IO
  - sg_rbuf now has a '-m' argument to select mmap-ed IO
  - sg_rbuf now has a '-t' switch to do timing + throughput calculation
  - add sg_simple4 to demonstrate mmap-ed IO on an INQUIRY response
  - add sg_simple16 to do a READ_16 (16 byte SCSI READ command)
  - mmap-ed IO requires sg version 3.1.22 or later
  - add sg_read to read multiple times starting at same offset

Changelog for sg3_utils-0.95 [20010915]
----------------------------
  - make sg_dd, sgp_dd and archive/sgq_dd warn if dio selected but
    /proc/scsi/sg/allow_dio is '0'
  - sg_map can now do any INQUIRY (when '-i' argument given)
  - expand example in scsi_inquiry

Changelog for sg3_utils-0.94 [20010419]
----------------------------
  - add sg_start, documented in README.sg_start [KG]
  - add osst suport in sg_map [KG]
  - improvements to sginfo [KG]

Changelog for sg3_utils-0.93 [20010415]
----------------------------
  - more include file fine tuning
  - some "dio" work sg_rbuf
  - extend sgp_dd so "continue on error" works on normal files
  - introduce sg_include.h to encapsulate sg include problems
  - add scsi_devfs_scan
  - add sg_bus_xfer to archive directory
  - more error info in sginfo

Changelog for sg3_utils-0.92 [20010116]
----------------------------
  - change sg_err.c output from stdout to stderr
  - change sg_debug to call system("cat /proc/scsi/sg/debug");
  - fix in+out totals in sg_dd and sgp_dd when partial transfers
  - lower include dependencies in sg_err.h
  - add sgq_dd + Makefile to archive directory

Changelog for sg3_utils-0.91 [20001221]
----------------------------
  - signalling handling added to sg_dd (and documented in sg_dd.8)
  - add man page for sg_rbuf (and a small change to its code)
  - add "-d" switch to isosize and cope with > 2 GB (and man page)

Changelog for sg3_utils-0.90
----------------------------
  - switch from dated versioning. Previous version was sg3_utils001012.
    Arbitrarily start at package version 0.90 . Start Changelog.
  - incorporate KG's patches from Suse scsi.spm source rpm compilation:
    - add KG's sg_test_rwbuf utility to read and write to disk buffer
    - clean up Makefile to include a "make install" (and also add a
      "make uninstall").
    - add "-uno" switch to sginfo
  - make raw and sg devices equally acceptable to sg_dd and sgp_dd.
    [Raw devices still not as fast as sg devices doing disk to disk
    copies in sgp_dd but this may be improved soon. Still faster than
    using dd!]
  - change lseek() in sg_dd and sgp_dd to _llseek() [using code borrowed
    from fdisk] so big disks can be properly offset with 'skip' and
    'seek' arguments. [This change is significant for raw devices and
    normal files since sg devices already use 31 bit block addressing.]
  - rename sg_s3_inq to sg_inq. This utility allows the INQUIRY response
    to be decoded as per SCSI 3 and 4. Also can probe EVPD and CmdDt pages.
  - change multiplier suffixes on sg_dd, sgp_dd and sg_turs so lower case
    "k, m, g" are powers of 2 while "K, M, G" are powers of 10. This idea
    borrowed from lmdd (lmbench suite)
  - retire a few more less used utilities into the archive directory.
  - add man pages for sg_dd, sgp_dd and sg_map
