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

1 /* SPDX-License-Identifier: GPL-2.0 */
4 * This file provides wrappers with sanitizer instrumentation for non-atomic
17 * ___set_bit - Set a bit in memory
21 * Unlike set_bit(), this function is non-atomic. If it is called on the same
26 ___set_bit(unsigned long nr, volatile unsigned long *addr) in ___set_bit()
33 * ___clear_bit - Clears a bit in memory
37 * Unlike clear_bit(), this function is non-atomic. If it is called on the same
42 ___clear_bit(unsigned long nr, volatile unsigned long *addr) in ___clear_bit()
49 * ___change_bit - Toggle a bit in memory
53 * Unlike change_bit(), this function is non-atomic. If it is called on the same
58 ___change_bit(unsigned long nr, volatile unsigned long *addr) in ___change_bit()
64 static __always_inline void __instrument_read_write_bitop(long nr, volatile unsigned long *addr) in __instrument_read_write_bitop()
68 * We treat non-atomic read-write bitops a little more special. in __instrument_read_write_bitop()
70 * non-atomicity of the writer is sufficient may be reasonable in __instrument_read_write_bitop()
72 * assume-plain-writes-atomic rule): in __instrument_read_write_bitop()
73 * 1. report read-modify-write races -> check read; in __instrument_read_write_bitop()
75 * races with unmarked readers -> check "atomic" write. in __instrument_read_write_bitop()
89 * ___test_and_set_bit - Set a bit and return its old value
93 * This operation is non-atomic. If two instances of this operation race, one
97 ___test_and_set_bit(unsigned long nr, volatile unsigned long *addr) in ___test_and_set_bit()
104 * ___test_and_clear_bit - Clear a bit and return its old value
108 * This operation is non-atomic. If two instances of this operation race, one
112 ___test_and_clear_bit(unsigned long nr, volatile unsigned long *addr) in ___test_and_clear_bit()
119 * ___test_and_change_bit - Change a bit and return its old value
123 * This operation is non-atomic. If two instances of this operation race, one
127 ___test_and_change_bit(unsigned long nr, volatile unsigned long *addr) in ___test_and_change_bit()
134 * _test_bit - Determine whether a bit is set
139 _test_bit(unsigned long nr, const volatile unsigned long *addr) in _test_bit()
146 * _test_bit_acquire - Determine, with acquire semantics, whether a bit is set
151 _test_bit_acquire(unsigned long nr, const volatile unsigned long *addr) in _test_bit_acquire()