#
351583 |
|
28-Aug-2019 |
mav |
MFC r350677: Make GCC happy about math in r350676.
|
#
351582 |
|
28-Aug-2019 |
mav |
MFC r350676: Make `camcontrol modepage` support block descriptors.
It allows to read and write block descriptors alike to mode page parameters. It allows to change block size or short-stroke HDDs or overprovision SSDs. Depenting on -P parameter the change can be either persistent or till reset. In case of block size change device may need reformat after the setting. In case of SSD overprovisioning format or sanitize may be needed to really free the flash.
During implementation appeared that csio_encode_visit() can not handle integers of more then 4 bytes, that makes 8-byte LBA handling awkward. I had to split it into two 4-byte halves now.
Relnotes: yes Sponsored by: iXsystems, Inc.
|
#
351581 |
|
28-Aug-2019 |
mav |
MFC r350457: Make `camcontrol modepage` to use 10 byte commands.
While old devices may not support 10 byte MODE SENSE/MODE SELECT commands, new ones may not be able to report all mode pages with 6 byte commands.
This patch makes camcontrol by default start with 10 byte commands and fall back to 6 byte on ILLEGAL REQUEST error, or 6 byte can be forced.
|
#
330449 |
|
05-Mar-2018 |
eadler |
MFC r326276:
various: general adoption of SPDX licensing ID tags.
Mainly focus on files that use BSD 2-Clause license, however the tool I was using misidentified many licenses so this was mostly a manual - error prone - task.
The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts.
No functional change intended.
|
#
317965 |
|
08-May-2017 |
ken |
MFC r317854:
When editing a mode page on a tape drive, do not clear the device specific parameter.
Tape drives include write protect (WP), Buffered Mode and Speed settings in the device-specific parameter. Clearing this parameter on a mode select can have the effect of turning off write protect or buffered mode, or changing the speed setting of the tape drive.
Disks report DPO/FUA support via the device specific parameter for MODE SENSE, but the bit is reserved for MODE SELECT. So we clear this for disks (and other non-tape devices) to avoid potential errors from the target device.
sbin/camcontrol/modeedit.c: Clear the device-specific parameter in the mode page header if we're not operating on a tape drive.
Sponsored by: Spectra Logic
|
#
314220 |
|
24-Feb-2017 |
ken |
MFC r313893
------------------------------------------------------------------------ r313893 | ken | 2017-02-17 13:04:22 -0700 (Fri, 17 Feb 2017) | 48 lines
Add task attribute support to camcontrol(8).
Users can use the new generic argument, -Q task_attr, to specify a task attribute (simple, ordered, head of queue, aca) for the commands issued. The the default is simple, which works with all SCSI devices that support tagged queueing.
This will mostly be useful for debugging target behavior in certain situations.
You can try it out by compiling CTL with CTL_IO_DELAY turned on (in sys/cam/ctl/ctl_io.h) and then do something like this with one of the CTL LUNs:
ctladm delay 0:0 -l done -t 10 camcontrol tur da34 -v
And at then before the 10 second timer is up, in another terminal:
camcontrol inquiry da34 -Q ordered -v
The Inquiry should complete just after the TUR completes. Ordinarily it would complete first because of the delay injection, but because the task attribute is set to ordered in this case, CTL holds it up until the previous command has completed.
sbin/camcontrol/camcontrol.c: Add the new generic argument, -Q, which allows the user to specify a SCSI task attribute. The user can specify task attributes by name or numerically.
Add a new task_attr arguments to SCSI sub-functions.
sbin/camcontrol/attrib.c, sbin/camcontrol/camcontrol.h, sbin/camcontrol/fwdownload.c, sbin/camcontrol/modeedit.c, sbin/camcontrol/persist.c, sbin/camcontrol/timestamp.c, sbin/camcontrol/zone.c: Add the new task_attr argument to SCSI sub-functions.
sbin/camcontrol/camcontrol.8: Document the new -Q option, and add an example.
Sponsored by: Spectra Logic
------------------------------------------------------------------------
|
#
312568 |
|
21-Jan-2017 |
mav |
MFC r311897: Add checks for received mode page length.
If our buffer is too small, we may receive part of the page, and should not try read/write past the end of the buffer.
Reported by: Coverity CID: 1368374, 1368375
|
#
312566 |
|
21-Jan-2017 |
mav |
MFC r311636: Make 'camcontrol modepage' support subpages.
|
#
312564 |
|
21-Jan-2017 |
mav |
MFC r311623: Make do_buff_decode() not read past the end of the buffer.
Abort format processing as soon as we have no enough data.
|
#
302408 |
|
07-Jul-2016 |
gjb |
Copy head@r302406 to stable/11 as part of the 11.0-RELEASE cycle. Prune svn:mergeinfo from the new branch, as nothing has been merged here.
Additional commits post-branch will follow.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
289916 |
|
25-Oct-2015 |
ngie |
Limit RESOLUTION_MAX to INT_MAX, not UINT_MAX (all spelled out) so the mode value isn't always clipped to -1 when (resolution * size) == 32, which would have been the case with values => {4i,32b,32t}.
This seems to have been broken in r64382.
MFC after: 1 week X-MFC with: r289915 PR: 200619 Reported by: Michael Baptist Submitted by: Lars Skodje Sponsored by: EMC / Isilon Storage Division
|
#
256317 |
|
11-Oct-2013 |
mav |
Fix mode page length calculation to remove last garbage line from the `camcontrol mode daX -l` output.
PR Approved by: re (gjb) MFC after: 2 weeks
|
#
241737 |
|
19-Oct-2012 |
ed |
More -Wmissing-variable-declarations fixes.
In addition to adding `static' where possible:
- bin/date: Move `retval' into extern.h to make it visible to date.c. - bin/ed: Move globally used variables into ed.h. - sbin/camcontrol: Move `verbose' into camcontrol.h and fix shadow warnings. - usr.bin/calendar: Remove unneeded variables. - usr.bin/chat: Make `line' local instead of global. - usr.bin/elfdump: Comment out unneeded function. - usr.bin/rlogin: Use _Noreturn instead of __dead2. - usr.bin/tset: Pull `Ospeed' into extern.h. - usr.sbin/mfiutil: Put global variables in mfiutil.h. - usr.sbin/pkg: Remove unused `os_corres'. - usr.sbin/quotaon, usr.sbin/repquota: Remove unused `qfname'.
|
#
229919 |
|
10-Jan-2012 |
eadler |
Fix warning when compiling with gcc46: error: variable 'freq' set but not used error: variable 'mode_pars' set but not used
Reviewed by: mav Approved by: dim MFC after: 3 days
|
#
228407 |
|
11-Dec-2011 |
ed |
Add missing static keywords to global variables in camcontrol.
While there, make the vendor list const and add appropriate keywords to functions that use this list.
|
#
209051 |
|
11-Jun-2010 |
uqs |
Initialize variables before usage.
Found by: clang static analyzer Found by: Coverity Prevent[tm] (CID 7736, 7760)
|
#
124830 |
|
22-Jan-2004 |
grehan |
Userland signed char fixes for PPC build. Problems were using a char return for getopt() and comparing to -1, ditto with fgetc() and EOF, and using the kg_nice value from <sys/user.h>
Submitted by: Stefan Farfeleder <stefan@fafoe.narf.at> Reviewed by: obrien, bde (a while back) Tested lightly on: ppc, i386, make universe
|
#
119252 |
|
21-Aug-2003 |
imp |
Fix alignment of the trailing \
|
#
118478 |
|
05-Aug-2003 |
johan |
Make this WARNS=6 clean by: 1: add 'const' to char * where needed; 2: mark unused variables with __unused; 3: remove double prototypes for mode_edit and mode_list. 4: moves the global variables 'bus', 'target', and 'lun' into the main function and protect them with #ifndef MINIMALISTIC, 5: renames 3 variable in order not to shadow other things index -> indx -- in modepage_dump since index is a function from <strings.h.> arglist -> arglst -- in the function parse_btl since arglist is also a global variable convertend -> convertend2 -- in the function editentry_set since that name is used two times within the function. 6: cast 0xffffffff in the macro RESOLUTION_MAX(size) to (int) since it is unsigned otherwise.
Tested by: make universe Approved by: ken
|
#
114513 |
|
02-May-2003 |
obrien |
Use __FBSDID.
|
#
112254 |
|
15-Mar-2003 |
ru |
Fixed (soon might be fatal) -Wformat warnings.
|
#
111195 |
|
20-Feb-2003 |
johan |
Make camcontrol WARNS=2 clean.
Approved by: ken
|
#
97636 |
|
30-May-2002 |
wollman |
Fix syntax errors (labels with no statement).
|
#
92806 |
|
20-Mar-2002 |
obrien |
Remove 'register' keyword. It does not help modern compilers, and some may take some hit from it. (I also found several functions that listed *every* of its 10 local vars with "register" -- just how many free registers do people think machines have?)
|
#
64474 |
|
09-Aug-2000 |
kbyanc |
Fix an order-of-operations bug and properly shift page_control values for comparison with SMS_PAGE_CTRL_* macros.
|
#
64435 |
|
08-Aug-2000 |
jhb |
Fix a typo in the last commit so that this compiles.
|
#
64393 |
|
08-Aug-2000 |
kbyanc |
Fix some whitespace errors.
Pointed out by: ps
|
#
64382 |
|
08-Aug-2000 |
kbyanc |
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
|
#
56384 |
|
21-Jan-2000 |
mjacob |
Do some intptr_t casting for alpha. Reviewed by: ken@freebsd.org
|
#
51737 |
|
28-Sep-1999 |
ken |
Use mkstemp(3) instead of tmpnam(3) when creating temporary files for mode page editing.
Submitted by: roberto Reviewed by: imp, ken
|
#
50476 |
|
27-Aug-1999 |
peter |
$Id$ -> $FreeBSD$
|
#
46938 |
|
10-May-1999 |
ken |
Add a new device specification syntax to camcontrol. It is now possible to do things like:
camcontrol tur da5 or camcontrol tur 1:2:0 or camcontrol tur 1:2
These changes are fully backwards compatible with the original device specification syntax (-n dev -u unit), so it is possible to use either method to specify a device now.
The device specification changes do not affect the rescan, reset or debug commands, since by design, those commands work on a bus or bus:target:lun basis only.
Also, shorten the default usage statement so that it fits in a 24 column terminal. The full usage statement is still available by using the "help" "-h" or "-?" arguments to camcontrol.
Submitted by: Joerg Wunsch <joerg_wunsch@interface-business.de>
|
#
39214 |
|
15-Sep-1998 |
gibbs |
Camcontrol - A utility for configuring/manipulating the CAM subsystem
Submitted by: "Kenneth D. Merry" <ken@plutotech.com>
|