1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
|
/* $NetBSD: extern.h,v 1.49 2022/10/28 05:24:08 ozaki-r Exp $ */
/*-
* Copyright (c) 1991, 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.
* 3. 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.
*
* @(#)extern.h 8.1 (Berkeley) 6/6/93
*/
#include <sys/cdefs.h>
#include <fcntl.h>
#include <stdbool.h>
#include <kvm.h>
#define ADJINETCTR(c, o, n, e) (c.e = n.e - o.e)
#define xADJINETCTR(c, o, n, e) (c[e] = n[e] - o[e])
#define MAXFAIL 5
extern struct command global_commands[];
extern struct mode *curmode;
extern struct mode modes[];
extern struct text *xtext;
extern WINDOW *wnd;
extern char *namp, hostname[];
extern double avenrun[3];
extern float *dk_mspw;
extern kvm_t *kd;
extern long ntext, textp;
extern int CMDLINE;
extern int hz, stathz, maxslp;
extern double naptime;
extern int nhosts;
extern int nports;
extern int protos;
extern int verbose;
extern int nflag;
extern char *memf;
extern int allflag;
extern int turns;
extern gid_t egid;
extern float hertz;
extern double etime;
extern bool showzero;
struct inpcb;
int checkhost(struct inpcb *);
int checkport(struct inpcb *);
#ifdef INET6
int checkhost6(struct inpcb *);
#endif
void closebufcache(WINDOW *);
void closedf(WINDOW *);
void closeicmp(WINDOW *);
void closeifstat(WINDOW *);
void closeiostat(WINDOW *);
void closeip(WINDOW *);
void closevmstat(WINDOW *);
void closesyscall(WINDOW *);
void closembufs(WINDOW *);
void closenetstat(WINDOW *);
void closepigs(WINDOW *);
void closeswap(WINDOW *);
void closetcp(WINDOW *);
int cmdifstat(const char *, const char *);
void command(char *);
void df_all(char *);
void df_some(char *);
void die(int) __dead;
void disks_add(char *);
void disks_remove(char *);
void disks_drives(char *);
void display(int);
void error(const char *, ...) __printflike(1, 2);
void clearerror(void);
void fetchbufcache(void);
void fetchdf(void);
void fetchicmp(void);
void fetchifstat(void);
void fetchiostat(void);
void fetchip(void);
void fetchvmstat(void);
void fetchsyscall(void);
void fetchmbufs(void);
void fetchnetstat(void);
void fetchpigs(void);
void fetchswap(void);
void fetchtcp(void);
int fetch_cptime(u_int64_t *);
void global_help(char *);
void global_interval(char *);
void global_load(char *);
void global_quit(char *) __dead;
void global_stop(char *);
void icmp_boot(char *);
void icmp_run(char *);
void icmp_time(char *);
void icmp_zero(char *);
int ifcmd(const char *cmd, const char *args);
void ifstat_match(char*);
void ifstat_pps(char*);
void ifstat_scale(char*);
int initbufcache(void);
int initdf(void);
int initicmp(void);
int initifstat(void);
int initiostat(void);
int initip(void);
int initvmstat(void);
int initsyscall(void);
int initmbufs(void);
int initnetstat(void);
int initpigs(void);
int initswap(void);
int inittcp(void);
void iostat_bars(char *);
void iostat_numbers(char *);
void iostat_secs(char *);
void iostat_rw(char *);
void iostat_all(char *);
void ip_boot(char *);
void ip_run(char *);
void ip_time(char *);
void ip_zero(char *);
void keyboard(void) __dead;
ssize_t kvm_ckread(const void *, void *, size_t, const char *);
void labelbufcache(void);
void labeldf(void);
void labelicmp(void);
void labelifstat(void);
void labeliostat(void);
void labelip(void);
void labelvmstat(void);
void labelsyscall(void);
void labelmbufs(void);
void labelnetstat(void);
void labelpigs(void);
void labelps(void);
void labels(void);
void labelswap(void);
void labeltcp(void);
void labeltcpsyn(void);
void netstat_all(char *);
void netstat_display(char *);
void netstat_ignore(char *);
void netstat_names(char *);
void netstat_numbers(char *);
void netstat_reset(char *);
void netstat_show(char *);
void netstat_tcp(char *);
void netstat_udp(char *);
void nlisterr(struct nlist []) __dead;
WINDOW *openbufcache(void);
WINDOW *opendf(void);
WINDOW *openicmp(void);
WINDOW *openifstat(void);
WINDOW *openiostat(void);
WINDOW *openip(void);
WINDOW *openvmstat(void);
WINDOW *opensyscall(void);
WINDOW *openmbufs(void);
WINDOW *opennetstat(void);
WINDOW *openpigs(void);
WINDOW *openswap(void);
WINDOW *opentcp(void);
int prefix(const char *, const char *);
void ps_user(char *);
void redraw(void);
void showbufcache(void);
void showdf(void);
void showicmp(void);
void showifstat(void);
void showiostat(void);
void showip(void);
void showvmstat(void);
void showsyscall(void);
void showmbufs(void);
void shownetstat(void);
void showpigs(void);
void showps(void);
void showswap(void);
void showtcp(void);
void showtcpsyn(void);
void status(void);
void switch_mode(struct mode *);
void tcp_boot(char *);
void tcp_run(char *);
void tcp_time(char *);
void tcp_zero(char *);
bool toofast(int *);
void vmstat_boot(char *);
void vmstat_run(char *);
void vmstat_time(char *);
void vmstat_zero(char *);
void syscall_boot(char *);
void syscall_run(char *);
void syscall_time(char *);
void syscall_zero(char *);
void syscall_order(char *);
void syscall_show(char *);
#ifdef INET6
void closeip6(WINDOW *);
void fetchip6(void);
int initip6(void);
void labelip6(void);
WINDOW *openip6(void);
void showip6(void);
void ip6_boot(char *);
void ip6_run(char *);
void ip6_time(char *);
void ip6_zero(char *);
#endif
|