Introduction
============
The Tru64 port of sg3_utils contains those utilities that are _not_
specific to Linux. In some cases a utility could be ported but
requires more work. An example is sg_dd which needs more work
beyond the SCSI command pass through mechanism.

Supported Utilities
===================
Here is a list of utilities that have been ported:
    sg_compare_and_write
    sg_decode_sense
    sg_format
    sg_get_config
    sg_get_lba_status
    sg_ident
    sg_inq          [dropped ATA IDENTIFY DEVICE capability]
    sg_logs
    sg_luns
    sg_modes
    sg_opcodes
    sg_persist
    sg_prevent
    sg_raw
    sg_rdac
    sg_read_block_limits
    sg_read_buffer
    sg_read_long
    sg_readcap
    sg_reassign
    sg_referrals
    sg_requests
    sg_rmsn
    sg_rtpg
    sg_safte
    sg_sanitize
    sg_sat_identify
    sg_sat_phy_event
    sg_sat_set_features
    sg_senddiag
    sg_ses
    sg_start
    sg_stpg
    sg_sync
    sg_turs
    sg_unmap
    sg_verify
    sg_vpd
    sg_wr_mode
    sg_write_buffer
    sg_write_long
    sg_write_same

Most utility names are indicative of the main SCSI command
that they execute.  Some utilities are slightly higher level, for
example sg_ses fetches SCSI Enclosure Services (SES) status pages and
can send control pages. Each utility has a man page (placed in
section 8). An overview of sg3_utils can be found at:
https://sg.danny.cz/sg/sg3_utils.html .
A copy of the "sg3_utils.html" file is in the "doc" subdirectory.

This package uses autotools infrastructure with the now common
"./configure ; make ; make install" sequence needed to build and install
from the source found in the tarball. If the "./configure" sequence
fails try using the ./autogen.sh prior to that sequence.

Some man pages have examples which use Linux device names which hopefully
will not confuse Tru64 users.


Details
=======
Most of the ported utilities listed above use SCSI command functions
declared in sg_cmds_*.h headers . Those SCSI command functions are
implemented in the corresponding ".c" files. The ".c" files pass SCSI
commands to the host operating system via an interface declared in sg_pt.h .
There are currently five implementations of that interface depending on
the host operating system:
system:
  - sg_pt_linux.c
  - sg_pt_osf1.c  [Tru64]
  - sg_pt_freebsd.c
  - sg_pt_solaris.c
  - sg_pt_win32.c

The sg_pt_osf1.c file uses the Tru64 CAM SCSI pass through mechanism.

Tru64 does not have general library support for "long" options
(e.g. "--verbose") which are used extensively by most of the
utilities in this package. Rather than change all the utilities
and their man/web pages a local implementation of the missing
function "getopt_long()" has been placed in the "getopt_long"
subdirectory. Currently only the Tru64 port uses it.


Douglas Gilbert
14th January 2013
