Date: Mon, 7 Aug 2000 23:24:18 -0700 (PDT) From: Kelly Yancey <kbyanc@FreeBSD.org> To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/lib/libcam cam_cdbparse.3 scsi_cmdparse.c src/sbin/camcontrol Makefile camcontrol.8 camcontrol.c camcontrol.h modeedit.c util.c src/share/misc scsi_modes src/sys/cam/scsi scsi_all.h Message-ID: <200008080624.XAA78446@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
kbyanc 2000/08/07 23:24:18 PDT
Modified files:
lib/libcam cam_cdbparse.3 scsi_cmdparse.c
sbin/camcontrol Makefile camcontrol.8 camcontrol.c
camcontrol.h modeedit.c util.c
share/misc scsi_modes
sys/cam/scsi scsi_all.h
Log:
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
Revision Changes Path
1.6 +3 -3 src/lib/libcam/cam_cdbparse.3
1.4 +3 -2 src/lib/libcam/scsi_cmdparse.c
1.4 +2 -2 src/sbin/camcontrol/Makefile
1.24 +17 -5 src/sbin/camcontrol/camcontrol.8
1.28 +21 -7 src/sbin/camcontrol/camcontrol.c
1.4 +4 -2 src/sbin/camcontrol/camcontrol.h
1.6 +780 -373 src/sbin/camcontrol/modeedit.c
1.6 +4 -355 src/sbin/camcontrol/util.c
1.7 +18 -24 src/share/misc/scsi_modes
1.16 +8 -2 src/sys/cam/scsi/scsi_all.h
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200008080624.XAA78446>
