Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/netbsd-7]: src Pull up following revision(s) (requested by flxd in ticke...



details:   https://anonhg.NetBSD.org/src/rev/1308d680a906
branches:  netbsd-7
changeset: 800013:1308d680a906
user:      martin <martin%NetBSD.org@localhost>
date:      Sat Dec 03 12:20:32 2016 +0000

description:
Pull up following revision(s) (requested by flxd in ticket #1276):
        sys/dev/scsipi/scsi_disk.h: revision 1.32
        sbin/scsictl/scsictl.8: revision 1.27-1.30
        sbin/scsictl/scsictl.c: revision 1.39
Add "getrealloc" and "setrealloc" commands to get/set automatic reallocation
parameters/enables for error recovery, similar to {get,set}cache.
Many old SCSI disks shipped with reallocation disabled, albeit
supporting it.
Minor (cosmetic) fixup of scsi_disk_pages while there.
Based upon code in PR bin/29165 by Greg A. Woods.
OK christos@
Bump date for previous.
Use more and more appropriate markup while here.
Add crossreference to scsi(4) per note in PR 9627.
Whitespace, sort.

diffstat:

 sbin/scsictl/scsictl.8     |  124 ++++++++++++++++----------------------------
 sbin/scsictl/scsictl.c     |   95 +++++++++++++++++++++++++++++++++-
 sys/dev/scsipi/scsi_disk.h |   28 +++++++++-
 3 files changed, 164 insertions(+), 83 deletions(-)

diffs (truncated from 427 to 300 lines):

diff -r 310a4cae1f48 -r 1308d680a906 sbin/scsictl/scsictl.8
--- a/sbin/scsictl/scsictl.8    Sat Dec 03 12:08:36 2016 +0000
+++ b/sbin/scsictl/scsictl.8    Sat Dec 03 12:20:32 2016 +0000
@@ -1,4 +1,4 @@
-.\"    $NetBSD: scsictl.8,v 1.26 2013/03/29 21:46:32 christos Exp $
+.\"    $NetBSD: scsictl.8,v 1.26.6.1 2016/12/03 12:20:32 martin Exp $
 .\"
 .\" Copyright (c) 1998, 2002 The NetBSD Foundation, Inc.
 .\" All rights reserved.
@@ -28,7 +28,7 @@
 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 .\" POSSIBILITY OF SUCH DAMAGE.
 .\"
-.Dd March 29, 2013
+.Dd November 19, 2016
 .Dt SCSICTL 8
 .Os
 .Sh NAME
@@ -60,10 +60,8 @@
 and displayed to the standard output.
 .Sh DEVICE COMMANDS
 The following commands are supported for SCSI devices:
-.Pp
-.Nm debug
-.Ar level
-.Pp
+.Bl -tag -width flushcacheXX
+.It Cm debug Ar level
 Set the debugging level for the given device; the following flags are
 supported:
 .Pp
@@ -80,24 +78,13 @@
 .Pp
 This option is only supported with kernels compiled with
 .Dv SCSIPI_DEBUG .
-.Pp
-.Nm defects
-.Op primary
-.Op grown
-.Op block|byte|physical
-.Pp
+.It Cm defects Oo primary Oc Oo grown Oc Oo block|byte|physical Oc
 Read the primary and/or grown defect lists from the specified device
 in block, byte from index, or physical sector format.
 The default is to return both the primary and grown defect lists
 in physical sector format.
 This command is only supported on direct access devices.
-.Pp
-.Nm format
-.Oo blocksize
-.Oo immediate
-.Oc
-.Oc
-.Pp
+.It Cm format Oo blocksize Oo immediate Oc Oc
 (Low level) format the named device.
 If the optional
 .Li blocksize
@@ -132,73 +119,47 @@
 how far the format is progressing.
 Note well that most SCSI disk drives prior to
 a few years ago do not support this option.
-.Pp
-.Nm identify
-.Pp
+.It Cm identify
 Identify the specified device, displaying the device's SCSI
 bus, target, and lun, as well as the device's vendor, product,
 and revision strings.
-.Pp
-.Nm reassign
-.Ar blkno
-.Oo blkno Oo ...
-.Oc
-.Oc
-.Pp
+.Cm It reassign Ar blkno Oo blkno Oo ... Oc Oc
 Issues a
 .Li REASSIGN BLOCKS
 command to the device, adding the specified blocks to the
 grown defect list.
 This command is only supported on direct access devices.
-.Pp
-.Nm release
-.Pp
+.It Cm release
 Send a
 .Dq RELEASE
 command to the device to release a reservation on it.
-.Pp
-.Nm reserve
-.Pp
+.It Cm reserve
 Send a
 .Dq RESERVE
 command to the device to place a reservation on it.
-.Pp
-.Nm reset
-.Pp
+.It Cm reset
 Reset the device.
 This command is only supported for devices which support the
 .Li SCIOCRESET
 ioctl.
-.Pp
-.Nm start
-.Pp
+.It Cm start
 Send a
 .Dq START
 command to the device.
 This is useful typically only for disk devices.
-.Pp
-.Nm stop
-.Pp
+.It Cm stop
 Send a
 .Dq STOP
 command to the device.
 This is useful typically only for disk devices.
-.Pp
-.Nm tur
-.Pp
+.It Cm tur
 Send a
 .Dq TEST UNIT READY
 command to the device.
 This is useful for generating current device status.
-.Pp
-.Nm getcache
-.Pp
+.It Cm getcache
 Returns basic cache parameters for the device.
-.Pp
-.Nm setcache
-.Ar none|r|w|rw
-.Op Ar save
-.Pp
+.It Cm setcache Ar none|r|w|rw Op Ar save
 Set basic cache parameters for the device.
 The cache may be disabled
 .Pq none ,
@@ -212,32 +173,39 @@
 .Ar save
 after the cache enable state will cause the parameters to be saved in
 non-volatile storage.
-.Pp
-.Nm flushcache
-.Pp
+.It Cm flushcache
 Explicitly flushes the write cache.
-.Pp
-.Nm setspeed
-.Ar speed
-.Pp
+.It Cm setspeed Ar speed
 Set the highest speed that the optical drive should use for reading
 data.
 The units are multiples of a single speed CDROM (150 KB/s).
 Specify 0 to use the drive's fastest speed.
+.It Cm getrealloc
+Returns automatic reallocation parameters for the device.
+.It Cm setrealloc Ar none|r|w|rw Op Ar save
+Set automatic reallocation parameters for the device.
+Automatic reallocation may be disabled
+.Pq none ,
+the automatic read reallocation enabled
+.Pq r ,
+the automatic write reallocation enabled
+.Pq w ,
+or both automatic read and write reallocation enabled
+.Pq rw .
+If the drive's automatic reallocation parameters are savable, specifying
+.Ar save
+after the automatic reallocation enable state will cause the parameters to be
+saved in non-volatile storage.
+.El
 .Sh BUS COMMANDS
 The following commands are supported for SCSI busses:
-.Pp
-.Nm reset
-.Pp
+.Bl -tag width scanXtargetXlunXX
+.It Cm reset
 Reset the SCSI bus.
 This command is only supported if the host adapter supports the
 .Li SCBUSIORESET
 ioctl.
-.Pp
-.Nm scan
-.Ar target
-.Ar lun
-.Pp
+.It Cm scan Ar target Ar lun
 Scan the SCSI bus for devices.
 This is useful if a device was not connected or powered
 on when the system was booted.
@@ -250,11 +218,7 @@
 .Dq any
 or
 .Dq all .
-.Pp
-.Nm detach
-.Ar target
-.Ar lun
-.Pp
+.It Cm detach Ar target Ar lun
 Detach the specified device from the bus.
 Useful if a device is powered down after use.
 The
@@ -262,8 +226,9 @@
 and
 .Ar lun
 arguments have the same meaning as for the
-.Nm scan
+.Cm scan
 command, and may also be wildcarded.
+.El
 .Sh NOTES
 When scanning the SCSI bus, information about newly recognized devices
 is printed to console.
@@ -275,6 +240,7 @@
 .Xr ioctl 2 ,
 .Xr cd 4 ,
 .Xr ch 4 ,
+.Xr scsi 4 ,
 .Xr sd 4 ,
 .Xr se 4 ,
 .Xr ss 4 ,
@@ -288,7 +254,9 @@
 command first appeared in
 .Nx 1.4 .
 .Sh AUTHORS
+.An -nosplit
 The
 .Nm
-command was written by Jason R. Thorpe of the Numerical Aerospace Simulation
-Facility, NASA Ames Research Center.
+command was written by
+.An Jason R. Thorpe
+of the Numerical Aerospace Simulation Facility, NASA Ames Research Center.
diff -r 310a4cae1f48 -r 1308d680a906 sbin/scsictl/scsictl.c
--- a/sbin/scsictl/scsictl.c    Sat Dec 03 12:08:36 2016 +0000
+++ b/sbin/scsictl/scsictl.c    Sat Dec 03 12:20:32 2016 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: scsictl.c,v 1.37 2013/01/12 02:52:59 jakllsch Exp $    */
+/*     $NetBSD: scsictl.c,v 1.37.8.1 2016/12/03 12:20:32 martin Exp $  */
 
 /*-
  * Copyright (c) 1998, 2002 The NetBSD Foundation, Inc.
@@ -36,7 +36,7 @@
 #include <sys/cdefs.h>
 
 #ifndef lint
-__RCSID("$NetBSD: scsictl.c,v 1.37 2013/01/12 02:52:59 jakllsch Exp $");
+__RCSID("$NetBSD: scsictl.c,v 1.37.8.1 2016/12/03 12:20:32 martin Exp $");
 #endif
 
 
@@ -91,6 +91,8 @@
 static void    device_setcache(int, char *[]);
 static void    device_flushcache(int, char *[]);
 static void    device_setspeed(int, char *[]);
+static void    device_getrealloc(int, char *[]);
+static void    device_setrealloc(int, char *[]);
 
 static struct command device_commands[] = {
        { "defects",    "[primary] [grown] [block|byte|physical]",
@@ -111,6 +113,8 @@
        { "setcache",   "none|r|w|rw [save]",   device_setcache },
        { "flushcache", "",                     device_flushcache },
        { "setspeed",   "[speed]",              device_setspeed },
+       { "getrealloc", "",                     device_getrealloc },
+       { "setrealloc", "none|r|w|rw [save]",   device_setrealloc },
        { NULL,         NULL,                   NULL },
 };
 
@@ -981,6 +985,93 @@
 }
 
 /*
+ * device_getrealloc:
+ *
+ *     Get the automatic reallocation parameters for a SCSI disk.
+ */
+static void
+device_getrealloc(int argc, char *argv[])
+{
+       struct {
+               struct scsi_mode_parameter_header_6 header;
+               struct scsi_general_block_descriptor blk_desc;
+               struct page_err_recov err_recov_params;
+       } data;
+       u_int8_t flags;
+
+       /* No arguments. */
+       if (argc != 0)
+               usage();
+
+       scsi_mode_sense(fd, 0x01, 0x00, &data, sizeof(data));



Home | Main Index | Thread Index | Old Index