From patchwork Sun Mar 3 11:45:27 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arend van Spriel X-Patchwork-Id: 2208121 Return-Path: X-Original-To: patchwork-linux-wireless@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork1.kernel.org (Postfix) with ESMTP id 4031C40077 for ; Sun, 3 Mar 2013 11:46:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753119Ab3CCLp6 (ORCPT ); Sun, 3 Mar 2013 06:45:58 -0500 Received: from mms3.broadcom.com ([216.31.210.19]:2019 "EHLO mms3.broadcom.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753000Ab3CCLpw (ORCPT ); Sun, 3 Mar 2013 06:45:52 -0500 Received: from [10.9.208.57] by mms3.broadcom.com with ESMTP (Broadcom SMTP Relay (Email Firewall v6.5)); Sun, 03 Mar 2013 03:39:41 -0800 X-Server-Uuid: B86B6450-0931-4310-942E-F00ED04CA7AF Received: from IRVEXCHSMTP3.corp.ad.broadcom.com (10.9.207.53) by IRVEXCHCAS08.corp.ad.broadcom.com (10.9.208.57) with Microsoft SMTP Server (TLS) id 14.1.438.0; Sun, 3 Mar 2013 03:45:38 -0800 Received: from mail-irva-13.broadcom.com (10.10.10.20) by IRVEXCHSMTP3.corp.ad.broadcom.com (10.9.207.53) with Microsoft SMTP Server id 14.1.438.0; Sun, 3 Mar 2013 03:45:38 -0800 Received: from xl-bun-04.broadcom.com (xl-bun-04.bun.broadcom.com [10.176.128.58]) by mail-irva-13.broadcom.com (Postfix) with ESMTP id 023B740FE6; Sun, 3 Mar 2013 03:45:37 -0800 (PST) Received: by xl-bun-04.broadcom.com (Postfix, from userid 25152) id F33C2F01EAE; Sun, 3 Mar 2013 12:45:35 +0100 (CET) From: "Arend van Spriel" To: "John W. Linville" cc: linux-wireless@vger.kernel.org, "Arend van Spriel" Subject: [PATCH 08/13] brcmutil: add macros for setting bitfields using mask/shift operations Date: Sun, 3 Mar 2013 12:45:27 +0100 Message-ID: <1362311132-29561-9-git-send-email-arend@broadcom.com> X-Mailer: git-send-email 1.7.6 In-Reply-To: <1362311132-29561-1-git-send-email-arend@broadcom.com> References: <1362311132-29561-1-git-send-email-arend@broadcom.com> MIME-Version: 1.0 X-WSS-ID: 7D2DE9F73P46062397-02-01 Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org Added inline functions to set bitfields in an unsigned integer variable. Reviewed-by: Hante Meuleman Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Arend van Spriel --- .../net/wireless/brcm80211/include/brcmu_utils.h | 23 ++++++++++++++++++++ 1 files changed, 23 insertions(+), 0 deletions(-) diff --git a/drivers/net/wireless/brcm80211/include/brcmu_utils.h b/drivers/net/wireless/brcm80211/include/brcmu_utils.h index 477b92a..82fcfe8 100644 --- a/drivers/net/wireless/brcm80211/include/brcmu_utils.h +++ b/drivers/net/wireless/brcm80211/include/brcmu_utils.h @@ -173,6 +173,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 */