Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F135596891
D6468.id.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
14 KB
Referenced Files
None
Subscribers
None
D6468.id.diff
View Options
Index: head/contrib/top/commands.h
===================================================================
--- head/contrib/top/commands.h
+++ head/contrib/top/commands.h
@@ -0,0 +1,21 @@
+/*
+ * Top users/processes display for Unix
+ * Version 3
+ *
+ * This program may be freely redistributed,
+ * but this entire comment MUST remain intact.
+ *
+ * Copyright (c) 1984, 1989, William LeFebvre, Rice University
+ * Copyright (c) 1989, 1990, 1992, William LeFebvre, Northwestern University
+ * Copyright (c) 2016, Randy Westlund
+ *
+ * $FreeBSD$
+ */
+#ifndef COMMANDS_H
+#define COMMANDS_H
+
+void show_errors(void);
+int error_count(void);
+void show_help(void);
+
+#endif /* COMMANDS_H */
Index: head/contrib/top/commands.c
===================================================================
--- head/contrib/top/commands.c
+++ head/contrib/top/commands.c
@@ -19,16 +19,21 @@
*/
#include "os.h"
-#include <ctype.h>
-#include <signal.h>
-#include <errno.h>
+
#include <sys/time.h>
#include <sys/resource.h>
+#include <ctype.h>
+#include <errno.h>
+#include <signal.h>
+#include <unistd.h>
+
+#include "commands.h"
#include "sigdesc.h" /* generated automatically */
#include "top.h"
#include "boolean.h"
#include "utils.h"
+#include "machine.h"
extern int errno;
@@ -39,12 +44,15 @@
int err_compar();
char *err_string();
+static int str_adderr(char *str, int len, int err);
+static int str_addarg(char *str, int len, char *arg, int first);
/*
* show_help() - display the help screen; invoked in response to
* either 'h' or '?'.
*/
+void
show_help()
{
@@ -123,6 +131,7 @@
return(*str == '\0' ? NULL : str);
}
+int
scanint(str, intp)
char *str;
@@ -262,6 +271,7 @@
* the string "str".
*/
+static int
str_adderr(str, len, err)
char *str;
@@ -289,6 +299,7 @@
* is set (indicating that a comma should NOT be added to the front).
*/
+static int
str_addarg(str, len, arg, first)
char *str;
@@ -321,6 +332,7 @@
* for sorting errors.
*/
+int
err_compar(p1, p2)
register struct errs *p1, *p2;
@@ -339,6 +351,7 @@
* error_count() - return the number of errors currently logged.
*/
+int
error_count()
{
@@ -349,6 +362,7 @@
* show_errors() - display on stdout the current log of errors.
*/
+void
show_errors()
{
Index: head/contrib/top/display.h
===================================================================
--- head/contrib/top/display.h
+++ head/contrib/top/display.h
@@ -5,3 +5,37 @@
#define MT_standout 1
#define MT_delayed 2
+#include "machine.h"
+
+int display_updatecpus(struct statics *statics);
+void clear_message(void);
+int display_resize(void);
+void i_header(char *text);
+char *printable(char *string);
+char *cpustates_tag(void);
+void display_header(int t);
+int display_init(struct statics *statics);
+void i_arc(int *stats);
+void i_cpustates(int *states);
+void i_loadave(int mpid, double *avenrun);
+void i_memory(int *stats);
+void i_message(void);
+void i_process(int line, char *thisline);
+void i_procstates(int total, int *brkdn);
+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);
+char *trim_header(char *text);
+void u_arc(int *stats);
+void u_cpustates(int *states);
+void u_endscreen(int hi);
+void u_header(char *text);
+void u_loadave(int mpid, double *avenrun);
+void u_memory(int *stats);
+void u_message(void);
+void u_process(int line, char *newline);
+void u_procstates(int total, int *brkdn);
+void u_swap(int *stats);
+void z_cpustates(void);
Index: head/contrib/top/display.c
===================================================================
--- head/contrib/top/display.c
+++ head/contrib/top/display.c
@@ -29,9 +29,12 @@
*/
#include "os.h"
+
+#include <sys/time.h>
+
#include <ctype.h>
#include <time.h>
-#include <sys/time.h>
+#include <unistd.h>
#include "screen.h" /* interface to screen package */
#include "layout.h" /* defines for screen position layout */
@@ -56,7 +59,6 @@
#define lineindex(l) ((l)*display_width)
-char *printable();
/* things initialized by display_init and used thruout */
@@ -239,6 +241,7 @@
return(lines);
}
+void
i_loadave(mpid, avenrun)
int mpid;
@@ -267,6 +270,7 @@
lmpid = mpid;
}
+void
u_loadave(mpid, avenrun)
int mpid;
@@ -306,6 +310,7 @@
}
}
+void
i_timeofday(tod)
time_t *tod;
@@ -351,6 +356,7 @@
* lastline is valid
*/
+void
i_procstates(total, brkdn)
int total;
@@ -378,6 +384,7 @@
memcpy(lprocstates, brkdn, num_procstates * sizeof(int));
}
+void
u_procstates(total, brkdn)
int total;
@@ -460,9 +467,10 @@
}
#endif
+void
i_cpustates(states)
-register int *states;
+int *states;
{
register int i = 0;
@@ -505,9 +513,10 @@
memcpy(lcpustates, states, num_cpustates * sizeof(int) * num_cpus);
}
+void
u_cpustates(states)
-register int *states;
+int *states;
{
register int value;
@@ -557,6 +566,7 @@
}
}
+void
z_cpustates()
{
@@ -606,6 +616,7 @@
char memory_buffer[MAX_COLS];
+void
i_memory(stats)
int *stats;
@@ -619,6 +630,7 @@
fputs(memory_buffer, stdout);
}
+void
u_memory(stats)
int *stats;
@@ -639,13 +651,14 @@
*/
char arc_buffer[MAX_COLS];
+void
i_arc(stats)
int *stats;
{
if (arc_names == NULL)
- return (0);
+ return;
fputs("\nARC: ", stdout);
lastline++;
@@ -655,6 +668,7 @@
fputs(arc_buffer, stdout);
}
+void
u_arc(stats)
int *stats;
@@ -663,7 +677,7 @@
static char new[MAX_COLS];
if (arc_names == NULL)
- return (0);
+ return;
/* format the new line */
summary_format(new, stats, arc_names);
@@ -680,6 +694,7 @@
char swap_buffer[MAX_COLS];
+void
i_swap(stats)
int *stats;
@@ -693,6 +708,7 @@
fputs(swap_buffer, stdout);
}
+void
u_swap(stats)
int *stats;
@@ -724,6 +740,7 @@
/* Invariant: msglen is always the length of the message currently displayed
on the screen (even when next_msg doesn't contain that message). */
+void
i_message()
{
@@ -745,6 +762,7 @@
}
}
+void
u_message()
{
@@ -786,6 +804,7 @@
* Assumptions: cursor is on the previous line and lastline is consistent
*/
+void
i_header(text)
char *text;
@@ -811,9 +830,10 @@
}
/*ARGSUSED*/
+void
u_header(text)
-char *text; /* ignored */
+char *text __unused; /* ignored */
{
@@ -832,6 +852,7 @@
* Assumptions: lastline is consistent
*/
+void
i_process(line, thisline)
int line;
@@ -862,6 +883,7 @@
memzero(p, display_width - (p - base));
}
+void
u_process(line, newline)
int line;
@@ -909,9 +931,10 @@
}
}
+void
u_endscreen(hi)
-register int hi;
+int hi;
{
register int screen_line = hi + Header_lines;
@@ -969,6 +992,7 @@
}
}
+void
display_header(t)
int t;
@@ -985,6 +1009,7 @@
}
/*VARARGS2*/
+void
new_message(type, msgfmt, a1, a2, a3)
int type;
@@ -1025,6 +1050,7 @@
}
}
+void
clear_message()
{
@@ -1034,6 +1060,7 @@
}
}
+int
readline(buffer, size, numeric)
char *buffer;
@@ -1336,6 +1363,7 @@
return(str);
}
+void
i_uptime(bt, tod)
struct timeval* bt;
Index: head/contrib/top/machine.h
===================================================================
--- head/contrib/top/machine.h
+++ head/contrib/top/machine.h
@@ -7,6 +7,10 @@
* module. It is NOT machine dependent and should not need to be changed
* for any specific machine.
*/
+#ifndef MACHINE_H
+#define MACHINE_H
+
+#include "top.h"
/*
* the statics struct is filled in by machine_init
@@ -74,8 +78,14 @@
/* routines defined by the machine dependent module */
-char *format_header();
-char *format_next_process();
+char *format_header();
+char *format_next_process();
+void toggle_pcpustats(void);
+void get_system_info(struct system_info *si);
+int machine_init(struct statics *statics, char do_unames);
+int proc_owner(int pid);
/* non-int routines typically used by the machine dependent module */
-char *printable();
+char *printable();
+
+#endif /* MACHINE_H */
Index: head/contrib/top/screen.h
===================================================================
--- head/contrib/top/screen.h
+++ head/contrib/top/screen.h
@@ -28,4 +28,14 @@
extern int screen_width;
/* a function that puts a single character on stdout */
-int putstdout();
+void putstdout(char ch);
+int clear_eol(int len);
+void standout(char *msg);
+void clear(void);
+void go_home(void);
+void reinit_screen(void);
+void get_screensize(void);
+void init_termcap(int interactive);
+void end_screen(void);
+void init_screen(void);
+
Index: head/contrib/top/screen.c
===================================================================
--- head/contrib/top/screen.c
+++ head/contrib/top/screen.c
@@ -50,7 +50,6 @@
extern char *myname;
-int putstdout();
int overstrike;
int screen_length;
@@ -236,6 +235,7 @@
#endif
}
+void
init_screen()
{
@@ -326,6 +326,7 @@
}
}
+void
end_screen()
{
@@ -356,6 +357,7 @@
}
}
+void
reinit_screen()
{
@@ -383,6 +385,7 @@
}
}
+void
get_screensize()
{
@@ -428,6 +431,7 @@
lower_left[sizeof(lower_left) - 1] = '\0';
}
+void
standout(msg)
char *msg;
@@ -445,6 +449,7 @@
}
}
+void
clear()
{
@@ -454,6 +459,7 @@
}
}
+int
clear_eol(len)
int len;
@@ -478,6 +484,7 @@
return(-1);
}
+void
go_home()
{
@@ -489,6 +496,7 @@
/* This has to be defined as a subroutine for tputs (instead of a macro) */
+void
putstdout(ch)
char ch;
Index: head/contrib/top/top.h
===================================================================
--- head/contrib/top/top.h
+++ head/contrib/top/top.h
@@ -7,6 +7,9 @@
* General (global) definitions
*/
+#ifndef TOP_H
+#define TOP_H
+
/* Current major version number */
#define VERSION 3
@@ -47,3 +50,5 @@
extern enum displaymodes displaymode;
extern int pcpu_stats;
+
+#endif /* TOP_H */
Index: head/contrib/top/top.c
===================================================================
--- head/contrib/top/top.c
+++ head/contrib/top/top.c
@@ -34,15 +34,19 @@
*/
#include "os.h"
-#include <errno.h>
-#include <signal.h>
-#include <setjmp.h>
-#include <ctype.h>
+
#include <sys/jail.h>
#include <sys/time.h>
+
+#include <ctype.h>
+#include <errno.h>
#include <jail.h>
+#include <setjmp.h>
+#include <signal.h>
+#include <unistd.h>
/* includes specific to top */
+#include "commands.h"
#include "display.h" /* interface to display package */
#include "screen.h" /* interface to screen package */
#include "top.h"
@@ -50,6 +54,7 @@
#include "boolean.h"
#include "machine.h"
#include "utils.h"
+#include "username.h"
/* Size of the stdio buffer given to stdout */
#define Buffersize 2048
@@ -114,38 +119,21 @@
char *username();
char *itoa7();
-/* display routines that need to be predeclared */
-int i_loadave();
-int u_loadave();
-int i_procstates();
-int u_procstates();
-int i_cpustates();
-int u_cpustates();
-int i_memory();
-int u_memory();
-int i_arc();
-int u_arc();
-int i_swap();
-int u_swap();
-int i_message();
-int u_message();
-int i_header();
-int u_header();
-int i_process();
-int u_process();
-
/* pointers to display routines */
-int (*d_loadave)() = i_loadave;
-int (*d_procstates)() = i_procstates;
-int (*d_cpustates)() = i_cpustates;
-int (*d_memory)() = i_memory;
-int (*d_arc)() = i_arc;
-int (*d_swap)() = i_swap;
-int (*d_message)() = i_message;
-int (*d_header)() = i_header;
-int (*d_process)() = i_process;
+void (*d_loadave)() = i_loadave;
+void (*d_procstates)() = i_procstates;
+void (*d_cpustates)() = i_cpustates;
+void (*d_memory)() = i_memory;
+void (*d_arc)() = i_arc;
+void (*d_swap)() = i_swap;
+void (*d_message)() = i_message;
+void (*d_header)() = i_header;
+void (*d_process)() = i_process;
+
+void reset_display(void);
+int
main(argc, argv)
int argc;
@@ -1178,6 +1166,7 @@
* screen will get redrawn.
*/
+void
reset_display()
{
Index: head/contrib/top/username.h
===================================================================
--- head/contrib/top/username.h
+++ head/contrib/top/username.h
@@ -0,0 +1,23 @@
+/*
+ * Top users/processes display for Unix
+ * Version 3
+ *
+ * This program may be freely redistributed,
+ * but this entire comment MUST remain intact.
+ *
+ * Copyright (c) 1984, 1989, William LeFebvre, Rice University
+ * Copyright (c) 1989, 1990, 1992, William LeFebvre, Northwestern University
+ * Copyright (c) 2016, Randy Westlund
+ *
+ * $FreeBSD$
+ */
+#ifndef USERNAME_H
+#define USERNAME_H
+
+int enter_user(int uid, char *name, int wecare);
+int get_user(int uid);
+void init_hash(void);
+char *username(int uid);
+int userid(char *username);
+
+#endif /* USERNAME_H */
Index: head/contrib/top/username.c
===================================================================
--- head/contrib/top/username.c
+++ head/contrib/top/username.c
@@ -32,11 +32,15 @@
#include <sys/param.h>
#include <sys/types.h>
-#include <stdio.h>
+
#include <pwd.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
#include "top.local.h"
#include "utils.h"
+#include "username.h"
struct hash_el {
int uid;
@@ -55,6 +59,8 @@
/* We depend on that for hash_table and YOUR compiler had BETTER do it! */
struct hash_el hash_table[Table_size];
+
+void
init_hash()
{
@@ -67,7 +73,7 @@
char *username(uid)
-register int uid;
+int uid;
{
register int hashindex;
@@ -106,8 +112,8 @@
int enter_user(uid, name, wecare)
-register int uid;
-register char *name;
+int uid;
+char *name;
int wecare; /* 1 = enter it always, 0 = nice to have */
{
@@ -142,7 +148,7 @@
int get_user(uid)
-register int uid;
+int uid;
{
struct passwd *pwd;
Index: head/contrib/top/utils.h
===================================================================
--- head/contrib/top/utils.h
+++ head/contrib/top/utils.h
@@ -22,3 +22,5 @@
char *format_time();
char *format_k();
char *format_k2(unsigned long long);
+int string_index(char *string, char **array);
+
Index: head/contrib/top/version.c
===================================================================
--- head/contrib/top/version.c
+++ head/contrib/top/version.c
@@ -9,6 +9,9 @@
* Copyright (c) 1989, 1990, 1992, William LeFebvre, Northwestern University
*/
+#include <stdio.h>
+#include <string.h>
+
#include "top.h"
#include "patchlevel.h"
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Nov 12, 4:11 AM (11 h, 13 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25185910
Default Alt Text
D6468.id.diff (14 KB)
Attached To
Mode
D6468: Silence /usr/bin/top compiler warnings
Attached
Detach File
Event Timeline
Log In to Comment