Lines Matching refs:that
12 be made opaque such that any kind of cast to a normal C integer type
35 The initializer is atomic in that the return values of the atomic operations
56 The setting is atomic in that the return values of the atomic operations by
57 all threads are guaranteed to be correct reflecting either the value that has
67 The read is atomic in that the return value is guaranteed to be one of the
71 interface operations. atomic_read does not guarantee that the runtime
73 interface must take care of that with a proper implicit or explicit memory
82 C statements that may be reordered or optimized away entirely by the compiler
84 barrier for each use case. Failure to do so will result in code that may
95 that might otherwise optimize accesses out of existence on the one hand,
96 or that might create unsolicited accesses on the other.
103 If the compiler can prove that do_something() does not store to the
126 If the compiler can prove that do_something_with() does not store to the
139 do_something_with() was an inline function that made very heavy use
148 For a final example, consider the following code, assuming that the
150 and never changed later, so that memory barriers are not needed:
165 that expected b to never have the value 42 if a was zero. To prevent
191 One very important aspect of these two routines is that they DO NOT
204 Unlike the above routines, it is required that these primitives
205 include explicit memory barriers that are performed before and after
206 the operation. It must be done such that all memory operations before
214 memory barrier semantics which satisfy the above requirements, that is
222 These behave just like atomic_{inc,dec}_return() except that an
224 This means that like atomic_{inc,dec}_return(), the memory barrier
241 This is identical to atomic_dec_and_test() except that an explicit
257 the given new value. It returns the old value that the atomic variable v had
301 It makes sure that all memory operations preceding the atomic_dec()
303 operation. In the above example, it guarantees that the assignment of
315 counting, and it works such that once the counter falls to zero it can
316 be guaranteed that no other entity can be accessing the object:
375 found a bug wrt. memory barriers in kfree_skb() that exposed
378 Given the above scheme, it must be the case that the obj->active
412 to a "hash table of spinlocks" scheme, that allows the full 32-bit
415 on, and that lock protects the atomic operation. Parisc uses the
418 Another note is that the atomic_t operations returning values are
421 We will now cover the atomic bitmask operations. You will find that
426 to the size of an "unsigned long" C data type, and are least of that
444 Like the above, except that these routines return a boolean which
448 WARNING! It is incredibly important that the value be a boolean,
451 "old_val & mask" because that will not work.
455 upper 32-bits then testers will never see that.
474 The implementation of test_and_set_bit() must guarantee that
510 postfixed variants, except that they are to provide acquire/release semantics,
527 except that two underscores are prefixed to the interface name.
549 2) When releasing a lock, the implementation must make it such that
628 Said another way, _atomic_dec_and_lock() must guarantee that
632 Note that this also means that for the case where the counter