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