diff options
author | kbyanc <kbyanc@FreeBSD.org> | 2000-08-08 06:24:17 +0000 |
---|---|---|
committer | kbyanc <kbyanc@FreeBSD.org> | 2000-08-08 06:24:17 +0000 |
commit | 8f0afc6b0aa752cb23dfcf91f2285bf6c825405d (patch) | |
tree | 034cb732a278c59e0304f2f93947626f19ea5385 /sbin/camcontrol/camcontrol.8 | |
parent | 18a0d975369707cba8c9deeb3de4db05dafb9487 (diff) | |
download | FreeBSD-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.8 | 20 |
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 |