Go to the documentation of this file. 1 #ifndef _ASM_X86_SYNC_BITOPS_H
2 #define _ASM_X86_SYNC_BITOPS_H
16 #define ADDR (*(volatile long *)addr)
31 asm volatile(
"lock; btsl %1,%0"
49 asm volatile(
"lock; btrl %1,%0"
64 static inline void sync_change_bit(
int nr,
volatile unsigned long *addr)
66 asm volatile(
"lock; btcl %1,%0"
84 asm volatile(
"lock; btsl %2,%1\n\tsbbl %0,%0"
85 :
"=r" (oldbit),
"+m" (
ADDR)
86 :
"Ir" (
nr) :
"memory");
102 asm volatile(
"lock; btrl %2,%1\n\tsbbl %0,%0"
103 :
"=r" (oldbit),
"+m" (
ADDR)
104 :
"Ir" (
nr) :
"memory");
120 asm volatile(
"lock; btcl %2,%1\n\tsbbl %0,%0"
121 :
"=r" (oldbit),
"+m" (
ADDR)
122 :
"Ir" (
nr) :
"memory");
126 #define sync_test_bit(nr, addr) test_bit(nr, addr)