mirror of
https://github.com/alsa-project/alsa-tools.git
synced 2026-04-02 07:15:41 -04:00
Fix bit ops for 64bit long
Fix bit ops for 64bit long.
This commit is contained in:
parent
57922fb7e7
commit
6b46723473
1 changed files with 14 additions and 12 deletions
|
|
@ -20,34 +20,36 @@
|
||||||
* Zephaniah E. Hull 2005-08-15.
|
* 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);
|
addr += nr / (sizeof(long) * 8);
|
||||||
mask = 1 << (nr & (sizeof(long) * 8 - 1));
|
mask = 1UL << (nr & (sizeof(long) * 8 - 1));
|
||||||
retval = (mask & *addr) != 0;
|
retval = (mask & *addr) != 0;
|
||||||
*addr |= mask;
|
*addr |= mask;
|
||||||
return retval;
|
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);
|
addr += nr / (sizeof(long) * 8);
|
||||||
mask = 1 << (nr & (sizeof(long) * 8 - 1));
|
mask = 1UL << (nr & (sizeof(long) * 8 - 1));
|
||||||
retval = (mask & *addr) != 0;
|
retval = (mask & *addr) != 0;
|
||||||
*addr &= ~mask;
|
*addr &= ~mask;
|
||||||
return retval;
|
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);
|
addr += nr / (sizeof(long) * 8);
|
||||||
mask = 1 << (nr & (sizeof(long) * 8 - 1));
|
mask = 1UL << (nr & (sizeof(long) * 8 - 1));
|
||||||
return ((mask & *addr) != 0);
|
return ((mask & *addr) != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue