svn commit: r188328 - in projects/vap7/tools/tools/ath: . athstats

Sam Leffler sam at FreeBSD.org
Sun Feb 8 12:07:51 PST 2009


Author: sam
Date: Sun Feb  8 20:07:50 2009
New Revision: 188328
URL: http://svn.freebsd.org/changeset/base/188328

Log:
  merge 188327: use humanize number for totals

Modified:
  projects/vap7/tools/tools/ath/   (props changed)
  projects/vap7/tools/tools/ath/athstats/Makefile
  projects/vap7/tools/tools/ath/athstats/athstats.c
  projects/vap7/tools/tools/ath/athstats/statfoo.c

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

Modified: projects/vap7/tools/tools/ath/athstats/athstats.c
==============================================================================
--- projects/vap7/tools/tools/ath/athstats/athstats.c	Sun Feb  8 20:02:58 2009	(r188327)
+++ projects/vap7/tools/tools/ath/athstats/athstats.c	Sun Feb  8 20:07:50 2009	(r188328)
@@ -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: projects/vap7/tools/tools/ath/athstats/statfoo.c
==============================================================================
--- projects/vap7/tools/tools/ath/athstats/statfoo.c	Sun Feb  8 20:02:58 2009	(r188327)
+++ projects/vap7/tools/tools/ath/athstats/statfoo.c	Sun Feb  8 20:07:50 2009	(r188328)
@@ -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);


More information about the svn-src-projects mailing list