Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 266787
b: refs/heads/master
c: 4476065
h: refs/heads/master
i:
  266785: 033632d
  266783: a5cc8cb
v: v3
  • Loading branch information
Alwin Beukers authored and John W. Linville committed Oct 14, 2011
1 parent 6828df9 commit f4c5bfe
Show file tree
Hide file tree
Showing 4 changed files with 65 additions and 66 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 53a2277d2ad411b440d2f102ced7bebef42c2fd7
refs/heads/master: 447606514450655885c5369782d7baa2478916a7
66 changes: 64 additions & 2 deletions trunk/drivers/net/wireless/brcm80211/brcmsmac/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -325,6 +325,12 @@ static u16 frametype(u32 rspec, u8 mimoframe)
*/
#define SSID_FMT_BUF_LEN ((4 * IEEE80211_MAX_SSID_LEN) + 1)

/* brcmu_format_flags() bit description structure */
struct brcms_c_bit_desc {
u32 bit;
const char *name;
};

/*
* The following table lists the buffer memory allocated to xmt fifos in HW.
* the size is in units of 256bytes(one block), total size is HW dependent
Expand Down Expand Up @@ -6151,6 +6157,62 @@ void brcms_c_print_txdesc(struct d11txh *txh)
}
#endif /* defined(BCMDBG) */

#if defined(BCMDBG)
int
brcms_c_format_flags(const struct brcms_c_bit_desc *bd, u32 flags, char *buf,
int len)
{
int i;
char *p = buf;
char hexstr[16];
int slen = 0, nlen = 0;
u32 bit;
const char *name;

if (len < 2 || !buf)
return 0;

buf[0] = '\0';

for (i = 0; flags != 0; i++) {
bit = bd[i].bit;
name = bd[i].name;
if (bit == 0 && flags != 0) {
/* print any unnamed bits */
snprintf(hexstr, 16, "0x%X", flags);
name = hexstr;
flags = 0; /* exit loop */
} else if ((flags & bit) == 0)
continue;
flags &= ~bit;
nlen = strlen(name);
slen += nlen;
/* count btwn flag space */
if (flags != 0)
slen += 1;
/* need NULL char as well */
if (len <= slen)
break;
/* copy NULL char but don't count it */
strncpy(p, name, nlen + 1);
p += nlen;
/* copy btwn flag space and NULL char */
if (flags != 0)
p += snprintf(p, 2, " ");
len -= slen;
}

/* indicate the str was too short */
if (flags != 0) {
if (len < 2)
p -= 2 - len; /* overwrite last char */
p += snprintf(p, 2, ">");
}

return (int)(p - buf);
}
#endif /* defined(BCMDBG) */

#if defined(BCMDBG)
void brcms_c_print_rxh(struct d11rxhdr *rxh)
{
Expand All @@ -6163,7 +6225,7 @@ void brcms_c_print_rxh(struct d11rxhdr *rxh)
u16 macstatus2 = rxh->RxStatus2;
char flagstr[64];
char lenbuf[20];
static const struct brcmu_bit_desc macstat_flags[] = {
static const struct brcms_c_bit_desc macstat_flags[] = {
{RXS_FCSERR, "FCSErr"},
{RXS_RESPFRAMETX, "Reply"},
{RXS_PBPRES, "PADDING"},
Expand All @@ -6177,7 +6239,7 @@ void brcms_c_print_rxh(struct d11rxhdr *rxh)
print_hex_dump_bytes("", DUMP_PREFIX_OFFSET, rxh,
sizeof(struct d11rxhdr));

brcmu_format_flags(macstat_flags, macstatus1, flagstr, 64);
brcms_c_format_flags(macstat_flags, macstatus1, flagstr, 64);

snprintf(lenbuf, sizeof(lenbuf), "0x%x", len);

Expand Down
55 changes: 0 additions & 55 deletions trunk/drivers/net/wireless/brcm80211/brcmutil/utils.c
Original file line number Diff line number Diff line change
Expand Up @@ -365,61 +365,6 @@ EXPORT_SYMBOL(brcmu_prpkt);
#endif /* defined(BCMDBG) */

#if defined(BCMDBG)
int
brcmu_format_flags(const struct brcmu_bit_desc *bd, u32 flags, char *buf,
int len)
{
int i;
char *p = buf;
char hexstr[16];
int slen = 0, nlen = 0;
u32 bit;
const char *name;

if (len < 2 || !buf)
return 0;

buf[0] = '\0';

for (i = 0; flags != 0; i++) {
bit = bd[i].bit;
name = bd[i].name;
if (bit == 0 && flags != 0) {
/* print any unnamed bits */
snprintf(hexstr, 16, "0x%X", flags);
name = hexstr;
flags = 0; /* exit loop */
} else if ((flags & bit) == 0)
continue;
flags &= ~bit;
nlen = strlen(name);
slen += nlen;
/* count btwn flag space */
if (flags != 0)
slen += 1;
/* need NULL char as well */
if (len <= slen)
break;
/* copy NULL char but don't count it */
strncpy(p, name, nlen + 1);
p += nlen;
/* copy btwn flag space and NULL char */
if (flags != 0)
p += snprintf(p, 2, " ");
len -= slen;
}

/* indicate the str was too short */
if (flags != 0) {
if (len < 2)
p -= 2 - len; /* overwrite last char */
p += snprintf(p, 2, ">");
}

return (int)(p - buf);
}
EXPORT_SYMBOL(brcmu_format_flags);

/*
* print bytes formatted as hex to a string. return the resulting
* string length
Expand Down
8 changes: 0 additions & 8 deletions trunk/drivers/net/wireless/brcm80211/include/brcmu_utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -186,17 +186,9 @@ extern void brcmu_prpkt(const char *msg, struct sk_buff *p0);
#define brcmu_prpkt(a, b)
#endif /* BCMDBG */

/* brcmu_format_flags() bit description structure */
struct brcmu_bit_desc {
u32 bit;
const char *name;
};

/* externs */
/* format/print */
#if defined(BCMDBG)
extern int brcmu_format_flags(const struct brcmu_bit_desc *bd, u32 flags,
char *buf, int len);
extern int brcmu_format_hex(char *str, const void *bytes, int len);
#endif

Expand Down

0 comments on commit f4c5bfe

Please sign in to comment.