"Fossies" - the Fresh Open Source Software Archive

Member "sg3_utils-1.45r831/ChangeLog" (9 Sep 2019, 82479 Bytes) of package /linux/misc/sg3_utils-1.45r831.tar.xz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the latest Fossies "Diffs" side-by-side code changes report for "ChangeLog": 1.45r830_vs_1.45r831.

    1 Each utility has its own version number, date of last change and
    2 some description at the top of its ".c" file. All utilities in the main
    3 directory have their own "man" pages. There is also a sg3_utils man page.
    4 
    5 Changelog for sg3_utils-1.45 [20190905] [svn: r831]
    6   - sg_get_elem_status: new utility [sbc4r16]
    7   - sg_ses: bug: --page= being overridden when --control
    8     and --data= also given; fix
    9     - document explicit Element type codes and example
   10     - rename 'SAS SlimLine' to SlimSAS [ses4r02]
   11     - add --inhex=FN, equivalent to --data=@FN, for
   12       compatibility with other utilities
   13   - sg_opcodes: expand MLU (spc5r20)
   14   - sg_write_buffer: allow comma and period separated
   15     lists when input from stdin
   16   - sg_inq: update version descriptors to spc5r21
   17     - add some NVMe 1.4 snippets to ctl identify
   18   - sg_format: add --dcrt used twice (FOV=1 DCRT=0)
   19   - sg_raw: fix --send bug when using stdin
   20   - sg_vpd: 3pc VPD page add copy group descriptor
   21     - add --examine option
   22   - sg_read_buffer: decode read microcode status page
   23     - add --inhex=FN option
   24   - sg_request: add --error option, replaces opcode
   25     with 0xff (or skips call to pass-through)
   26   - sg_get_lba_status: add --inhex=FN option
   27   - sg_xcopy: add --fco (fast copy only) (spc5r20)
   28     - implement --app=1 (append) on regular OFILE type
   29   - sg_scan (win32): expand limits for big arrays
   30   - sg_modes: placeholders for Command duration limit
   31     T2A and T2B mpages (sbc4r17)
   32   - sg_logs: placeholder for Command duration limits
   33     statistics lpage (sbc4r17)
   34     - zoned block device statistics log page: shorten
   35       counter fields from 8 to 4 bytes (zbc2r02)
   36   - zbc: preparatory work for Zoned domains and
   37     realms; add new zbc service actions [19-032r3]
   38   - inhex directory: new, contains ASCII hex files
   39     that can be used with the '--inhex=' option
   40   - sg_lib: add sg_t10_uuid_desig2str()
   41     - sg_scsi_normalize_sense(): populate byte4,5,6
   42     - tweak sg_pt interface to better handle bidi
   43     - sg_cmds_process_resp(): two arguments removed
   44     - add ${PACKAGE_VERSION} to '.so' name
   45     - add sg_f2hex_arr()
   46     - update some tables for NVMe 1.4
   47     - sg_get_num()+sg_get_llnum(): add 'e' decoding,
   48       exabytes; allow addition (e.g. --count=3+1k)
   49   - sg_pt_freebsd: fixes for FreeBSD 12.0 release
   50   - scripts: update 54-before-scsi-sg3_id.rules,
   51     scsi-enable-target-scan.sh and
   52     59-fc-wwpn-id.rules
   53   - linux: add nanosecond durations when
   54     SG3_UTILS_LINUX_NANO environment variable given
   55     and Linux sg driver >= 4.0.30
   56   - rescan-scsi-bus: widen LUN 0 only scanning
   57     - multiple patches to sync with Suse
   58   - testing/sg_tst_async: fix free_list issue
   59   - testing/sg_tst_ioctl: for sg 4.0 driver
   60   - testing/sg_tst_bidi: for sg 4.0 driver
   61   - testing/sgh_dd: test request sharing, mreqs...
   62   - testing/sgs_dd: back from archive, for testing
   63   - 'make' now builds both C and C++ programs
   64     SIGPOLL (SIGIO) and realtime (RT) signals
   65   - sg_pt: add sg_get_opcode_translation() to replace
   66     global pointer to array: sg_opcode_info_arr[]
   67     - extend small SNTL to support read capacity
   68   - utils/hxascdmp: add -o=<offset> option
   69     - add -1, -2 and -q options
   70   - sg_io_linux (sg_lib): add sg_linux_sense_print()
   71   - sg_pt_linux: uses sg v4 interface if sg driver
   72     >= 4.0.0 . Force sg v3 always by building with
   73     './configure --disable-linux-sgv4'
   74     - add sg_linux_get_sg_version() function
   75   - add: 'SPDX-License-Identifier: BSD-2-Clause'
   76     or a small number of 'GPL-2.0-or-later'
   77   - gcc-9: suppress (pointless) warnings
   78   - automake: upgrade to version 1.16.1
   79   - autoconf: upgrade to version 2.69
   80 
   81 Changelog for sg3_utils-1.44 [20180912] [svn: r791]
   82   - same code as release 1.43 20180911 svn rev 789;
   83     new release due to sync problem with git mirror at:
   84     https://github.com/hreinecke/sg3_utils
   85     that has a v1.43 tag dated 20160217 [svn: r663]
   86 
   87 Changelog for sg3_utils-1.43 [20180911] [svn: r789]
   88   - release 1.43 20180911 svn rev 789
   89   - sg_write_x: where x can be normal, atomic, or(write),
   90     same, scattered, or stream writes with 16 or 32 byte
   91     cdbs (sbc4r04 for atomic, sbc4r11 for scattered)
   92   - sg_bg_ctl: new Background control command (sbc4r08)
   93   - sg_seek: new SEEK(10) or PRE-FETCH(10 or 16)
   94   - sg_stream_ctl: new, STREAM CONTROL or GET STREAM STATUS
   95   - sg_senddiag: add --timeout=SECS option
   96   - sg_sanitize: add --timeout=SECS option
   97     - add --dry-run option
   98   - sg_format: add --timeout=SECS option
   99     - add --dry-run option to bypass modifying behaviour
  100     - add --quick option to skip reconsideration time
  101     - extend --wait timeout to 40 hours for disk sizes
  102       > 4 TB and 80 hours if > 8 TB
  103     - when changing block size allow for Mode Select
  104       rejecting SP=1 (Save Page): repeat with SP=0
  105     - FFMT tweaks: default CMPLST to false, shorten poll
  106     - make all data-in and data-out buffers page aligned
  107   - sg_decode sense: add --cdb and --err=ES options
  108   - sg_ses: handle 2 bit EIIOE field in aes dpage
  109     - increase join array size from 260 to 520 elements
  110     - add --quiet option to suppress messages
  111     - expand join handling of SAS connectors and others
  112     - expand join debug code
  113     - allow multiple --clear=, --get= and --set= options
  114     - allow individual index ranges (e.g. --index=3-5)
  115     - allow --index=IIA with -ee to enumerate only fields
  116       belonging to element type IIA
  117     - --data=@FN with --status now decodes dpage(s) in FN
  118     - add 'offset_temp' and 'rqst_override' to temperature
  119       sensor element type
  120     - add 'hw_reset' and 'sw_reset' to enclosure services
  121       controller electronics element type (18-047r1)
  122     - interpret '--join --page=aes' to only display join
  123       rows that have a corresponding AES dpage element
  124     - support NVMe attached enclosure via NVME-MI Send and
  125       Receive SES commands
  126     - decode array status diagnostic page (obsolete)
  127     - sync to ses4r01
  128   - sg_ses_microcode: add --dry-run and -ealsd options
  129   - sg_ses, sg_ses_microcode, sg_senddiag: make all access
  130     buffer page size aligned (typically page_size=4096)
  131   - sg_write_buffer: add --dry-run option
  132   - sg_luns: resync with drafts (sam6r02+spc5r10)
  133     - remove undocumented test "W" format
  134     - accept and output on request "quad dashed" format
  135   - sg_logs: fix volume statistics lpage when subpage
  136     is zero (ssc5r02a); decode mount history log parameter
  137     - add --vendor=VP and '--pdt=DT' options
  138     - decode Requested recovery, TapeAlert response, and
  139       Service buffer information lpages for tape
  140     - add min+max 'mounted' temperature and rel. humidity
  141       fields to Environmental reporting lpage (spc5r10)
  142     - add last n Inquiry/Mode_page data changed log
  143       pages (spc5r17)
  144     - add zoned block device statistics lpage (zbc2r?,
  145       16-264r4)
  146     - fixup enumeration in power condition transition
  147       log page (from H. Reinecke, Suse)
  148   - sg_inq: fix potential unbounded loop in --export
  149     - add --only to stop standard inquiry decoding also
  150       doing a serial number vpd page (0x80) fetch
  151     - update version descriptor list to 20170114
  152     - add further checks so CDROM standard inquiry response
  153       doesn't trick --inhex into thinking it's VPD pg 0x80
  154     - decode NVMe Identify controller/nsid commands
  155     - with NVMe --only restricts to a single Identify
  156       controller command
  157     - add --long which decodes more of the NVMe Identify
  158       command responses
  159   - sg_inq+sg_vpd: update Extended inquiry data vpd
  160     page (spc5r09 and 17-142r5)
  161     - block limits and block limit extension VPD pages:
  162       add extra info about corner cases
  163     - add maximum inquiry|mode_page change logs fields
  164       to extended inquiry vpd page (spc5r17)
  165     - both now return EDOM (adjusted sg error code) when
  166       requested page not in Supported VPD Pages page
  167     - add --force option to bypass checking Supported
  168       Vpd Pages page and fetch requested page directly
  169   - sg_vpd: 3 party copy VPD page improvements
  170     - fully implement Device constituents VPD page
  171     - decode some WDC/Hitachi vendor VPD pages
  172     - improve handling of unknown pages
  173   - sg_reassign+sg_write_same: fix ULONG_MAX problem
  174   - sg_rdac: add sanity checks for -f=lun value
  175   - sg_turs+sg_requests: make both accept '--num=NUM'
  176     and '--number=NUM' for mutual compatibility
  177   - sg_turs: add --low option
  178     - fix exit status when not ready in single case
  179   - sg_zone: fix debug cdb naming
  180     - add --sequentialize, --count=ZC options, zbc2r01b
  181   - sg_reset_wp add --count=ZC option, zbc2r01b
  182   - sg_persist: add --maxlen-LEN option, LEN defaults to
  183     decimal, similar to --alloc-length= which takes hex
  184     - add Replace lost reservation capable (RLR_C) bit
  185       in Report Capabilities (spc4r36)
  186   - sg_dd: add --dry-run and --verbose options
  187     - allow multiple short options (e.g. -dvv )
  188   - sgp_dd: pthread_cancel() has issues in C++ (and
  189     the Android multi-threaded library doesn't supply it)
  190     so use pthread_kill() in its place [Linux only]
  191     - add --dry-run and --verbose options
  192   - sgm_dd: add --dry-run and --verbose options
  193   - sg_opcode: add '--enumerate' and '--pdt=' options
  194     - support CDLP (command duration limit page)
  195     - support MLU, Multiple Logical Units (18-045r1)
  196     - check resid and trim response if necessary
  197     - report when --no-inquiry is ignored
  198   - sg_raw: add --enumerate option
  199     - add --cmdfile=CF option, permit 64 byte NVMe
  200       admin commands to be sent
  201     - add --raw option (for CF in binary)
  202     - page align input and output buffers
  203   - sg_get_lba_status: add --report-type= option (sbc4r12)
  204     - add support for 32 byte cdb variant (sbc4r14)
  205     - add support for --element-id= and --scan-len=
  206       options (sbc4r14)
  207     - decode response's RTP and two more provisioning
  208       statuses and the additional status (sbc4r12)
  209     - decode completion condition (sbc4r14)
  210   - sg_modes: add Out of band management control mpage
  211     - accept acronym for page/subpage codes
  212   - sg_rep_zones: expand --help option information
  213   - sg_unmap: add --all=ST,RN[,LA] option to unmap
  214     large contiguous segments of a disk/ssd
  215     - add --dry-run and --force options
  216   - sg_wr_mode: add --rtd option for RTD bit
  217   - sg_timestamp: add '--no-timestamp' option
  218     - add --elapsed and --hex options
  219   - sginfo: don't open /dev/snapshot
  220   - introduce SG3_UTILS_DSENSE environment variable
  221   - manpages and usage messages: corrections from
  222     Gris Ge via github
  223   - group_number: is 6 bit field allowing 0 to 63,
  224     code in several utilities limited it to 31, fix
  225   - convert many two valued 'int's to bool
  226   - sg_lib: add SSC maintenance in/out sa names
  227     - enhance exit status values and associated
  228       strings, add SG_LIB_OS_BASE_ERR (50)
  229     - add sg_ll_inquiry_v2(), sg_ll_inquiry_pt() and
  230       sg_simple_inquiry_pt()
  231     - add sg_ll_report_luns_pt()
  232     - add sg_ll_log_sense_v2()
  233     - add sg_ll_mode_sense10_v2()
  234     - add sg_ll_mode_select6_v2() and
  235       sg_ll_mode_select10_v2() for RTD bit
  236     - add sg_ll_receive_diag_v2()
  237     - add sg_ll_write_buffer_v2()
  238     - add sg_get_llnum_nomult()
  239     - add sg_ll_get_lba_status16()
  240     - add sg_ll_get_lba_status32()
  241     - add sg_ll_format_unit_v2()
  242     - add sg_ll_test_unit_ready_progress_pt()
  243     - add sg_ll_start_stop_unit_pt()
  244     - add sg_ll_request_sense_pt()
  245     - add sg_ll_send_diag_pt(), sg_ll_receive_diag_pt()
  246     - add sg_get_sfs_name() for spc5r11 (Feature sets)
  247     - add sg_decode_transportid_str()
  248     - add sg_msense_calc_length()
  249     - add sg_all_zeros(), sg_all_ffs()
  250     - add sg_get_sense_cmd_spec_fld()
  251     - add sg_is_scsi_cdb()
  252     - add sg_get_nvme_cmd_status_str()
  253     - add sg_nvme_status2scsi()
  254     - add sg_nvme_desc2sense()
  255     - add sg_build_sense_buffer()
  256     - add sg_get_nvme_opcode_name()
  257     - add sg_memalign() and sg_get_page_size()
  258     - add sg_is_aligned() and pr2ws()
  259     - add sg_get_big_endian(), sg_set_big_endian()
  260     - add hex2stdout(), hex2stderr() and hex2str()
  261     - add sg_convert_errno()
  262     - add sg_if_can2stdout(), sg_if_can2stderr() and
  263       sg_exit2str()
  264     - implement 'format' argument in dStrHexStr()
  265     - add read buffer(16) command mode names
  266     - add Microcode activation sense descriptor spc5r10
  267     - add SG_LIB_OK_TRUE(0) and SG_LIB_OK_FALSE(36)
  268       non "error" code defines for exit status
  269     - add SG_LIB_LBA_OUT_OF_RANGE error code
  270     - add SG_LIB_UNBOUNDED_32BIT (_16BIT and _64BIT)
  271       defines to help with decoding corner cases
  272     - identify vendor specific sense data (response
  273       code 0x7f), print contents in hex
  274   - sg_pr2serr.h: add sg_scnpr() [like lk scnprintf()]
  275   - sg_pt: add construct_scsi_pt_obj_with_fd()
  276     - add pt_device_is_nvme(), get_pt_nvme_nsid()
  277     - add check_pt_file_handle()
  278     - add get_pt_file_handle(), set_pt_file_handle()
  279     - add small SNTL to support sg_ses on NVMe
  280   - sg_lib_data: sync asc/ascq codes with T10 20170114
  281     - add write scattered (16+32) cdb names sbc4r11
  282   - sg_cmds_extra: expand sg_ll_ata_pt() to send new
  283     Ata pass-through(32) command (sat4r05)
  284   - sg_sat_identify: expand to take --len=32
  285   - sg_pt: add dummy pt_device_is_nvme()
  286   - rescan-scsi-bus.sh: harden code
  287     - fixes from Suse; bump version
  288     - bump version to 20180615
  289     - add to install list in Makefile, hope it does
  290       not clash with other package providing it
  291     - add --ignore-rev to ignore revision change
  292   - 55-scsi-sg3_id.rules: fixes from Suse
  293   - https://github.com/hreinecke/sg3_utils branch
  294     sles15 synced 20170914
  295   - move some testing utilities out of the
  296     'examples' and 'utils' directories into the new
  297     'testing' directory
  298   - add testing/sg_tst_nvme utility
  299   - clean Makefile.freebsd in examples/ and testing/
  300   - gcc 7.2 cleanups (sysmacros.h etc)
  301   - clang --analyze static checker clean ups
  302   - shellcheck cleanup on scripts
  303   - ./configure automake utility:
  304     - option --enable-debug added for testing
  305     - option --disable-linuxbsg retired, still accepted
  306       but now ignored, Linux sg v3 or v4 interface
  307       decision made at runtime
  308     - Info section now printed at end of ./configure
  309   - automake: add AM_PROG_AR to configure.ac
  310     - upgrade to version 1.15
  311     - various configure.ac and Makefile.am cleanups
  312     - add SG_LIB_ANDROID build 'define'. If defined then
  313       SG_LIB_LINUX is also defined, so test for Android
  314       before Linux if need to differentiate
  315   - update BSD license from 3 to 2 clause aka FreeBSD
  316     license (without reference to FreeBSD project)
  317   - debian: bump compat file contents from 7 to 10
  318 
  319 Changelog for sg3_utils-1.42 [20160217] [svn: r663]
  320   - sg_timestamp: new, to report or set timestamp
  321   - sg_read_attr: new, supported by tape drives
  322   - sg_stpg: fix truncation of target port field
  323   - sg_inq: cope with unicode strings, udev fixes
  324     - update version descriptor list to 20160125
  325     - '--export': new entries for UUID descriptor
  326   - sg_ses: add more field acronyms (ses3r11)
  327   - sg_logs: add Utilization lpage (sbc4r07)
  328     - add Background operation lpage
  329     - add Pending defects lpage
  330     - add LPS misalignment lpage (sbc4r10)
  331     - document '--All' ('-A') option
  332     - rework lto tape vendor lpages
  333   - sg_vpd: add Block limits extension VPD page
  334     - add Device constituents VPD page
  335     - add LB Protection VPD page (ssc ssc5r02a)
  336     - LB provisioning VPD page: expand LBPRZ, add
  337       Minimum and Threshold percentage fields
  338     - rework lto tape vendor VPD pages
  339   - sg_inq+sg_vpd+sg_xcopy: add support for locally
  340     assigned UUIDs in VPD page 0x83 (spc5r08)
  341   - sg_sanitize: add --znr option (sbc4r07)
  342   - sg_rep_zones: add --partial option (zbc-r04)
  343   - sg_format: add ffmt option (sbc4r10)
  344     - add support for FORMAT MEDIUM (for tape)
  345   - sg_raw: document length relationships
  346   - rescan-scsi-bus.sh: updates from Suse
  347   - sg_lib_data: sync asc/ascq codes with T10 20151126
  348   - sg_lib: add 'sense' categories for SCSI statuses:
  349     condition met, busy, task set full, ACA active and
  350     task aborted
  351     - add pr2serr() extern
  352     - change sg_get_sense_str() and dStrHexStr(), return
  353       chars written (returned void previously)
  354     - add sg_get_sense_descriptors_str() function
  355     - add sg_get_designation_descriptor_str() function
  356     - sg_get_desig_type_str()+sg_get_desig_assoc_str()
  357       and sg_get_desig_code_set_str() added
  358     - sg_get_opcode_sa_name() break out zoning in/out,
  359       read attribute and read position service actions
  360   - sg_cmds_extra: add sg_ll_format_unit2() for FFMT
  361   - sg_pr2serr.h: new, to shorten fprintf(stderr, ...)
  362   - sg_io_linux, sg_pt_linux: drop SUGGEST_* decoding
  363   - sg_unaligned.h: add 48 bit support and gets for
  364     variable length unsigned integers
  365     - add specializations for little and big endian
  366   - change sg_ll_*() function's 'int noisy' to bool
  367 
  368 Changelog for sg3_utils-1.41 [20150511] [svn: r644]
  369   - sg_zone: new utility for open, close and finish
  370     zone commands introduced in zbc-r02
  371   - sg_rep_zones and sg_reset_wp: change opcodes as
  372     indicated in zbc-r02
  373   - sg_read_buffer: add READ BUFFER(16) support (spc5r02)
  374   - sg_logs: add --enumerate and acronyms
  375     - allow decode from hex or binary in file
  376     - decode environmental reporting + limits lpages
  377   - sg_write_buffer: add --timeout=TO option
  378   - sg_lib interface: add sg_lib_pdt_decay(), TPROTO_PCIE
  379     plus support for zoning service actions
  380   - sg_lib: in Linux blocked devices yield ENXIO from
  381     ioctl(SG_IO), map to SG_LIB_CAT_NOT_READY
  382     - clean up sg_warnings_stream handling
  383   - sg_inq+sg_vpd: fix SCSI name string decoding in
  384     device identification VPD page (0x83)
  385     - increase sanity on Unit Serial number VPD page
  386     - improve rdac vpd page reporting (vendor)
  387   - sg_inq: improve NAA handling in dev_id VPD page
  388     - update version descriptor list to 20150126
  389   - sg_vpd: add atomic boundary values (sbc4r04)
  390     - block limits VPD page: fix unmap granularity
  391       alignment value; spc5r02 additions
  392   - sg_readcap: add support for ZBC's rc_basis field
  393   - sg_senddiag: fix bug with --raw option
  394     - add support for -HHH for output suitable for --raw
  395   - sg_ses: enclosure element: add failure and warning
  396     acronyms, fix warning indication output
  397     - additional element status dpage: add PCIe/NVMe
  398     - handle element descriptor names that count
  399       multiple trailing NULLs
  400   - rescan-scsi-bus.sh: add --issue-lip-wait option and
  401     improve error handling
  402     - improve dm-multipath handling
  403   - sg_modes: make '-HHH' output suitable as input to
  404     'sdparm --inhex='
  405   - sg_rdac: add '-6' option for mode sense/select(6)
  406     - add support for reporting more SCSI transports
  407       and accessing rdac extended mode page 0x2c
  408   - sg_write_same: cleanup, mainly man page
  409   - scsi_logging_level: replace use of tr command
  410   - examples/sg_tst_async: cleanup
  411   - examples/sg-simple_aio.c: remove
  412   - sg_lib_data: sync asc/ascq codes with T10 20150423
  413   - Makefile cleanup
  414   - autogen.sh: upgrade to buildconf 20091223 version
  415 
  416 Changelog for sg3_utils-1.40 [20141110] [svn: r620]
  417   - sg_write_verify: new utility for WRITE AND VERIFY
  418   - sg_ses_microcode: new utility
  419   - sg_sat_read_gplog: new utility
  420   - sg_senddiag: add --maxlen= option
  421   - sg_copy_results: correct response length calculations
  422   - sg_format: make '-FFF' bypass mode sense/select
  423     - add --mode=MP to supply alternate mode page,
  424       default remains read-write error recovery mpage
  425     - output unit serial number and LU name prior to
  426   - sg_inq: expand Block limits VPD page output
  427     - fix --cmddt output if not supported by device
  428     - more sanity checks on vendor supplied fields
  429   - sg_vpd: add --all option
  430     - more TPC VPD page decoding
  431     - add zoned block device characteristics page
  432     - more sanity checks on vendor supplied fields
  433   - sg_ses: fix problem with --index=sse (and ssc)
  434     - mask status element before using as control
  435     - defeat previous item with --mask (ignore) option
  436     - SAS connector status element: add overcurrent bit
  437     - handle element descriptor names that count a
  438       trailing NULL
  439     - add --warn option mainly for broken joins
  440     - add optional descriptions to -ee output
  441     - sync with ses3r07
  442   - sg_sanitize: add --desc and --zero options
  443     - output unit serial number and LU name prior to
  444   - sg_rep_zones: corrections, sync with zbc-r01c
  445   - sg_persist: split help into two pages, '-hh' for 2nd
  446   - sg_logs: refine tape drive output
  447   - sg_raw: with -vvv decode T10 CDB name
  448     - do not output/print data-in if error
  449   - sg_opcodes: add --compact field
  450   - sg_senddiag: add --page=PG option
  451   - sg_reset: add words for EAGAIN from reset ioctl
  452   - sg_sat_*: mention t_type and multiple_count fields
  453   - win32: sg_scan: handle larger configurations
  454   - sg_lib: trim trailing spaces in dStrHex() and friends
  455   - sg_lib_data: sync asc/ascq codes with T10 20140924
  456     - clean up service action string functions
  457     - sg_ll_unmap_v2(): fix group number
  458     - sg_ll_inquiry(), sg_ll_mode_sense*(),
  459       sg_ll_log_sense(): use resid to clear unfilled
  460       data-in buffer
  461   - sg_unaligned.h: add header for building parameters
  462   - examples/sg_tst_async: new Linux sg test utility
  463 
  464 Changelog for sg3_utils-1.39 [20140612] [svn: r588]
  465   - sg_rep_zones: new utility for ZBC REPORT ZONES
  466   - sg_reset_wp: new utility, ZBC RESET WRITE POINTER
  467   - sg_ses: add --eiioe=auto|force option
  468     - fix AES dpage element indexing problems
  469     - add --readonly option
  470   - sg_write_buffer: add --bpw=CS option to call
  471     write buffer multiple times for big blobs
  472   - sg_format: add --ip_def option to fully provision
  473   - sg_opcodes: add --mask option
  474   - sg_logs: add --in=FN option for log select params
  475     - add --filter=PARC (parameter code)
  476     - add --no_inq for suppress initial INQUIRY call
  477     - add --readonly option
  478   - sg_persist: add --readonly option, environment
  479     variable SG_PERSIST_IN_RDONLY sets ro on prin cmds
  480   - sg_inq: sync version descriptors dated 20105176
  481     - suppress dev-id VPD messages so they only appear
  482       when --verbose is given
  483     - add new SCSI_IDENT_*_ATA pair to --export output
  484   - sg_luns: add decoding for conglomerate LUNS
  485     - add --lu_cong option to simulate the LU_CONG bit
  486   - sg_vpd: add --vendor=VP option, re-order vendor
  487     specific pages, split lto into lto5 and lto6
  488     - add Supported block lengths and protection types
  489       page (sbc4r01)
  490     - add Block device characteristics extension
  491       page (sbc4r02)
  492   - sg_copy_results, sg_get_lba_status, sg_luns,
  493     sg_read_buffer, sg_readcap, sg_referrals, sg_rtpg,
  494     sg_sat_set_features, sg_sat_identify:
  495     add --readonly option
  496   - sginfo: strip trailing spaces from INQUIRY text
  497   - sg_rbuf: add --echo option (to use echo buffer)
  498   - sg_lib: add sanitize command service action names
  499     - add 'sense' categories for reservation conflict,
  500       data protect and protection information violations
  501     - add sg_get_category_sense_str() to API
  502     - change struct sg_simple_inquiry_resp::rmb to byte_1
  503     - add initial zbc service actions
  504     - dStrHex(Err): fix output truncation error
  505     - linux, sg: support SCSI_PT_FLAGS_QUEUE_AT_TAIL and
  506       SCSI_PT_FLAGS_QUEUE_AT_HEAD (block layer queueing)
  507   - sg_lib_data: sync asc/ascq codes with T10 20140516
  508     - sync operation code with T10 20140515
  509     - add id string for SPC-5
  510   - scripts/59-scsi-sg3_utils.rules: removed
  511     - functionality split into two scripts:
  512       55-scsi-sg3_id.rules + 58-scsi-sg3_symlink.rules
  513   - examples/sg_persist_tst.sh: add --exclusive option
  514   - win32: sg_scan, sg_ses and sg_log fixes
  515   - examples/sgq_dd: re-add old utility as example
  516 
  517 Changelog for sg3_utils-1.38 [20140401] [svn: r563]
  518   - sg_ses: add --dev-slot-num= and --sas-addr=
  519     - fix --data=- problem with large buffers
  520     - new --data=@FN to read hex data from file FN
  521     - error and warning message cleanup
  522     - add --maxlen= option
  523   - sg_inq: add --block=0|1 option to control opens
  524     - add --inhex=FN to read response in ASCII hex from
  525       a file; --inhex=FN --raw reads response in binary
  526     - make -HHH (-HHHH for '-p ai') output suitable for
  527       another sg_inq invocation to use --inhex to decode
  528     - add LU_CONG to standard inquiry response output
  529     - decode ASCII information VPD pages
  530     - add HAW_ZBC in block dev char. VPD page (sbc4r01)
  531     - sync version descriptors dated 20131126
  532     - allow --page=-1 to force std INQUIRY decoding
  533     - fix overflow in encode_whitespaces
  534     - improve unit serial number display (VPD page 0x80)
  535   - sg_vpd: add LU_CONG to standard inquiry response output
  536     - add --inhex=FN to read response in ASCII hex from
  537       a file; --inhex=FN --raw reads response in binary
  538     - decode Third Party Copy (tpc) page
  539     - add HAW_ZBC in block dev char. VPD page (sbc4r01)
  540     - add LTO and DDS vendor pages
  541     - allow --page=num to restrict --enumerate output
  542   - sg_persist: add PROUT: Replace Lost Reservation (spc4r36)
  543     - add --transport-id= for SOP: 'sop,<routing_id_in_hex>'
  544   - sg_readcap: for --16 show physical block size if
  545     different from logical block size
  546   - sg_xcopy: environment variables: XCOPY_TO_SRC and
  547     XCOPY_TO_DST indicate where xcopy command is sent
  548     - change default to send xcopy to dst (was src)
  549     - improve CL handling of short options (e.g. '-vv')
  550   - sg_luns: guard against garbage response
  551   - sg_decode_sense: with --nospace ignore spaces on
  552     command line, so multiple arguments are concatenated
  553   - sg_write_same: repeat if unit attention
  554   - sg_rtpg: fix indexing bug with --extended option
  555   - sg_logs: placeholder for pending defects lpage
  556   - sg_unmap: fix another problem with --grpnum= option
  557   - sg_lib.h: add PDT_ZBC define (spc4r36p)
  558   - sg_lib_data: sync asc/ascq codes with T10 dated 20140320
  559     - add pdt string for ZBC (spc4r36p)
  560   - sg_lib: extensions to sg_get_num() and sg_get_llnum()
  561   - sg_cmds_extra: fix sa bug in sg_ll_3party_copy_out()
  562   - scripts/rescan-scsi-bus.sh: check if FC driver exports
  563     issue_lip before using it
  564     - man page added (Linux only)
  565   - scripts/59-scsi-sg3_utils.rules: linux specific udev rules
  566   - examples: add sg_tst_excl3 for testing O_EXCL
  567     - improve sg_tst_excl and sg_tst_excl2
  568     - add sg_tst_context for testing file handle contexts
  569   - upgrade automake to version 1.13.3
  570   - add suse directory and 'spec' file to facilitate builds
  571 
  572 Changelog for sg3_utils-1.37 [20131014] [svn: r522]
  573   - sg_compare_and_write: fix wrprotect setting
  574     - add --quiet option to suppress miscompare report
  575     - merge features from another implementation
  576   - sg_inq: fix referrals VPD page
  577     - dev_id VPD: T10 vendor id designator clean up
  578   - sg_logs: improve for tape drives, general cleanup
  579   - sg_persist: fix core dump on -Q option
  580   - sg_unmap: fix core dump on -g option
  581   - sg_vpd: dev_id VPD: T10 vendor id designator clean up
  582     - cleanup up dev_id NAA-3: locally assigned
  583   - sg_ses: add --nickname and --nickid options
  584     - eiioe added to additional element status page (ses3r6)
  585     - multiple --filter options to prune output
  586   - sg_verify: improve miscompare handling
  587     - rename --btychk=ndo option to --ndo=ndo (hide former)
  588     - add --quiet option
  589   - sg_xcopy: allow sg and bsg devices
  590     - fix for bpt going negative
  591     - limit each XCOPY(LID1) command to 65535 blocks
  592     - fix for seek in multi-segment copies
  593   - sg_sanitize: skip 15 second safety delay with --fail
  594   - sg_libs: extended copy opcode renamed (spc4r34)
  595     - sg_ll_receive_copy_results(): expand for all sa_s
  596     - add sg_get_sense_key()
  597     - add sg_ll_3party_copy_out()
  598     - add dStrHexErr(): ascii hex to stderr
  599     - add dStrHexStr(): ascii hex to string
  600     - add SG_LIB_CAT_MISCOMPARE to categories
  601     - clean header files
  602   - sg_pt_freebsd: sanity check on sense_resid; fix leaks
  603   - scripts/rescan-scsi-bus.sh KG's v1.57 + HR patch
  604     - improve wlun handling, detect updated and resized
  605       devices, better multipath support
  606   - Makefile.am cleanup
  607   - examples: add sg_tst_excl and sg_tst_excl2
  608 
  609 Changelog for sg3_utils-1.36 [20130531] [svn: r497]
  610   - sg_vpd: Protocol-specific port information VPD page
  611     for SAS SSP, persistent connection (spl3r2), power
  612     disable (spl3r3)
  613     - block device characteristics: add FUAB bit
  614   - sg_xcopy: handle more descriptor types; handle zero
  615     maximum segment length; allow list IDs to be disabled;
  616     improve skip/seek handling; allow xcopy on destination
  617   - sg_reset: and --no-esc option to stop reset escalation
  618     - clean up cli, add long option names
  619   - sg_luns: add --test=ALUN option for decoding LUNs
  620     - decoded luns output in decimal or hex (if -HH given)
  621     - add '--linux' option to show Linux LUN after T10
  622       representation, can map one to the other
  623   - sg_inq: add --vendor option to show standard inquiry's
  624     vendor specific fields in ASCII
  625     - take resid into account with response output
  626   - sg_sync: add --16 (for 16 byte command) and --timeout=
  627   - sg_logs: add data compression page (ssc4)
  628   - sg_sat_set_features: increase --lba from 1 to 4 bytes
  629   - sg_write_same: add --ndob option (sbc3r35d)
  630   - sg_map: mark as deprecated
  631   - sginfo: mark as deprecated, especially -l (list)
  632   - sg_lib: improve snprintf handling
  633   - sg_lib_data: sync asc/ascq codes with T10 20130117
  634   - sg_cmds (lib): if noisy given, give more UA info
  635   - make code more C++ friendly
  636 
  637 Changelog for sg3_utils-1.35 [20130117] [svn: r476]
  638   - sg_compare_and_write: new utility
  639   - sg_inq+sg_vpd: block device characteristics VPD page:
  640     add product_type, WABEREQ, WACEREQ and VBULS fields
  641   - sg_inq: more --export option changes for udev
  642   - sg_vpd: add more rdac vendor specific vpd pages
  643   - sg_verify: add --ebytchk option for sbc3r34 changes
  644   - sg_stpg: --offline option: fix 'Invalid state 0xe'
  645   - sg_ses: Door Lock element changed to Door element and
  646     abbreviation changed from 'dl' to 'do' (ses3r05)
  647   - archive/rescan-scsi-bus.sh: upgrade to version 1.53hr
  648     - move rescan-scsi-bus.sh to scripts directory
  649   - sync to sbc3r34
  650   - sg_lib: sg_ll_verify10+16 expand BYTCHK to 2 bit field
  651   - sg_pt_win32, sg_scan(win32): changes for cygwin 1.7.17
  652   - clean up man page summary lines
  653 
  654 Changelog for sg3_utils-1.34 [20121013] [svn: r461]
  655   - sg_xcopy: new dd like utility for extended copy command
  656   - sg_copy_results: new utility for receive copy results
  657   - sg_verify: add 16 byte cdb, bytchk (data-out buffer)
  658     and group number support
  659   - sync to spc4r36 and sbc3r32
  660   - sg_inq: add --export so sg_inq can replace udev's scsi_id
  661     - decode old EMC Symmetrix abuse of VPD page 0x83
  662   - sg_vpd: decode old EMC Symmetrix abuse of VPD page 0x83
  663   - sg_ses: increase max dpage response size to 64 KB
  664     - allow ident,locate on enclosure controller
  665     - more sanity for additional element status descriptor
  666   - sg_sanitize: add --ause, --fail and --test=
  667   - sg_luns: add long extended flat space addressing format
  668   - sg_logs: add ATA pass-through results lpage (SAT-2)
  669   - sg_rtpg: add --extended option
  670   - sg_senddiag: list rebuild assist diag page name
  671   - sg_pt_linux: expand DID_ (host_byte) codes
  672     - cope with a transport error plus sense data
  673     - prefer major() over MAJOR() macro
  674   - sg_lib: fix sg_get_command_name() service actions
  675     - report sdat_ovfl bit (if set) in sense data
  676     - decode extended_copy and receive_copy service actions
  677     - decode read_buffer and write_buffer modes
  678     - decode ATA PT fixed format sense (SAT-2)
  679   - sg_cmds_extra: add sg_ll_report_tgt_prt_grp2()
  680   - ./configure options:
  681     - change --enable-no-linux-bsg to --disable-linuxbsg
  682     - add --disable-scsistrings to reduce utility sizes
  683 
  684 Changelog for sg3_utils-1.33 [20120118] [svn: r435]
  685   - sg_ses: major rework of indexes (again), now two level
  686   - sg_write_buffer: new --specific option for mode specific
  687     field; new mode 13 (spc4r32)
  688   - sg_vpd: add hp3par volume info vendor VPD page
  689     - fix 'scsi ports' [0x88] page problem
  690     - add 'sinq' pseudo page for standard inquiry response
  691     - add power consumption page
  692   - sg_format: add --poll= option for request sense polling
  693     - improve handling of disks > 2 TB and DIF (protection)
  694   - sg_logs: LB provision lpage extra (sbc3r28)
  695   - sg_modes: application tag mpage subcode 0xf0->0x2
  696   - sg_write_same: no prot fields when wrprotect=0
  697   - sg_get_lba_status: reflect change in sbc3r25 to Parameter
  698     Data Length response field (offset reduced from 8 to 4)
  699   - sg_inq, sg_vpd: sync with spc4r33
  700   - win32: change DataBufferOffset type per MSDN; caused
  701     problem with 64 bit machines (with buffered interface)
  702   - sg_luns: tweak documentation for vendor specific reports
  703   - add man pages for scsi_loging_level, scsi_mandat,
  704     scsi_satl and scsi_temperature
  705 
  706 Changelog for sg3_utils-1.32 [20110730] [svn: r410]
  707   - sg_sanitize: new utility for command added in sb3r27
  708   - sg_sat_identify: add '--ident' to output WWN
  709   - sg_ses: major rework of descriptor output
  710     - add --index, --descriptor, --join, --clear, --get,
  711       and --set options
  712   - sg_raw: exit status corrections
  713   - sg_decode_sense: add --nospace and --hex options
  714   - sg_logs: fix bug with large --maxlen
  715     - zero response length when resid implies it is invalid
  716     - add scope field to lb provisioning lpage (sb3r27)
  717   - sg_inq: sync version descriptors with spc4r31
  718   - sg_lib_data: sync asc/ascq codes with spc4r31
  719   - sg_vpd: add LBPRZ field in LB provisioning VPD page
  720   - sg_format: allow format of pdt 7 (some MO drives)
  721   - sg_cmds_basic: sg_cmds_process_resp() handle status good
  722     with a sense key other than no_sense (e.g. completed)
  723   - add README.iscsi
  724 
  725 Changelog for sg3_utils-1.31 [20110216] [svn: r386]
  726   - sg_decode_sense: new utility to decode sense data
  727   - sg_vpd: LB provisioning + Block limits pages (sbc3r26)
  728   - sync asc/ascq and version descriptors with spc4r28
  729   - sg_get_config, sg_rmsn, sg_verify: add --readonly option
  730   - sg_lib: implement forwarded sense data descriptor
  731     - decode user data segment referral sense data descriptor
  732   - sg_lib, sg_turs, sg_format: more precision for progress
  733     indication (two places after decimal point)
  734   - sg_lib(win32): add runtime selection of SPT direct or
  735     indirect interface
  736     - sg_read_buffer+sg_write_buffer: set SPT direct
  737   - add examples/forwarded_sense.txt + examples/ref_sense.txt
  738 
  739 Changelog for sg3_utils-1.30 [20101111] [svn: r363]
  740   - sg_referrals: new utility for REPORT REFERRALS
  741   - sbc3r25 renames 'thin' provisioning' to 'logical block
  742     provisioning': changes in sg_format, sg_inq, sg_logs,
  743     sg_modes, sg_readcap, sg_vpd
  744   - sg_inq: update version descriptor list to spc4r27
  745     - extended inquiry vpd page add extended self test
  746       completion minutes field
  747   - sg_lib: sync asc/ascq list to spc4r27
  748     - dStrHex(): trim excess trailing spaces
  749   - sg_read_long: add --readonly option (open() is rw)
  750   - sg_raw: add --readonly option (open() is rw)
  751     - allow bidirectional commands
  752   - sg_vpd: rdac vendor page [0xc8] parse corrections
  753     - extended inquiry vpd page add extended self test
  754       completion minutes field
  755   - sg_ses: expand --data (in) buffer to 2048 bytes
  756   - sg_opcodes: add extended parameter data for TMFs (spc4r26)
  757   - sg_dd: clean count calculation, document nocache flag
  758     - treat bsg devices as implicit sg_io
  759     - add more conversions
  760   - sg_write_same: if READ CAPACITY(16) fails try 10 byte variant
  761     - anticipate approval of proposal to allow UNMAP and ANCHOR
  762       bits to be set on WRITE SAME(10) with '--10' option
  763   - sg3_utils man page: sections added for OS device names
  764 
  765 Changelog for sg3_utils-1.29 [20100406] [svn: r334]
  766   - sg_rtpg: new logical block dependent state and bit (spc4r23)
  767   - sg_start: add '--readonly' option for ATA disks
  768   - sg_lib: update asc/ascq list to spc4r23
  769   - sg_inq: update version descriptor list to spc4r23
  770   - sg_vpd: block device characteristics page: fix form factor
  771     - update Extended Inquiry VPD page to spc4r23
  772     - update Block Limits VPD page to sbc3r22
  773     - update Thin Provisioning VPD page to sbc3r22
  774     - Automation device serial number and Data transfer device
  775       element VPD pages (ssc4r01)
  776     - add Referrals VPD page (sbc3r22)
  777   - sg_logs: add thin provisioning and solid state media log pages
  778     - addition of IBM LTO specific log pages
  779   - sg_modes: new page names from ssc4r01
  780   - sg_ses: sync with ses3r02 (SAS-2.1 connector types)
  781   - sg_unmap: add '--anchor' option (sbc3r22)
  782   - sg_write_same: add '--anchor' option (sbc3r22)
  783   - sg_pt interface: add set_scsi_pt_flags() to permit passing
  784     through SCSI_PT_FLAGS_QUEUE_AT_TAIL and AT_HEAD flags
  785   - add examples/sg_queue_tst+bsg_queue_tst for SG_FLAG_Q_AT_TAIL
  786   - add AM_MAINTAINER_MODE to configure.ac to lessen build issues
  787   - add BSD_LICENSE file to this and lib directories, refer to
  788     it from source and header files. Some source has GPL license
  789 
  790 Changelog for sg3_utils-1.28 [20091002] [svn: r315]
  791   - sg_unmap: new utility for thin provisioning
  792     - add examples/sg_unmap_example.txt
  793   - sg_get_lba_status: new utility for thin provisioning
  794   - sg_read_block_limits: new utility for tape drives
  795   - sg_logs: add cache memory statistics log (sub)page
  796   - sg_vpd, sg_inq: extend Block limits VPD page (sbc3r19)
  797   - sg_vpd: add Thin provisioning VPD page (sbc3r20) and
  798             TapeAlert supported flags VPD page
  799   - sg_inq: note VPD page support better in sg_vpd
  800   - sg_persist: add transport specific transportID format
  801     - allow transportIDs to be read from named file
  802   - sg_opcodes: allow --opcode= option to take OP and SA
  803     values (comma separated)
  804     - tweak print format, remove test code
  805   - sg_requests: remove test code in progress calculation
  806   - sg_reset: add target reset option
  807   - sg_luns: reduce default maxlen to 8192 (for FreeBSD)
  808   - sg_raw: extend max cdb length from 16 to 256 bytes
  809     - align heap allocs to page boundaries
  810   - sg_lib: sg_set_binary_mode() needs config.h included
  811     - add progress indication sense data descriptor (0xa)
  812     - change SG3_UTILS_* constants to SG_LIB_*
  813     - decode service actions within persistent reserve in/out
  814     - sync with spc4r21
  815   - sg_cmds_extra: add sg_ll_unmap() and sg_ll_get_lba_status()
  816   - sg_pt_linux: fix check condition but empty sense buffer; occurred
  817     when sg v3 node used and /usr/include/linux/bsg.h visible
  818     - major() macro grief, if present include <linux/kdev_t.h> and
  819       use MAJOR() instead
  820   - scripts/sas_disk_blink: moved from this package to sdparm
  821   - utils/hxascdmp: in Windows set binary mode on read files
  822   - examples/sg_persist_tst.sh: add PRIN read full status command
  823   - sg_raw,sg_write_buffer,sg_write_long,sg_write_same: in Windows
  824     set binary mode on read files
  825   - sg_pt_win32: default to non-direct variant of SPT interface
  826     - use './configure --enable-win32-spt-direct' to override
  827     - non-direct data length set to 16 KB, extended if required
  828   - debian: incorporate patch from debian sid
  829 
  830 Changelog for sg3_utils-1.27 [20090411] [svn: r250]
  831   - sg_write_same: new utility: 10, 16 and 32 byte cdb variants
  832   - sg_inq: sync version descriptors with spc4r18
  833     - add power condition VPD page
  834     - expand block limits VPD page (sbc3r18)
  835   - sg_vpd: add power condition VPD page
  836     - expand block limits VPD page (sbc3r18)
  837   - sg_map26: fix for lk 2.6.26 when CONFIG_SYSFS_DEPRECATED_V2
  838     is not defined
  839     - output cdb when verbose option given
  840     - correct tape minors >= 32
  841   - sg_dd: flock flag (does LOCK_EX|LOCK_NB)
  842     - switch open on input for sg device nodes: first open
  843       read-write and if that fails try opening read-only
  844     - experiment with of2=OFILE2; add conv=sparse
  845     - use posix_fadvise() to defeat caching of normal+block files
  846       when new 'nocache' flag given
  847     - sg_dd copied to own package called ddpt
  848   - sg_dd, sgm_dd, sgp_dd: accept 'count=-1' for calculate count,
  849     accept '-V' for version string
  850   - sg_get_config: add OSSC feature [mmc6r02]
  851   - sg_modes: add ATA power condition mode page
  852   - sg_logs: protocol specific (SAS) lpage sync to sas2r15
  853     - power condition transitions lpage (added in spc4r18)
  854     - extra parameters for start-stop cycle counter lpage
  855   - sg_format: add '--fmtpinfo=' and '--pie=' options (sbc3r18)
  856   - sg_readcap: more protection + thin provisioning (sbc3r18)
  857     - add a '--16' option for 16 byte cdb version
  858   - sg_persist: code clean up
  859     - allow '--transport-id=' argument to use space as separator
  860     - add '--alloc-length=' argument
  861   - sg_scan: (win32) new format, scsi adapter scan optional
  862   - sginfo: fix crash when 1024 sg device nodes (or more)
  863   - sg_ses: allow '--data=' argument to use space as separator
  864   - sg_senddiag: allow '--raw=' argument to use space as separator
  865   - sg_reassign: allow '--address=' argument to use space as
  866     separator
  867   - sg_wr_mode: allow '--contents=' and '--mask=' arguments to
  868     use space as separator
  869   - sg3_utils.spec: correction to configure call
  870   - sg_pt: add scsi_pt_open_device_flags() call
  871     - add scsi_pt_version() and clear_scsi_pt_obj() calls
  872     - clear os_err at start of do_scsi_pt()
  873     - add linux bsg support via runtime detection
  874   - sg_cmds: add sg_cmds_open_device_flags()
  875   - sg_cmds_extra: sg_ll_format_unit: remove rto_req argument,
  876     the expanded fmtpinfo argument subsumes it.
  877   - clearer split between Linux and Windows only code and doc
  878   - automake tools: change to what Ubuntu 8.10 provides
  879     - Ubuntu 8.10 libtool problems -> Debian 4.0
  880 
  881 Changelog for sg3_utils-1.26 [20080625] [svn: r183]
  882   - sg_sat_phy_event: new utility; copied from examples
  883     directory and enhanced, rename original to sg__sat_phy_event
  884   - sg_ses: sync with ses2r19b, many nomenclature changes
  885   - sg_get_config: sync with mmc6r01
  886     - allow Microcode upgrade and DVD read feature descriptors
  887       to be 4 bytes long
  888     - add '--raw' option
  889   - sg_verify: add --vrprotect= option
  890   - sg_vpd: add nominal form factor to block dev. char. VPD page
  891     - add --maxlen= option to set allocation length in cdb
  892   - sg_inq: add --maxlen= option that does same as --len=
  893     - move version descriptors (spc4r15) to sg_inq_data.c file
  894   - sg_inq+sg_vpd: logic for "NAA-3 Locally assigned" identifier
  895     - update extended inquiry VPD page
  896   - sg_modes: add --maxlen= option to specify allocation length
  897   - sg_start: add '--noflush' and '--mod=PC_MOD' options (sbc3r14)
  898   - sg_request: add a '--progress' option (similar to sg_turs)
  899     - add --maxlen= option to set allocation length in cdb
  900   - sg_luns: add --maxlen= option to specify allocation length
  901   - sg_dd: improve MMC handling of 'illegal mode for this track'
  902     read errors (with ILI and info field)
  903   - sg_dd, sgm_dd, sgp_dd, sginfo, sg_rbuf, sg_read: replace
  904     "%lld" and friends with PRI macros
  905   - sg_opcodes: tmf name change in spc4r15 (async event)
  906   - sg_turs: add more to man page about '--progress' indication
  907   - sg_write_long: add examples section to man page
  908   - '--raw' option: modify utilities that can send binary output
  909     to call sg_set_binary_mode(). For MingGW port CR problem.
  910   - sg_lib: update asc/ascq and command name strings to spc4r15
  911     - split sg_lib into sg_lib_data.[hc] and sg_lib.[hc]
  912     - split sg_cmds_extra into sg_cmds_extra and sg_cmds_mmc
  913     - add osd2r03 service actions (all different from osd-r10)
  914     - add sg_get_trans_proto_str()
  915     - add sg_get_sense_filemark_eom_ili() function (MMC uses ILI)
  916     - add sense key specific unit attention condition queue
  917       overflow decoding (added in spc4r13)
  918     - add sg_set_text_mode() and sg_set_binary_mode() functions
  919       for non-Unix OSes
  920   - sg_cmds_mmc: add sg_ll_set_streaming() function
  921   - sg_cmds_extra: add vrprotect argument to sg_ll_verify10()
  922     - add sg_ll_get_performance() and sg_ll_set_cd_speed()
  923   - change 'long long' to int64_t and 'unsigned long long' to
  924     uint64_t to stress that 64 bit integer wanted, not larger
  925   - audit of dangerous 'u64 = uch[24] << 24' code, replace most
  926     'unsigned long's
  927   - multiple documentation corrections provided by Dan Horak
  928   - win32/MinGW: define SG3_UTILS_MINGW when detected
  929   - remove archive/pre_configure subdirectory
  930   - move sg_io_linux.c into the lib subdirectory
  931   - utils/hxascdmp: add hxascdmp(1) man page
  932   - switch primary build to ubuntu environment, rename
  933     library to libsgutils2 to avoid clash
  934 
  935 Changelog for sg3_utils-1.25 [20071016] [svn: r115]
  936   - sg_stpg: new utility to Set Target Port Groups
  937   - sg_safte: new utility to query SAF-TE processor (SES like)
  938   - sg_sat_set_features: new utility (actually copied from examples
  939     directory); renamed examples version to: sg__sat_set_features
  940   - sg_read_buffer: restore (had fallen out of build scripts)
  941   - sg_dd: add oflag=sparse to step over bs*bpt number of zeros;
  942     - with oflag=sparse, write last bs*bpt segment at end or after
  943       error so file length of OFILE is appropriate
  944     - when coe>1 then SCSI READ LONG logic remembers extended block
  945       length of first encountered error
  946   - sg_dd, sgm_dd, sgp_dd: allow iflag=null and oflag=null both of
  947     which do nothing (placeholders)
  948   - sg_ses: sync with ses2r17 then r18
  949   - sg_vpd, sg_inq: add block device characteristics VPD page
  950   - sg_inq: add '--vpd' option (or '-e') for backward compatibility
  951   - sg_vpd: decode protocol specific lu information page for SAS
  952     - add more RDAC vendor VPD pages
  953   - sg_logs: update background scan results log page, sbc3r11
  954     - add generation code to protocol specific page for SAS SSP
  955     - add media changer diagnostic data log page
  956   - sg_raw: fix error message when do_scsi_pt() fails
  957   - sg_lib: sync asc/ascq codes with spc4r11
  958     - add sg_get_num_nomult()
  959     - add TPROTO_* protocol identifier constants to sg_lib.h
  960   - sg_cmds_extra: add sg_ll_set_tgt_prt_grp()
  961   - place source in subversion repository
  962   - split code into src/ lib/ and include/ directories
  963   - sync debian directory with their 1.24 version (sid unstable)
  964   - convert build logic to use autotools (i.e. './configure ; make')
  965     - rename this file from CHANGELOG to ChangeLog
  966     - note: only code in lib/ and src/ directories built by
  967       autotools; some other subdirectories still use hand-crafted
  968       Makefiles
  969 
  970 Changelog for sg3_utils-1.24 [20070507] [svn: r77]
  971   - sg_raw: new utility to send arbirary SCSI commands
  972   - sg_luns: increase number of luns that can be fetched
  973     - fix length of raw and hex output
  974     - add '--quiet' option to output only ASCII hex
  975       representation of each lun
  976   - sg_rtpg: update for changes in spc4r09
  977   - sg_persist: update documentation, spc-4 references
  978     - fix exit status values
  979   - sg_inq: update version descriptors per spc4r09
  980     - fix '--id' and '--extended'
  981     - extend block limits VPD page (sbc3r09)
  982   - sg_vpd: extend block limits VPD page (sbc3r09)
  983     - append relative target port identifier to SAS target
  984       port address with '-iq' option
  985   - sg_logs: add decoding for stats+performance log pages
  986     - fix showing of page names for pdt > 0
  987     - implement '-HH' for single and all pages, fix '-r'
  988     - when '--maxlen=' given, only do single fetch
  989     - add Tape Alert (ssc), Media and Element statistics (smc) pages
  990     - add '--brief' option
  991   - sg_ses: sync with ses2r16
  992     - fix bay number for SAS
  993   - sg_format: add '--dcrt' and '--security' options
  994   - sgm_dd: add 'smmap' oflag for shared_mmap_io testing
  995     - add 'dio' oflag
  996   - sg_dd, sgp_dd: add 'dio' iflag and oflag
  997   - sg_modes: change SAS mode page names per sas2r09
  998     - check validity of block descriptors length
  999   - sg_pt: change opaque context object from 'void *'
 1000     to 'struct sg_pt_base *'
 1001   - sg_opcodes: anticipate extra tmfs from 07-159r0
 1002   - sg_sat_set_features: add more usage information
 1003     - add man page
 1004   - sg_sat_phy_event: add to examples directory
 1005   - sg_lib: sync asc/ascq codes with spc4r10
 1006   - Solaris port: using uscsi interface
 1007   - various .html files removed from doc directory
 1008 
 1009 Changelog for sg3_utils-1.23 [20070131] [svn: 75]
 1010   - sg_read_buffer: new utility
 1011   - sg_write_buffer: new utility
 1012   - sg_opcodes, sg_senddiag, sg_logs, sg_modes, sg_start, sg_inq,
 1013     sg_turs, sg_readcap, sg_rbuf: add getopt_long() based cli;
 1014     old and new cli selectable, new getopt_long cli is default
 1015   - scripts: new subdirectory containing some bash scripts
 1016     - add scripts/README file
 1017   - sg_reassign: add '--hex' option for grown and primary lists
 1018   - sg_rtpg: add '--raw' option
 1019   - sg_lib.h, sg_cmds_basic.h + sg_cmds_extra.h: add C++
 1020     'extern "C" ' wrappers
 1021     - cleanup C code so it will compile as C++
 1022   - sg_lib: sync with spc4r08
 1023     - include <inttypes.h>, use PRId64 instead of %lld form
 1024     - fix sg_get_sense_str() when empty sense buffer
 1025   - win32 port: add Makefile.mingw + related support for MinGW
 1026   - sg_cmds_extra: add sg_ll_read_buffer() and sg_ll_write_buffer()
 1027   - sg_dd, sgp_dd, sgm_dd, sg_read: use lseek64() instead of llseek.c
 1028   - sgm_dd: accept coe=<n> for interworking with sg_dd
 1029   - sg_rdac: fix on non-linux ports
 1030   - sg_ses: fix spurious warning in additional element status page
 1031     - '-rr' option outputs a diagnostic page in binary to stdout
 1032   - sg_opcodes: add command timeout descriptor support (spc4r08)
 1033     - change linux specific pass through to generic pass through
 1034   - sg_logs: add 'name=value' decoding for SAS specific lpage
 1035   - examples+utils subdirectories: remove symlinks
 1036   - synchronize man pages with usage messages
 1037   - sg3_utils.spec: rework
 1038 
 1039 Changelog for sg3_utils-1.22 [20061016] [svn: 72]
 1040   - sgp_dd: accept verbose=<n> as well as deb=<n> to ease
 1041     interworking with sg_dd and sgm_dd
 1042   - sg_sat_set_features: added to examples directory
 1043   - sg_lib: sync asc/ascq text with spc4r06
 1044     - move SG_LIB_CAT_NO_SENSE and SG_LIB_CAT_RECOVERED to
 1045       20 and 21 respectively; add SG_LIB_CAT_ABORTED_COMMAND
 1046       at 11 (its sense key value)
 1047   - sg_vpd: tweak '--page=sp --quiet' output
 1048     - change '-HHH' so same as '-rr' (prepares ATA Information
 1049       (ai) response for hdparm)
 1050   - sg_requests: add '-s' option to set exit status from
 1051     parameter data
 1052   - sg_modes: exit quickly from '-e' if device not ready
 1053   - sg_logs: sync sas log pages with sas2r05a
 1054     - expand background scan results log page
 1055     - add '-m=<max_len>' to limit response length
 1056     - drop '-scum' and '-sthr' options and add '-select'
 1057   - sg_write_long: add '--16' option to send 16 byte cdb
 1058     - add '--wr_uncor' and '--pblock' options
 1059   - sg_senddiag: cleanup and add sdiag_sas_p1_stop.txt
 1060     to examples directory
 1061   - sg_format: add '--cmplst=<n>' option (default: 1)
 1062     - add '--pfu=<n>' option
 1063     - expand man page to discuss P/D/C/GLISTs
 1064   - sg_reassign: add '--primary' option to fetch primary
 1065     defect list (PLIST) length
 1066   - sg_readcap: add '-H' option to output response in hex
 1067     and '-r' to output response in binary to stdout
 1068     - add logical blocks per physical block (sbc3r07)
 1069   - sginfo: add PLIST and GLIST designation to defect lists
 1070   - sg_cmds: split this support file into sg_cmds_basic.[hc]
 1071     and sg_cmds_extra.[hc]
 1072     - add sg_ll_ata_pt() (SATL ATA pass) to sg_cmds_extra.[hc]
 1073   - sg_rdac: fix includes for FreeBSD
 1074   - sg_dd: add 'coe_limit=' option to exit after <n>
 1075     consecutive 'coe' type read errors
 1076   - sgm_dd: print out throughput information when signal arrives
 1077     if time=1 (like sg_dd does already)
 1078   - sg_inq: change '-HHH' so same as '-rr'. Now sg_inq, sg_vpd
 1079     and sdparm output for hdparm with '-HHH'
 1080     -add '-l=<resp_len>' option
 1081   - sg_read_long: add '--pblock' option for physical blocks
 1082   - sg_luns: add '--hex' and '--raw' options
 1083   - sg_requests: add '--hex' and '--raw' options
 1084   - sg_scan: windows version added (was previously linux only)
 1085     - 2 man pages: sg_scan.8l and sg_scan.8w that are installed
 1086       as sg_scan.8
 1087   - archive directory: removed all but rescan-scsi-bus.sh
 1088       - README points to previous version in that directory
 1089   - sg_sat_identify: add to main directory
 1090       - rename earlier version to examples/sg__sat_identify.c
 1091   - sg_ident: rework as spc4r07 changed command names and
 1092     expanded functionality
 1093 
 1094 Changelog for sg3_utils-1.21 [20060706] [svn: 70]
 1095   - sg_vpd: new utility for decoding VPD pages. sg_inq's cli is
 1096     cluttered; also borrows from sdparm's VPD handling
 1097   - sg_rdac: new utility for vendor specific work
 1098   - sg_lib: add sg_vpd_dev_id_iter() to iterate over di VPD page
 1099     - add sg_ata_get_chars() to fetch chars from ATA words
 1100     - sync additional sense code strings with spc4r05a
 1101     - add SG_LIB_CAT_NOT_READY category when sense_key is NOT READY
 1102     - add SG_LIB_FILE_ERROR category for open problems
 1103     - add SG_LIB_SYNTAX_ERROR category for command line problems
 1104     - broaden SG_LIB_CAT_MEDIA_CHANGED to SG_LIB_CAT_UNIT_ATTENTION
 1105     - add SG_LIB_CAT_MALFORMED for bad responses
 1106     - BEWARE: these changes cause confusion if an executable from this
 1107       version is run with a libsgutils library from 1.20 or earlier
 1108   - sg_cmds: add SG_LIB_CAT_NOT_READY return to most "ll" functions
 1109     - alter many utilities to report SG_LIB_CAT_NOT_READY
 1110   - sg_dd: add retries=<n> option for sg_io
 1111   - sg_logs: add '-T' option to output protocol specific port log page
 1112     - add support for log subpages (new in spc4r05)
 1113     - more sanity checks in Start Stop Cycle Counter page
 1114   - sg_cmds: add sg_ll_read_long16()
 1115     - add page_code and subpage_code to sg_ll_log_select()
 1116     - add subpage_code to sg_ll_log_sense()
 1117   - sg_read_long: do READ LONG(16) when '--16' given
 1118   - sg_read: accept and ignore 'of=' arguments
 1119   - sg_dd: expand medium/hardware error "coe' processing to include
 1120     the "blank check" sense key (for optical devices)
 1121   - sg_ses: expand display element (per 05-011r2)
 1122   - sg_format: clear 'cmplst' bit (for MO disks)
 1123     - add '--six' ('-6') option for mode sense/select(6)
 1124   - sg_format + sg_test_rwbuf: fix for when char is unsigned
 1125   - sg_inq: VPD page 0x89: output ATA IDENTIFY DEVICE strings
 1126     - for IDENTIFY (PACKET) DEVICE response use sg_ata_get_chars()
 1127   - sg3_utils.html : new name, was previously u_index.html. Copy
 1128     placed in doc subdirectory
 1129   - tools.html : SCSI and storage tools reference, copy placed in
 1130     doc subdirectory
 1131   - sg3_utils.8 : add a new man page containing general information
 1132     especially common exit status values
 1133   - sg_sat_identify: added to examples directory (SAT passthrough test)
 1134     - extend to pass through IDENTIFY PACKET DEVICE with '-p' option
 1135   - sg_sat_chk_power: added to examples directory
 1136   - sg_sat_smart_rd_data: added to examples directory
 1137   - sg_chk_asc: added to utils directory to check asc_ascq codes
 1138   - debian: stop placing archive directory under examples
 1139     - add build_debian.sh script
 1140 
 1141 Changelog for sg3_utils-1.20 [20060418] [svn: 68]
 1142   - sg_logs: decode phy event descriptors in SAS port specific
 1143     log page (sas2r03)
 1144     - new parameter control byte format (spc4r03), subpages to come
 1145   - update Makefile (linux) to install sg_io_linux.h + sg_linux_inc.h
 1146   - sg_map26: fix for block device mapping in lk 2.6.16-rc1 and beyond
 1147     - cope with sysfs removal of 'generic' symlink post lk 2.6.16,
 1148       anticipate removal of 'tape' symlink
 1149   - sg_dd, sgm_dd, sgp_dd: fix problem around 0x7fffffff blocks
 1150   - sg_dd: fix read_long processing error (when 'coe=2' or 3)
 1151     - expand 'coe=' to take 0...3 (invokes read long with 2 or 3)
 1152     - allow for SG_GET_RESERVED_SIZE yielding 0, lk 2.6.16 feature
 1153   - sgp_dd: add 'iflag=' and 'oflag=' arguments; signals (like sg_dd)
 1154   - sgm_dd: add 'iflag=' and 'oflag=' arguments; signals (like sg_dd)
 1155   - sg_get_config: double->dual renaming (mmc5r03)
 1156   - sg_read: add 'dpo=' and 'fua=' options
 1157     - allow 'count' < 0 (or 'bpt=0') for issuing zero block READs
 1158     - allow for SG_GET_RESERVED_SIZE yielding 0, lk 2.6.16 feature
 1159     - add 'no_dxfer=0|1' option
 1160   - sg_modes: fix exit value when MODE SENSE fails
 1161     - add '-e' to examine presence of page codes from 0x0 to 0x3e
 1162   - sg_requests: add '--num=' and '--time' options for timing multiple
 1163     invocations
 1164   - sg_inq: fix vpd 0x83 designator code 8 name: "scsi name string"
 1165   - sg_scan: if lk 2.6, use sysfs to find active sg device nodes
 1166   - sg_map: if lk 2.6, use sysfs to find active sg device nodes
 1167   - sg_ses: expand display element (per 05-011r1)
 1168   - sg_start: add an '-i' option which is equivalent to '--imm=1'
 1169   - sg_senddiag: update man page showing use of two scripts in
 1170     examples directory (sdiag_sas_p0_cjtpat.txt and _p1_)
 1171   - sg_lib: fix sg_get_sense_descriptors_str() case 9 (ATA Return)
 1172 
 1173 Changelog for sg3_utils-1.19 [20060127] [svn: 66]
 1174   - sg_start: accept '--' options (e.g. 'sg_start --stop')
 1175     - add '--fl=<n>' option for jump to format layer (mmc5)
 1176   - sg_logs: background scan log page, resync with sbc3r03
 1177     - add '-scum' and '-sthr' for setting defaults
 1178     - add device statistics log page (ssc + adc)
 1179     - fix "last n" deferred errors/error events incrementing
 1180     - partial addition of log subpages (spc4r03)
 1181   - sg_get_config: sync features with mmc5 rev 02b
 1182   - sg_wr_mode: mask out dpofua bit in mode select header
 1183   - sg_inq: try harder with '-A' to identify ATA device
 1184     - broaden meaning of '-d' option to decode ...
 1185     - decode software interface id VPD page ('-p=84 -d')
 1186     - decode device capabilities (ssc) VPD page ('-p=b0 -d')
 1187   - sginfo: correct defect list handling ('-d' and '-G')
 1188   - sg_verify: improve error processing (e.g. medium errors)
 1189   - sg_ses: scsi target_initiator port additional element
 1190      status (ses2r14)
 1191   - many: arguments that currently accept '0x' or '0X' to
 1192      indicate a hex number may alternatively take a trailing
 1193      'h' or 'H' to indicate hex
 1194   - sg_lib: update asc/ascq strings (spc4r03)
 1195   - sg_lib+sg_cmds: make independent of linux via
 1196     sg_pt.h function based interface.
 1197     - linux pass through code placed in sg_pt_linux.c
 1198     - rename sg_include.h to sg_linux_inc.h
 1199     - linux specific code in sg_lib.[hc] moved to
 1200       sg_io_linux.[hc]
 1201   - port to FreeBSD: using sg_pt_freebsd.c
 1202   - port to Tru64: using sg_pt_osf1.c
 1203   - sg_cmds: add sg_ll_get_config(), sg_ll_format_unit(),
 1204      sg_ll_reassign_blocks(), sg_ll_persistent_reserve_in+out(),
 1205      sg_ll_read_long10(), sg_ll_verify10(), sg_ll_write_long10()
 1206   - sg_persist: add "allow commands" to report capabilities
 1207   - sg_persist_tst: (examples) takes device node as argument
 1208   - sg_luns: add "security protocol" wlun
 1209 
 1210 Changelog for sg3_utils-1.18 [20051118] [svn:63]
 1211   - sg_map26: new utility to map sg devices in lk 2.6
 1212   - sg_luns: luns > 16,384 (sam-4 rev 4)
 1213   - sg_ses: bump fan speed field to 11 bits
 1214     - SAS connector names (ses2r13)
 1215   - sg_inq: add '-rr' option for "hdparm --Istdin"
 1216   - sg_get_config: tracking mmc-5
 1217   - sg_write_long: add support for COR_DIS bit
 1218   - sg_cmds: add sg_ll_test_unit_ready_progress()
 1219   - sg_turs: '-p' option shows progress
 1220   - sg_dd: add 'iflag=' and 'oflag=' options
 1221     - remove output of mode page info when verbose > 0
 1222     - add control of DPO bit via iflag/oflag
 1223   - sg_lib: add sg_get_pdt_str()
 1224     - update asc/ascq strings
 1225   - sg_modes + sginfo: add SAS(2) SSP shared mode subpage
 1226   - doc: rename "html" directory to "doc"
 1227   - Makefile: add 'libtool --finish' to install
 1228 
 1229 Changelog for sg3_utils-1.17 [20050922] [svn: 60]
 1230   - sg_inq: add '-a' option for ATA information VPD page
 1231     - add '-b' option for Block limits VPD page (SBC)
 1232     - add '-A' option for probing ATA or ATAPI device
 1233     - increase raw ('-r') and verbose ('-v') output for
 1234       ATA(PI) devices to 512 bytes (was 256 bytes)
 1235     - output hex ('-H') and verbose response for ATA(PI)
 1236       devices in 16 bit words (corrected for endianness)
 1237       - output bytes if '-HH' option given
 1238     - sync with spc4 rev 02
 1239   - sg_lib: add dWordHex() and sg_is_big_endian()
 1240     - sync asc/ascq with spc4 rev 02
 1241   - sg_cmds: defensive prefill for inquiry commands
 1242   - sg_opcodes: sync with spc4 rev 02 (add tmf I_T nexus reset)
 1243   - sginfo: add EBACKERR in Informational exception mode page
 1244     - add Background control mode page (SBC-3)
 1245   - sgm_dd: add 'verbose=<n>' option
 1246 
 1247 Changelog for sg3_utils-1.16 [20050810] [svn: 58]
 1248   - sg_ident: new utility to report+set device identifier
 1249   - sg_map: increase MAX_SG_DEVS from 256 to 2048
 1250   - debian: new directory to support deb package builds
 1251   - sg_get_config: add '--current' option, same as '--rt=1'
 1252     - update for DVD+RW Dual Layer
 1253   - sg_inq: add notes in source about use of SCSI INQUIRY
 1254      - decode Management network addresses VPD page ('-m')
 1255      - decode Mode page policy VPD page ('-M')
 1256   - sginfo: increase device mapping capability (> 78 disks)
 1257      - add '-r' option to scan /dev/raw* device nodes [Tim Hunt]
 1258   - sg_dd: change bpt default value to 32 when bs >= 2048 bytes
 1259   - sg_ses: mention SAF-TE in man page
 1260   - sg_readcap: add '-b' option for brief output (2 hex numbers)
 1261   - sg_cmds: add sg_ll_start_stop_unit(), sg_ll_prevent_allow(),
 1262       sg_ll_report_dev_id() and sg_ll_set_dev_id()
 1263   - sg_lib: add extra argument to sense print functions to enable
 1264       the suppression of the raw output of the sense buffer
 1265       - resid > 0 warnings now includes number actually fetched
 1266   - sg_start: add '-load' and '-eject' options
 1267     - default to start action when no other indication given
 1268     - change -imm=0|1 option default to 0 (was 1)
 1269   - gcc 4.0: cleanup warnings (apart from sgp_dd: revisit later)
 1270 
 1271 Changelog for sg3_utils-1.15 [20050605] [svn: 56]
 1272   - sg_cmds: sg_get_mode_page_controls(): improve error processing,
 1273      add double fetch
 1274   - sg_turs, sg_rbuf, sg_requests, sg_test_rwbuf, sg_format,
 1275     sg_dd and sgm_dd: add O_NONBLOCK to open()
 1276   - sgm_dd: switch to use SG_IO ioctl (that leaves only
 1277      sgp_dd using the asynchronous sg write()/read() sequence)
 1278   - sg_ses: sync with rev 12 changes
 1279   - sg_map: extend to cope with sparse disk device names with
 1280      up to 3 letters (e.g. /dev/sdaaa) [Nate Dailey]
 1281   - sg_modes: add '-f' option to flexibly decode broken mode
 1282      sense responses.
 1283      - zero prefill response; stop decoding response after 3
 1284        unit attention mode pages seen (i.e. malformed)
 1285      - add '-L' option for LLBAA bit in msense 10 cdb
 1286   - sg_reset: update man page
 1287   - sg_inq: VPD page 0x83: output eui addresses in hex as well
 1288   - Makefile: fix bug in rules for sgp_dd (when 'make dep' used)
 1289   - sg_format: expand explanations in its man page
 1290   - sg_inq, sg_logs, sg_modes, sg_opcodes, sg_rbuf, sg_readcap,
 1291     sg_scan, sg_senddiag, sg_start and sg_turs: allow command
 1292     line to take concaternated options
 1293   - sg_start: add -start and -stop to parallel "1" and "0"
 1294   - sg_senddiag: set pf bit with '-l' option
 1295 
 1296 Changelog for sg3_utils-1.14 [20050506] [svn: 54]
 1297   - sg_rmsn: new utility to read media serial number
 1298   - sg_rtpg: add T_SUP bit report
 1299   - sg_ses: ses-2 rev 11 changes (mainly to additional element status)
 1300         - add 'bay number' to SAS additional element status
 1301   - sg_modes: recognise attached enclosure and medium changer
 1302   - sg_inq: spell out non-zero peripheral qualifiers
 1303         - note VS bit preceding MultiP(ort) when latter set
 1304         - VPD page 0x83: output naa addresses in hex as well
 1305   - sginfo: recognise attached enclosure and medium changer
 1306         - increase device mapping capability (to 78 disks)
 1307           [Tim Hunt]
 1308   - sg_senddiag: add option to send raw diagnostic page
 1309   - sg_get_config: update some BD information
 1310   - sg_reasign: add '-g' option to give grown defect list length
 1311   - sg_dd: note default bpt value (128) may be too high for cd/dvds
 1312   - sg_lib: sync with SPC-3 rev 22a [opcodes + asc/q]
 1313         - add DID_IMM_RETRY and DID_REQUEUE [linux specific "host" bytes]
 1314   - sg_cmds: add send+receive diagnostic, read defect data commands
 1315         - add duration output on some commands when verbose > 2
 1316   - spec: change to produce libsgutils (and -devel variant) as well as
 1317           sg3_utils binary rpms
 1318   - sdparm: new utility like hdparm but for SCSI disks (or other devices)
 1319         - moved to its own package called: sdparm
 1320 
 1321 Changelog for sg3_utils-1.13 [20050313] [svn: 52]
 1322   - sg_format: new utility to format disks (perhaps change block size)
 1323   - sg_ses: rename "device element" to "additional element" [SES-2 rev 10]
 1324         - add SAS expander and connector elements; add download
 1325           microcode and subenclosure nickname diagnostic pages
 1326         - fix additional element descriptor for SAS
 1327         - off by 1 error when no type descriptor text in config page
 1328           <David dot Baldwin at anu dot edu dot au>
 1329   - sg_logs: log page for background media scan results
 1330   - sginfo: add "-flba64" option for outputting 64 bit lba defect lists
 1331   - sg_get_config: additions for BD from MMC-5 rev 1b
 1332   - sg_lib: add SG_LIB_CAT_ILLEGAL_REQ sense category
 1333         - add sg_get_sense_progress_fld()
 1334         - SPC-3 rev21d updates: report + set timestamp
 1335         - sg_get_num() + sg_get_llnum(): switch to multipliers that
 1336           are compatible with SI and with IEC 60027-2. Used modern
 1337           GNU's dd command as guide.
 1338         - report field replaceable unit code in fixed format
 1339   - sg_dd: add logic to use read_long on unrecovered read errors when
 1340            'coe' set, read just prior to error if 'coe' clear
 1341         - both 'odir' and 'blk_sgio" are honoured on block devices
 1342         - add 'verbose' switch, output some mode page info when verbose
 1343         - print out elapsed time/throughput when signal received
 1344         - add new web page discussing sg_dd, copy in html subdirectory
 1345   - sg_read: add 'blk_sgio' and 'odir' options
 1346   - sg_wr_mode: clear mode data length in mode select(10)
 1347   - sg_test_rwbuf: add long options, allow test to run multiple times
 1348   - sg_cmds: add sg_get_mode_page_types() [get current, changeable, etc]
 1349   - llseek.c: add Makefile rule without "-std=c99", breaks on some archs
 1350 
 1351 Changelog for sg3_utils-1.12 [20050121] [svn: 50]
 1352   - sg_wr_mode: new utility to modify (i.e. write to) mode pages
 1353   - sg_reassign: new utility: issues Reassign Blocks command
 1354   - sg_rtpg: new utility: issues Report Target Port Groups command
 1355              [Christophe Varoqui]
 1356   - ATA IDENTIFY command misspelt as "IDENTITY" in several places
 1357   - sginfo: tweak SAS mode pages to match sas 1.1 rev 07
 1358         - add NV_DIS bit to disk caching mode page
 1359   - sg_map: open /dev/nst* rather than /dev/st* (to stop spurious rewinds)
 1360   - sg_lib: ATA return sense descriptor
 1361         - add sg_get_sense_info_fld() to fetch info field from sense data
 1362         - fix bug in sg_scsi_sense_desc_find()
 1363         - add sense key specific decoding for fixed format sense data
 1364   - sg_modes: extend '-p' option to allow '-p=<page_code>,<subpage_code>'
 1365         - add '-A' option to output all mode pages and subpages
 1366         - extend '-l' option to show subpages, selected command set pages
 1367   - sg_inq: fix LUN WWN output in unit path report VPD page (emc)
 1368             [Hergen Lange]
 1369   - sg_get_config: some additions for DVD-R dual layer
 1370   - sg_modes: show write protect (WP) and DpoFua flags for disks
 1371   - sg_cmds: add llbaa argument to sg_ll_mode_sense10()
 1372 
 1373 Changelog for sg3_utils-1.11 [20041126] [svn: 48]
 1374   - sg_sync: new utility: invokes the synchronize cache command
 1375   - sg_prevent: new utility: invokes the prevent allow medium removal command
 1376   - sg_get_config: new utility: get configuration command for dvds and cds
 1377   - sg_request: fix, allocation length wasn't set
 1378   - sg_start: remove '-s', as start_stop_unit implicitly syncs caches
 1379   - sg_ses: add SAS expander element type
 1380   - sg_inq: add sanity check to unit serial number (VPD page 0x80)
 1381         - output ANSI version string (e.g. "SPC-2", previously was number)
 1382         - add '-s' option to decode SCSI Ports VPD page
 1383   - sg_logs: decoding of format status and non-volatile cache log
 1384         pages (0x8 and 0x17 in sbc-2)
 1385   - sg_dd: handle compile error when O_DIRECT not defined
 1386   - sginfo: tighten sanity checks around Unit serial number VPD page
 1387 
 1388 Changelog for sg3_utils-1.10 [20041030] [svn: 46]
 1389   - sg_readcap, sg_dd, sgm_dd, sgp_dd: fix sg_ll_readcap_10+16 (sg_cmds.c)
 1390   - sg_luns: new utility to report luns
 1391   - sg_logs: with '-t' (show temperature) ignore extra parameters in
 1392         temperature log page (still show them with '-p=d')
 1393   - sg_ses: clean argument sanity checks
 1394   - sg_cmds: add more common command wrappers
 1395 
 1396 Changelog for sg3_utils-1.09 [20041022] [svn: 44]
 1397   - sg_ses: new utility to get status and set control on SES devices
 1398   - sg_verify: new utility to verify block devices
 1399   - sg_emc_trespass: new utility for EMC specific trespass mode page
 1400   - sg_request: new utility that sends a REQUEST SENSE command
 1401   - sg_logs: '-r' to reset to manufacturer's defaults
 1402       - decode last n error events and last n deferred errors pages
 1403       - add names of ADC log pages
 1404   - sg_inq: update to SPC-3 rev 21
 1405       - decode Extended INQUIRY data VPD page [0x86] {'-x'}
 1406       - decode Unit Path Report VPD page [0xc0] (EMC) {'-P'}
 1407   - sginfo: decode SAS protocol specific lu mode page
 1408   - sg_err: convert to sg_lib + update to SPC-3 rev 21
 1409       - change GPL to FreeBSD license
 1410       - flag vendor specific asc/ascq ranges
 1411   - libsgutils: library made from sg_lib.c and sg_cmds.c
 1412     - rpm "spec" file additionally builds a "-devel" rpm with
 1413       static libsgutils.a and sg_lib.h and sg_cmds.h
 1414   - utils/hxascdmp.c: add FreeBSD license
 1415   - sg_persist: additions to man page
 1416       - add sg_persist_tst.sh example script to examples directory
 1417   - sg_turs: add '-v' and '-V' options
 1418   - sg_senddiag: add '-v' option
 1419 
 1420 Changelog for sg3_utils-1.08 [20040831] [svn: 42]
 1421   - sg_inq: fix noisy message when EVPD and raw modes set
 1422       - for VPD page 0, list supported page names if known {'-e'}
 1423       - add '-d' option to list version descriptors
 1424   - sg_opcodes: numerically sort list of opcodes unless '-u' given
 1425       - add '-a' to sort alphabetically list of opcode names
 1426       - add '-t' to report supported task management functions
 1427   - sg_persist: add 'register and move" PROUT service action
 1428       - add transportId support, document in sg_persist.8 and example
 1429   - sg_modes: handle subpage code for known pages (e.g. control extension)
 1430       - clean up sense buffer handling (allow for descriptor format)
 1431       - SPC-3 draft revision 20a updates
 1432   - sg_write_long: new utility to exercise WRITE LONG command
 1433   - sg_read_long: new utility to exercise READ LONG command
 1434   - sg_err.c: fix compile errors when SG_KERNEL_INCLUDES defined in lk 2.6
 1435       - sg_includes.h typedef of u64 for BLKGETSIZE64 ioctl in lk 2.4
 1436       - add safe_strerror(), sg_scsi_normalize_sense(), sg_normalize_sense()
 1437         and sg_scsi_sense_desc_find() functions
 1438       - add more sense data descriptor format decoding
 1439       - move multiple implementations of dStrHex() into sg_err.c
 1440   - sg_logs: exit if SCSI INQUIRY fails (e.g. when applied to ATA disk)
 1441   - sginfo: bug fixes and SPC-3 revision 20a updates
 1442       - add '-E' option to access Control Extension mode (sub)page
 1443   - sg_start: change '-d' switch to '-v' (verbose) switch for consistency
 1444       - document extra power condition states in man page
 1445   - sg_readcap: output rto_en and prot_en bits from long read capacity data
 1446   - add COVERAGE file to list SCSI command coverage
 1447 
 1448 Changelog for sg3_utils-1.07 [20040708] [svn: 40]
 1449   - sginfo: clean up inquiry vendor,product,revision strings
 1450       - '-Fhead': sort defect list by head
 1451         Tom Steudten <steudten at mx dot ch>
 1452   - rework sg_err for better command name coverage: service actions,
 1453     variable length and peripheral device type
 1454       - update asc,ascq codes to SPC-3 revision 19
 1455   - move scsi_devfs_scan to archive directory
 1456   - add sg_opcodes utility to list supported operation codes
 1457   - add sg_persist utility to support persistent reservations
 1458   - add '-i' option to sg_inq to decode device identification VPD page (0x83)
 1459   - sg_inq tries an ATA IDENTIFY if SCSI INQUIRY fails
 1460   - sg_dd, sgm_dd and sgp_dd calculate block device sizes (if count not given)
 1461   - drop SG_GET_VERSION_NUM ioctl guard in most utilities
 1462 
 1463 Changelog for sg3_utils-1.06 [20040426] [svn: 37]
 1464   - sg_logs: some HBAs don't like odd transfer lengths so increment
 1465       - do INQUIRY and output product strings
 1466       - add ASCII rendering of the Protocol specific SAS page
 1467       - add '-v' verbose option to output cdb
 1468   - sg_scan: optionally take device file names (e.g. /dev/hdc and /dev/sda)
 1469       - only request 36 byte INQUIRY responses
 1470   - sg_err: add sg_decode_sense() function
 1471   - sg_inq: update output (ref: SPC-3 t10/1416-d rev 17, 28 January 2004)
 1472       - remove '-p' option to print out PCI address of host
 1473       - add '-v' verbose option to output cdb
 1474   - sginfo: allow '-u' to take hex arguments (prefixed by '0x'),
 1475             when subpage value is 255 show multiple subpages
 1476       - accept /dev/hd? ATAPI devices directly in lk 2.6
 1477       - add '-t <pn>[,<spn>]' argument; like '-u' but decodes page
 1478         if it recognizes it
 1479       - drop '-L' argument
 1480       - add cd/dvd, tape, SES, more disk and more SPC-3 decoded mode pages
 1481       - add transport protocol decoded mode pages for SPI-4, FCP and SAS
 1482   - sg_modes: print all subpages when '-subp=ff' is selected
 1483       - do INQUIRY and output product strings
 1484       - add '-v' verbose option to output cdb
 1485   - Makefile: add -W compile flag and fix exposed warnings
 1486   - .spec file: change to build on Mandrake without errors
 1487 
 1488 Changelog for sg3_utils-1.05 [20031112] [svn: 35]
 1489   - sginfo: major rework; add IE page, clean up control, cache +
 1490         disconnect pages (as per SPC-3 and SBC-2).
 1491       - when storing, update saved page (change from previous version)
 1492       - use 10 byte mode sense and select by default (override with '-6')
 1493       - mode subpage support
 1494   - sg_dd, sgm_dd + sgp_dd:
 1495       - 64 bit capable (read capacity; count, skip and seek values).
 1496       - numerical arguments accept hex (prefixed by '0x' or '0X')
 1497       - require bpt > 0
 1498       - fix problem when reading /dev/null
 1499   - sg_dd: Treat SIGUSR1 properly: print stats and continue;
 1500   - sgp_dd: reduce READ CAPACITY response size to 8 bytes
 1501   - sg_read: require bpt > 0
 1502   - sg_test_rwbuf: switch from sg_header to sg_io_hdr interface
 1503     N.B. After these changes no sg3_utils utilities (in the main directory)
 1504     use the sg_header interface
 1505   - sg_scan: switch from sg_header to sg_io_hdr interface
 1506   - sg_senddiag: increase extended foreground timeout to 60 minutes
 1507   - sg_inq: add names of peripheral device types
 1508   - sg_readcap: show total size in bytes, MB, GB
 1509   - sg_logs: read log pages twice (first time to get response length), for
 1510     fragile HBAs; decode Seagate 0x37 + 0x3e pages; display pcbs
 1511   - sg_modes: fix core dump when corrupted response, don't print extra pages
 1512   - sg_map: increase sg device scanning from 128 to 256
 1513   - change man page references from lk 2.5 to lk 2.6
 1514   - examples/sg_iovec_tst: added testing sg_iovec (sg_io_hdr iovec's)
 1515     [retrospective addition to this log: "#define __user" added into
 1516      sg_include.h so user space programs aren't broken if they choose
 1517      to include kernel header.]
 1518   - utils/hxascdmp: add utility for displaying ASCII hex
 1519 
 1520 Changelog for sg3_utils-1.04 [20030513] [svn: 33]
 1521   - all remaining utilities in the main directory have man pages [thanks
 1522     to Eric Schwartz <emschwar at debian dot org> for 7 man pages]
 1523   - add CREDITS file
 1524   - sg_simple1, sg_simple2, sg_simple3, sg_simple4, sg_simple16 and
 1525     scsi_inquiry: moved to the examples directory
 1526   - sg_debug: moved to the archive directory
 1527   - sg_modes: add '-subp=<n>' for sub page code, suggests 6/10 byte
 1528     alternative if bad opcode sense received, flip -cpf flag to -pf,
 1529     add page names for most peripheral types
 1530   - sg_turs: default '-n=' argument to 1, only when '-n=1' print error
 1531     message in full
 1532   - sg_logs: print temperature "<not available>" for 255, '-t' switch
 1533     for temperature (from either temperature or IE log page)
 1534   - sg_dd: add '-odir=0|1' switch for O_DIRECT on block devices
 1535   - sg_start: add '-imm', '-loej' and 'pc=<n>' switches plus man page
 1536   - sg_readcap: add '-pmi' and 'lba=<n>' switches
 1537   - open files O_NONBLOCK in sg_inq, sg_modes and sg_logs so they
 1538     can be used on cd/dvd drivers when there is no disk present
 1539 
 1540 Changelog for sg3_utils-1.03 [20030402] [svn: 30]
 1541   - sg_senddiag: added, allows self tests and listing of diag pages
 1542   - sg_start: changed to use SG_IO so works on block devices
 1543   - sg_err: print out some "sense key specific" data [Trent Piepho]
 1544   - sg_modes: add "-6" switch for force 6 byte MODE SENSE [Trent Piepho]
 1545   - sg_modes: more information on page codes and controls
 1546   - sg_inq, sg_modes, sg_logs, sg_senddiag: add man pages
 1547   - sg_dd: add "append=0|1" switch for glueing together large files
 1548   - note in README about utilities offered by scsirastools package
 1549 
 1550 Changelog for sg3_utils-1.02 [20030101] [svn: 28]
 1551   - sg_inq: check if cmddt or evpd bits ignored
 1552   - sg_inq: warn -o=<n> not used for standard INQUIRY
 1553   - sg_turs: add -t option to time Test Unit Ready commands
 1554   - sg_errs: (used by most utilities) warn if sense buffer empty
 1555   - sg_modes: make safe with block SG_IO (bypass SG_GET_SCSI_ID ioctl)
 1556   - sg_logs: make safe with block SG_IO, self-test page work
 1557   - sg_dd: add "blksg_io=" switch to experiment with block SG_IO
 1558   - sg_read: now use SG_IO ioctl rather than sg write/read
 1559   - sginfo: fix writing parameters, check for block devices that answer
 1560     sg's ioctls, recognize "scd<n>" device names
 1561   - sg_map: stop close error report on tape devices
 1562   - sg_readcap: make safe with block SG_IO
 1563   - sg_start: make safe with block SG_IO
 1564   - sg_test_rwbuf: make safe with block SG_IO
 1565 
 1566 Changelog for sg3_utils-1.01 [20020814] [svn: 27]
 1567 ----------------------------
 1568   - add raw switch ("-r") to sg_inq [Martin Schwenke]
 1569 
 1570 Changelog for sg3_utils-1.00 [20020728] [svn: 26]
 1571 ----------------------------
 1572   - update sg_err [to SPC-3 T10/1416-D Rev 07 3 May 2002]
 1573   - "sg_inq -cl" now outputs opcode names
 1574   - add "continue on error" option to sg_dd
 1575   - add _LARGEFILE64_SOURCE _FILE_OFFSET_BITS=64 defines to Makefile
 1576   - drop 'gen' argument from sg_dd and friends, allow any file types
 1577     except scsi tape device file names
 1578   - treat of=/dev/null as special (skip write). Accept of=. as alias
 1579     for of=/dev/null
 1580   - decode various log pages in sg_logs
 1581   - add 'dio' argument to sgm_dd for testing "zero copy" copies
 1582 
 1583 Changelog for sg3_utils-0.99 [20020317]
 1584 ----------------------------
 1585   - add 'fua' and 'sync' arguments to sg_dd, sgp_dd and sgm_dd
 1586   - improve sg_inq, add "-cl" and "-36" arguments
 1587   - add sg_modes + sg_logs for MODE SENSE and LOG SENSE queries
 1588   - add rescan-scsi-bus.sh [Kurt Garloff] to archive directory
 1589 
 1590 Changelog for sg3_utils-0.98 [20020216]
 1591 ----------------------------
 1592   - move sg_reset back from archive to main directory + build
 1593   - sprintf() to snprintf() changes
 1594   - add "time=<n>" argument to sg_dd, sgp_dd and sgm_dd to time transfer
 1595   - add man pages for sgm_dd and sg_read, update sg_dd and sgp_dd man pages
 1596   - add "cdbsz=" argument to sg_dd, sgp_dd, sgm_dd + sg_read
 1597   - add "gen=0|1" argument to sg_dd
 1598 
 1599 Changelog for sg3_utils-0.97 [20011223]
 1600 ----------------------------
 1601   - move isosize to archive since introduced into util-linux-2.10s
 1602 
 1603 Changelog for sg3_utils-0.96 [20011221]
 1604 ----------------------------
 1605   - add '-p' switch to sg_inq to provide PCI slot_name
 1606   - add '-n' switch to scsi_inquiry for non-blocking open
 1607   - new sgm_dd (dd variant) using mmap-ed IO
 1608   - sg_rbuf now has a '-m' argument to select mmap-ed IO
 1609   - sg_rbuf now has a '-t' switch to do timing + throughput calculation
 1610   - add sg_simple4 to demonstrate mmap-ed IO on an INQUIRY response
 1611   - add sg_simple16 to do a READ_16 (16 byte SCSI READ command)
 1612   - mmap-ed IO requires sg version 3.1.22 or later
 1613   - add sg_read to read multiple times starting at same offset
 1614 
 1615 Changelog for sg3_utils-0.95 [20010915]
 1616 ----------------------------
 1617   - make sg_dd, sgp_dd and archive/sgq_dd warn if dio selected but
 1618     /proc/scsi/sg/allow_dio is '0'
 1619   - sg_map can now do any INQUIRY (when '-i' argument given)
 1620   - expand example in scsi_inquiry
 1621 
 1622 Changelog for sg3_utils-0.94 [20010419]
 1623 ----------------------------
 1624   - add sg_start, documented in README.sg_start [Kurt Garloff]
 1625   - add osst support in sg_map [Kurt Garloff]
 1626   - improvements to sginfo [Kurt Garloff]
 1627 
 1628 Changelog for sg3_utils-0.93 [20010415]
 1629 ----------------------------
 1630   - more include file fine tuning
 1631   - some "dio" work sg_rbuf
 1632   - extend sgp_dd so "continue on error" works on normal files
 1633   - introduce sg_include.h to encapsulate sg include problems
 1634   - add scsi_devfs_scan
 1635   - add sg_bus_xfer to archive directory
 1636   - more error info in sginfo
 1637 
 1638 Changelog for sg3_utils-0.92 [20010116]
 1639 ----------------------------
 1640   - change sg_err.c output from stdout to stderr
 1641   - change sg_debug to call system("cat /proc/scsi/sg/debug");
 1642   - fix in+out totals in sg_dd and sgp_dd when partial transfers
 1643   - lower include dependencies in sg_err.h
 1644   - add sgq_dd + Makefile to archive directory
 1645 
 1646 Changelog for sg3_utils-0.91 [20001221]
 1647 ----------------------------
 1648   - signalling handling added to sg_dd (and documented in sg_dd.8)
 1649   - add man page for sg_rbuf (and a small change to its code)
 1650   - add "-d" switch to isosize and cope with > 2 GB (and man page)
 1651 
 1652 Changelog for sg3_utils-0.90
 1653 ----------------------------
 1654   - switch from dated versioning. Previous version was sg3_utils001012.
 1655     Arbitrarily start at package version 0.90 . Start Changelog.
 1656   - incorporate Kurt Garloff's patches from Suse scsi.spm source rpm
 1657     compilation:
 1658     - add Kurt Garloff's sg_test_rwbuf utility to read and write to disk
 1659       buffer
 1660     - clean up Makefile to include a "make install" (and also add a
 1661       "make uninstall").
 1662     - add "-uno" switch to sginfo
 1663   - make raw and sg devices equally acceptable to sg_dd and sgp_dd.
 1664     [Raw devices still not as fast as sg devices doing disk to disk
 1665     copies in sgp_dd but this may be improved soon. Still faster than
 1666     using dd!]
 1667   - change lseek() in sg_dd and sgp_dd to _llseek() [using code borrowed
 1668     from fdisk] so big disks can be properly offset with 'skip' and
 1669     'seek' arguments. [This change is significant for raw devices and
 1670     normal files since sg devices already use 31 bit block addressing.]
 1671   - rename sg_s3_inq to sg_inq. This utility allows the INQUIRY response
 1672     to be decoded as per SCSI 3 and 4. Also can probe VPD and CmdDt pages.
 1673   - change multiplier suffixes on sg_dd, sgp_dd and sg_turs so lower case
 1674     "k, m, g" are powers of 2 while "K, M, G" are powers of 10. This idea
 1675     borrowed from lmdd (lmbench suite)
 1676   - retire a few more less used utilities into the archive directory.
 1677   - add man pages for sg_dd, sgp_dd and sg_map