1*c942fddfSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */ 202b20b0bSMauro Carvalho Chehab /* 302b20b0bSMauro Carvalho Chehab * Driver for the Conexant CX25821 PCIe bridge 402b20b0bSMauro Carvalho Chehab * 502b20b0bSMauro Carvalho Chehab * Copyright (C) 2009 Conexant Systems Inc. 602b20b0bSMauro Carvalho Chehab * Authors <shu.lin@conexant.com>, <hiep.huynh@conexant.com> 702b20b0bSMauro Carvalho Chehab */ 802b20b0bSMauro Carvalho Chehab 902b20b0bSMauro Carvalho Chehab #ifndef _BITFUNCS_H 1002b20b0bSMauro Carvalho Chehab #define _BITFUNCS_H 1102b20b0bSMauro Carvalho Chehab 1202b20b0bSMauro Carvalho Chehab #define SetBit(Bit) (1 << Bit) 1302b20b0bSMauro Carvalho Chehab getBit(u32 sample,u8 index)14dafc456cSMauro Carvalho Chehabstatic inline u8 getBit(u32 sample, u8 index) 1502b20b0bSMauro Carvalho Chehab { 1602b20b0bSMauro Carvalho Chehab return (u8) ((sample >> index) & 1); 1702b20b0bSMauro Carvalho Chehab } 1802b20b0bSMauro Carvalho Chehab clearBitAtPos(u32 value,u8 bit)19dafc456cSMauro Carvalho Chehabstatic inline u32 clearBitAtPos(u32 value, u8 bit) 2002b20b0bSMauro Carvalho Chehab { 2102b20b0bSMauro Carvalho Chehab return value & ~(1 << bit); 2202b20b0bSMauro Carvalho Chehab } 2302b20b0bSMauro Carvalho Chehab setBitAtPos(u32 sample,u8 bit)24dafc456cSMauro Carvalho Chehabstatic inline u32 setBitAtPos(u32 sample, u8 bit) 2502b20b0bSMauro Carvalho Chehab { 2602b20b0bSMauro Carvalho Chehab sample |= (1 << bit); 2702b20b0bSMauro Carvalho Chehab return sample; 2802b20b0bSMauro Carvalho Chehab 2902b20b0bSMauro Carvalho Chehab } 3002b20b0bSMauro Carvalho Chehab 3102b20b0bSMauro Carvalho Chehab #endif 32