Commit Graph

58 Commits

Author SHA1 Message Date
dd
ae9f26fffc Add CTLTYPE_QUAD to the list of types for which we don't want an empty
value.  All the other numeric types are doing it . . .
2004-03-02 05:42:52 +00:00
des
0fe3c6c774 Whitespace cleanup. 2003-11-07 16:41:47 +00:00
des
cc86362753 Add a command-line option to format output for human readability.
Currently, the only effect it has is to print some (but not all) numbers
using thousands separators.
2003-11-07 16:33:45 +00:00
silby
2cedc070de Fix a few style glitches in the previous commit and make the
tunable error message more brief.

Suggested by:	bde
2003-11-01 07:06:04 +00:00
peter
96896379b8 Fix a 64 bit warning. Have set_T_dev_t() take a pointer to a size_t rather
than a pointer to an int, since that is what it really wants anyway.
2003-10-26 04:45:08 +00:00
silby
42091b18e2 Wrap a long line in the previous commit
Suggested by:	njl
2003-10-21 18:48:49 +00:00
silby
62679efced Have sysctl print out a more useful error message when it detects that the
user has attempted to write to a read only, tunable value.
2003-10-21 16:49:30 +00:00
rwatson
0980582084 Tighten up the string->integer conversion in sysctl(8):
(1) Reject zero-length strings for CTLTYPE_INT, _UINT, _LONG,
    _ULONG.  Do not silently convert to 0.

(2) When converting CTLTYPE_INT, _UINT, _LONG, and _ULONG, check the
    end pointer generated by strtol() and strtoul() rather than
    discarding it.  Reject the string if either none of the string
    was useful for conversion to an integer, or if there was
    trailing garbage.

I.e., we will not allow you to set a numeric sysctl to a value unless
we can completely convert the string argument to a numeric value.
I tripped over this when I put the following in /etc/sysctl.conf:

   kern.maxfiles="4000"

Ouch.
2003-06-15 06:26:08 +00:00
phk
383d50b298 Output machdep.guessed_bootdev as an integer rather than try to format
it according to ancient and obsolete rules.

This removes one more user of <sys/diskslice.h>
2003-04-03 21:41:14 +00:00
peter
568a1c8f96 Fix what I think is an off-by-one in certain worst-case scenarios
caused by rev 1.45.  (eg: the estimate being exactly half of the result.)
2003-01-22 00:34:22 +00:00
dillon
8eb42e5ece Cleanup the formatting from the last commit, convert everything to
a more human-readable 'kilobytes' instead of pages.
2003-01-11 20:03:43 +00:00
dillon
187e654d9a Make 'sysctl vm.vmtotal' work properly using updated patch from Hiten.
(the patch in the PR was stale).

PR:             kern/5689
Submitted by:   Hiten Pandya <hiten@unixdaemons.com>
2003-01-11 07:29:47 +00:00
peter
06cee96130 Fix a "bug" in sysctl(8). Limit the length when we print a string from
the kernel rather than ignoring the length and keeping on going till we
finally hit a \0 character in the buffer.
2002-11-12 21:18:21 +00:00
charnier
4966efff7b Replace various spelling with FALLTHROUGH which is lint()able 2002-08-25 13:10:45 +00:00
alfred
67cc400f56 Don't err(3) (and exit prematurely) when a sysctl's object size has
changed, instead just warn(3)
2002-05-24 08:34:18 +00:00
ache
c5c443997d Don't forget to null-terminate string we got from sysctl (f.e. in 'A' format).
Stack garbadge may be printed otherwise.
2002-05-08 23:49:19 +00:00
phk
ed0cd9a251 Take the "tickadj" element out of struct clockinfo. Our adjtime(2)
implementation is being changed and the very concept of tickadj will
no longer be meaningful.
2002-04-15 12:11:06 +00:00
luigi
610055212c Make the handling of machdep.guessed_bootdev compiled on i386 only. 2002-03-11 06:50:28 +00:00
luigi
ad77debfc5 Export a (machine dependent) kernel variable bootdev as
machdep.guessed_bootdev, and add code to sysctl to parse its value
and give a (not necessarily correct) name to the device we booted
from (the main motivation for this code is to use the info in the
PicoBSD boot scripts, and the impact on the kernel is minimal).

NOTE: the information available in bootdev is not always reliable,
so you should not trust it too much.  The parsing code is the same
as in boot2.c, and cannot cover all cases -- as it is, it seems to
work fine with floppies and IDE disks recognised by the BIOS. It
_should_ work as well with SCSI disks recognised by the BIOS.
Booting from a CDROM in floppy emulation will return /dev/fd0 (because
this is what the BIOS tells us).
Booting off the network (e.g. with etherboot) leaves bootdev unset so
the value will be printed as "invalid (0xffffffff)".

Finally, this feature might go away at some point, hopefully when we
have a more reliable way to get the same information.

MFC-after: 5 days
2002-03-10 20:08:44 +00:00
bde
9a245ba0a5 #include <sys/time.h> instead of depending on namespace pollution in
<sys/stat.h> for its prerequisite <sys/time.h>.

#include <sys/param.h> in the correct place instead of bogusly including
<sys/types.h>.
2002-02-25 03:36:06 +00:00
phk
f13d9cf946 Allow setting of variables of type dev_t by indicating the name of
a special file on the command line, eg:
  sysctl kern.dumpdev=/dev/ad1s1b

In parse(), when a value is given for a CTLTYPE_QUAD variable,
newval and newsize erroneously fail to be set because of an early
"break".

show_var() contains code that duplicates the functionality of the
oidfmt() function.

PR:		33151, 33150
Submitted by:	Thomas Quinot <thomas@cuivre.fr.eu.org>
2001-12-30 10:33:34 +00:00
luigi
e39284a688 Add code to export and print the description associated to sysctl
variables. Use the -d flag in sysctl(8) to see this information.

Possible extensions to sysctl:
 + report variables that do not have a description
 + given a name, report the oid it maps to.

Note to developers: have a look at your code, there are a number of
	variables which do not have a description.

Note to developers: do we want this in 4.5 ? It is a very small change
	and very useful for documentation purposes.

Suggested by: Orion Hodson
2001-12-16 02:55:41 +00:00
tobez
c304204fd4 Implement -e option. It modifies the output produced by sysctl(8) in
such a way that the name and the value of the variable(s) are separated
with `=' instead of the usual `: '.  This is useful for producing output
that can be fed back to the sysctl utility (pasted to sysctl.conf, for
example).

Reviewed by:	rwatson
Approved by:	markm
MFC after:	2 weeks
2001-10-30 20:15:32 +00:00
pirzyk
976a20fbb6 modfied sysctl command to allow setting values > 2GB if the mib supports it.
PR:		kern/21132
Reviewed by:	no objections to by -arch
MFC after:	1 month
2001-06-18 21:06:24 +00:00
dd
555fbb44b3 Normalize the use of sizeof according to style(9).
Reviewed by:	md5(1)
2001-06-09 03:56:16 +00:00
dd
cd7c82577f Remove unused variable (descr) in show_var().
PR:		22582
Submitted by:	Giorgos Keramidas <charon@gray.westgate.gr>
2001-06-01 02:58:09 +00:00
des
f4bfdd6193 Perform random drive-by style cleanups, and rewrite a while loop that
offended my artistic sensibilities.
2001-05-28 12:35:40 +00:00
des
98fe4d655a Try to make sysctl options slightly more orthogonal:
- introduce a -o option that displays opaque variables.
 - introduce a -x option that displays opaque variables in full.
 - deprecate -A in favor of -ao and -X in favor of -ax.
 - remove -A and -X from usage() and SYNOPSIS (but not from DESCRIPTION).
 - ignore -a if one or more variables were listed on the command line.
 - deprecate -w, it is not needed to determine the user's intentions.
 - some language and style cleanup in the man page.

This commit should not break any existing scripts.

MFC after:	4 weeks
2001-05-28 12:15:45 +00:00
des
d43290aaba Document the -N option in the usage message and the man page. 2001-01-14 19:08:58 +00:00
des
993fa37970 Add a -N option that makes sysctl(8) print out just the variable names.
Zsh users can add the following to their .zshrc for sysctl completion:

function listsysctls {
    case $1 in
    *.*) set -A reply $(sysctl -AN ${1%.*}) ;;
    *) set -A reply $(sysctl -AN) ;;
    esac
}
compctl -K listsysctls sysctl

While I'm here, brucify the getopt() switch.
2001-01-14 16:40:06 +00:00
gallatin
11e8e4bacd Give correct results for SYSCTL_LONG arrays when sizeof(int) != sizeof(long)
This fixes unaligned access on alpha for, eg, sysctl kern.ipc.mbtypes.
2000-10-23 21:04:18 +00:00
phk
c8c0445240 Array of long support.
Submitted by:	Ian Dowse <iedowse@maths.tcd.ie>
2000-07-11 21:59:54 +00:00
jhb
b6e74b58eb Support for unsigned integer and long sysctl variables. Update the
SYSCTL_LONG macro to be consistent with other integer sysctl variables
and require an initial value instead of assuming 0.  Update several
sysctl variables to use the unsigned types.

PR:		15251
Submitted by:	Kelly Yancey <kbyanc@posi.net>
2000-07-05 07:46:41 +00:00
phk
9052367a1f Handle minors like ls(1) does it.
PR:		19179
Submitted by:	Kelly Yancey <kbyanc@posi.net>
2000-06-10 19:55:39 +00:00
des
ebb4d4db22 Belatedly back out rev. 1.20. 1999-11-22 08:38:29 +00:00
grog
de007c895f Allow octal or hex input.
Suggested-by:	Geoff Steckel <gwes@sitaranetworks.com>
1999-11-17 23:42:09 +00:00
peter
76f0c923fe $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
billf
16090fda0f Avoid ambigious if/else 1999-07-21 02:49:42 +00:00
des
cd585d50b4 Clean up option handling a little.
Add an option for showing sysctl descriptions instead of their values.
1999-01-10 02:10:08 +00:00
phk
153e666c16 Allow for printing out integer arrays. 1998-11-08 19:27:43 +00:00
dfr
f7a70d8e02 Change length arguments to sysctl to size_t. 1998-08-25 07:38:19 +00:00
bde
e98f798c6a Don't assume that time_t is long. 1998-06-29 17:54:29 +00:00
jdp
8a7bf8aff1 Add missing argument detected by "-Wformat". 1997-11-18 03:37:45 +00:00
charnier
a9b89e1f31 Use err(3). Change err(-1,... to err(1,... 1997-10-20 12:53:54 +00:00
jhay
0814c237ff Display tickadj in struct clockinfo. 1997-06-24 18:23:32 +00:00
imp
691010efad compare return value from getopt against -1 rather than EOF, per the final
posix standard on the topic.
1997-03-31 05:11:47 +00:00
peter
b782f4df30 Revert $FreeBSD$ to $Id$ 1997-02-22 16:15:28 +00:00
jkh
808a36ef65 Make the long-awaited change from $Id$ to $FreeBSD$
This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore.  This update would have been
insane otherwise.
1997-01-14 07:20:47 +00:00
smpatel
4d30ab368e Fix a core dump when the user gives "-w" without an "=" 1996-04-10 00:53:22 +00:00
phk
160da4bc8b The rewamped sysctl program that will find all the variables itself.
Also a couple of handy new options.
1995-12-21 12:39:25 +00:00