Author: sam
Date: Fri Feb 13 05:45:23 2009
New Revision: 188560
URL: http://svn.freebsd.org/changeset/base/188560

Log:
  add -z option to zero driver statistics (but note we don't yet zero
  stats obtained from the hal)

Modified:
  head/tools/tools/ath/athstats/athstats.c
  head/tools/tools/ath/athstats/athstats.h
  head/tools/tools/ath/athstats/main.c

Modified: head/tools/tools/ath/athstats/athstats.c
==============================================================================
--- head/tools/tools/ath/athstats/athstats.c    Fri Feb 13 05:44:18 2009        
(r188559)
+++ head/tools/tools/ath/athstats/athstats.c    Fri Feb 13 05:45:23 2009        
(r188560)
@@ -436,6 +436,15 @@ ath_setifname(struct athstatfoo *wf0, co
 #endif
 }
 
+static void 
+ath_zerostats(struct athstatfoo *wf0)
+{
+       struct athstatfoo_p *wf = (struct athstatfoo_p *) wf0;
+
+       if (ioctl(wf->s, SIOCZATHSTATS, &wf->ifr) < 0)
+               err(-1, wf->ifr.ifr_name);
+}
+
 static void
 ath_collect(struct athstatfoo_p *wf, struct _athstats *stats)
 {
@@ -997,6 +1006,7 @@ athstats_new(const char *ifname, const c
 #if 0
                wf->base.setstamac = wlan_setstamac;
 #endif
+               wf->base.zerostats = ath_zerostats;
                wf->s = socket(AF_INET, SOCK_DGRAM, 0);
                if (wf->s < 0)
                        err(1, "socket");

Modified: head/tools/tools/ath/athstats/athstats.h
==============================================================================
--- head/tools/tools/ath/athstats/athstats.h    Fri Feb 13 05:44:18 2009        
(r188559)
+++ head/tools/tools/ath/athstats/athstats.h    Fri Feb 13 05:45:23 2009        
(r188560)
@@ -46,6 +46,8 @@ struct athstatfoo {
        void (*setifname)(struct athstatfoo *, const char *ifname);
        /* set the mac address of the associated station/ap */
        void (*setstamac)(struct athstatfoo *, const uint8_t mac[]);
+       /* zero in-kernel statistics */
+       void (*zerostats)(struct athstatfoo *);
 };
 
 struct athstatfoo *athstats_new(const char *ifname, const char *fmtstring);

Modified: head/tools/tools/ath/athstats/main.c
==============================================================================
--- head/tools/tools/ath/athstats/main.c        Fri Feb 13 05:44:18 2009        
(r188559)
+++ head/tools/tools/ath/athstats/main.c        Fri Feb 13 05:45:23 2009        
(r188560)
@@ -33,7 +33,7 @@
  * Simple Atheros-specific tool to inspect and monitor network traffic
  * statistics.
  *
- *     athstats [-i interface] [-l] [-o fmtstring] [interval]
+ *     athstats [-i interface] [-z] [-l] [-o fmtstring] [interval]
  *
  * (default interface is ath0).  If interval is specified a rolling output
  * a la netstat -i is displayed every interval seconds.  The format of
@@ -95,7 +95,7 @@ main(int argc, char *argv[])
        if (ifname == NULL)
                ifname = "ath0";
        wf = athstats_new(ifname, getfmt("default"));
-       while ((c = getopt(argc, argv, "i:lo:")) != -1) {
+       while ((c = getopt(argc, argv, "i:lo:z")) != -1) {
                switch (c) {
                case 'i':
                        wf->setifname(wf, optarg);
@@ -106,8 +106,11 @@ main(int argc, char *argv[])
                case 'o':
                        wf->setfmt(wf, getfmt(optarg));
                        break;
+               case 'z':
+                       wf->zerostats(wf);
+                       break;
                default:
-                       errx(-1, "usage: %s [-a] [-i ifname] [-l] [-o fmt] 
[interval]\n", argv[0]);
+                       errx(-1, "usage: %s [-a] [-i ifname] [-l] [-o fmt] [-z] 
[interval]\n", argv[0]);
                        /*NOTREACHED*/
                }
        }
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to