diff options
author | John W. Linville <linville@tuxdriver.com> | 2013-03-20 15:24:57 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2013-03-20 15:24:57 -0400 |
commit | 5470b462c3f0c6fa980c320968a165bd0f34ca8d (patch) | |
tree | eb20de947bec8133d27f97f7af8ae4cf35def663 /drivers/net/wireless/brcm80211/include | |
parent | net: fix psock_fanout selftest bind error message (diff) | |
parent | ath6kl: fix size_t printf warnings (diff) | |
download | linux-dev-5470b462c3f0c6fa980c320968a165bd0f34ca8d.tar.xz linux-dev-5470b462c3f0c6fa980c320968a165bd0f34ca8d.zip |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem
Diffstat (limited to 'drivers/net/wireless/brcm80211/include')
-rw-r--r-- | drivers/net/wireless/brcm80211/include/brcmu_utils.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/drivers/net/wireless/brcm80211/include/brcmu_utils.h b/drivers/net/wireless/brcm80211/include/brcmu_utils.h index 477b92ad3d62..898cacb8d01d 100644 --- a/drivers/net/wireless/brcm80211/include/brcmu_utils.h +++ b/drivers/net/wireless/brcm80211/include/brcmu_utils.h @@ -120,6 +120,10 @@ extern struct sk_buff *brcmu_pktq_penq_head(struct pktq *pq, int prec, struct sk_buff *p); extern struct sk_buff *brcmu_pktq_pdeq(struct pktq *pq, int prec); extern struct sk_buff *brcmu_pktq_pdeq_tail(struct pktq *pq, int prec); +extern struct sk_buff *brcmu_pktq_pdeq_match(struct pktq *pq, int prec, + bool (*match_fn)(struct sk_buff *p, + void *arg), + void *arg); /* packet primitives */ extern struct sk_buff *brcmu_pkt_buf_get_skb(uint len); @@ -173,6 +177,29 @@ extern void brcmu_pktq_flush(struct pktq *pq, bool dir, /* ip address */ struct ipv4_addr; +/* + * bitfield macros using masking and shift + * + * remark: the mask parameter should be a shifted mask. + */ +static inline void brcmu_maskset32(u32 *var, u32 mask, u8 shift, u32 value) +{ + value = (value << shift) & mask; + *var = (*var & ~mask) | value; +} +static inline u32 brcmu_maskget32(u32 var, u32 mask, u8 shift) +{ + return (var & mask) >> shift; +} +static inline void brcmu_maskset16(u16 *var, u16 mask, u8 shift, u16 value) +{ + value = (value << shift) & mask; + *var = (*var & ~mask) | value; +} +static inline u16 brcmu_maskget16(u16 var, u16 mask, u8 shift) +{ + return (var & mask) >> shift; +} /* externs */ /* format/print */ |