History log of /netbsd-current/usr.bin/systat/main.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.56 21-Aug-2021 christos

PR/56331: Paul Goyette: Add -z option to display 0 instead of ' ' in vmstat.


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 netbsd-9-2-RELEASE cjep_staticlib_x-base netbsd-9-1-RELEASE phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 pgoyette-compat-20190127
# 1.55 25-Jan-2019 christos

PR/53906: Paul Ripke: systat(1) vmstat & syscall get
"alternate system clock has died" on terminal resize (SIGWINCH)


Revision tags: pgoyette-compat-20190118 pgoyette-compat-1226
# 1.54 26-Dec-2018 sevan

Extend "systat vm" output to provide better insight about buffercache and
document it.

From Greg A. Woods in PR bin/36542


Revision tags: pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.53 22-Nov-2017 snj

branches: 1.53.2; 1.53.4;
add -b to usage.


# 1.52 17-Nov-2017 mrg

add missing 'b' to the optstring. alpha-sort the option handling.


Revision tags: netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107
# 1.51 03-Dec-2016 mrg

branches: 1.51.6;
add a basic "-b" option - that outputs one display and exits.
inspired by "top -b". still requires a curses-capable output
without some fairly significant internal restructuring.


Revision tags: pgoyette-localcount-20161104
# 1.50 22-Oct-2016 christos

allow fractional intervals


Revision tags: localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.49 23-Aug-2015 mrg

branches: 1.49.2;
if you change display types, the "Showing %s, refresh every %d seconds."
message is retained, and you can't get rid of it. since it's dispalyed
in inverse, it feels like there's always an error happening (which is
really what the code has -- the above string is displayed via the error()
function.) for several types of key press that largely are just "redraw"
operation (space, ^L, etc.), clear the error string as well.


Revision tags: netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.48 03-Jun-2014 joerg

branches: 1.48.2;
Always use_sysctl in preparation of removing all kvm code.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7
# 1.47 23-Nov-2012 christos

branches: 1.47.6;
use more sysctl


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.46 06-Sep-2011 joerg

branches: 1.46.2; 1.46.8;
Consistently use __dead and __printflike.


Revision tags: cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231 matt-premerge-20091211
# 1.45 04-Nov-2009 dsl

Allow display intervals > 25 seconds.
Fixes PR/36999
I did contemplate chaging curses - but the code is replicated and warped.


# 1.44 14-Jul-2009 apb

Don't assume that two identical-looking string literals will have the
same address and will therefore be comparable with the == operator.
Instead, use a const variable.
Inspired by PR 41255 from Kurt Lidl.


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE jym-xensuspend-nbase netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.43 21-Jul-2008 lukem

Remove the \n and tabs from the __COPYRIGHT() strings.
Tweak to use a consistent format.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base
# 1.42 10-Apr-2008 thorpej

branches: 1.42.4;
Use sysctl to fetch network statistics unless a memory file is specified
on the command line.


Revision tags: keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase matt-armv6-base hpcarm-cleanup-base
# 1.41 31-Dec-2007 christos

don't call curses from a signal handler!


Revision tags: netbsd-4-0-1-RELEASE matt-armv6-prevmlocking wrstuden-fixsa-base-1 netbsd-4-0-RELEASE cube-autoconf-base netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 matt-mips64-base netbsd-4-base
# 1.40 22-Oct-2006 christos

branches: 1.40.2; 1.40.4; 1.40.8;
use c99 initializers
consistently terminate nlist arrays with NULL not ""


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE abandoned-netbsd-4-base netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 chap-midi-nbase netbsd-3-0-1-RELEASE chap-midi-base netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.39 26-Feb-2005 dsl

WARNS=3


# 1.38 04-Nov-2004 dsl

Add (unsigned char) cast to ctype functions
Although, IIRC, there is another PR on all commands being converted to
lower case.


# 1.37 03-Jul-2004 mycroft

Using timeout() to control refresh gets rid of a whole pile of signal-related
lossage.
Making ungetch() signal-safe, as ncurses seems to, would be better, though.


# 1.36 03-Jul-2004 mycroft

Use KEY_RESIZE. Might as well have something in our source tree that does.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.35 07-Aug-2003 agc

Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22365, verified by myself.


# 1.34 03-Aug-2003 jdolecek

if kvm_nlist() fails, nlisterr() would be called before the screen
curses context would be initialized; just use errx() instead in this case
this fixes coredump for cases like 'systat -N /netbsd.gz', reported by Walt
on port-i386

in nlisterr(), wait a while (5 seconds currently) before exiting, so that
it would be actually possible to actually see the error


# 1.33 05-Jul-2003 dsl

No need to resizeterm() if size not changed.
On 'fg' just restore old screen contents.


# 1.32 28-May-2003 dsl

Reinstate our STOP handler before curses installs its one.
Ensures that both handlers are executed on subsequent stops.


# 1.31 10-Feb-2003 dsl

Resize windows on SIGWINCH and restart from SIGTSTP
(approved by christos)


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_end nathanw_sa_before_merge fvdl_fs64_base netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base nathanw_sa_base
# 1.30 06-Dec-2001 blymn

branches: 1.30.2;
Change deprecated curses function to new equivalent.


# 1.29 14-Jul-2001 matt

Fetch maxslp from the kernel. Only use USPACE if it's defined.


# 1.28 01-Dec-2000 simonb

Remove extern variables and functions now declared in dkstats.h.
While here, remove 77 (!) unneed #includes.


# 1.27 25-Aug-2000 hubertf

Add "all" mode to systat to cycle between all modes,
sort of like VMS' "MONITOR ALL"-command.

Code was submitted by Jarkko Teppo <jate@uwasa.fi> in PR 10851,
cleaned up and added 'turns' handling by me.


# 1.26 05-Jul-2000 ad

- Add `boot', `run', `time' and `zero' commands to all IP displays. These work
as in the `vmstat' display mode. The default mode is now `time', not `boot'.
- ANSIfy.
- s@kre\(@vmstat\(@.
- __RCSID() police.
- Tweak inet.icmp display visual a little.


Revision tags: netbsd-1-5-ALPHA2 netbsd-1-5-base
# 1.25 04-Jun-2000 mycroft

branches: 1.25.2;
Use hline() and variants in a bunch of places.


Revision tags: minoura-xpg4dl-base
# 1.24 11-Apr-2000 jwise

branches: 1.24.2;
Two UI changes:

a.) restore the capability to enter a substring of a mode or command
name. Pointed out by Soren Jorvang.

b.) (capital) Q now exits systat immediately


# 1.23 07-Jan-2000 itojun

add command line -n flag, which is same as "netstat numbers".
without it, we can't disable name resolution before the resolution starts.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
# 1.22 20-Dec-1999 jwise

Block alarm signals while displaying -- there's no reason to allow recursive
display at all.


# 1.21 20-Dec-1999 jwise

Knee-jerk snprintf()-ism.


# 1.20 20-Dec-1999 jwise

Two things:

1.) fix a bug which caused coredumps when starting with no mode arguments
2.) move to table-lookup for mode-specific command parsing as well.
all command matching is now table-driven.


# 1.19 16-Dec-1999 jwise

Sigh... this is the missing part of last night's final commit -- perform
the same simplification on mode parsing for the command line as for user
commands.

My apologies to anyone who tried to build systat this morning.


# 1.18 16-Dec-1999 jwise

Rototill global command matching -- switch from ad-hoc tomfoolery to a
table lookup. This will make prefix matching and so on easier.

Expect a similar change for mode-specific commands before too long.

While there, rename some structures with misleading names.

Watch this space for more changes soon.


# 1.17 11-Nov-1999 soren

Sync usage() with man page.


Revision tags: comdex-fall-1999-base
# 1.16 24-Apr-1999 ross

branches: 1.16.4;
Functional LP64 and type sanity fixes.


Revision tags: netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.15 19-Jul-1998 drochner

branches: 1.15.2;
Fix handling of privileges - the gid was given up before dkinit()
was called.
Pass the gid to use for KVM access explicitely to dkinit(), the caller
decides whether to call setgid(getgid()) or not.


# 1.14 12-Jul-1998 mrg

- KNF
- use snprintf
- don't overwrite the keyboard buffer (and make this sized on
the window size).


# 1.13 06-Jul-1998 mrg

- use an array MAXHOSTNAMELEN+1 size to hold hostnames
- ensure hostname from gethostname() is nul-terminated in all cases
- minor KNF
- use MAXHOSTNAMELEN over various other values/defines
- be safe will buffers that hold hostnames


Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.12 19-Oct-1997 lukem

fix .Nm usage, deprecate register, getopt returns -1 not EOF, s/[br]*/[ms]*/


# 1.11 21-Jul-1997 mrg

- some KNF.
- use __RCSID().
- WARNS=1


# 1.10 03-Mar-1997 explorer

Message buffer passed to kvm_openfiles() should _POSIX2_LINE_MAX long; PR#3266


# 1.9 13-Dec-1996 scottr

Freshen up a bit:

- Replace deprecated sigblock() with sigprocmask()
- Redraw the current display if SIGWINCH is caught
- Style police


Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
# 1.8 10-May-1996 thorpej

New userland code to read the statistics kept by the NetBSD generic
disk framework, from John M. Vinopal <banshee@gabriella.resort.com>


# 1.7 21-Mar-1996 jtc

Be pedantic, main() returns int in C.


Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.6 06-May-1995 jtc

Print error message and exit if TERM is not set.
From PR #1015.


# 1.5 29-Apr-1995 cgd

various includes, casts, and cleanups...


# 1.4 22-Mar-1995 mycroft

Use err*(3)/warn*(3).


# 1.3 22-Mar-1995 mycroft

Don't core dump on an illegal display type. Display a more specific error
message for an ambiguous type.


# 1.2 20-Jan-1995 jtc

Changed to conform to NetBSD's new RCS Id convention.


# 1.1 20-Jan-1995 jtc

branches: 1.1.1;
Initial revision


Revision tags: pgoyette-compat-20190127
# 1.55 25-Jan-2019 christos

PR/53906: Paul Ripke: systat(1) vmstat & syscall get
"alternate system clock has died" on terminal resize (SIGWINCH)


Revision tags: pgoyette-compat-20190118 pgoyette-compat-1226
# 1.54 26-Dec-2018 sevan

Extend "systat vm" output to provide better insight about buffercache and
document it.

From Greg A. Woods in PR bin/36542


Revision tags: pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.53 22-Nov-2017 snj

branches: 1.53.2;
add -b to usage.


# 1.52 17-Nov-2017 mrg

add missing 'b' to the optstring. alpha-sort the option handling.


Revision tags: netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107
# 1.51 03-Dec-2016 mrg

branches: 1.51.6;
add a basic "-b" option - that outputs one display and exits.
inspired by "top -b". still requires a curses-capable output
without some fairly significant internal restructuring.


Revision tags: pgoyette-localcount-20161104
# 1.50 22-Oct-2016 christos

allow fractional intervals


Revision tags: localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.49 23-Aug-2015 mrg

branches: 1.49.2;
if you change display types, the "Showing %s, refresh every %d seconds."
message is retained, and you can't get rid of it. since it's dispalyed
in inverse, it feels like there's always an error happening (which is
really what the code has -- the above string is displayed via the error()
function.) for several types of key press that largely are just "redraw"
operation (space, ^L, etc.), clear the error string as well.


Revision tags: netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.48 03-Jun-2014 joerg

branches: 1.48.2;
Always use_sysctl in preparation of removing all kvm code.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7
# 1.47 23-Nov-2012 christos

branches: 1.47.6;
use more sysctl


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.46 06-Sep-2011 joerg

branches: 1.46.2; 1.46.8;
Consistently use __dead and __printflike.


Revision tags: cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231 matt-premerge-20091211
# 1.45 04-Nov-2009 dsl

Allow display intervals > 25 seconds.
Fixes PR/36999
I did contemplate chaging curses - but the code is replicated and warped.


# 1.44 14-Jul-2009 apb

Don't assume that two identical-looking string literals will have the
same address and will therefore be comparable with the == operator.
Instead, use a const variable.
Inspired by PR 41255 from Kurt Lidl.


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE jym-xensuspend-nbase netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.43 21-Jul-2008 lukem

Remove the \n and tabs from the __COPYRIGHT() strings.
Tweak to use a consistent format.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base
# 1.42 10-Apr-2008 thorpej

branches: 1.42.4;
Use sysctl to fetch network statistics unless a memory file is specified
on the command line.


Revision tags: keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase matt-armv6-base hpcarm-cleanup-base
# 1.41 31-Dec-2007 christos

don't call curses from a signal handler!


Revision tags: netbsd-4-0-1-RELEASE matt-armv6-prevmlocking wrstuden-fixsa-base-1 netbsd-4-0-RELEASE cube-autoconf-base netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 matt-mips64-base netbsd-4-base
# 1.40 22-Oct-2006 christos

branches: 1.40.2; 1.40.4; 1.40.8;
use c99 initializers
consistently terminate nlist arrays with NULL not ""


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE abandoned-netbsd-4-base netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 chap-midi-nbase netbsd-3-0-1-RELEASE chap-midi-base netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.39 26-Feb-2005 dsl

WARNS=3


# 1.38 04-Nov-2004 dsl

Add (unsigned char) cast to ctype functions
Although, IIRC, there is another PR on all commands being converted to
lower case.


# 1.37 03-Jul-2004 mycroft

Using timeout() to control refresh gets rid of a whole pile of signal-related
lossage.
Making ungetch() signal-safe, as ncurses seems to, would be better, though.


# 1.36 03-Jul-2004 mycroft

Use KEY_RESIZE. Might as well have something in our source tree that does.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.35 07-Aug-2003 agc

Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22365, verified by myself.


# 1.34 03-Aug-2003 jdolecek

if kvm_nlist() fails, nlisterr() would be called before the screen
curses context would be initialized; just use errx() instead in this case
this fixes coredump for cases like 'systat -N /netbsd.gz', reported by Walt
on port-i386

in nlisterr(), wait a while (5 seconds currently) before exiting, so that
it would be actually possible to actually see the error


# 1.33 05-Jul-2003 dsl

No need to resizeterm() if size not changed.
On 'fg' just restore old screen contents.


# 1.32 28-May-2003 dsl

Reinstate our STOP handler before curses installs its one.
Ensures that both handlers are executed on subsequent stops.


# 1.31 10-Feb-2003 dsl

Resize windows on SIGWINCH and restart from SIGTSTP
(approved by christos)


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_end nathanw_sa_before_merge fvdl_fs64_base netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base nathanw_sa_base
# 1.30 06-Dec-2001 blymn

branches: 1.30.2;
Change deprecated curses function to new equivalent.


# 1.29 14-Jul-2001 matt

Fetch maxslp from the kernel. Only use USPACE if it's defined.


# 1.28 01-Dec-2000 simonb

Remove extern variables and functions now declared in dkstats.h.
While here, remove 77 (!) unneed #includes.


# 1.27 25-Aug-2000 hubertf

Add "all" mode to systat to cycle between all modes,
sort of like VMS' "MONITOR ALL"-command.

Code was submitted by Jarkko Teppo <jate@uwasa.fi> in PR 10851,
cleaned up and added 'turns' handling by me.


# 1.26 05-Jul-2000 ad

- Add `boot', `run', `time' and `zero' commands to all IP displays. These work
as in the `vmstat' display mode. The default mode is now `time', not `boot'.
- ANSIfy.
- s@kre\(@vmstat\(@.
- __RCSID() police.
- Tweak inet.icmp display visual a little.


Revision tags: netbsd-1-5-ALPHA2 netbsd-1-5-base
# 1.25 04-Jun-2000 mycroft

branches: 1.25.2;
Use hline() and variants in a bunch of places.


Revision tags: minoura-xpg4dl-base
# 1.24 11-Apr-2000 jwise

branches: 1.24.2;
Two UI changes:

a.) restore the capability to enter a substring of a mode or command
name. Pointed out by Soren Jorvang.

b.) (capital) Q now exits systat immediately


# 1.23 07-Jan-2000 itojun

add command line -n flag, which is same as "netstat numbers".
without it, we can't disable name resolution before the resolution starts.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
# 1.22 20-Dec-1999 jwise

Block alarm signals while displaying -- there's no reason to allow recursive
display at all.


# 1.21 20-Dec-1999 jwise

Knee-jerk snprintf()-ism.


# 1.20 20-Dec-1999 jwise

Two things:

1.) fix a bug which caused coredumps when starting with no mode arguments
2.) move to table-lookup for mode-specific command parsing as well.
all command matching is now table-driven.


# 1.19 16-Dec-1999 jwise

Sigh... this is the missing part of last night's final commit -- perform
the same simplification on mode parsing for the command line as for user
commands.

My apologies to anyone who tried to build systat this morning.


# 1.18 16-Dec-1999 jwise

Rototill global command matching -- switch from ad-hoc tomfoolery to a
table lookup. This will make prefix matching and so on easier.

Expect a similar change for mode-specific commands before too long.

While there, rename some structures with misleading names.

Watch this space for more changes soon.


# 1.17 11-Nov-1999 soren

Sync usage() with man page.


Revision tags: comdex-fall-1999-base
# 1.16 24-Apr-1999 ross

branches: 1.16.4;
Functional LP64 and type sanity fixes.


Revision tags: netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.15 19-Jul-1998 drochner

branches: 1.15.2;
Fix handling of privileges - the gid was given up before dkinit()
was called.
Pass the gid to use for KVM access explicitely to dkinit(), the caller
decides whether to call setgid(getgid()) or not.


# 1.14 12-Jul-1998 mrg

- KNF
- use snprintf
- don't overwrite the keyboard buffer (and make this sized on
the window size).


# 1.13 06-Jul-1998 mrg

- use an array MAXHOSTNAMELEN+1 size to hold hostnames
- ensure hostname from gethostname() is nul-terminated in all cases
- minor KNF
- use MAXHOSTNAMELEN over various other values/defines
- be safe will buffers that hold hostnames


Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.12 19-Oct-1997 lukem

fix .Nm usage, deprecate register, getopt returns -1 not EOF, s/[br]*/[ms]*/


# 1.11 21-Jul-1997 mrg

- some KNF.
- use __RCSID().
- WARNS=1


# 1.10 03-Mar-1997 explorer

Message buffer passed to kvm_openfiles() should _POSIX2_LINE_MAX long; PR#3266


# 1.9 13-Dec-1996 scottr

Freshen up a bit:

- Replace deprecated sigblock() with sigprocmask()
- Redraw the current display if SIGWINCH is caught
- Style police


Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
# 1.8 10-May-1996 thorpej

New userland code to read the statistics kept by the NetBSD generic
disk framework, from John M. Vinopal <banshee@gabriella.resort.com>


# 1.7 21-Mar-1996 jtc

Be pedantic, main() returns int in C.


Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.6 06-May-1995 jtc

Print error message and exit if TERM is not set.
From PR #1015.


# 1.5 29-Apr-1995 cgd

various includes, casts, and cleanups...


# 1.4 22-Mar-1995 mycroft

Use err*(3)/warn*(3).


# 1.3 22-Mar-1995 mycroft

Don't core dump on an illegal display type. Display a more specific error
message for an ambiguous type.


# 1.2 20-Jan-1995 jtc

Changed to conform to NetBSD's new RCS Id convention.


# 1.1 20-Jan-1995 jtc

branches: 1.1.1;
Initial revision


# 1.53 22-Nov-2017 snj

add -b to usage.


# 1.52 17-Nov-2017 mrg

add missing 'b' to the optstring. alpha-sort the option handling.


Revision tags: matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107
# 1.51 03-Dec-2016 mrg

add a basic "-b" option - that outputs one display and exits.
inspired by "top -b". still requires a curses-capable output
without some fairly significant internal restructuring.


Revision tags: pgoyette-localcount-20161104
# 1.50 22-Oct-2016 christos

allow fractional intervals


Revision tags: localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.49 23-Aug-2015 mrg

branches: 1.49.2;
if you change display types, the "Showing %s, refresh every %d seconds."
message is retained, and you can't get rid of it. since it's dispalyed
in inverse, it feels like there's always an error happening (which is
really what the code has -- the above string is displayed via the error()
function.) for several types of key press that largely are just "redraw"
operation (space, ^L, etc.), clear the error string as well.


Revision tags: netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.48 03-Jun-2014 joerg

branches: 1.48.2;
Always use_sysctl in preparation of removing all kvm code.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7
# 1.47 23-Nov-2012 christos

branches: 1.47.6;
use more sysctl


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.46 06-Sep-2011 joerg

branches: 1.46.2; 1.46.8;
Consistently use __dead and __printflike.


Revision tags: cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231 matt-premerge-20091211
# 1.45 04-Nov-2009 dsl

Allow display intervals > 25 seconds.
Fixes PR/36999
I did contemplate chaging curses - but the code is replicated and warped.


# 1.44 14-Jul-2009 apb

Don't assume that two identical-looking string literals will have the
same address and will therefore be comparable with the == operator.
Instead, use a const variable.
Inspired by PR 41255 from Kurt Lidl.


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE jym-xensuspend-nbase netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.43 21-Jul-2008 lukem

Remove the \n and tabs from the __COPYRIGHT() strings.
Tweak to use a consistent format.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base
# 1.42 10-Apr-2008 thorpej

branches: 1.42.4;
Use sysctl to fetch network statistics unless a memory file is specified
on the command line.


Revision tags: keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase matt-armv6-base hpcarm-cleanup-base
# 1.41 31-Dec-2007 christos

don't call curses from a signal handler!


Revision tags: netbsd-4-0-1-RELEASE matt-armv6-prevmlocking wrstuden-fixsa-base-1 netbsd-4-0-RELEASE cube-autoconf-base netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 matt-mips64-base netbsd-4-base
# 1.40 22-Oct-2006 christos

branches: 1.40.2; 1.40.4; 1.40.8;
use c99 initializers
consistently terminate nlist arrays with NULL not ""


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE abandoned-netbsd-4-base netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 chap-midi-nbase netbsd-3-0-1-RELEASE chap-midi-base netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.39 26-Feb-2005 dsl

WARNS=3


# 1.38 04-Nov-2004 dsl

Add (unsigned char) cast to ctype functions
Although, IIRC, there is another PR on all commands being converted to
lower case.


# 1.37 03-Jul-2004 mycroft

Using timeout() to control refresh gets rid of a whole pile of signal-related
lossage.
Making ungetch() signal-safe, as ncurses seems to, would be better, though.


# 1.36 03-Jul-2004 mycroft

Use KEY_RESIZE. Might as well have something in our source tree that does.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.35 07-Aug-2003 agc

Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22365, verified by myself.


# 1.34 03-Aug-2003 jdolecek

if kvm_nlist() fails, nlisterr() would be called before the screen
curses context would be initialized; just use errx() instead in this case
this fixes coredump for cases like 'systat -N /netbsd.gz', reported by Walt
on port-i386

in nlisterr(), wait a while (5 seconds currently) before exiting, so that
it would be actually possible to actually see the error


# 1.33 05-Jul-2003 dsl

No need to resizeterm() if size not changed.
On 'fg' just restore old screen contents.


# 1.32 28-May-2003 dsl

Reinstate our STOP handler before curses installs its one.
Ensures that both handlers are executed on subsequent stops.


# 1.31 10-Feb-2003 dsl

Resize windows on SIGWINCH and restart from SIGTSTP
(approved by christos)


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_end nathanw_sa_before_merge fvdl_fs64_base netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base nathanw_sa_base
# 1.30 06-Dec-2001 blymn

branches: 1.30.2;
Change deprecated curses function to new equivalent.


# 1.29 14-Jul-2001 matt

Fetch maxslp from the kernel. Only use USPACE if it's defined.


# 1.28 01-Dec-2000 simonb

Remove extern variables and functions now declared in dkstats.h.
While here, remove 77 (!) unneed #includes.


# 1.27 25-Aug-2000 hubertf

Add "all" mode to systat to cycle between all modes,
sort of like VMS' "MONITOR ALL"-command.

Code was submitted by Jarkko Teppo <jate@uwasa.fi> in PR 10851,
cleaned up and added 'turns' handling by me.


# 1.26 05-Jul-2000 ad

- Add `boot', `run', `time' and `zero' commands to all IP displays. These work
as in the `vmstat' display mode. The default mode is now `time', not `boot'.
- ANSIfy.
- s@kre\(@vmstat\(@.
- __RCSID() police.
- Tweak inet.icmp display visual a little.


Revision tags: netbsd-1-5-ALPHA2 netbsd-1-5-base
# 1.25 04-Jun-2000 mycroft

branches: 1.25.2;
Use hline() and variants in a bunch of places.


Revision tags: minoura-xpg4dl-base
# 1.24 11-Apr-2000 jwise

branches: 1.24.2;
Two UI changes:

a.) restore the capability to enter a substring of a mode or command
name. Pointed out by Soren Jorvang.

b.) (capital) Q now exits systat immediately


# 1.23 07-Jan-2000 itojun

add command line -n flag, which is same as "netstat numbers".
without it, we can't disable name resolution before the resolution starts.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
# 1.22 20-Dec-1999 jwise

Block alarm signals while displaying -- there's no reason to allow recursive
display at all.


# 1.21 20-Dec-1999 jwise

Knee-jerk snprintf()-ism.


# 1.20 20-Dec-1999 jwise

Two things:

1.) fix a bug which caused coredumps when starting with no mode arguments
2.) move to table-lookup for mode-specific command parsing as well.
all command matching is now table-driven.


# 1.19 16-Dec-1999 jwise

Sigh... this is the missing part of last night's final commit -- perform
the same simplification on mode parsing for the command line as for user
commands.

My apologies to anyone who tried to build systat this morning.


# 1.18 16-Dec-1999 jwise

Rototill global command matching -- switch from ad-hoc tomfoolery to a
table lookup. This will make prefix matching and so on easier.

Expect a similar change for mode-specific commands before too long.

While there, rename some structures with misleading names.

Watch this space for more changes soon.


# 1.17 11-Nov-1999 soren

Sync usage() with man page.


Revision tags: comdex-fall-1999-base
# 1.16 24-Apr-1999 ross

branches: 1.16.4;
Functional LP64 and type sanity fixes.


Revision tags: netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.15 19-Jul-1998 drochner

branches: 1.15.2;
Fix handling of privileges - the gid was given up before dkinit()
was called.
Pass the gid to use for KVM access explicitely to dkinit(), the caller
decides whether to call setgid(getgid()) or not.


# 1.14 12-Jul-1998 mrg

- KNF
- use snprintf
- don't overwrite the keyboard buffer (and make this sized on
the window size).


# 1.13 06-Jul-1998 mrg

- use an array MAXHOSTNAMELEN+1 size to hold hostnames
- ensure hostname from gethostname() is nul-terminated in all cases
- minor KNF
- use MAXHOSTNAMELEN over various other values/defines
- be safe will buffers that hold hostnames


Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.12 19-Oct-1997 lukem

fix .Nm usage, deprecate register, getopt returns -1 not EOF, s/[br]*/[ms]*/


# 1.11 21-Jul-1997 mrg

- some KNF.
- use __RCSID().
- WARNS=1


# 1.10 03-Mar-1997 explorer

Message buffer passed to kvm_openfiles() should _POSIX2_LINE_MAX long; PR#3266


# 1.9 13-Dec-1996 scottr

Freshen up a bit:

- Replace deprecated sigblock() with sigprocmask()
- Redraw the current display if SIGWINCH is caught
- Style police


Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
# 1.8 10-May-1996 thorpej

New userland code to read the statistics kept by the NetBSD generic
disk framework, from John M. Vinopal <banshee@gabriella.resort.com>


# 1.7 21-Mar-1996 jtc

Be pedantic, main() returns int in C.


Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.6 06-May-1995 jtc

Print error message and exit if TERM is not set.
From PR #1015.


# 1.5 29-Apr-1995 cgd

various includes, casts, and cleanups...


# 1.4 22-Mar-1995 mycroft

Use err*(3)/warn*(3).


# 1.3 22-Mar-1995 mycroft

Don't core dump on an illegal display type. Display a more specific error
message for an ambiguous type.


# 1.2 20-Jan-1995 jtc

Changed to conform to NetBSD's new RCS Id convention.


# 1.1 20-Jan-1995 jtc

branches: 1.1.1;
Initial revision


# 1.51 03-Dec-2016 mrg

add a basic "-b" option - that outputs one display and exits.
inspired by "top -b". still requires a curses-capable output
without some fairly significant internal restructuring.


Revision tags: pgoyette-localcount-20161104
# 1.50 22-Oct-2016 christos

allow fractional intervals


Revision tags: localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
# 1.49 23-Aug-2015 mrg

branches: 1.49.2;
if you change display types, the "Showing %s, refresh every %d seconds."
message is retained, and you can't get rid of it. since it's dispalyed
in inverse, it feels like there's always an error happening (which is
really what the code has -- the above string is displayed via the error()
function.) for several types of key press that largely are just "redraw"
operation (space, ^L, etc.), clear the error string as well.


Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.48 03-Jun-2014 joerg

Always use_sysctl in preparation of removing all kvm code.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7
# 1.47 23-Nov-2012 christos

branches: 1.47.6;
use more sysctl


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 yamt-pagecache-base4 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.46 06-Sep-2011 joerg

branches: 1.46.2; 1.46.8;
Consistently use __dead and __printflike.


Revision tags: cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231 matt-premerge-20091211
# 1.45 04-Nov-2009 dsl

Allow display intervals > 25 seconds.
Fixes PR/36999
I did contemplate chaging curses - but the code is replicated and warped.


# 1.44 14-Jul-2009 apb

Don't assume that two identical-looking string literals will have the
same address and will therefore be comparable with the == operator.
Instead, use a const variable.
Inspired by PR 41255 from Kurt Lidl.


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE jym-xensuspend-nbase netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2
# 1.43 21-Jul-2008 lukem

Remove the \n and tabs from the __COPYRIGHT() strings.
Tweak to use a consistent format.


Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base
# 1.42 10-Apr-2008 thorpej

branches: 1.42.4;
Use sysctl to fetch network statistics unless a memory file is specified
on the command line.


Revision tags: keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase matt-armv6-base hpcarm-cleanup-base
# 1.41 31-Dec-2007 christos

don't call curses from a signal handler!


Revision tags: netbsd-4-0-1-RELEASE matt-armv6-prevmlocking wrstuden-fixsa-base-1 netbsd-4-0-RELEASE cube-autoconf-base netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 matt-mips64-base netbsd-4-base
# 1.40 22-Oct-2006 christos

branches: 1.40.2; 1.40.4; 1.40.8;
use c99 initializers
consistently terminate nlist arrays with NULL not ""


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE abandoned-netbsd-4-base netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 chap-midi-nbase netbsd-3-0-1-RELEASE chap-midi-base netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.39 26-Feb-2005 dsl

WARNS=3


# 1.38 04-Nov-2004 dsl

Add (unsigned char) cast to ctype functions
Although, IIRC, there is another PR on all commands being converted to
lower case.


# 1.37 03-Jul-2004 mycroft

Using timeout() to control refresh gets rid of a whole pile of signal-related
lossage.
Making ungetch() signal-safe, as ncurses seems to, would be better, though.


# 1.36 03-Jul-2004 mycroft

Use KEY_RESIZE. Might as well have something in our source tree that does.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.35 07-Aug-2003 agc

Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22365, verified by myself.


# 1.34 03-Aug-2003 jdolecek

if kvm_nlist() fails, nlisterr() would be called before the screen
curses context would be initialized; just use errx() instead in this case
this fixes coredump for cases like 'systat -N /netbsd.gz', reported by Walt
on port-i386

in nlisterr(), wait a while (5 seconds currently) before exiting, so that
it would be actually possible to actually see the error


# 1.33 05-Jul-2003 dsl

No need to resizeterm() if size not changed.
On 'fg' just restore old screen contents.


# 1.32 28-May-2003 dsl

Reinstate our STOP handler before curses installs its one.
Ensures that both handlers are executed on subsequent stops.


# 1.31 10-Feb-2003 dsl

Resize windows on SIGWINCH and restart from SIGTSTP
(approved by christos)


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_end nathanw_sa_before_merge fvdl_fs64_base netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base nathanw_sa_base
# 1.30 06-Dec-2001 blymn

branches: 1.30.2;
Change deprecated curses function to new equivalent.


# 1.29 14-Jul-2001 matt

Fetch maxslp from the kernel. Only use USPACE if it's defined.


# 1.28 01-Dec-2000 simonb

Remove extern variables and functions now declared in dkstats.h.
While here, remove 77 (!) unneed #includes.


# 1.27 25-Aug-2000 hubertf

Add "all" mode to systat to cycle between all modes,
sort of like VMS' "MONITOR ALL"-command.

Code was submitted by Jarkko Teppo <jate@uwasa.fi> in PR 10851,
cleaned up and added 'turns' handling by me.


# 1.26 05-Jul-2000 ad

- Add `boot', `run', `time' and `zero' commands to all IP displays. These work
as in the `vmstat' display mode. The default mode is now `time', not `boot'.
- ANSIfy.
- s@kre\(@vmstat\(@.
- __RCSID() police.
- Tweak inet.icmp display visual a little.


Revision tags: netbsd-1-5-ALPHA2 netbsd-1-5-base
# 1.25 04-Jun-2000 mycroft

branches: 1.25.2;
Use hline() and variants in a bunch of places.


Revision tags: minoura-xpg4dl-base
# 1.24 11-Apr-2000 jwise

branches: 1.24.2;
Two UI changes:

a.) restore the capability to enter a substring of a mode or command
name. Pointed out by Soren Jorvang.

b.) (capital) Q now exits systat immediately


# 1.23 07-Jan-2000 itojun

add command line -n flag, which is same as "netstat numbers".
without it, we can't disable name resolution before the resolution starts.


Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
# 1.22 20-Dec-1999 jwise

Block alarm signals while displaying -- there's no reason to allow recursive
display at all.


# 1.21 20-Dec-1999 jwise

Knee-jerk snprintf()-ism.


# 1.20 20-Dec-1999 jwise

Two things:

1.) fix a bug which caused coredumps when starting with no mode arguments
2.) move to table-lookup for mode-specific command parsing as well.
all command matching is now table-driven.


# 1.19 16-Dec-1999 jwise

Sigh... this is the missing part of last night's final commit -- perform
the same simplification on mode parsing for the command line as for user
commands.

My apologies to anyone who tried to build systat this morning.


# 1.18 16-Dec-1999 jwise

Rototill global command matching -- switch from ad-hoc tomfoolery to a
table lookup. This will make prefix matching and so on easier.

Expect a similar change for mode-specific commands before too long.

While there, rename some structures with misleading names.

Watch this space for more changes soon.


# 1.17 11-Nov-1999 soren

Sync usage() with man page.


Revision tags: comdex-fall-1999-base
# 1.16 24-Apr-1999 ross

branches: 1.16.4;
Functional LP64 and type sanity fixes.


Revision tags: netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.15 19-Jul-1998 drochner

branches: 1.15.2;
Fix handling of privileges - the gid was given up before dkinit()
was called.
Pass the gid to use for KVM access explicitely to dkinit(), the caller
decides whether to call setgid(getgid()) or not.


# 1.14 12-Jul-1998 mrg

- KNF
- use snprintf
- don't overwrite the keyboard buffer (and make this sized on
the window size).


# 1.13 06-Jul-1998 mrg

- use an array MAXHOSTNAMELEN+1 size to hold hostnames
- ensure hostname from gethostname() is nul-terminated in all cases
- minor KNF
- use MAXHOSTNAMELEN over various other values/defines
- be safe will buffers that hold hostnames


Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
# 1.12 19-Oct-1997 lukem

fix .Nm usage, deprecate register, getopt returns -1 not EOF, s/[br]*/[ms]*/


# 1.11 21-Jul-1997 mrg

- some KNF.
- use __RCSID().
- WARNS=1


# 1.10 03-Mar-1997 explorer

Message buffer passed to kvm_openfiles() should _POSIX2_LINE_MAX long; PR#3266


# 1.9 13-Dec-1996 scottr

Freshen up a bit:

- Replace deprecated sigblock() with sigprocmask()
- Redraw the current display if SIGWINCH is caught
- Style police


Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
# 1.8 10-May-1996 thorpej

New userland code to read the statistics kept by the NetBSD generic
disk framework, from John M. Vinopal <banshee@gabriella.resort.com>


# 1.7 21-Mar-1996 jtc

Be pedantic, main() returns int in C.


Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
# 1.6 06-May-1995 jtc

Print error message and exit if TERM is not set.
From PR #1015.


# 1.5 29-Apr-1995 cgd

various includes, casts, and cleanups...


# 1.4 22-Mar-1995 mycroft

Use err*(3)/warn*(3).


# 1.3 22-Mar-1995 mycroft

Don't core dump on an illegal display type. Display a more specific error
message for an ambiguous type.


# 1.2 20-Jan-1995 jtc

Changed to conform to NetBSD's new RCS Id convention.


# 1.1 20-Jan-1995 jtc

branches: 1.1.1;
Initial revision