Nuke "systat -mbuf". It was broken since FreeBSD 5, and since there

haven't been any complaints, no one used it.
This commit is contained in:
glebius 2013-07-15 12:15:14 +00:00
parent 60f83c2b99
commit 270169f28a
5 changed files with 2 additions and 209 deletions

View File

@ -5,7 +5,7 @@
PROG= systat
SRCS= cmds.c cmdtab.c devs.c fetch.c iostat.c keyboard.c main.c \
mbufs.c netcmds.c netstat.c pigs.c swap.c icmp.c \
netcmds.c netstat.c pigs.c swap.c icmp.c \
mode.c ip.c tcp.c \
vmstat.c convtbl.c ifcmds.c ifstat.c

View File

@ -46,9 +46,6 @@ struct cmdtab cmdtab[] = {
{ "swap", showswap, fetchswap, labelswap,
initswap, openswap, closeswap, 0,
0, CF_LOADAV },
{ "mbufs", showmbufs, fetchmbufs, labelmbufs,
initmbufs, openmbufs, closembufs, 0,
0, CF_LOADAV },
{ "iostat", showiostat, fetchiostat, labeliostat,
initiostat, openiostat, closeiostat, cmdiostat,
0, CF_LOADAV },

View File

@ -76,7 +76,6 @@ void closeiostat(WINDOW *);
void closeip(WINDOW *);
void closeip6(WINDOW *);
void closekre(WINDOW *);
void closembufs(WINDOW *);
void closenetstat(WINDOW *);
void closepigs(WINDOW *);
void closeswap(WINDOW *);
@ -99,7 +98,6 @@ void fetchip(void);
void fetchip6(void);
void fetchiostat(void);
void fetchkre(void);
void fetchmbufs(void);
void fetchnetstat(void);
void fetchpigs(void);
void fetchswap(void);
@ -113,7 +111,6 @@ int initip(void);
int initip6(void);
int initiostat(void);
int initkre(void);
int initmbufs(void);
int initnetstat(void);
int initpigs(void);
int initswap(void);
@ -127,7 +124,6 @@ void labelip(void);
void labelip6(void);
void labeliostat(void);
void labelkre(void);
void labelmbufs(void);
void labelnetstat(void);
void labelpigs(void);
void labels(void);
@ -143,7 +139,6 @@ WINDOW *openip(void);
WINDOW *openip6(void);
WINDOW *openiostat(void);
WINDOW *openkre(void);
WINDOW *openmbufs(void);
WINDOW *opennetstat(void);
WINDOW *openpigs(void);
WINDOW *openswap(void);
@ -161,7 +156,6 @@ void showip(void);
void showip6(void);
void showiostat(void);
void showkre(void);
void showmbufs(void);
void shownetstat(void);
void showpigs(void);
void showswap(void);

View File

@ -1,193 +0,0 @@
/*-
* Copyright (c) 1980, 1992, 1993
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
#ifdef lint
static const char sccsid[] = "@(#)mbufs.c 8.1 (Berkeley) 6/6/93";
#endif
#include <sys/param.h>
#include <sys/types.h>
#include <sys/mbuf.h>
#include <sys/sysctl.h>
#include <errno.h>
#include <stdlib.h>
#include <string.h>
#include <paths.h>
#include "systat.h"
#include "extern.h"
static struct mbstat *mbstat;
static long *m_mbtypes;
static short nmbtypes;
static struct mtnames {
short mt_type;
const char *mt_name;
} mtnames[] = {
{ MT_DATA, "data"},
{ MT_HEADER, "headers"},
{ MT_SONAME, "socknames"},
{ MT_CONTROL, "control"},
{ MT_OOBDATA, "oobdata"}
};
#define NNAMES (sizeof (mtnames) / sizeof (mtnames[0]))
WINDOW *
openmbufs(void)
{
return (subwin(stdscr, LINES-3-1, 0, MAINWIN_ROW, 0));
}
void
closembufs(WINDOW *w)
{
if (w == NULL)
return;
wclear(w);
wrefresh(w);
delwin(w);
}
void
labelmbufs(void)
{
wmove(wnd, 0, 0); wclrtoeol(wnd);
mvwaddstr(wnd, 0, 10,
"/0 /5 /10 /15 /20 /25 /30 /35 /40 /45 /50 /55 /60");
}
void
showmbufs(void)
{
int i, j, max, idx;
u_long totmbufs;
char buf[10];
const char *mtname;
totmbufs = mbstat->m_mbufs;
/*
* Print totals for different mbuf types.
*/
for (j = 0; j < wnd->_maxy; j++) {
max = 0, idx = -1;
for (i = 0; i < wnd->_maxy; i++) {
if (i == MT_NOTMBUF)
continue;
if (i >= nmbtypes)
break;
if (m_mbtypes[i] > max) {
max = m_mbtypes[i];
idx = i;
}
}
if (max == 0)
break;
mtname = NULL;
for (i = 0; i < (int)NNAMES; i++)
if (mtnames[i].mt_type == idx)
mtname = mtnames[i].mt_name;
if (mtname == NULL)
mvwprintw(wnd, 1+j, 0, "%10d", idx);
else
mvwprintw(wnd, 1+j, 0, "%-10.10s", mtname);
wmove(wnd, 1 + j, 10);
if (max > 60) {
snprintf(buf, sizeof(buf), " %d", max);
max = 60;
while (max--)
waddch(wnd, 'X');
waddstr(wnd, buf);
} else
while (max--)
waddch(wnd, 'X');
wclrtoeol(wnd);
m_mbtypes[idx] = 0;
}
/*
* Print total number of free mbufs.
*/
if (totmbufs > 0) {
mvwprintw(wnd, 1+j, 0, "%-10.10s", "Mbufs");
if (totmbufs > 60) {
snprintf(buf, sizeof(buf), " %lu", totmbufs);
totmbufs = 60;
while(totmbufs--)
waddch(wnd, 'X');
waddstr(wnd, buf);
} else {
while(totmbufs--)
waddch(wnd, 'X');
}
wclrtoeol(wnd);
j++;
}
wmove(wnd, 1+j, 0); wclrtobot(wnd);
}
int
initmbufs(void)
{
size_t len;
len = sizeof *mbstat;
if ((mbstat = malloc(len)) == NULL) {
error("malloc mbstat failed");
return 0;
}
if (sysctlbyname("kern.ipc.mbstat", mbstat, &len, NULL, 0) < 0) {
error("sysctl retrieving mbstat");
return 0;
}
nmbtypes = mbstat->m_numtypes;
if ((m_mbtypes = calloc(nmbtypes, sizeof(long *))) == NULL) {
error("calloc m_mbtypes failed");
return 0;
}
return 1;
}
void
fetchmbufs(void)
{
size_t len;
len = sizeof *mbstat;
if (sysctlbyname("kern.ipc.mbstat", mbstat, &len, NULL, 0) < 0)
printw("sysctl: mbstat: %s", strerror(errno));
}

View File

@ -28,7 +28,7 @@
.\" @(#)systat.1 8.2 (Berkeley) 12/30/93
.\" $FreeBSD$
.\"
.Dd February 20, 2013
.Dd July 15, 2013
.Dt SYSTAT 1
.Os
.Sh NAME
@ -67,7 +67,6 @@ statistics (a la
.Xr iostat 8 ) ,
virtual memory statistics (a la
.Xr vmstat 8 ) ,
network ``mbuf'' utilization,
.Tn TCP/IP
statistics,
and network connections (a la
@ -94,7 +93,6 @@ to be one of:
.Ic iostat ,
.Ic ip ,
.Ic ip6 ,
.Ic mbufs ,
.Ic netstat ,
.Ic pigs ,
.Ic swap ,
@ -280,9 +278,6 @@ the graph shows the percentage of space in use on each partition.
If there are more than one swap partition in use,
a total line is also shown.
Areas known to the kernel, but not in use are shown as not available.
.It Ic mbufs
Display, in the lower window, the number of mbufs allocated
for particular uses, i.e., data, socket structures, etc.
.It Ic vmstat
Take over the entire display and show a (rather crowded) compendium
of statistics related to virtual memory usage, process scheduling,