Lines Matching +full:non +full:- +full:volatile

1 /* SPDX-License-Identifier: GPL-2.0 */
6 * Copyright (C) 1998-2003 Hewlett-Packard Co
7 * David Mosberger-Tang <davidm@hpl.hp.com>
23 * set_bit - Atomically set a bit in memory
30 * restricted to acting on a single-word quantity.
34 * operate on hw-defined data-structures, so we can't easily change these
40 set_bit (int nr, volatile void *addr) in set_bit()
43 volatile __u32 *m; in set_bit()
46 m = (volatile __u32 *) addr + (nr >> 5); in set_bit()
56 * __set_bit - Set a bit in memory
60 * Unlike set_bit(), this function is non-atomic and may be reordered.
65 __set_bit (int nr, volatile void *addr) in __set_bit()
71 * clear_bit - Clears a bit in memory
81 clear_bit (int nr, volatile void *addr) in clear_bit()
84 volatile __u32 *m; in clear_bit()
87 m = (volatile __u32 *) addr + (nr >> 5); in clear_bit()
97 * clear_bit_unlock - Clears a bit in memory with release
105 clear_bit_unlock (int nr, volatile void *addr) in clear_bit_unlock()
108 volatile __u32 *m; in clear_bit_unlock()
111 m = (volatile __u32 *) addr + (nr >> 5); in clear_bit_unlock()
121 * __clear_bit_unlock - Non-atomically clears a bit in memory with release
138 * __clear_bit - Clears a bit in memory (non-atomic version)
142 * Unlike clear_bit(), this function is non-atomic and may be reordered.
147 __clear_bit (int nr, volatile void *addr) in __clear_bit()
153 * change_bit - Toggle a bit in memory
159 * restricted to acting on a single-word quantity.
162 change_bit (int nr, volatile void *addr) in change_bit()
165 volatile __u32 *m; in change_bit()
168 m = (volatile __u32 *) addr + (nr >> 5); in change_bit()
178 * __change_bit - Toggle a bit in memory
182 * Unlike change_bit(), this function is non-atomic and may be reordered.
187 __change_bit (int nr, volatile void *addr) in __change_bit()
193 * test_and_set_bit - Set a bit and return its old value
201 test_and_set_bit (int nr, volatile void *addr) in test_and_set_bit()
204 volatile __u32 *m; in test_and_set_bit()
207 m = (volatile __u32 *) addr + (nr >> 5); in test_and_set_bit()
218 * test_and_set_bit_lock - Set a bit and return its old value for lock
227 * __test_and_set_bit - Set a bit and return its old value
231 * This operation is non-atomic and can be reordered.
236 __test_and_set_bit (int nr, volatile void *addr) in __test_and_set_bit()
247 * test_and_clear_bit - Clear a bit and return its old value
255 test_and_clear_bit (int nr, volatile void *addr) in test_and_clear_bit()
258 volatile __u32 *m; in test_and_clear_bit()
261 m = (volatile __u32 *) addr + (nr >> 5); in test_and_clear_bit()
272 * __test_and_clear_bit - Clear a bit and return its old value
276 * This operation is non-atomic and can be reordered.
281 __test_and_clear_bit(int nr, volatile void * addr) in __test_and_clear_bit()
292 * test_and_change_bit - Change a bit and return its old value
300 test_and_change_bit (int nr, volatile void *addr) in test_and_change_bit()
303 volatile __u32 *m; in test_and_change_bit()
306 m = (volatile __u32 *) addr + (nr >> 5); in test_and_change_bit()
317 * __test_and_change_bit - Change a bit and return its old value
321 * This operation is non-atomic and can be reordered.
335 test_bit (int nr, const volatile void *addr) in test_bit()
337 return 1 & (((const volatile __u32 *) addr)[nr >> 5] >> (nr & 31)); in test_bit()
341 * ffz - find the first zero bit in a long word
344 * Returns the bit-number (0..63) of the first (least significant) zero bit.
352 result = ia64_popcnt(x & (~x - 1)); in ffz()
357 * __ffs - find first bit in word.
367 result = ia64_popcnt((x-1) & ~x); in __ffs()
374 * Return bit number of last (most-significant) bit set. Undefined
384 return exp - 0xffff; in ia64_fls()
418 return ia64_popcnt(x) - 1; in __fls()
421 #include <asm-generic/bitops/fls64.h>
423 #include <asm-generic/bitops/builtin-ffs.h>
427 * of bits set) of a N-bit word
440 #include <asm-generic/bitops/const_hweight.h>
444 #include <asm-generic/bitops/find.h>
448 #include <asm-generic/bitops/le.h>
450 #include <asm-generic/bitops/ext2-atomic-setbit.h>
452 #include <asm-generic/bitops/sched.h>