Mark Carlson wrote: > Template Version: @(#)sac_nextcase %I% %G% SMI > This information is Copyright 2008 Sun Microsystems > 1. Introduction > 1.1. Project/Component Working Name: > Sg3 utilities 1.25 > 1.2. Name of Document Author/Supplier: > Author: Xiao Li > 1.3 Date of This Document: > 04 November, 2008 > > 2. Project Summary > 2.1. Project Description > > This project introduces the package of Sg3 utilites 1.25 into the > SFW consolidation. > > 4. Technical Description > > The sg3_utils package contains utilities that send SCSI commands to > devices. As well as devices on transports traditionally associated > with SCSI (e.g. Fibre Channel (FCP), Serial Attached SCSI (SAS) and > the SCSI Parallel Interface(SPI)) and many other devices use SCSI > command sets. ATAPI cd/dvd drives and SATA disks that connect via a > translation layer or a bridge device are examples of devices that > use SCSI command sets.
Are these utilities going to make use of the existing features in OpenSolaris which make writing such utilities *really easy*? ie, using libscsi and libses, as well as <sys/scsi/impl/spc3_types.h> ? Or will they be an as-close-as-possible port from other parts of the OpenSource ecosystem? James > There are about 32 command line utilities inside this package. > Command name Notes > ============ =================================================== > sg_get_config fetch features and profiles of a cd/dvd drive and/or > its current media > sg_ident default is to report (fetch) the device identifier. > With the '--set' option a new identifier is sent to > the device. > sg_inq fetch standard response, VPD pages or version > descriptors. Also can perform IDENTIFY (PACKET) > DEVICE ATA command. VPD page decoding also performed > by sg_vpd and sdparm. > sg_logs fetch log sense pages, decode standard and some vendor > pages > sg_luns fetch luns reported by a device (lun 0 or "well known > lu") > sg_modes fetch mode pages (output mainly in hex, to decode > output use sdparm) > sg_opcodes fetch supported SCSI commands or supported task > management functions > sg_persist control persistent reservations and report reservation > status > sg_prevent control media removal, mainly for those SCSI devices > which have removable media (e.g. CD/DVD and tape drives) > sg_raw send user supplied cdb > sg_rdac display or modify RDAC redundant controller mode page > sg_read_buffer read descriptors or data > sg_read_long read data from given lba which includes the block and > ECC data. > sg_readcap fetch the number of blocks and the individual block > size for disks and CD/DVD media > sg_reassign reassign a lba from one sector on a disk (typically > damaged) to a new (spare) sector. User data copied if > it is recoverable. > sg_requests fetch sense data from the given device. Modern uses > include getting a progress indication (e.g. during a > format) or finding the power condition state. > sg_rmsn Relatively new command added to SPC-3. Format of > response is vendor specific so this utility outputs > it in hex (default) or binary. > sg_rtpg Specialized for multi-ported SCSI devices where one > port (or a group of them) is preferred for IO over > another (or others). > sg_safte fetch information from a SAF-TE processor. > sg_sat_identify Send ATA IDENTIFY DEVICE or IDENTIFY PACKET DEVICE > commands via the SAT ATA PASS-THROUGH (16 or 12) SCSI > command. > sg_sat_set_features Sends ATA SET FEATURES command via SAT. > sg_senddiag Issues either a default self test or a short/extended > foreground/background self test. With no arguments it > uses RECEIVE DIAGNOSTIC RESULTS to list all supported > diagnostic pages. > sg_ses Fetches status diagnostic pages from, and sends some > control pages to, a SCSI Enclosure Services (SES) > device. > sg_start Controls the power condition state of a SCSI device. > Primary use is to spin up and down SCSI disks. Can > also load and eject removable media. > sg_stpg Specialized for multi-ported SCSI devices where one > port (or a group of them) is preferred for IO over > another (or others). > sg_sync Causes disk caches to be flushed to media. > sg_turs Issue one or more Test Unit Ready commands. Can be > used to time SCSI command overhead. > sg_verify reads indicated blocks on a SCSI disks, stops on the > first error found. Does not yield any data. Useful > for media scans. > sg_vpd Decodes standard and some vendor Vital Product Data > (VPD) pages. > sg_wr_mode writes mode pages supplied in ASCII hex (e.g. from > "sg_modes -r") to the SCSI device. See sdparm for > another method of setting mode page parameters. > sg_write_buffer write data; can be used to download firmware. > sg_write_long writes to a lba, data which includes the block and > ECC data. Suitable data typically fetched by prior > sg_read_long utility. > 5. Interfaces > > Exported interface Classification Interface type > =============================== ============== ============== > SUNWsg3utils Uncommitted Package name > /usr/bin/sg_get_config Uncommitted Command > /usr/bin/sg_ident Uncommitted Command > /usr/bin/sg_inq Uncommitted Command > /usr/bin/sg_logs Uncommitted Command > /usr/bin/sg_luns Uncommitted Command > /usr/bin/sg_modes Uncommitted Command > /usr/bin/sg_opcodes Uncommitted Command > /usr/bin/sg_persist Uncommitted Command > /usr/bin/sg_prevent Uncommitted Command > /usr/bin/sg_raw Uncommitted Command > /usr/bin/sg_rdac Uncommitted Command > /usr/bin/sg_read_buffer Uncommitted Command > /usr/bin/sg_read_long Uncommitted Command > /usr/bin/sg_readcap Uncommitted Command > /usr/bin/sg_reassign Uncommitted Command > /usr/bin/sg_requests Uncommitted Command > /usr/bin/sg_rmsn Uncommitted Command > /usr/bin/sg_rtpg Uncommitted Command > /usr/bin/sg_safte Uncommitted Command > /usr/bin/sg_sat_identify Uncommitted Command > /usr/bin/sg_sat_set_features Uncommitted Command > /usr/bin/sg_senddiag Uncommitted Command > /usr/bin/sg_ses Uncommitted Command > /usr/bin/sg_start Uncommitted Command > /usr/bin/sg_stpg Uncommitted Command > /usr/bin/sg_sync Uncommitted Command > /usr/bin/sg_turs Uncommitted Command > /usr/bin/sg_verify Uncommitted Command > /usr/bin/sg_vpd Uncommitted Command > /usr/bin/sg_wr_mode Uncommitted Command > /usr/bin/sg_write_buffer Uncommitted Command > /usr/bin/sg_write_long Uncommitted Command > /usr/lib/libsgutils.so Private Symbolic link > /usr/lib/libsgutils.so.1 Private Symbolic link > /usr/lib/libsgutils.so.1.0.0 Private Shared library > /usr/lib/libsgutils.a Private Static library > /usr/lib/libsgutils.la Private Libtool library > file > /usr/include/scsi/sg_lib.h Uncommitted Header file > /usr/include/scsi/sg_cmds_extra.h Uncommitted Header file > /usr/include/scsi/sg_cmds_basic.h Uncommitted Header file > /usr/include/scsi/sg_cmds.h Uncommitted Header file > /usr/include/scsi/sg_pt.h Uncommitted Header file > /usr/share/man/man8/sg_read_long.8 Uncommitted Manpage > /usr/share/man/man8/sg_safte.8 Uncommitted Manpage > /usr/share/man/man8/sg_senddiag.8 Uncommitted Manpage > /usr/share/man/man8/sg_wr_mode.8 Uncommitted Manpage > /usr/share/man/man8/sg_stpg.8 Uncommitted Manpage > /usr/share/man/man8/sg_persist.8 Uncommitted Manpage > /usr/share/man/man8/sg_ses.8 Uncommitted Manpage > /usr/share/man/man8/sg_opcodes.8 Uncommitted Manpage > /usr/share/man/man8/sg_get_config.8 Uncommitted Manpage > /usr/share/man/man8/sg_read_buffer.8 Uncommitted Manpage > /usr/share/man/man8/sg_luns.8 Uncommitted Manpage > /usr/share/man/man8/sg_requests.8 Uncommitted Manpage > /usr/share/man/man8/sg_prevent.8 Uncommitted Manpage > /usr/share/man/man8/sg_rdac.8 Uncommitted Manpage > /usr/share/man/man8/sg_rtpg.8 Uncommitted Manpage > /usr/share/man/man8/sg_sat_identify.8 Uncommitted Manpage > /usr/share/man/man8/sg_start.8 Uncommitted Manpage > /usr/share/man/man8/sg_verify.8 Uncommitted Manpage > /usr/share/man/man8/sg_modes.8 Uncommitted Manpage > /usr/share/man/man8/sg_readcap.8 Uncommitted Manpage > /usr/share/man/man8/sg_sat_set_features.8 Uncommitted Manpage > /usr/share/man/man8/sg_rmsn.8 Uncommitted Manpage > /usr/share/man/man8/sg3_utils.8 Uncommitted Manpage > /usr/share/man/man8/sg_ident.8 Uncommitted Manpage > /usr/share/man/man8/sg_vpd.8 Uncommitted Manpage > /usr/share/man/man8/sg_inq.8 Uncommitted Manpage > /usr/share/man/man8/sg_raw.8 Uncommitted Manpage > /usr/share/man/man8/sg_turs.8 Uncommitted Manpage > /usr/share/man/man8/sg_sync.8 Uncommitted Manpage > /usr/share/man/man8/sg_logs.8 Uncommitted Manpage > /usr/share/man/man8/sg_format.8 Uncommitted Manpage > /usr/share/man/man8/sg_reassign.8 Uncommitted Manpage > /usr/share/man/man8/sg_write_long.8 Uncommitted Manpage > /usr/share/man/man8/sg_write_buffer.8 Uncommitted Manpage > > The following additional installed files are not interface. > > Additional document > ------------------- > N/A > > 6. Resources and Schedule > 6.4. Steering Committee requested information > 6.4.1. Consolidation C-team Name: > SFW > 6.5. ARC review type: Automatic > 6.6. ARC Exposure: open > > _______________________________________________ > opensolaris-arc mailing list > opensolaris-arc at opensolaris.org -- James C. McPherson -- Senior Kernel Software Engineer, Solaris Sun Microsystems http://blogs.sun.com/jmcp http://www.jmcp.homeunix.com/blog