summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2004-02-12 22:57:03 +0000
committerDimitri Sokolyuk <demon@dim13.org>2004-02-12 22:57:03 +0000
commit04b11235a420c05bce207fcfe7b5395afbbeb936 (patch)
tree743d7758032e18731282872fd6a487bd5f2da54a
parenta363dfe24ac5a65e4fee1ed8f6595f1e7460ce5c (diff)
clean
-rw-r--r--ifstat.c1
-rw-r--r--main.h2
-rw-r--r--output.c23
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 <curses.h>
#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);
+}