summaryrefslogtreecommitdiffstats
path: root/sbin/camcontrol/camcontrol.8
diff options
context:
space:
mode:
authorkbyanc <kbyanc@FreeBSD.org>2000-08-08 06:24:17 +0000
committerkbyanc <kbyanc@FreeBSD.org>2000-08-08 06:24:17 +0000
commit8f0afc6b0aa752cb23dfcf91f2285bf6c825405d (patch)
tree034cb732a278c59e0304f2f93947626f19ea5385 /sbin/camcontrol/camcontrol.8
parent18a0d975369707cba8c9deeb3de4db05dafb9487 (diff)
downloadFreeBSD-src-8f0afc6b0aa752cb23dfcf91f2285bf6c825405d.zip
FreeBSD-src-8f0afc6b0aa752cb23dfcf91f2285bf6c825405d.tar.gz
This is an overhaul of the mode page handling in camcontrol as well as
related patches. These include: * Mode page editting can be scripted. This involves two things: first, if stdin is not a tty, changes are read from stdin rather than invoking $EDITOR. Second, and more importantly, not all modepage entries must be included in the change set. This means that camcontrol can now gracefully handle more intrusive editting from the $EDITOR, including removal or rearrangement of lines. It also means that you can do stuff like: # echo "WCE: 1" | camcontrol modepage da3 -m 8 -e # newfs /dev/da3 # echo "WCE: 0" | camcontrol modepage da3 -m 8 -e * Range-checking on user-supplied input values. modeedit.c now uses the field width specifiers to determine the maximum allowable value for a field. If the user enters a value larger than the maximum, it clips the value to the max and warns the user. This also involved patching cam_cmdparse.c to be more consistent with regards to the "count" parameter to arg_put (previously is was the length of strings and 1 for all integral types). The cam_cdbparse(3) man page was also updated to reflect the revised semantics. * In the process, I removed the 64 entry limit on mode pages (not that we were even close to hitting that limit). This was a nice side-effect of the other changes. * Technically, the new mode editting functionality allows editting of character array entries in mode pages (type 'c' or 'z'), however since buff_encode doesn't grok them it is currently useless. * Camcontrol gained two new options related to mode pages: -l and -b. The former lists all available mode pages for a given device. The latter forces mode page display in binary format (the default when no mode page definition was found in scsi_modes). * Added support for mode page names to scsi_modes. Allows names to be displayed alongside mode numbers in the mode page listing. Updated scsi_modes to use the new functionality. This also adds the semicolon into the scsi_modes syntax as an optional mode page definition terminator. This is needed to name pages without providing a page format definition. * Updated scsi_all.h to include a structure describing mode page headers. * Added $FreeBSD$ line to scsi_modes. Inspired by: dwhite Reviewed by: ken
Diffstat (limited to 'sbin/camcontrol/camcontrol.8')
-rw-r--r--sbin/camcontrol/camcontrol.820
1 files changed, 16 insertions, 4 deletions
diff --git a/sbin/camcontrol/camcontrol.8 b/sbin/camcontrol/camcontrol.8
index 6d2c59f..925cb87 100644
--- a/sbin/camcontrol/camcontrol.8
+++ b/sbin/camcontrol/camcontrol.8
@@ -87,9 +87,9 @@
.Ic modepage
.Op device id
.Op generic args
-.Aq Fl m Ar page
+.Aq Fl m Ar page \*(Ba Fl l
.Op Fl P Ar pgctl
-.Op Fl e
+.Op Fl b | Fl e
.Op Fl d
.Nm camcontrol
.Ic cmd
@@ -317,11 +317,23 @@ command takes several arguments:
.Bl -tag -width 012345678901
.It Fl d
Disable block descriptors for mode sense.
+.It Fl b
+Displays mode page data in binary format.
.It Fl e
-This flag allows the user to edit values in the mode page.
+This flag allows the user to edit values in the mode page. The user may
+either edit mode page values with the text editor pointed to by his
+.Ev EDITOR
+environment variable, or supply mode page values via standard input, using
+the same format that
+.Nm camcontrol
+uses to display mode page values. The editor will be invoked if
+.Nm camcontrol
+detects that standard input is terminal.
+.It Fl l
+Lists all available mode pages.
.It Fl m Ar mode_page
This specifies the number of the mode page the user would like to view
-and/or edit. This argument is mandatory.
+and/or edit. This argument is mandatory unless -l is specified.
.It Fl P Ar pgctl
This allows the user to specify the page control field. Possible values are:
.Bl -tag -width xxx -compact
OpenPOWER on IntegriCloud