Lines Matching +full:non +full:- +full:volatile
10 * These have to be done with inline assembly: that way the bit-setting
17 #include <asm-generic/bitops/fls.h>
18 #include <asm-generic/bitops/__fls.h>
19 #include <asm-generic/bitops/fls64.h>
27 #define ADDR (*(volatile long *) addr)
30 * set_bit - Atomically set a bit in memory
37 * restricted to acting on a single-word quantity.
39 static __inline__ void set_bit(int nr, volatile void * addr) in set_bit()
48 * __set_bit - Set a bit in memory
52 * Unlike set_bit(), this function is non-atomic and may be reordered.
56 static __inline__ void __set_bit(int nr, volatile void * addr) in __set_bit()
65 * clear_bit - Clears a bit in memory
74 static __inline__ void clear_bit(int nr, volatile void * addr) in clear_bit()
85 * __change_bit - Toggle a bit in memory
89 * Unlike change_bit(), this function is non-atomic and may be reordered.
93 static __inline__ void __change_bit(int nr, volatile void * addr) in __change_bit()
102 * change_bit - Toggle a bit in memory
108 * restricted to acting on a single-word quantity.
110 static __inline__ void change_bit(int nr, volatile void * addr) in change_bit()
119 * test_and_set_bit - Set a bit and return its old value
126 static __inline__ int test_and_set_bit(int nr, volatile void * addr) in test_and_set_bit()
138 * __test_and_set_bit - Set a bit and return its old value
142 * This operation is non-atomic and can be reordered.
146 static __inline__ int __test_and_set_bit(int nr, volatile void * addr) in __test_and_set_bit()
158 * test_and_clear_bit - Clear a bit and return its old value
165 static __inline__ int test_and_clear_bit(int nr, volatile void * addr) in test_and_clear_bit()
177 * __test_and_clear_bit - Clear a bit and return its old value
181 * This operation is non-atomic and can be reordered.
185 static __inline__ int __test_and_clear_bit(int nr, volatile void * addr) in __test_and_clear_bit()
196 /* WARNING: non atomic and it can be reordered! */
197 static __inline__ int __test_and_change_bit(int nr, volatile void * addr) in __test_and_change_bit()
209 * test_and_change_bit - Change a bit and return its new value
216 static __inline__ int test_and_change_bit(int nr, volatile void * addr) in test_and_change_bit()
227 #if 0 /* Fool kernel-doc since it doesn't do macros yet */
229 * test_bit - Determine whether a bit is set
233 static int test_bit(int nr, const volatile void * addr);
236 static __inline__ int constant_test_bit(int nr, const volatile void * addr) in constant_test_bit()
238 return ((1UL << (nr & 31)) & (((const volatile unsigned int *) addr)[nr >> 5])) != 0; in constant_test_bit()
241 static __inline__ int variable_test_bit(int nr, volatile void * addr) in variable_test_bit()
258 * find_first_zero_bit - find the first zero bit in a memory region
262 * Returns the bit-number of the first zero bit, not the number of the byte
272 /* This looks at memory. Mark it volatile to tell gcc not to move it around */ in find_first_zero_bit()
274 "movl $-1,%%eax\n\t" in find_first_zero_bit()
278 "xorl -4(%%edi),%%eax\n\t" in find_first_zero_bit()
290 * find_next_zero_bit - find the first zero bit in a memory region
310 if (set < (32 - bit)) in find_next_zero_bit()
312 set = 32 - bit; in find_next_zero_bit()
318 res = find_first_zero_bit (p, size - 32 * (p - (unsigned long *) addr)); in find_next_zero_bit()
323 * ffz - find first zero in word.
339 * __ffs - find first set bit in word
353 * ffs - find first bit set
366 "movl $-1,%0\n" in ffs()
375 return generic_fls(x) - 1; in __ilog2()
379 * hweightN - returns the hamming weight of a N-bit word