~ubuntu-branches/ubuntu/oneiric/sg3-utils/oneiric

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
Each utility has its own version number, date of last change and
some description at the top of its ".c" file. All utilities in the main
directory have their own "man" pages. There is also a sg3_utils man page.

Changelog for sg3_utils-1.31 [20110216] [svn: r386]
  - sg_decode_sense: new utility to decode sense data
  - sg_vpd: LB provisioning + Block limits pages (sbc3r26)
  - sync asc/ascq and version descriptors with spc4r28
  - sg_get_config, sg_rmsn, sg_verify: add --readonly option
  - sg_lib: implement forwarded sense data descriptor
    - decode user data segment referral sense data descriptor
  - sg_lib, sg_turs, sg_format: more precision for progress
    indication (two places after decimal point)
  - sg_lib(win32): add runtime selection of SPT direct or
    indirect interface
    - sg_read_buffer+sg_write_buffer: set SPT direct
  - add examples/forwarded_sense.txt + examples/ref_sense.txt

Changelog for sg3_utils-1.30 [20101111] [svn: r363]
  - sg_referrals: new utility for REPORT REFERRALS
  - sbc3r25 renames 'thin' provisioning' to 'logical block
    provisioning': changes in sg_format, sg_inq, sg_logs,
    sg_modes, sg_readcap, sg_vpd
  - sg_inq: update version descriptor list to spc4r27
    - extended inquiry vpd page add extended self test
      completion minutes field
  - sg_lib: sync asc/ascq list to spc4r27
    - dStrHex(): trim excess trailing spaces
  - sg_read_long: add --readonly option (open() is rw)
  - sg_raw: add --readonly option (open() is rw)
    - allow bidirectional commands
  - sg_vpd: rdac vendor page [0xc8] parse corrections
    - extended inquiry vpd page add extended self test
      completion minutes field
  - sg_ses: expand --data (in) buffer to 2048 bytes
  - sg_opcodes: add extended parameter data for TMFs (spc4r26)
  - sg_dd: clean count calculation, document nocache flag
    - treat bsg devices as implicit sg_io
  - sg_write_same: if READ CAPACITY(16) fails try 10 byte variant
    - anticipate approval of proposal to allow UNMAP and ANCHOR
      bits to be set on WRITE SAME(10) with '--10' option
  - sg3_utils man page: sections added for OS device names

Changelog for sg3_utils-1.29 [20100406] [svn: r334]
  - sg_rtpg: new logical block dependent state and bit (spc4r23)
  - sg_start: add '--readonly' option for ATA disks
  - sg_lib: update asc/ascq list to spc4r23
  - sg_inq: update version descriptor list to spc4r23
  - sg_vpd: block device characteristics page: fix form factor
    - update Extended Inquiry VPD page to spc4r23
    - update Block Limits VPD page to sbc3r22
    - update Thin Provisioning VPD page to sbc3r22
    - Automation device serial number and Data transfer device
      element VPD pages (ssc4r01)
    - add Referrals VPD page (sbc3r22)
  - sg_logs: add thin provisioning and solid state media log pages
    - addition of IBM LTO specific log pages
  - sg_modes: new page names from ssc4r01
  - sg_ses: sync with ses3r02 (SAS-2.1 connector types)
  - sg_unmap: add '--anchor' option (sbc3r22)
  - sg_write_same: add '--anchor' option (sbc3r22)
  - sg_pt interface: add set_scsi_pt_flags() to permit passing
    through SCSI_PT_FLAGS_QUEUE_AT_TAIL and AT_HEAD flags
  - add examples/sg_queue_tst+bsg_queue_tst for SG_FLAG_Q_AT_TAIL
  - add AM_MAINTAINER_MODE to configure.ac to lessen build issues
  - add BSD_LICENSE file to this and lib directories, refer to
    it from source and header files. Some source has GPL license

Changelog for sg3_utils-1.28 [20091002] [svn: r315]
  - sg_unmap: new utility for thin provisioning
    - add examples/sg_unmap_example.txt
  - sg_get_lba_status: new utility for thin provisioning
  - sg_read_block_limits: new utility for tape drives
  - sg_logs: add cache memory statistics log (sub)page
  - sg_vpd, sg_inq: extend Block limits VPD page (sbc3r19)
  - sg_vpd: add Thin provisioning VPD page (sbc3r20) and
            TapeAlert supported flags VPD page
  - sg_inq: note VPD page support better in sg_vpd
  - sg_persist: add transport specific transportID format
    - allow transportIDs to be read from named file
  - sg_opcodes: allow --opcode= option to take OP and SA
    values (comma seperated)
    - tweak print format, remove test code
  - sg_requests: remove test code in progress calculation
  - sg_reset: add target reset option
  - sg_luns: reduce default maxlen to 8192 (for FreeBSD)
  - sg_raw: extend max cdb length from 16 to 256 bytes
    - align heap allocs to page boundaries
  - sg_lib: sg_set_binary_mode() needs config.h included
    - add progress indication sense data descriptor (0xa)
    - change SG3_UTILS_* constants to SG_LIB_*
    - decode service actions within persistent reserve in/out
    - sync with spc4r21
  - sg_cmds_extra: add sg_ll_unmap() and sg_ll_get_lba_status()
  - sg_pt_linux: fix check condition but empty sense buffer; occurred
    when sg v3 node used and /usr/include/linux/bsg.h visible
    - major() macro grief, if present include <linux/kdev_t.h> and
      use MAJOR() instead
  - scripts/sas_disk_blink: moved from this package to sdparm
  - utils/hxascdmp: in Windows set binary mode on read files
  - examples/sg_persist_tst.sh: add PRIN read full status command
  - sg_raw,sg_write_buffer,sg_write_long,sg_write_same: in Windows
    set binary mode on read files
  - sg_pt_win32: default to non-direct variant of SPT interface
    - use './configure --enable-win32-spt-direct' to override
    - non-direct data length set to 16 KB, extended if required
  - debian: incorporate patch from debian sid

Changelog for sg3_utils-1.27 [20090411] [svn: r250]
  - sg_write_same: new utility: 10, 16 and 32 byte cdb variants
  - sg_inq: sync version descriptors with spc4r18
    - add power condition VPD page
    - expand block limits VPD page (sbc3r18)
  - sg_vpd: add power condition VPD page
    - expand block limits VPD page (sbc3r18)
  - sg_map26: fix for lk 2.6.26 when CONFIG_SYSFS_DEPRECATED_V2
    is not defined
    - output cdb when verbose option given
    - correct tape minors >= 32
  - sg_dd: flock flag (does LOCK_EX|LOCK_NB)
    - switch open on input for sg device nodes: first open
      read-write and if that fails try opening read-only
    - experiment with of2=OFILE2; add conv=sparse
    - use posix_fadvise() to defeat caching of normal+block files
      when new 'nocache' flag given
    - sg_dd copied to own package called ddpt
  - sg_dd, sgm_dd, sgp_dd: accept 'count=-1' for calculate count,
    accept '-V' for version string
  - sg_get_config: add OSSC feature [mmc6r02]
  - sg_modes: add ATA power condition mode page
  - sg_logs: protocol specific (SAS) lpage sync to sas2r15
    - power condition transitions lpage (added in spc4r18)
    - extra parameters for start-stop cycle counter lpage
  - sg_format: add '--fmtpinfo=' and '--pie=' options (sbc3r18)
  - sg_readcap: more protection + thin provisioning (sbc3r18)
    - add a '--16' option for 16 byte cdb version
  - sg_persist: code clean up
    - allow '--transport-id=' argument to use space as separator
    - add '--alloc-length=' argument
  - sg_scan: (win32) new format, scsi adapter scan optional
  - sginfo: fix crash when 1024 sg device nodes (or more)
  - sg_ses: allow '--data=' argument to use space as separator
  - sg_senddiag: allow '--raw=' argument to use space as separator
  - sg_reassign: allow '--address=' argument to use space as
    separator
  - sg_wr_mode: allow '--contents=' and '--mask=' arguments to
    use space as separator
  - sg3_utils.spec: correction to configure call
  - sg_pt: add scsi_pt_open_device_flags() call
    - add scsi_pt_version() and clear_scsi_pt_obj() calls
    - clear os_err at start of do_scsi_pt()
    - add linux bsg support via runtime detection
  - sg_cmds: add sg_cmds_open_device_flags()
  - sg_cmds_extra: sg_ll_format_unit: remove rto_req argument,
    the expanded fmtpinfo argument subsumes it.
  - clearer split between Linux and Windows only code and doc
  - automake tools: change to what Ubuntu 8.10 provides
    - Ubuntu 8.10 libtool problems -> Debian 4.0

Changelog for sg3_utils-1.26 [20080625] [svn: r183]
  - sg_sat_phy_event: new utility; copied from examples
    directory and enhanced, rename original to sg__sat_phy_event
  - sg_ses: sync with ses2r19b, many nomenclature changes
  - sg_get_config: sync with mmc6r01
    - allow Microcode upgrade and DVD read feature descriptors
      to be 4 bytes long
    - add '--raw' option
  - sg_verify: add --vrprotect= option
  - sg_vpd: add nominal form factor to block dev. char. VPD page
    - add --maxlen= option to set allocation length in cdb
  - sg_inq: add --maxlen= option that does same as --len=
    - move version descriptors (spc4r15) to sg_inq_data.c file
  - sg_inq+sg_vpd: logic for "NAA-3 Locally assigned" identifier
    - update extended inquiry VPD page
  - sg_modes: add --maxlen= option to specify allocation length
  - sg_start: add '--noflush' and '--mod=PC_MOD' options (sbc3r14)
  - sg_request: add a '--progress' option (similar to sg_turs)
    - add --maxlen= option to set allocation length in cdb
  - sg_luns: add --maxlen= option to specify allocation length
  - sg_dd: improve MMC handling of 'illegal mode for this track'
    read errors (with ILI and info field)
  - sg_dd, sgm_dd, sgp_dd, sginfo, sg_rbuf, sg_read: replace
    "%lld" and friends with PRI macros
  - sg_opcodes: tmf name change in spc4r15 (async event)
  - sg_turs: add more to man page about '--progress' indication
  - sg_write_long: add examples section to man page
  - '--raw' option: modify utilities that can send binary output
    to call sg_set_binary_mode(). For MingGW port CR problem.
  - sg_lib: update asc/ascq and command name strings to spc4r15
    - split sg_lib into sg_lib_data.[hc] and sg_lib.[hc]
    - split sg_cmds_extra into sg_cmds_extra and sg_cmds_mmc
    - add osd2r03 service actions (all different from osd-r10)
    - add sg_get_trans_proto_str()
    - add sg_get_sense_filemark_eom_ili() function (MMC uses ILI)
    - add sense key specific unit attention condition queue
      overflow decoding (added in spc4r13)
    - add sg_set_text_mode() and sg_set_binary_mode() functions
      for non-Unix OSes
  - sg_cmds_mmc: add sg_ll_set_streaming() function
  - sg_cmds_extra: add vrprotect argument to sg_ll_verify10()
    - add sg_ll_get_performance() and sg_ll_set_cd_speed()
  - change 'long long' to int64_t and 'unsigned long long' to
    uint64_t to stress that 64 bit integer wanted, not larger
  - audit of dangerous 'u64 = uch[24] << 24' code, replace most
    'unsigned long's
  - multiple documentation corrections provided by Dan Horak
  - win32/MinGW: define SG3_UTILS_MINGW when detected
  - remove archive/pre_configure subdirectory
  - move sg_io_linux.c into the lib subdirectory
  - utils/hxascdmp: add hxascdmp(1) man page
  - switch primary build to ubuntu environment, rename
    library to libsgutils2 to avoid clash

Changelog for sg3_utils-1.25 [20071016] [svn: r115]
  - sg_stpg: new utility to Set Target Port Groups
  - sg_safte: new utility to query SAF-TE processor (SES like)
  - sg_sat_set_features: new utility (actually copied from examples
    directory); renamed examples version to: sg__sat_set_features
  - sg_read_buffer: restore (had fallen out of build scripts)
  - sg_dd: add oflag=sparse to step over bs*bpt number of zeros;
    - with oflag=sparse, write last bs*bpt segment at end or after
      error so file length of OFILE is appropriate
    - when coe>1 then SCSI READ LONG logic remembers extended block
      length of first encountered error
  - sg_dd, sgm_dd, sgp_dd: allow iflag=null and oflag=null both of
    which do nothing (placeholders)
  - sg_ses: sync with ses2r17 then r18
  - sg_vpd, sg_inq: add block device characteristics VPD page
  - sg_inq: add '--vpd' option (or '-e') for backward compatibility
  - sg_vpd: decode protocol specific lu information page for SAS
    - add more RDAC vendor VPD pages
  - sg_logs: update background scan results log page, sbc3r11
    - add generation code to protocol specific page for SAS SSP
    - add media changer diagnostic data log page
  - sg_raw: fix error message when do_scsi_pt() fails
  - sg_lib: sync asc/ascq codes with spc4r11
    - add sg_get_num_nomult()
    - add TPROTO_* protocol identifier constants to sg_lib.h
  - sg_cmds_extra: add sg_ll_set_tgt_prt_grp()
  - place source in subversion repository
  - split code into src/ lib/ and include/ directories
  - sync debian directory with their 1.24 version (sid unstable)
  - convert build logic to use autotools (i.e. './configure ; make')
    - rename this file from CHANGELOG to ChangeLog
    - note: only code in lib/ and src/ directories built by
      autotools; some other subdirectories still use hand-crafted
      Makefiles

Changelog for sg3_utils-1.24 [20070507] [svn: r77]
  - sg_raw: new utility to send arbirary SCSI commands
  - sg_luns: increase number of luns that can be fetched
    - fix length of raw and hex output
    - add '--quiet' option to output only ASCII hex
      representation of each lun
  - sg_rtpg: update for changes in spc4r09
  - sg_persist: update documentation, spc-4 references
    - fix exit status values
  - sg_inq: update version descriptors per spc4r09
    - fix '--id' and '--extended'
    - extend block limits VPD page (sbc3r09)
  - sg_vpd: extend block limits VPD page (sbc3r09)
    - append relative target port identifier to SAS target
      port address with '-iq' option
  - sg_logs: add decoding for stats+performance log pages
    - fix showing of page names for pdt > 0
    - implement '-HH' for single and all pages, fix '-r'
    - when '--maxlen=' given, only do single fetch
    - add Tape Alert (ssc), Media and Element statistics (smc) pages 
    - add '--brief' option
  - sg_ses: sync with ses2r16
    - fix bay number for SAS
  - sg_format: add '--dcrt' and '--security' options
  - sgm_dd: add 'smmap' oflag for shared_mmap_io testing
    - add 'dio' oflag
  - sg_dd, sgp_dd: add 'dio' iflag and oflag
  - sg_modes: change SAS mode page names per sas2r09
    - check validity of block descriptors length
  - sg_pt: change opaque context object from 'void *'
    to 'struct sg_pt_base *'
  - sg_opcodes: anticipate extra tmfs from 07-159r0
  - sg_sat_set_features: add more usage information
    - add man page
  - sg_sat_phy_event: add to examples directory
  - sg_lib: sync asc/ascq codes with spc4r10
  - Solaris port: using uscsi interface
  - various .html files removed from doc directory

Changelog for sg3_utils-1.23 [20070131] [svn: 75]
  - sg_read_buffer: new utility
  - sg_write_buffer: new utility
  - sg_opcodes, sg_senddiag, sg_logs, sg_modes, sg_start, sg_inq,
    sg_turs, sg_readcap, sg_rbuf: add getopt_long() based cli;
    old and new cli selectable, new getopt_long cli is default
  - scripts: new subdirectory containing some bash scripts
    - add scripts/README file
  - sg_reassign: add '--hex' option for grown and primary lists
  - sg_rtpg: add '--raw' option
  - sg_lib.h, sg_cmds_basic.h + sg_cmds_extra.h: add C++ 
    'extern "C" ' wrappers
    - cleanup C code so it will compile as C++
  - sg_lib: sync with spc4r08
    - include <inttypes.h>, use PRId64 instead of %lld form
    - fix sg_get_sense_str() when empty sense buffer
  - win32 port: add Makefile.mingw + related support for MinGW
  - sg_cmds_extra: add sg_ll_read_buffer() and sg_ll_write_buffer()
  - sg_dd, sgp_dd, sgm_dd, sg_read: use lseek64() instead of llseek.c
  - sgm_dd: accept coe=<n> for interworking with sg_dd
  - sg_rdac: fix on non-linux ports
  - sg_ses: fix spurious warning in additional element status page
    - '-rr' option outputs a diagnostic page in binary to stdout
  - sg_opcodes: add command timeout descriptor support (spc4r08)
    - change linux specific pass through to generic pass through
  - sg_logs: add 'name=value' decoding for SAS specific lpage
  - examples+utils subdirectories: remove symlinks
  - synchronize man pages with usage messages
  - sg3_utils.spec: rework

Changelog for sg3_utils-1.22 [20061016] [svn: 72]
  - sgp_dd: accept verbose=<n> as well as deb=<n> to ease
    interworking with sg_dd and sgm_dd
  - sg_sat_set_features: added to examples directory
  - sg_lib: sync asc/ascq text with spc4r06
    - move SG_LIB_CAT_NO_SENSE and SG_LIB_CAT_RECOVERED to
      20 and 21 respectively; add SG_LIB_CAT_ABORTED_COMMAND
      at 11 (its sense key value) 
  - sg_vpd: tweak '--page=sp --quiet' output
    - change '-HHH' so same as '-rr' (prepares ATA Information
      (ai) response for hdparm)
  - sg_requests: add '-s' option to set exit status from
    parameter data
  - sg_modes: exit quickly from '-e' if device not ready
  - sg_logs: sync sas log pages with sas2r05a
    - expand background scan results log page
    - add '-m=<max_len>' to limit response length
    - drop '-scum' and '-sthr' options and add '-select'
  - sg_write_long: add '--16' option to send 16 byte cdb
    - add '--wr_uncor' and '--pblock' options
  - sg_senddiag: cleanup and add sdiag_sas_p1_stop.txt
    to examples directory
  - sg_format: add '--cmplst=<n>' option (default: 1)
    - add '--pfu=<n>' option
    - expand man page to discuss P/D/C/GLISTs
  - sg_reassign: add '--primary' option to fetch primary
    defect list (PLIST) length
  - sg_readcap: add '-H' option to output response in hex
    and '-r' to output response in binary to stdout
    - add logical blocks per physical block (sbc3r07)
  - sginfo: add PLIST and GLIST designation to defect lists
  - sg_cmds: split this support file into sg_cmds_basic.[hc]
    and sg_cmds_extra.[hc]
    - add sg_ll_ata_pt() (SATL ATA pass) to sg_cmds_extra.[hc]
  - sg_rdac: fix includes for FreeBSD
  - sg_dd: add 'coe_limit=' option to exit after <n>
    consecutive 'coe' type read errors
  - sgm_dd: print out throughput information when signal arrives
    if time=1 (like sg_dd does already)
  - sg_inq: change '-HHH' so same as '-rr'. Now sg_inq, sg_vpd
    and sdparm output for hdparm with '-HHH'
    -add '-l=<resp_len>' option
  - sg_read_long: add '--pblock' option for physical blocks
  - sg_luns: add '--hex' and '--raw' options
  - sg_requests: add '--hex' and '--raw' options
  - sg_scan: windows version added (was previously linux only)
    - 2 man pages: sg_scan.8l and sg_scan.8w that are installed
      as sg_scan.8
  - archive directory: removed all but rescan-scsi-bus.sh
      - README points to previous version in that directory
  - sg_sat_identify: add to main directory
      - rename earlier version to examples/sg__sat_identify.c
  - sg_ident: rework as spc4r07 changed command names and
    expanded functionality

Changelog for sg3_utils-1.21 [20060706] [svn: 70]
  - sg_vpd: new utility for decoding VPD pages. sg_inq's cli is
    cluttered; also borrows from sdparm's VPD handling
  - sg_rdac: new utility for vendor specific work
  - sg_lib: add sg_vpd_dev_id_iter() to iterate over di VPD page
    - add sg_ata_get_chars() to fetch chars from ATA words
    - sync additional sense code strings with spc4r05a
    - add SG_LIB_CAT_NOT_READY category when sense_key is NOT READY
    - add SG_LIB_FILE_ERROR category for open problems
    - add SG_LIB_SYNTAX_ERROR category for command line problems
    - broaden SG_LIB_CAT_MEDIA_CHANGED to SG_LIB_CAT_UNIT_ATTENTION
    - add SG_LIB_CAT_MALFORMED for bad responses
    - BEWARE: these changes cause confusion if an executable from this
      version is run with a libsgutils library from 1.20 or earlier
  - sg_cmds: add SG_LIB_CAT_NOT_READY return to most "ll" functions
    - alter many utilities to report SG_LIB_CAT_NOT_READY
  - sg_dd: add retries=<n> option for sg_io
  - sg_logs: add '-T' option to output protocol specific port log page
    - add support for log subpages (new in spc4r05)
    - more sanity checks in Start Stop Cycle Counter page
  - sg_cmds: add sg_ll_read_long16()
    - add page_code and subpage_code to sg_ll_log_select()
    - add subpage_code to sg_ll_log_sense()
  - sg_read_long: do READ LONG(16) when '--16' given
  - sg_read: accept and ignore 'of=' arguments
  - sg_dd: expand medium/hardware error "coe' processing to include
    the "blank check" sense key (for optical devices)
  - sg_ses: expand display element (per 05-011r2)
  - sg_format: clear 'cmplst' bit (for MO disks)
    - add '--six' ('-6') option for mode sense/select(6)
  - sg_format + sg_test_rwbuf: fix for when char is unsigned
  - sg_inq: VPD page 0x89: output ATA IDENTIFY DEVICE strings
    - for IDENTIFY (PACKET) DEVICE response use sg_ata_get_chars()
  - sg3_utils.html : new name, was previously u_index.html. Copy
    placed in doc subdirectory
  - tools.html : SCSI and storage tools reference, copy placed in
    doc subdirectory
  - sg3_utils.8 : add a new man page containing general information
    especially common exit status values
  - sg_sat_identify: added to examples directory (SAT passthrough test)
    - extend to pass through IDENTIFY PACKET DEVICE with '-p' option
  - sg_sat_chk_power: added to examples directory
  - sg_sat_smart_rd_data: added to examples directory
  - sg_chk_asc: added to utils directory to check asc_ascq codes
  - debian: stop placing archive directory under examples
    - add build_debian.sh script

Changelog for sg3_utils-1.20 [20060418] [svn: 68]
  - sg_logs: decode phy event descriptors in SAS port specific
    log page (sas2r03)
    - new parameter control byte format (spc4r03), subpages to come
  - update Makefile (linux) to install sg_io_linux.h + sg_linux_inc.h
  - sg_map26: fix for block device mapping in lk 2.6.16-rc1 and beyond
    - cope with sysfs removal of 'generic' symlink post lk 2.6.16,
      anticipate removal of 'tape' symlink
  - sg_dd, sgm_dd, sgp_dd: fix problem around 0x7fffffff blocks
  - sg_dd: fix read_long processing error (when 'coe=2' or 3)
    - expand 'coe=' to take 0...3 (invokes read long with 2 or 3)
    - allow for SG_GET_RESERVED_SIZE yielding 0, lk 2.6.16 feature
  - sgp_dd: add 'iflag=' and 'oflag=' arguments; signals (like sg_dd)
  - sgm_dd: add 'iflag=' and 'oflag=' arguments; signals (like sg_dd)
  - sg_get_config: double->dual renaming (mmc5r03)
  - sg_read: add 'dpo=' and 'fua=' options
    - allow 'count' < 0 (or 'bpt=0') for issuing zero block READs
    - allow for SG_GET_RESERVED_SIZE yielding 0, lk 2.6.16 feature
    - add 'no_dxfer=0|1' option
  - sg_modes: fix exit value when MODE SENSE fails
    - add '-e' to examine presence of page codes from 0x0 to 0x3e
  - sg_requests: add '--num=' and '--time' options for timing multiple
    invocations
  - sg_inq: fix vpd 0x83 designator code 8 name: "scsi name string"
  - sg_scan: if lk 2.6, use sysfs to find active sg device nodes
  - sg_map: if lk 2.6, use sysfs to find active sg device nodes
  - sg_ses: expand display element (per 05-011r1)
  - sg_start: add an '-i' option which is equivalent to '--imm=1'
  - sg_senddiag: update man page showing use of two scripts in
    examples directory (sdiag_sas_p0_cjtpat.txt and _p1_) 
  - sg_lib: fix sg_get_sense_descriptors_str() case 9 (ATA Return)

Changelog for sg3_utils-1.19 [20060127] [svn: 66]
  - sg_start: accept '--' options (e.g. 'sg_start --stop')
    - add '--fl=<n>' option for jump to format layer (mmc5)
  - sg_logs: background scan log page, resync with sbc3r03
    - add '-scum' and '-sthr' for setting defaults
    - add device statistics log page (ssc + adc)
    - fix "last n" deferred errors/error events incrementing
    - partial addition of log subpages (spc4r03)
  - sg_get_config: sync features with mmc5 rev 02b
  - sg_wr_mode: mask out dpofua bit in mode select header
  - sg_inq: try harder with '-A' to identify ATA device
    - broaden meaning of '-d' option to decode ...
    - decode software interface id VPD page ('-p=84 -d')
    - decode device capabilities (ssc) VPD page ('-p=b0 -d')
  - sginfo: correct defect list handling ('-d' and '-G')
  - sg_verify: improve error processing (e.g. medium errors)
  - sg_ses: scsi target_initiator port additional element
     status (ses2r14)
  - many: arguments that currently accept '0x' or '0X' to
     indicate a hex number may alternatively take a trailing
     'h' or 'H' to indicate hex
  - sg_lib: update asc/ascq strings (spc4r03)
  - sg_lib+sg_cmds: make independent of linux via
    sg_pt.h function based interface.
    - linux pass through code placed in sg_pt_linux.c
    - rename sg_include.h to sg_linux_inc.h
    - linux specific code in sg_lib.[hc] moved to
      sg_io_linux.[hc]
  - port to FreeBSD: using sg_pt_freebsd.c
  - port to Tru64: using sg_pt_osf1.c
  - sg_cmds: add sg_ll_get_config(), sg_ll_format_unit(),
     sg_ll_reassign_blocks(), sg_ll_persistent_reserve_in+out(),
     sg_ll_read_long10(), sg_ll_verify10(), sg_ll_write_long10()
  - sg_persist: add "allow commands" to report capabilities
  - sg_persist_tst: (examples) takes device node as argument
  - sg_luns: add "security protocol" wlun

Changelog for sg3_utils-1.18 [20051118] [svn:63]
  - sg_map26: new utility to map sg devices in lk 2.6
  - sg_luns: luns > 16,384 (sam-4 rev 4)
  - sg_ses: bump fan speed field to 11 bits
    - SAS connector names (ses2r13)
  - sg_inq: add '-rr' option for "hdparm --Istdin"
  - sg_get_config: tracking mmc-5
  - sg_write_long: add support for COR_DIS bit
  - sg_cmds: add sg_ll_test_unit_ready_progress()
  - sg_turs: '-p' option shows progress
  - sg_dd: add 'iflag=' and 'oflag=' options
    - remove output of mode page info when verbose > 0
    - add control of DPO bit via iflag/oflag
  - sg_lib: add sg_get_pdt_str()
    - update asc/ascq strings
  - sg_modes + sginfo: add SAS(2) SSP shared mode subpage
  - doc: rename "html" directory to "doc"
  - Makefile: add 'libtool --finish' to install

Changelog for sg3_utils-1.17 [20050922] [svn: 60]
  - sg_inq: add '-a' option for ATA information VPD page
    - add '-b' option for Block limits VPD page (SBC)
    - add '-A' option for probing ATA or ATAPI device
    - increase raw ('-r') and verbose ('-v') output for
      ATA(PI) devices to 512 bytes (was 256 bytes)
    - output hex ('-H') and verbose response for ATA(PI)
      devices in 16 bit words (corrected for endianness)
      - output bytes if '-HH' option given
    - sync with spc4 rev 02
  - sg_lib: add dWordHex() and sg_is_big_endian()
    - sync asc/ascq with spc4 rev 02
  - sg_cmds: defensive prefill for inquiry commands
  - sg_opcodes: sync with spc4 rev 02 (add tmf I_T nexus reset)
  - sginfo: add EBACKERR in Informational exception mode page
    - add Background control mode page (SBC-3)
  - sgm_dd: add 'verbose=<n>' option

Changelog for sg3_utils-1.16 [20050810] [svn: 58]
  - sg_ident: new utility to report+set device identifier
  - sg_map: increase MAX_SG_DEVS from 256 to 2048
  - debian: new directory to support deb package builds
  - sg_get_config: add '--current' option, same as '--rt=1'
    - update for DVD+RW Dual Layer
  - sg_inq: add notes in source about use of SCSI INQUIRY
     - decode Management network addresses VPD page ('-m')
     - decode Mode page policy VPD page ('-M')
  - sginfo: increase device mapping capability (> 78 disks)
     - add '-r' option to scan /dev/raw* device nodes [Tim Hunt]
  - sg_dd: change bpt default value to 32 when bs >= 2048 bytes
  - sg_ses: mention SAF-TE in man page
  - sg_readcap: add '-b' option for brief output (2 hex numbers)
  - sg_cmds: add sg_ll_start_stop_unit(), sg_ll_prevent_allow(),
      sg_ll_report_dev_id() and sg_ll_set_dev_id()
  - sg_lib: add extra argument to sense print functions to enable
      the suppression of the raw output of the sense buffer
      - resid > 0 warnings now includes number actually fetched
  - sg_start: add '-load' and '-eject' options
    - default to start action when no other indication given
    - change -imm=0|1 option default to 0 (was 1)
  - gcc 4.0: cleanup warnings (apart from sgp_dd: revisit later)

Changelog for sg3_utils-1.15 [20050605] [svn: 56]
  - sg_cmds: sg_get_mode_page_controls(): improve error processing,
     add double fetch
  - sg_turs, sg_rbuf, sg_requests, sg_test_rwbuf, sg_format,
    sg_dd and sgm_dd: add O_NONBLOCK to open()
  - sgm_dd: switch to use SG_IO ioctl (that leaves only
     sgp_dd using the asynchronous sg write()/read() sequence)
  - sg_ses: sync with rev 12 changes
  - sg_map: extend to cope with sparse disk device names with
     up to 3 letters (e.g. /dev/sdaaa) [Nate Dailey]
  - sg_modes: add '-f' option to flexibly decode broken mode
     sense responses.
     - zero prefill response; stop decoding response after 3
       unit attention mode pages seen (i.e. malformed)
     - add '-L' option for LLBAA bit in msense 10 cdb
  - sg_reset: update man page
  - sg_inq: VPD page 0x83: output eui addresses in hex as well
  - Makefile: fix bug in rules for sgp_dd (when 'make dep' used)
  - sg_format: expand explanations in its man page
  - sg_inq, sg_logs, sg_modes, sg_opcodes, sg_rbuf, sg_readcap,
    sg_scan, sg_senddiag, sg_start and sg_turs: allow command
    line to take concaternated options
  - sg_start: add -start and -stop to parallel "1" and "0"
  - sg_senddiag: set pf bit with '-l' option

Changelog for sg3_utils-1.14 [20050506] [svn: 54]
  - sg_rmsn: new utility to read media serial number
  - sg_rtpg: add T_SUP bit report
  - sg_ses: ses-2 rev 11 changes (mainly to additional element status)
        - add 'bay number' to SAS additional element status
  - sg_modes: recognise attached enclosure and medium changer
  - sg_inq: spell out non-zero peripheral qualifiers
        - note VS bit preceding MultiP(ort) when latter set
        - VPD page 0x83: output naa addresses in hex as well
  - sginfo: recognise attached enclosure and medium changer
        - increase device mapping capability (to 78 disks)
          [Tim Hunt]
  - sg_senddiag: add option to send raw diagnostic page
  - sg_get_config: update some BD information
  - sg_reasign: add '-g' option to give grown defect list length
  - sg_dd: note default bpt value (128) may be too high for cd/dvds
  - sg_lib: sync with SPC-3 rev 22a [opcodes + asc/q]
        - add DID_IMM_RETRY and DID_REQUEUE [linux specific "host" bytes]
  - sg_cmds: add send+receive diagnostic, read defect data commands
        - add duration output on some commands when verbose > 2
  - spec: change to produce libsgutils (and -devel variant) as well as
          sg3_utils binary rpms
  - sdparm: new utility like hdparm but for SCSI disks (or other devices)
        - moved to its own package called: sdparm

Changelog for sg3_utils-1.13 [20050313] [svn: 52]
  - sg_format: new utility to format disks (perhaps change block size)
  - sg_ses: rename "device element" to "additional element" [SES-2 rev 10]
        - add SAS expander and connector elements; add download
          microcode and subenclosure nickname diagnostic pages
        - fix additional element descriptor for SAS
        - off by 1 error when no type descriptor text in config page
          <David dot Baldwin at anu dot edu dot au>
  - sg_logs: log page for background media scan results
  - sginfo: add "-flba64" option for outputting 64 bit lba defect lists
  - sg_get_config: additions for BD from MMC-5 rev 1b
  - sg_lib: add SG_LIB_CAT_ILLEGAL_REQ sense category
        - add sg_get_sense_progress_fld()
        - SPC-3 rev21d updates: report + set timestamp
        - sg_get_num() + sg_get_llnum(): switch to multipliers that
          are compatible with SI and with IEC 60027-2. Used modern
          GNU's dd command as guide.
        - report field replaceable unit code in fixed format
  - sg_dd: add logic to use read_long on unrecovered read errors when
           'coe' set, read just prior to error if 'coe' clear
        - both 'odir' and 'blk_sgio" are honoured on block devices
        - add 'verbose' switch, output some mode page info when verbose
        - print out elapsed time/throughput when signal received
        - add new web page discussing sg_dd, copy in html subdirectory
  - sg_read: add 'blk_sgio' and 'odir' options
  - sg_wr_mode: clear mode data length in mode select(10)
  - sg_test_rwbuf: add long options, allow test to run multiple times
  - sg_cmds: add sg_get_mode_page_types() [get current, changeable, etc]
  - llseek.c: add Makefile rule without "-std=c99", breaks on some archs

Changelog for sg3_utils-1.12 [20050121] [svn: 50]
  - sg_wr_mode: new utility to modify (i.e. write to) mode pages
  - sg_reassign: new utility: issues Reassign Blocks command
  - sg_rtpg: new utility: issues Report Target Port Groups command
             [Christophe Varoqui]
  - ATA IDENTIFY command misspelt as "IDENTITY" in several places
  - sginfo: tweak SAS mode pages to match sas 1.1 rev 07
        - add NV_DIS bit to disk caching mode page
  - sg_map: open /dev/nst* rather than /dev/st* (to stop spurious rewinds)
  - sg_lib: ATA return sense descriptor
        - add sg_get_sense_info_fld() to fetch info field from sense data
        - fix bug in sg_scsi_sense_desc_find()
        - add sense key specific decoding for fixed format sense data
  - sg_modes: extend '-p' option to allow '-p=<page_code>,<subpage_code>'
        - add '-A' option to output all mode pages and subpages
        - extend '-l' option to show subpages, selected command set pages
  - sg_inq: fix LUN WWN output in unit path report VPD page (emc)
            [Hergen Lange]
  - sg_get_config: some additions for DVD-R dual layer
  - sg_modes: show write protect (WP) and DpoFua flags for disks
  - sg_cmds: add llbaa argument to sg_ll_mode_sense10()

Changelog for sg3_utils-1.11 [20041126] [svn: 48]
  - sg_sync: new utility: invokes the synchronize cache command
  - sg_prevent: new utility: invokes the prevent allow medium removal command
  - sg_get_config: new utility: get configuration command for dvds and cds
  - sg_request: fix, allocation length wasn't set
  - sg_start: remove '-s', as start_stop_unit implicitly syncs caches
  - sg_ses: add SAS expander element type
  - sg_inq: add sanity check to unit serial number (VPD page 0x80)
        - output ANSI version string (e.g. "SPC-2", previously was number)
        - add '-s' option to decode SCSI Ports VPD page
  - sg_logs: decoding of format status and non-volatile cache log
        pages (0x8 and 0x17 in sbc-2)
  - sg_dd: handle compile error when O_DIRECT not defined
  - sginfo: tighten sanity checks around Unit serial number VPD page

Changelog for sg3_utils-1.10 [20041030] [svn: 46]
  - sg_readcap, sg_dd, sgm_dd, sgp_dd: fix sg_ll_readcap_10+16 (sg_cmds.c)
  - sg_luns: new utility to report luns
  - sg_logs: with '-t' (show temperature) ignore extra parameters in
        temperature log page (still show them with '-p=d')
  - sg_ses: clean argument sanity checks
  - sg_cmds: add more common command wrappers

Changelog for sg3_utils-1.09 [20041022] [svn: 44]
  - sg_ses: new utility to get status and set control on SES devices
  - sg_verify: new utility to verify block devices
  - sg_emc_trespass: new utility for EMC specific trespass mode page
  - sg_request: new utility that sends a REQUEST SENSE command
  - sg_logs: '-r' to reset to manufacturer's defaults
      - decode last n error events and last n deferred errors pages
      - add names of ADC log pages
  - sg_inq: update to SPC-3 rev 21
      - decode Extended INQUIRY data VPD page [0x86] {'-x'}
      - decode Unit Path Report VPD page [0xc0] (EMC) {'-P'}
  - sginfo: decode SAS protocol specific lu mode page
  - sg_err: convert to sg_lib + update to SPC-3 rev 21
      - change GPL to FreeBSD license
      - flag vendor specific asc/ascq ranges
  - libsgutils: library made from sg_lib.c and sg_cmds.c
    - rpm "spec" file additionally builds a "-devel" rpm with
      static libsgutils.a and sg_lib.h and sg_cmds.h
  - utils/hxascdmp.c: add FreeBSD license
  - sg_persist: additions to man page
      - add sg_persist_tst.sh example script to examples directory
  - sg_turs: add '-v' and '-V' options
  - sg_senddiag: add '-v' option

Changelog for sg3_utils-1.08 [20040831] [svn: 42]
  - sg_inq: fix noisy message when EVPD and raw modes set
      - for VPD page 0, list supported page names if known {'-e'}
      - add '-d' option to list version descriptors
  - sg_opcodes: numerically sort list of opcodes unless '-u' given
      - add '-a' to sort alphabetically list of opcode names
      - add '-t' to report supported task management functions
  - sg_persist: add 'register and move" PROUT service action
      - add transportId support, document in sg_persist.8 and example
  - sg_modes: handle subpage code for known pages (e.g. control extension)
      - clean up sense buffer handling (allow for descriptor format)
      - SPC-3 draft revision 20a updates
  - sg_write_long: new utility to exercise WRITE LONG command
  - sg_read_long: new utility to exercise READ LONG command
  - sg_err.c: fix compile errors when SG_KERNEL_INCLUDES defined in lk 2.6
      - sg_includes.h typedef of u64 for BLKGETSIZE64 ioctl in lk 2.4
      - add safe_strerror(), sg_scsi_normalize_sense(), sg_normalize_sense()
        and sg_scsi_sense_desc_find() functions
      - add more sense data descriptor format decoding 
      - move multiple implementations of dStrHex() into sg_err.c
  - sg_logs: exit if SCSI INQUIRY fails (e.g. when applied to ATA disk)
  - sginfo: bug fixes and SPC-3 revision 20a updates
      - add '-E' option to access Control Extension mode (sub)page
  - sg_start: change '-d' switch to '-v' (verbose) switch for consistency
      - document extra power condition states in man page
  - sg_readcap: output rto_en and prot_en bits from long read capacity data
  - add COVERAGE file to list SCSI command coverage

Changelog for sg3_utils-1.07 [20040708] [svn: 40]
  - sginfo: clean up inquiry vendor,product,revision strings
      - '-Fhead': sort defect list by head 
        Tom Steudten <steudten at mx dot ch>
  - rework sg_err for better command name coverage: service actions,
    variable length and peripheral device type
      - update asc,ascq codes to SPC-3 revision 19
  - move scsi_devfs_scan to archive directory
  - add sg_opcodes utility to list supported operation codes
  - add sg_persist utility to support persistent reservations
  - add '-i' option to sg_inq to decode device identification VPD page (0x83)
  - sg_inq tries an ATA IDENTIFY if SCSI INQUIRY fails
  - sg_dd, sgm_dd and sgp_dd calculate block device sizes (if count not given)
  - drop SG_GET_VERSION_NUM ioctl guard in most utilities

Changelog for sg3_utils-1.06 [20040426] [svn: 37]
  - sg_logs: some HBAs don't like odd transfer lengths so increment
      - do INQUIRY and output product strings
      - add ASCII rendering of the Protocol specific SAS page
      - add '-v' verbose option to output cdb
  - sg_scan: optionally take device file names (e.g. /dev/hdc and /dev/sda)
      - only request 36 byte INQUIRY responses
  - sg_err: add sg_decode_sense() function
  - sg_inq: update output (ref: SPC-3 t10/1416-d rev 17, 28 January 2004)
      - remove '-p' option to print out PCI address of host
      - add '-v' verbose option to output cdb
  - sginfo: allow '-u' to take hex arguments (prefixed by '0x'),
            when subpage value is 255 show multiple subpages
      - accept /dev/hd? ATAPI devices directly in lk 2.6
      - add '-t <pn>[,<spn>]' argument; like '-u' but decodes page
        if it recognizes it
      - drop '-L' argument
      - add cd/dvd, tape, SES, more disk and more SPC-3 decoded mode pages
      - add transport protocol decoded mode pages for SPI-4, FCP and SAS
  - sg_modes: print all subpages when '-subp=ff' is selected
      - do INQUIRY and output product strings
      - add '-v' verbose option to output cdb
  - Makefile: add -W compile flag and fix exposed warnings
  - .spec file: change to build on Mandrake without errors

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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