]> git.alsa-project.org Git - alsa-tools.git/commitdiff
Fix bit ops for 64bit long
authorTakashi Iwai <tiwai@suse.de>
Tue, 8 Nov 2005 17:13:30 +0000 (17:13 +0000)
committerTakashi Iwai <tiwai@suse.de>
Tue, 8 Nov 2005 17:13:30 +0000 (17:13 +0000)
Fix bit ops for 64bit long.

ld10k1/src/bitops.h

index f0b964ef3dbcdd9a31ac6d705f3a210dd679baa6..a3faef006eb656ca9ab3396627c1f75327c62aa5 100644 (file)
  * 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);
 }