svn commit: r333951 - head/usr.bin/top
Eitan Adler
eadler at FreeBSD.org
Mon May 21 00:53:44 UTC 2018
Author: eadler
Date: Mon May 21 00:53:42 2018
New Revision: 333951
URL: https://svnweb.freebsd.org/changeset/base/333951
Log:
top(1): clean much of WARNS=3 issues
There is still one glaring issue: new_message is not a protoype, but
can't be trivially converted since it uses K&R style var-args.
Modified:
head/usr.bin/top/display.c
head/usr.bin/top/display.h
head/usr.bin/top/machine.c
head/usr.bin/top/screen.c
head/usr.bin/top/screen.h
head/usr.bin/top/top.c
Modified: head/usr.bin/top/display.c
==============================================================================
--- head/usr.bin/top/display.c Mon May 21 00:51:30 2018 (r333950)
+++ head/usr.bin/top/display.c Mon May 21 00:53:42 2018 (r333951)
@@ -92,9 +92,9 @@ static int cpustates_column;
static enum { OFF, ON, ERASE } header_status = ON;
-static int string_count();
-static void summary_format();
-static void line_update();
+static int string_count(char **);
+static void summary_format(char *, int *, char **);
+static void line_update(char *, char *, int, int);
int x_lastpid = 10;
int y_lastpid = 0;
@@ -1041,11 +1041,9 @@ int hi;
}
void
-display_header(t)
-
-int t;
-
+display_header(int t)
{
+
if (t)
{
header_status = ON;
@@ -1058,17 +1056,12 @@ int t;
/*VARARGS2*/
void
-new_message(type, msgfmt, a1, a2, a3)
-
-int type;
-char *msgfmt;
-caddr_t a1, a2, a3;
-
+new_message(int type, char *msgfmt, caddr_t a1, caddr_t a2, caddr_t a3)
{
int i;
/* first, format the message */
- (void) snprintf(next_msg, sizeof(next_msg), msgfmt, a1, a2, a3);
+ snprintf(next_msg, sizeof(next_msg), msgfmt, a1, a2, a3);
if (msglen > 0)
{
@@ -1196,10 +1189,7 @@ int numeric;
/* internal support routines */
-static int string_count(pp)
-
-char **pp;
-
+static int string_count(char **pp)
{
int cnt;
@@ -1211,12 +1201,7 @@ char **pp;
return(cnt);
}
-static void summary_format(str, numbers, names)
-
-char *str;
-int *numbers;
-char **names;
-
+static void summary_format(char *str, int *numbers, char **names)
{
char *p;
int num;
Modified: head/usr.bin/top/display.h
==============================================================================
--- head/usr.bin/top/display.h Mon May 21 00:51:30 2018 (r333950)
+++ head/usr.bin/top/display.h Mon May 21 00:53:42 2018 (r333951)
@@ -1,3 +1,4 @@
+/* $FreeBSD$ */
/* constants needed for display.c */
/* "type" argument for new_message function */
@@ -27,7 +28,7 @@ void i_swap(int *stats);
void i_timeofday(time_t *tod);
void i_uptime(struct timeval *bt, time_t *tod);
void new_message();
-int readline(char *buffer, int size, int numeric);
+int readline(char *buffer, int size, int numeric);
char *trim_header(char *text);
void u_arc(int *stats);
void u_carc(int *stats);
Modified: head/usr.bin/top/machine.c
==============================================================================
--- head/usr.bin/top/machine.c Mon May 21 00:51:30 2018 (r333950)
+++ head/usr.bin/top/machine.c Mon May 21 00:53:42 2018 (r333951)
@@ -27,6 +27,7 @@
#include <sys/user.h>
#include <sys/vmmeter.h>
+#include <assert.h>
#include <err.h>
#include <kvm.h>
#include <math.h>
@@ -460,6 +461,8 @@ format_header(char *uname_field)
jidlength, ps.jail ? " JID" : "",
namelength, namelength, uname_field);
break;
+ case DISP_MAX:
+ assert("displaymode must not be set to DISP_MAX");
}
cmdlengthdelta = strlen(Header) - 7;
return (Header);
@@ -624,7 +627,7 @@ get_system_info(struct system_info *si)
* XXX: this could be done when the actual processes are fetched, we do
* it here out of laziness.
*/
-const struct kinfo_proc *
+static const struct kinfo_proc *
get_old_proc(struct kinfo_proc *pp)
{
struct kinfo_proc **oldpp, *oldp;
@@ -667,7 +670,7 @@ get_old_proc(struct kinfo_proc *pp)
* Return the total amount of IO done in blocks in/out and faults.
* store the values individually in the pointers passed in.
*/
-long
+static long
get_io_stats(struct kinfo_proc *pp, long *inp, long *oup, long *flp,
long *vcsw, long *ivcsw)
{
@@ -741,7 +744,7 @@ proc_used_cpu(struct kinfo_proc *pp)
/*
* Return the total number of block in/out and faults by a process.
*/
-long
+static long
get_io_total(struct kinfo_proc *pp)
{
long dummy;
@@ -932,7 +935,8 @@ format_next_process(caddr_t xhandle, char *(*get_useri
double pct;
struct handle *hp;
char status[16];
- int cpu, state;
+ int cpu;
+ size_t state;
struct rusage ru, *rup;
long p_tot, s_tot;
char *proc_fmt, thr_buf[6];
@@ -995,7 +999,7 @@ format_next_process(caddr_t xhandle, char *(*get_useri
state < sizeof(state_abbrev) / sizeof(*state_abbrev))
sprintf(status, "%.6s", state_abbrev[state]);
else
- sprintf(status, "?%5d", state);
+ sprintf(status, "?%5lu", state);
break;
}
@@ -1359,8 +1363,8 @@ static int sorted_state[] = {
/* compare_cpu - the comparison function for sorting by cpu percentage */
-int
-compare_cpu(void *arg1, void *arg2)
+static int
+compare_cpu(const void *arg1, const void *arg2)
{
struct kinfo_proc *p1 = *(struct kinfo_proc **)arg1;
struct kinfo_proc *p2 = *(struct kinfo_proc **)arg2;
@@ -1376,17 +1380,24 @@ compare_cpu(void *arg1, void *arg2)
}
/* "cpu" compare routines */
-int compare_size(), compare_res(), compare_time(), compare_prio(),
- compare_threads();
+static int compare_size(const void *arg1, const void *arg2);
+static int compare_res(const void *arg1, const void *arg2);
+static int compare_time(const void *arg1, const void *arg2);
+static int compare_prio(const void *arg1, const void *arg2);
+static int compare_threads(const void *arg1, const void *arg2);
/*
* "io" compare routines. Context switches aren't i/o, but are displayed
* on the "io" display.
*/
-int compare_iototal(), compare_ioread(), compare_iowrite(), compare_iofault(),
- compare_vcsw(), compare_ivcsw();
+static int compare_iototal(const void *arg1, const void *arg2);
+static int compare_ioread(const void *arg1, const void *arg2);
+static int compare_iowrite(const void *arg1, const void *arg2);
+static int compare_iofault(const void *arg1, const void *arg2);
+static int compare_vcsw(const void *arg1, const void *arg2);
+static int compare_ivcsw(const void *arg1, const void *arg2);
-int (*compares[])() = {
+int (*compares[])(const void *arg1, const void *arg2) = {
compare_cpu,
compare_size,
compare_res,
@@ -1407,7 +1418,7 @@ int (*compares[])() = {
/* compare_size - the comparison function for sorting by total memory usage */
int
-compare_size(void *arg1, void *arg2)
+compare_size(const void *arg1, const void *arg2)
{
struct kinfo_proc *p1 = *(struct kinfo_proc **)arg1;
struct kinfo_proc *p2 = *(struct kinfo_proc **)arg2;
@@ -1425,7 +1436,7 @@ compare_size(void *arg1, void *arg2)
/* compare_res - the comparison function for sorting by resident set size */
int
-compare_res(void *arg1, void *arg2)
+compare_res(const void *arg1, const void *arg2)
{
struct kinfo_proc *p1 = *(struct kinfo_proc **)arg1;
struct kinfo_proc *p2 = *(struct kinfo_proc **)arg2;
@@ -1443,7 +1454,7 @@ compare_res(void *arg1, void *arg2)
/* compare_time - the comparison function for sorting by total cpu time */
int
-compare_time(void *arg1, void *arg2)
+compare_time(const void *arg1, const void *arg2)
{
struct kinfo_proc *p1 = *(struct kinfo_proc **)arg1;
struct kinfo_proc *p2 = *(struct kinfo_proc **)arg2;
@@ -1461,7 +1472,7 @@ compare_time(void *arg1, void *arg2)
/* compare_prio - the comparison function for sorting by priority */
int
-compare_prio(void *arg1, void *arg2)
+compare_prio(const void *arg1, const void *arg2)
{
struct kinfo_proc *p1 = *(struct kinfo_proc **)arg1;
struct kinfo_proc *p2 = *(struct kinfo_proc **)arg2;
@@ -1477,8 +1488,8 @@ compare_prio(void *arg1, void *arg2)
}
/* compare_threads - the comparison function for sorting by threads */
-int
-compare_threads(void *arg1, void *arg2)
+static int
+compare_threads(const void *arg1, const void *arg2)
{
struct kinfo_proc *p1 = *(struct kinfo_proc **)arg1;
struct kinfo_proc *p2 = *(struct kinfo_proc **)arg2;
@@ -1533,7 +1544,7 @@ compare_swap(const void *arg1, const void *arg2)
/* assorted comparison functions for sorting by i/o */
int
-compare_iototal(void *arg1, void *arg2)
+compare_iototal(const void *arg1, const void *arg2)
{
struct kinfo_proc *p1 = *(struct kinfo_proc **)arg1;
struct kinfo_proc *p2 = *(struct kinfo_proc **)arg2;
@@ -1541,8 +1552,8 @@ compare_iototal(void *arg1, void *arg2)
return (get_io_total(p2) - get_io_total(p1));
}
-int
-compare_ioread(void *arg1, void *arg2)
+static int
+compare_ioread(const void *arg1, const void *arg2)
{
struct kinfo_proc *p1 = *(struct kinfo_proc **)arg1;
struct kinfo_proc *p2 = *(struct kinfo_proc **)arg2;
@@ -1554,8 +1565,8 @@ compare_ioread(void *arg1, void *arg2)
return (inp2 - inp1);
}
-int
-compare_iowrite(void *arg1, void *arg2)
+static int
+compare_iowrite(const void *arg1, const void *arg2)
{
struct kinfo_proc *p1 = *(struct kinfo_proc **)arg1;
struct kinfo_proc *p2 = *(struct kinfo_proc **)arg2;
@@ -1567,8 +1578,8 @@ compare_iowrite(void *arg1, void *arg2)
return (oup2 - oup1);
}
-int
-compare_iofault(void *arg1, void *arg2)
+static int
+compare_iofault(const void *arg1, const void *arg2)
{
struct kinfo_proc *p1 = *(struct kinfo_proc **)arg1;
struct kinfo_proc *p2 = *(struct kinfo_proc **)arg2;
@@ -1580,8 +1591,8 @@ compare_iofault(void *arg1, void *arg2)
return (flp2 - flp1);
}
-int
-compare_vcsw(void *arg1, void *arg2)
+static int
+compare_vcsw(const void *arg1, const void *arg2)
{
struct kinfo_proc *p1 = *(struct kinfo_proc **)arg1;
struct kinfo_proc *p2 = *(struct kinfo_proc **)arg2;
@@ -1594,7 +1605,7 @@ compare_vcsw(void *arg1, void *arg2)
}
int
-compare_ivcsw(void *arg1, void *arg2)
+compare_ivcsw(const void *arg1, const void *arg2)
{
struct kinfo_proc *p1 = *(struct kinfo_proc **)arg1;
struct kinfo_proc *p2 = *(struct kinfo_proc **)arg2;
Modified: head/usr.bin/top/screen.c
==============================================================================
--- head/usr.bin/top/screen.c Mon May 21 00:51:30 2018 (r333950)
+++ head/usr.bin/top/screen.c Mon May 21 00:53:42 2018 (r333951)
@@ -23,9 +23,10 @@
#include "top.h"
#include <sys/ioctl.h>
+#include <stdlib.h>
#include <string.h>
-# define TERMIOS
-# include <termios.h>
+#define TERMIOS
+#include <termios.h>
#include <curses.h>
#include <termcap.h>
#include "screen.h"
@@ -41,8 +42,6 @@ char ch_erase;
char ch_kill;
char smart_terminal;
char PC;
-char *tgetstr();
-char *tgoto();
char termcap_buf[1024];
char string_buffer[1024];
char home[15];
@@ -73,7 +72,6 @@ int interactive;
char *bufptr;
char *PCptr;
char *term_name;
- char *getenv();
int status;
/* set defaults in case we aren't smart */
Modified: head/usr.bin/top/screen.h
==============================================================================
--- head/usr.bin/top/screen.h Mon May 21 00:51:30 2018 (r333950)
+++ head/usr.bin/top/screen.h Mon May 21 00:53:42 2018 (r333951)
@@ -3,15 +3,13 @@
*
* This file contains all the definitions necessary to use the hand-written
* screen package in "screen.c"
+ *
+ * $FreeBSD$
*/
#define TCputs(str) tputs(str, 1, putstdout)
#define putcap(str) (void)((str) != NULL ? TCputs(str) : 0)
#define Move_to(x, y) TCputs(tgoto(cursor_motion, x, y))
-
-/* declare return values for termcap functions */
-char *tgetstr();
-char *tgoto();
extern char ch_erase; /* set to the user's erase character */
extern char ch_kill; /* set to the user's kill character */
Modified: head/usr.bin/top/top.c
==============================================================================
--- head/usr.bin/top/top.c Mon May 21 00:51:30 2018 (r333950)
+++ head/usr.bin/top/top.c Mon May 21 00:53:42 2018 (r333951)
@@ -81,16 +81,16 @@ static int fmt_flags = 0;
int pcpu_stats = No;
/* signal handling routines */
-sigret_t leave();
-sigret_t tstop();
-sigret_t top_winch(int);
+static sigret_t leave(int);
+static sigret_t tstop(int);
+static sigret_t top_winch(int);
volatile sig_atomic_t leaveflag;
volatile sig_atomic_t tstopflag;
volatile sig_atomic_t winchflag;
/* internal routines */
-void quit();
+void quit(int);
/* values which need to be accessed by signal handlers */
static int max_topn; /* maximum displayable processes */
@@ -100,20 +100,18 @@ struct process_select ps;
char *myname = "top";
jmp_buf jmp_int;
-/* routines that don't return int */
+char *username(int);
-char *username();
+extern int (*compares[])(const void*, const void*);
+time_t time(time_t *tloc);
-extern int (*compares[])();
-time_t time();
-
caddr_t get_process_info(struct system_info *si, struct process_select *sel,
int (*compare)(const void *, const void *));
/* different routines for displaying the user's identification */
/* (values assigned to get_userid) */
-char *username();
-char *itoa7();
+char *username(int);
+char *itoa7(int);
/* pointers to display routines */
void (*d_loadave)(int mpid, double *avenrun) = i_loadave;
@@ -632,10 +630,10 @@ char *argv[];
old_sigmask = sigblock(Smask(SIGINT) | Smask(SIGQUIT) | Smask(SIGTSTP));
#endif
init_screen();
- (void) signal(SIGINT, leave);
- (void) signal(SIGQUIT, leave);
- (void) signal(SIGTSTP, tstop);
- (void) signal(SIGWINCH, top_winch);
+ signal(SIGINT, leave);
+ signal(SIGQUIT, leave);
+ signal(SIGTSTP, tstop);
+ signal(SIGWINCH, top_winch);
#ifdef SIGRELSE
sigrelse(SIGINT);
sigrelse(SIGQUIT);
@@ -1228,30 +1226,30 @@ reset_display()
* signal handlers
*/
-sigret_t leave() /* exit under normal conditions -- INT handler */
+static sigret_t
+leave(int i __unused) /* exit under normal conditions -- INT handler */
{
leaveflag = 1;
}
-sigret_t tstop(int i __unused) /* SIGTSTP handler */
+static sigret_t
+tstop(int i __unused) /* SIGTSTP handler */
{
tstopflag = 1;
}
-sigret_t top_winch(int i __unused) /* SIGWINCH handler */
+static sigret_t
+top_winch(int i __unused) /* SIGWINCH handler */
{
winchflag = 1;
}
-void quit(status) /* exit under duress */
-
-int status;
-
+void
+quit(int status) /* exit under duress */
{
end_screen();
exit(status);
- /*NOTREACHED*/
}
More information about the svn-src-all
mailing list