From 04b11235a420c05bce207fcfe7b5395afbbeb936 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Thu, 12 Feb 2004 22:57:03 +0000 Subject: clean --- ifstat.c | 1 + main.h | 2 -- output.c | 23 ++++++++++++++++++++++- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/ifstat.c b/ifstat.c index ecd09e0..73d12a7 100644 --- a/ifstat.c +++ b/ifstat.c @@ -60,6 +60,7 @@ int if_init(char *ifname) { int if_stat(void) { struct ifnet ifnet; + extern struct ifdata ifdata; if (kvm_read(kvmd, (unsigned long)addr, &ifnet, sizeof(ifnet)) != sizeof(ifnet)) error(kvm_geterr(kvmd)); diff --git a/main.h b/main.h index ef06f90..a3475b2 100644 --- a/main.h +++ b/main.h @@ -15,8 +15,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#define kB 1024 -#define MB (kB*1024) #define NAMSIZ 16 extern char *__progname; diff --git a/output.c b/output.c index f0ff6ae..51d46dd 100644 --- a/output.c +++ b/output.c @@ -18,6 +18,10 @@ #include #include "main.h" +u_long delta(u_long, u_long *); +u_long ani[60]; +u_long ano[60]; + int out(struct ifdata *diff) { extern struct ifdata ifdata; WINDOW *scr; @@ -29,7 +33,10 @@ int out(struct ifdata *diff) { printw("BR: %d Mbps\n\n", ifdata.baudrate / 1000000); printw("RX: %lu kBps\n", diff->ibytes / 1024); - printw("TX: %lu kBps\n\n", diff->obytes / 1024); + printw("RX: %i kBpm\n\n", delta(diff->ibytes, ani) / 1024); + + printw("TX: %lu kBps\n", diff->obytes / 1024); + printw("TX: %i kBpm\n\n", delta(diff->obytes, ano) / 1024); printw("RX: %lu pps\n", diff->ipackets); printw("TX: %lu pps\n\n", diff->opackets); @@ -39,3 +46,17 @@ int out(struct ifdata *diff) { refresh(); } + +u_long delta(u_long n, u_long *an) { + u_long nsum = 0; + int i, del = 60; + for (i=59; i>0; i--) { + an[i] = an[i-1]; + nsum += an[i]; + if (an[i] == 0) + del -= 1; + } + an[0] = n; + nsum += n; + return (nsum / del); +} -- cgit v1.2.3