Remove struct ath_ahb_softc, it's pointless for supported kernels
[madwifi/.git] / tools / athdebug.c
index 9ab3337676a0691745a3a7dabab15f41f770ac58..64a1228a82029cc8cca3c38ef0030e677fa50f80 100644 (file)
@@ -52,7 +52,8 @@
 #include <getopt.h>
 #include <err.h>
 
-#define        N(a)    (sizeof(a)/sizeof(a[0]))
+#undef ARRAY_SIZE
+#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
 
 static const char *progname;
 
@@ -73,6 +74,7 @@ enum {
        ATH_DEBUG_CALIBRATE     = 0x00010000,   /* periodic calibration */
        ATH_DEBUG_KEYCACHE      = 0x00020000,   /* key cache management */
        ATH_DEBUG_STATE         = 0x00040000,   /* 802.11 state transitions */
+       ATH_DEBUG_TSF           = 0x00080000,   /* timestamp processing */
        ATH_DEBUG_LED           = 0x00100000,   /* led management */
        ATH_DEBUG_FF            = 0x00200000,   /* fast frames */
        ATH_DEBUG_TURBO         = 0x00400000,   /* turbo/dynamic turbo */
@@ -85,7 +87,8 @@ enum {
        ATH_DEBUG_TXBUF         = 0x20000000,   /* TX buffer usage/leak debugging */
        ATH_DEBUG_SKB           = 0x40000000,   /* SKB usage/leak debugging [applies to all vaps] */
        ATH_DEBUG_FATAL         = 0x80000000,   /* fatal errors */
-       ATH_DEBUG_ANY           = 0xffffffff
+       ATH_DEBUG_ANY           = 0xffffffff,
+       ATH_DEBUG_GLOBAL        = (ATH_DEBUG_SKB|ATH_DEBUG_SKB_REF)
 };
 
 static struct {
@@ -108,6 +111,7 @@ static struct {
        { "calibrate",   ATH_DEBUG_CALIBRATE,   "periodic re-calibration" },
        { "keycache",    ATH_DEBUG_KEYCACHE,    "key cache management" },
        { "state",       ATH_DEBUG_STATE,       "802.11 state transitions" },
+       { "tsf",         ATH_DEBUG_TSF,         "TSF and timestamp processing"},
        { "txbuf",       ATH_DEBUG_TXBUF,       "ath_buf management" },
        { "skb",         ATH_DEBUG_SKB,         "skb management (affects all devs)" },
        { "skb_ref",     ATH_DEBUG_SKB_REF,     "skb ref counting (affects all devs)" },
@@ -128,7 +132,7 @@ getflag(const char *name, int len)
 {
        int i;
 
-       for (i = 0; i < N(flags); i++)
+       for (i = 0; i < ARRAY_SIZE(flags); i++)
                if (strncasecmp(flags[i].name, name, len) == 0)
                        return flags[i].bit;
        return 0;
@@ -141,7 +145,7 @@ usage(void)
 
        fprintf(stderr, "usage: %s [-i device] [(+/-) flags]\n", progname);
        fprintf(stderr, "\twhere flags are:\n\n");
-       for (i = 0; i < N(flags); i++)
+       for (i = 0; i < ARRAY_SIZE(flags); i++)
                printf("\t%12s\t0x%08x\t%s\n", flags[i].name, flags[i].bit, flags[i].desc);
        exit(-1);
 }
@@ -173,7 +177,7 @@ sysctlbyname(const char *oid0, void *oldp, size_t *oldlenp, void *newp,
                if (fd == NULL)
                        return -1;
                /* XXX: only handle ints */
-               if (fscanf(fd, "%u", (int *) oldp) != 1) {
+               if (fscanf(fd, "%u", (int *)oldp) != 1) {
                        fclose(fd);
                        return -1;
                }
@@ -270,14 +274,14 @@ main(int argc, char *argv[])
        } else
                printf("%s: 0x%08x", oid, debug);
        sep = "<";
-       for (i = 0; i < N(flags); i++)
+       for (i = 0; i < ARRAY_SIZE(flags); i++)
                if (debug & flags[i].bit) {
                        printf("%s%s", sep, flags[i].name);
                        sep = ",";
                }
        printf("%s\n", *sep != '<' ? ">" : "");
        printf("Details:\n");
-       for (i = 0; i < N(flags); i++)
+       for (i = 0; i < ARRAY_SIZE(flags); i++)
                printf("%12s %s 0x%08x - %s\n", flags[i].name, debug & flags[i].bit ? "+" : " ", flags[i].bit, flags[i].desc);
        return 0;
 }