From: Takashi Iwai Date: Tue, 8 Nov 2005 17:13:30 +0000 (+0000) Subject: Fix bit ops for 64bit long X-Git-Tag: v1.0.10~3 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=6b4672347363acc78ab54b551f23341d638d7866;p=alsa-tools.git Fix bit ops for 64bit long Fix bit ops for 64bit long. --- diff --git a/ld10k1/src/bitops.h b/ld10k1/src/bitops.h index f0b964e..a3faef0 100644 --- a/ld10k1/src/bitops.h +++ b/ld10k1/src/bitops.h @@ -20,34 +20,36 @@ * Zephaniah E. Hull 2005-08-15. */ -__inline__ int set_bit(int nr, unsigned long * addr) +static inline int set_bit(int nr, unsigned long * addr) { - int mask, retval; + unsigned long mask; + int retval; - addr += nr >> (sizeof(long) + 1); - mask = 1 << (nr & (sizeof(long) * 8 - 1)); + addr += nr / (sizeof(long) * 8); + mask = 1UL << (nr & (sizeof(long) * 8 - 1)); retval = (mask & *addr) != 0; *addr |= mask; return retval; } -__inline__ int clear_bit(int nr, unsigned long * addr) +static inline int clear_bit(int nr, unsigned long * addr) { - int mask, retval; + unsigned long mask; + int retval; - addr += nr >> (sizeof(long) + 1); - mask = 1 << (nr & (sizeof(long) * 8 - 1)); + addr += nr / (sizeof(long) * 8); + mask = 1UL << (nr & (sizeof(long) * 8 - 1)); retval = (mask & *addr) != 0; *addr &= ~mask; return retval; } -__inline__ int test_bit(int nr, unsigned long * addr) +static inline int test_bit(int nr, unsigned long * addr) { - int mask; + unsigned long mask; - addr += nr >> (sizeof(long) + 1); - mask = 1 << (nr & (sizeof(long) * 8 - 1)); + addr += nr / (sizeof(long) * 8); + mask = 1UL << (nr & (sizeof(long) * 8 - 1)); return ((mask & *addr) != 0); }