Author: sam
Date: Sun Feb  8 20:02:58 2009
New Revision: 188327
URL: http://svn.freebsd.org/changeset/base/188327

Log:
  o use humanize_number to print totals
  o shrink some fields now that we don't have to worry about overflow

Modified:
  head/tools/tools/ath/athstats/Makefile
  head/tools/tools/ath/athstats/athstats.c
  head/tools/tools/ath/athstats/statfoo.c

Modified: head/tools/tools/ath/athstats/Makefile
==============================================================================
--- head/tools/tools/ath/athstats/Makefile      Sun Feb  8 20:00:36 2009        
(r188326)
+++ head/tools/tools/ath/athstats/Makefile      Sun Feb  8 20:02:58 2009        
(r188327)
@@ -4,6 +4,9 @@ PROG=   athstats
 
 SRCS=  main.c statfoo.c athstats.c
 
+DPADD= ${LIBUTIL}
+LDADD= -lutil
+
 .include <bsd.prog.mk>
 
 SRCDIR=        ${.CURDIR}/../../../..

Modified: head/tools/tools/ath/athstats/athstats.c
==============================================================================
--- head/tools/tools/ath/athstats/athstats.c    Sun Feb  8 20:00:36 2009        
(r188326)
+++ head/tools/tools/ath/athstats/athstats.c    Sun Feb  8 20:02:58 2009        
(r188327)
@@ -46,6 +46,7 @@
 #include <string.h>
 #include <unistd.h>
 #include <err.h>
+#include <libutil.h>
 
 #include "ah.h"
 #include "ah_desc.h"
@@ -67,15 +68,15 @@
 
 static const struct fmt athstats[] = {
 #define        S_INPUT         0
-       { 8,    "input",        "input",        "data frames received" },
+       { 7,    "input",        "input",        "data frames received" },
 #define        S_OUTPUT        AFTER(S_INPUT)
-       { 8,    "output",       "output",       "data frames transmit" },
+       { 7,    "output",       "output",       "data frames transmit" },
 #define        S_TX_ALTRATE    AFTER(S_OUTPUT)
        { 7,    "altrate",      "altrate",      "tx frames with an alternate 
rate" },
 #define        S_TX_SHORTRETRY AFTER(S_TX_ALTRATE)
-       { 7,    "short",        "short",        "short on-chip tx retries" },
+       { 6,    "short",        "short",        "short on-chip tx retries" },
 #define        S_TX_LONGRETRY  AFTER(S_TX_SHORTRETRY)
-       { 7,    "long",         "long",         "long on-chip tx retries" },
+       { 6,    "long",         "long",         "long on-chip tx retries" },
 #define        S_TX_XRETRIES   AFTER(S_TX_LONGRETRY)
        { 6,    "xretry",       "xretry",       "tx failed 'cuz too many 
retries" },
 #define        S_MIB           AFTER(S_TX_XRETRIES)
@@ -201,7 +202,7 @@ static const struct fmt athstats[] = {
 #define        S_BE_NOMBUF     AFTER(S_RX_PHY_CCK_RESTART)
        { 4,    "benombuf",     "benombuf",     "beacon setup failed 'cuz no 
mbuf" },
 #define        S_BE_XMIT       AFTER(S_BE_NOMBUF)
-       { 7,    "bexmit",       "bexmit",       "beacons transmitted" },
+       { 6,    "bexmit",       "bexmit",       "beacons transmitted" },
 #define        S_PER_CAL       AFTER(S_BE_XMIT)
        { 4,    "pcal",         "pcal",         "periodic calibrations" },
 #define        S_PER_CALFAIL   AFTER(S_PER_CAL)
@@ -210,13 +211,13 @@ static const struct fmt athstats[] = {
        { 4,    "prfga",        "prfga",        "rfgain value change" },
 #if ATH_SUPPORT_TDMA
 #define        S_TDMA_UPDATE   AFTER(S_PER_RFGAIN)
-       { 5,    "tdmau",        "tdmau",        "TDMA slot timing updates" },
+       { 6,    "tdmau",        "tdmau",        "TDMA slot timing updates" },
 #define        S_TDMA_TIMERS   AFTER(S_TDMA_UPDATE)
-       { 5,    "tdmab",        "tdmab",        "TDMA slot update set beacon 
timers" },
+       { 6,    "tdmab",        "tdmab",        "TDMA slot update set beacon 
timers" },
 #define        S_TDMA_TSF      AFTER(S_TDMA_TIMERS)
-       { 5,    "tdmat",        "tdmat",        "TDMA slot update set TSF" },
+       { 6,    "tdmat",        "tdmat",        "TDMA slot update set TSF" },
 #define        S_TDMA_TSFADJ   AFTER(S_TDMA_TSF)
-       { 8,    "tdmadj",       "tdmadj",       "TDMA slot adjust (usecs, 
smoothed)" },
+       { 6,    "tdmadj",       "tdmadj",       "TDMA slot adjust (usecs, 
smoothed)" },
 #define        S_TDMA_ACK      AFTER(S_TDMA_TSFADJ)
        { 5,    "tdmack",       "tdmack",       "TDMA tx failed 'cuz ACK 
required" },
 #define        S_RATE_CALLS    AFTER(S_TDMA_ACK)
@@ -306,9 +307,9 @@ static const struct fmt athstats[] = {
 #define        S_ANI_STEPDOWN  AFTER(S_ANI_STEPUP)
        { 5,    "step-","STEP-",        "ANI decreased first step level" },
 #define        S_ANI_OFDMERRS  AFTER(S_ANI_STEPDOWN)
-       { 8,    "ofdm", "OFDM",         "cumulative OFDM phy error count" },
+       { 7,    "ofdm", "OFDM",         "cumulative OFDM phy error count" },
 #define        S_ANI_CCKERRS   AFTER(S_ANI_OFDMERRS)
-       { 8,    "cck",  "CCK",          "cumulative CCK phy error count" },
+       { 7,    "cck",  "CCK",          "cumulative CCK phy error count" },
 #define        S_ANI_RESET     AFTER(S_ANI_CCKERRS)
        { 5,    "reset","RESET",        "ANI parameters zero'd for non-STA 
operation" },
 #define        S_ANI_LZERO     AFTER(S_ANI_RESET)
@@ -316,15 +317,15 @@ static const struct fmt athstats[] = {
 #define        S_ANI_LNEG      AFTER(S_ANI_LZERO)
        { 5,    "lneg", "LNEG",         "ANI calculated listen time < 0" },
 #define        S_MIB_ACKBAD    AFTER(S_ANI_LNEG)
-       { 5,    "ackbad","ACKBAD",      "missing ACK's" },
+       { 7,    "ackbad","ACKBAD",      "missing ACK's" },
 #define        S_MIB_RTSBAD    AFTER(S_MIB_ACKBAD)
-       { 5,    "rtsbad","RTSBAD",      "RTS without CTS" },
+       { 7,    "rtsbad","RTSBAD",      "RTS without CTS" },
 #define        S_MIB_RTSGOOD   AFTER(S_MIB_RTSBAD)
-       { 5,    "rtsgood","RTSGOOD",    "successful RTS" },
+       { 7,    "rtsgood","RTSGOOD",    "successful RTS" },
 #define        S_MIB_FCSBAD    AFTER(S_MIB_RTSGOOD)
-       { 5,    "fcsbad","FCSBAD",      "bad FCS" },
+       { 7,    "fcsbad","FCSBAD",      "bad FCS" },
 #define        S_MIB_BEACONS   AFTER(S_MIB_FCSBAD)
-       { 5,    "beacons","beacons",    "beacons received" },
+       { 7,    "beacons","beacons",    "beacons received" },
 #define        S_NODE_AVGBRSSI AFTER(S_MIB_BEACONS)
        { 3,    "avgbrssi","BSI",       "average rssi (beacons only)" },
 #define        S_NODE_AVGRSSI  AFTER(S_NODE_AVGBRSSI)
@@ -335,37 +336,37 @@ static const struct fmt athstats[] = {
 #else
 #define        S_ANT_TX0       AFTER(S_ANT_TXSWITCH)
 #endif /* ATH_SUPPORT_ANI */
-       { 8,    "tx0",  "ant0(tx)",     "frames tx on antenna 0" },
+       { 7,    "tx0",  "ant0(tx)",     "frames tx on antenna 0" },
 #define        S_ANT_TX1       AFTER(S_ANT_TX0)
-       { 8,    "tx1",  "ant1(tx)",     "frames tx on antenna 1"  },
+       { 7,    "tx1",  "ant1(tx)",     "frames tx on antenna 1"  },
 #define        S_ANT_TX2       AFTER(S_ANT_TX1)
-       { 8,    "tx2",  "ant2(tx)",     "frames tx on antenna 2"  },
+       { 7,    "tx2",  "ant2(tx)",     "frames tx on antenna 2"  },
 #define        S_ANT_TX3       AFTER(S_ANT_TX2)
-       { 8,    "tx3",  "ant3(tx)",     "frames tx on antenna 3"  },
+       { 7,    "tx3",  "ant3(tx)",     "frames tx on antenna 3"  },
 #define        S_ANT_TX4       AFTER(S_ANT_TX3)
-       { 8,    "tx4",  "ant4(tx)",     "frames tx on antenna 4"  },
+       { 7,    "tx4",  "ant4(tx)",     "frames tx on antenna 4"  },
 #define        S_ANT_TX5       AFTER(S_ANT_TX4)
-       { 8,    "tx5",  "ant5(tx)",     "frames tx on antenna 5"  },
+       { 7,    "tx5",  "ant5(tx)",     "frames tx on antenna 5"  },
 #define        S_ANT_TX6       AFTER(S_ANT_TX5)
-       { 8,    "tx6",  "ant6(tx)",     "frames tx on antenna 6"  },
+       { 7,    "tx6",  "ant6(tx)",     "frames tx on antenna 6"  },
 #define        S_ANT_TX7       AFTER(S_ANT_TX6)
-       { 8,    "tx7",  "ant7(tx)",     "frames tx on antenna 7"  },
+       { 7,    "tx7",  "ant7(tx)",     "frames tx on antenna 7"  },
 #define        S_ANT_RX0       AFTER(S_ANT_TX7)
-       { 8,    "rx0",  "ant0(rx)",     "frames rx on antenna 0"  },
+       { 7,    "rx0",  "ant0(rx)",     "frames rx on antenna 0"  },
 #define        S_ANT_RX1       AFTER(S_ANT_RX0)
-       { 8,    "rx1",  "ant1(rx)",     "frames rx on antenna 1"   },
+       { 7,    "rx1",  "ant1(rx)",     "frames rx on antenna 1"   },
 #define        S_ANT_RX2       AFTER(S_ANT_RX1)
-       { 8,    "rx2",  "ant2(rx)",     "frames rx on antenna 2"   },
+       { 7,    "rx2",  "ant2(rx)",     "frames rx on antenna 2"   },
 #define        S_ANT_RX3       AFTER(S_ANT_RX2)
-       { 8,    "rx3",  "ant3(rx)",     "frames rx on antenna 3"   },
+       { 7,    "rx3",  "ant3(rx)",     "frames rx on antenna 3"   },
 #define        S_ANT_RX4       AFTER(S_ANT_RX3)
-       { 8,    "rx4",  "ant4(rx)",     "frames rx on antenna 4"   },
+       { 7,    "rx4",  "ant4(rx)",     "frames rx on antenna 4"   },
 #define        S_ANT_RX5       AFTER(S_ANT_RX4)
-       { 8,    "rx5",  "ant5(rx)",     "frames rx on antenna 5"   },
+       { 7,    "rx5",  "ant5(rx)",     "frames rx on antenna 5"   },
 #define        S_ANT_RX6       AFTER(S_ANT_RX5)
-       { 8,    "rx6",  "ant6(rx)",     "frames rx on antenna 6"   },
+       { 7,    "rx6",  "ant6(rx)",     "frames rx on antenna 6"   },
 #define        S_ANT_RX7       AFTER(S_ANT_RX6)
-       { 8,    "rx7",  "ant7(rx)",     "frames rx on antenna 7"   },
+       { 7,    "rx7",  "ant7(rx)",     "frames rx on antenna 7"   },
 #define        S_TX_SIGNAL     AFTER(S_ANT_RX7)
        { 4,    "asignal",      "asig", "signal of last ack (dBm)" },
 #define        S_RX_SIGNAL     AFTER(S_TX_SIGNAL)
@@ -710,32 +711,38 @@ ath_get_curstat(struct statfoo *sf, int 
 #undef STAT
 }
 
+int
+hnprintf(char *b, size_t bs, const char *fmt, int64_t v)
+{
+       humanize_number(b, bs, v, "", HN_AUTOSCALE, HN_NOSPACE);
+}
+
 static int
 ath_get_totstat(struct statfoo *sf, int s, char b[], size_t bs)
 {
        struct athstatfoo_p *wf = (struct athstatfoo_p *) sf;
 #define        STAT(x) \
-       snprintf(b, bs, "%u", wf->total.ath.ast_##x); return 1
+       hnprintf(b, bs, "%u", (int64_t) wf->total.ath.ast_##x); return 1
 #define        PHY(x) \
-       snprintf(b, bs, "%u", wf->total.ath.ast_rx_phy[x]); return 1
+       hnprintf(b, bs, "%u", (int64_t) wf->total.ath.ast_rx_phy[x]); return 1
 #define        ANI(x) \
-       snprintf(b, bs, "%u", wf->total.ani_state.x); return 1
+       hnprintf(b, bs, "%u", (int64_t) wf->total.ani_state.x); return 1
 #define        ANISTAT(x) \
-       snprintf(b, bs, "%u", wf->total.ani_stats.ast_ani_##x); return 1
+       hnprintf(b, bs, "%u", (int64_t) wf->total.ani_stats.ast_ani_##x); 
return 1
 #define        MIBSTAT(x) \
-       snprintf(b, bs, "%u", wf->total.ani_stats.ast_mibstats.x); return 1
+       hnprintf(b, bs, "%u", (int64_t) wf->total.ani_stats.ast_mibstats.x); 
return 1
 #define        TXANT(x) \
-       snprintf(b, bs, "%u", wf->total.ath.ast_ant_tx[x]); return 1
+       hnprintf(b, bs, "%u", (int64_t) wf->total.ath.ast_ant_tx[x]); return 1
 #define        RXANT(x) \
-       snprintf(b, bs, "%u", wf->total.ath.ast_ant_rx[x]); return 1
+       hnprintf(b, bs, "%u", (int64_t) wf->total.ath.ast_ant_rx[x]); return 1
 
        switch (s) {
        case S_INPUT:
-               snprintf(b, bs, "%lu",
+               hnprintf(b, bs, "%lu",
                    wf->total.ath.ast_rx_packets - wf->total.ath.ast_rx_mgt);
                return 1;
        case S_OUTPUT:
-               snprintf(b, bs, "%lu", wf->total.ath.ast_tx_packets);
+               hnprintf(b, bs, "%lu", wf->total.ath.ast_tx_packets);
                return 1;
        case S_RATE:
                snprintrate(b, bs, wf->total.ath.ast_tx_rate);

Modified: head/tools/tools/ath/athstats/statfoo.c
==============================================================================
--- head/tools/tools/ath/athstats/statfoo.c     Sun Feb  8 20:00:36 2009        
(r188326)
+++ head/tools/tools/ath/athstats/statfoo.c     Sun Feb  8 20:02:58 2009        
(r188327)
@@ -109,7 +109,7 @@ statfoo_print_current(struct statfoo *sf
        for (cp = sf->fmts; *cp != '\0'; cp++) {
                if (*cp & 0x80) {
                        const struct fmt *f = &sf->stats[*cp &~ 0x80];
-                       if (sf->get_curstat(sf, *cp &~ 0x80, buf, sizeof(buf)))
+                       if (sf->get_curstat(sf, *cp &~ 0x80, buf, f->width))
                                fprintf(fd, "%*s", f->width, buf);
                } else
                        putc(*cp, fd);
@@ -126,7 +126,7 @@ statfoo_print_total(struct statfoo *sf, 
        for (cp = sf->fmts; *cp != '\0'; cp++) {
                if (*cp & 0x80) {
                        const struct fmt *f = &sf->stats[*cp &~ 0x80];
-                       if (sf->get_totstat(sf, *cp &~ 0x80, buf, sizeof(buf)))
+                       if (sf->get_totstat(sf, *cp &~ 0x80, buf, f->width))
                                fprintf(fd, "%*s", f->width, buf);
                } else
                        putc(*cp, fd);
_______________________________________________
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