Lines Matching refs:nr
53 #define IS_IMMEDIATE(nr) (__builtin_constant_p(nr)) argument
54 #define CONST_MASK_ADDR(nr, addr) BITOP_ADDR((void *)(addr) + ((nr)>>3)) argument
55 #define CONST_MASK(nr) (1 << ((nr) & 7)) argument
73 set_bit(long nr, volatile unsigned long *addr) in set_bit() argument
75 if (IS_IMMEDIATE(nr)) { in set_bit()
77 : CONST_MASK_ADDR(nr, addr) in set_bit()
78 : "iq" ((u8)CONST_MASK(nr)) in set_bit()
82 : BITOP_ADDR(addr) : "Ir" (nr) : "memory"); in set_bit()
95 static __always_inline void __set_bit(long nr, volatile unsigned long *addr) in __set_bit() argument
97 asm volatile(__ASM_SIZE(bts) " %1,%0" : ADDR : "Ir" (nr) : "memory"); in __set_bit()
111 clear_bit(long nr, volatile unsigned long *addr) in clear_bit() argument
113 if (IS_IMMEDIATE(nr)) { in clear_bit()
115 : CONST_MASK_ADDR(nr, addr) in clear_bit()
116 : "iq" ((u8)~CONST_MASK(nr))); in clear_bit()
120 : "Ir" (nr)); in clear_bit()
132 static __always_inline void clear_bit_unlock(long nr, volatile unsigned long *addr) in clear_bit_unlock() argument
135 clear_bit(nr, addr); in clear_bit_unlock()
138 static __always_inline void __clear_bit(long nr, volatile unsigned long *addr) in __clear_bit() argument
140 asm volatile(__ASM_SIZE(btr) " %1,%0" : ADDR : "Ir" (nr)); in __clear_bit()
143 static __always_inline bool clear_bit_unlock_is_negative_byte(long nr, volatile unsigned long *addr) in clear_bit_unlock_is_negative_byte() argument
149 : "ir" ((char) ~(1 << nr)) : "memory"); in clear_bit_unlock_is_negative_byte()
168 static __always_inline void __clear_bit_unlock(long nr, volatile unsigned long *addr) in __clear_bit_unlock() argument
171 __clear_bit(nr, addr); in __clear_bit_unlock()
183 static __always_inline void __change_bit(long nr, volatile unsigned long *addr) in __change_bit() argument
185 asm volatile(__ASM_SIZE(btc) " %1,%0" : ADDR : "Ir" (nr)); in __change_bit()
197 static __always_inline void change_bit(long nr, volatile unsigned long *addr) in change_bit() argument
199 if (IS_IMMEDIATE(nr)) { in change_bit()
201 : CONST_MASK_ADDR(nr, addr) in change_bit()
202 : "iq" ((u8)CONST_MASK(nr))); in change_bit()
206 : "Ir" (nr)); in change_bit()
218 static __always_inline bool test_and_set_bit(long nr, volatile unsigned long *addr) in test_and_set_bit() argument
221 *addr, "Ir", nr, "%0", c); in test_and_set_bit()
232 test_and_set_bit_lock(long nr, volatile unsigned long *addr) in test_and_set_bit_lock() argument
234 return test_and_set_bit(nr, addr); in test_and_set_bit_lock()
246 static __always_inline bool __test_and_set_bit(long nr, volatile unsigned long *addr) in __test_and_set_bit() argument
253 : "Ir" (nr)); in __test_and_set_bit()
265 static __always_inline bool test_and_clear_bit(long nr, volatile unsigned long *addr) in test_and_clear_bit() argument
268 *addr, "Ir", nr, "%0", c); in test_and_clear_bit()
287 static __always_inline bool __test_and_clear_bit(long nr, volatile unsigned long *addr) in __test_and_clear_bit() argument
294 : "Ir" (nr)); in __test_and_clear_bit()
299 static __always_inline bool __test_and_change_bit(long nr, volatile unsigned long *addr) in __test_and_change_bit() argument
306 : "Ir" (nr) : "memory"); in __test_and_change_bit()
319 static __always_inline bool test_and_change_bit(long nr, volatile unsigned long *addr) in test_and_change_bit() argument
322 *addr, "Ir", nr, "%0", c); in test_and_change_bit()
325 static __always_inline bool constant_test_bit(long nr, const volatile unsigned long *addr) in constant_test_bit() argument
327 return ((1UL << (nr & (BITS_PER_LONG-1))) & in constant_test_bit()
328 (addr[nr >> _BITOPS_LONG_SHIFT])) != 0; in constant_test_bit()
331 static __always_inline bool variable_test_bit(long nr, volatile const unsigned long *addr) in variable_test_bit() argument
338 : "m" (*(unsigned long *)addr), "Ir" (nr)); in variable_test_bit()
349 static bool test_bit(int nr, const volatile unsigned long *addr);
352 #define test_bit(nr, addr) \ argument
353 (__builtin_constant_p((nr)) \
354 ? constant_test_bit((nr), (addr)) \
355 : variable_test_bit((nr), (addr)))