/Linux-v5.15/arch/mips/include/asm/octeon/ |
D | cvmx-fau.h | 123 * @reg: FAU atomic register to access. 0 <= reg < 2048. 127 * Returns Address to store for atomic update 139 * @tagwait: Should the atomic add wait for the current tag switch 143 * @reg: FAU atomic register to access. 0 <= reg < 2048. 150 * Returns Address to read from for atomic update 162 * Perform an atomic 64 bit add 164 * @reg: FAU atomic register to access. 0 <= reg < 2048. 177 * Perform an atomic 32 bit add 179 * @reg: FAU atomic register to access. 0 <= reg < 2048. 193 * Perform an atomic 16 bit add [all …]
|
/Linux-v5.15/include/drm/ |
D | drm_modeset_helper_vtables.h | 59 * helpers and the new atomic modesetting helpers. 73 * This callback is used by the legacy CRTC helpers. Atomic helpers 75 * facilitate transitions to atomic, but it is deprecated. Instead 88 * This callback is used by the legacy CRTC helpers. Atomic helpers 90 * transitions to atomic, but it is deprecated. Instead @atomic_disable 103 * This callback is used by the legacy CRTC helpers. Atomic helpers 105 * transitions to atomic, but it is deprecated. Instead @atomic_enable 123 * atomic helpers to validate modes supplied by userspace in 130 * Since this function is both called from the check phase of an atomic 155 * This function is used by both legacy CRTC helpers and atomic helpers. [all …]
|
D | drm_atomic.h | 37 * This structure is used to track pending modeset changes and atomic commit on 45 * atomic commit thread hardware 61 * clean up atomic state 68 * drm_atomic_helper_setup_commit() from the atomic helper library. 200 * struct drm_private_state_funcs - atomic state functions for private objects 202 * These hooks are used by atomic helpers to create, swap and destroy states of 205 * added to the atomic states is expected to have an implementation of these 218 * Duplicated atomic state or NULL when obj->state is not 233 * struct drm_private_obj - base struct for driver private atomic object 287 * @state: Current atomic state for this driver private object. [all …]
|
D | drm_crtc.h | 96 * state like @plane_mask so drivers not converted over to atomic helpers should 117 * &drm_mode_config_funcs.atomic_check callback to reject an atomic 126 * @planes_changed: Planes on this crtc are updated. Used by the atomic 127 * helpers and drivers to steer the atomic commit control flow. 132 * @mode_changed: @mode or @enable has been changed. Used by the atomic 133 * helpers and drivers to steer the atomic commit control flow. See also 144 * @active_changed: @active has been toggled. Used by the atomic 145 * helpers and drivers to steer the atomic commit control flow. See also 152 * either in their state or routing. Used by the atomic 153 * helpers and drivers to steer the atomic commit control flow. See also [all …]
|
/Linux-v5.15/scripts/atomic/ |
D | gen-atomics.sh | 4 # Generate atomic headers 11 gen-atomic-instrumented.sh linux/atomic/atomic-instrumented.h 12 gen-atomic-long.sh linux/atomic/atomic-long.h 13 gen-atomic-fallback.sh linux/atomic/atomic-arch-fallback.h
|
D | gen-atomic-long.sh | 6 . ${ATOMICDIR}/atomic-tbl.sh 8 #gen_cast(arg, int, atomic) 13 local atomic="$1"; shift 17 printf "($(gen_param_type "${arg}" "${int}" "${atomic}"))" 20 #gen_args_cast(int, atomic, arg...) 24 local atomic="$1"; shift 27 local cast="$(gen_cast "$1" "${int}" "${atomic}")" 35 #gen_proto_order_variant(meta, pfx, name, sfx, order, atomic, int, arg...) 40 local atomic="$1"; shift 45 local argscast="$(gen_args_cast "${int}" "${atomic}" "$@")" [all …]
|
D | gen-atomic-instrumented.sh | 6 . ${ATOMICDIR}/atomic-tbl.sh 25 # An atomic RMW: if this parameter is not a constant, and this atomic is 44 #gen_proto_order_variant(meta, pfx, name, sfx, order, atomic, int, arg...) 52 local atomic="$1"; shift 55 local atomicname="${atomic}_${pfx}${name}${sfx}${order}" 58 local params="$(gen_params "${int}" "${atomic}" "$@")" 114 * This file provides wrappers with KASAN instrumentation for atomic operations. 115 * To use this functionality an arch's atomic.h file needs to define all 116 * atomic operations with arch_ prefix (e.g. arch_atomic_read()) and include 118 * arch_atomic_read() for actual atomic operation. [all …]
|
D | check-atomics.sh | 4 # Check if atomic headers are up-to-date 12 printf "sha1sum not available, skipping atomic header checks.\n" 17 linux/atomic/atomic-instrumented.h 18 linux/atomic/atomic-long.h 19 linux/atomic/atomic-arch-fallback.h
|
D | atomic-tbl.sh | 93 # gen_param_type(arg, int, atomic) 98 local atomic="$1"; shift 103 v) type="${atomic}_t *";; 104 cv) type="const ${atomic}_t *";; 110 #gen_param(arg, int, atomic) 115 local atomic="$1"; shift 117 local type="$(gen_param_type "${arg}" "${int}" "${atomic}")" 122 #gen_params(int, atomic, arg...) 126 local atomic="$1"; shift 129 gen_param "$1" "${int}" "${atomic}"
|
D | gen-atomic-fallback.sh | 6 . ${ATOMICDIR}/atomic-tbl.sh 8 #gen_template_fallback(template, meta, pfx, name, sfx, order, atomic, int, args...) 17 local atomic="$1"; shift 20 local atomicname="arch_${atomic}_${pfx}${name}${sfx}${order}" 24 local params="$(gen_params "${int}" "${atomic}" "$@")" 35 #gen_proto_fallback(meta, pfx, name, sfx, order, atomic, int, args...) 66 local atomic="$1" 68 local basename="arch_${atomic}_${pfx}${name}${sfx}" 73 #gen_proto_order_variants(meta, pfx, name, sfx, atomic, int, args...) 80 local atomic="$1" [all …]
|
/Linux-v5.15/lib/ |
D | dec_and_lock.c | 4 #include <linux/atomic.h> 12 * if (atomic_dec_and_test(&atomic)) { 19 * "atomic". 21 int _atomic_dec_and_lock(atomic_t *atomic, spinlock_t *lock) in _atomic_dec_and_lock() argument 24 if (atomic_add_unless(atomic, -1, 1)) in _atomic_dec_and_lock() 29 if (atomic_dec_and_test(atomic)) in _atomic_dec_and_lock() 37 int _atomic_dec_and_lock_irqsave(atomic_t *atomic, spinlock_t *lock, in _atomic_dec_and_lock_irqsave() argument 41 if (atomic_add_unless(atomic, -1, 1)) in _atomic_dec_and_lock_irqsave() 46 if (atomic_dec_and_test(atomic)) in _atomic_dec_and_lock_irqsave()
|
D | atomic64_test.c | 13 #include <linux/atomic.h> 22 atomic##bit##_set(&v, v0); \ 24 atomic##bit##_##op(val, &v); \ 26 WARN(atomic##bit##_read(&v) != r, "%Lx != %Lx\n", \ 27 (unsigned long long)atomic##bit##_read(&v), \ 32 * Test for a atomic operation family, 46 atomic##bit##_set(&v, v0); \ 49 BUG_ON(atomic##bit##_##op(val, &v) != r); \ 50 BUG_ON(atomic##bit##_read(&v) != r); \ 55 atomic##bit##_set(&v, v0); \ [all …]
|
D | percpu-refcount.c | 57 * change the start state to atomic with the latter setting the initial refcount 192 * time is equivalent and saves us atomic operations: in percpu_ref_switch_to_atomic_rcu() 197 "percpu ref (%ps) <= 0 (%ld) after switching to atomic", in percpu_ref_switch_to_atomic_rcu() 221 /* switching from percpu to atomic */ in __percpu_ref_switch_to_atomic() 271 * If the previous ATOMIC switching hasn't finished yet, wait for in __percpu_ref_switch_mode() 272 * its completion. If the caller ensures that ATOMIC switching in __percpu_ref_switch_mode() 285 * percpu_ref_switch_to_atomic - switch a percpu_ref to atomic mode 286 * @ref: percpu_ref to switch to atomic mode 292 * Schedule switching of @ref to atomic mode. All its percpu counts will 293 * be collected to the main atomic counter. On completion, when all CPUs [all …]
|
/Linux-v5.15/Documentation/ |
D | atomic_bitops.txt | 2 Atomic bitops 5 While our bitmap_{}() functions are non-atomic, we have a number of operations 6 operating on single bits in a bitmap that are atomic. 18 RMW atomic operations without return value: 23 RMW atomic operations with return value: 33 All RMW atomic operations have a '__' prefixed variant which is non-atomic. 39 Non-atomic ops: 69 Since a platform only has a single means of achieving atomic operations
|
D | atomic_t.txt | 2 On atomic types (atomic_t atomic64_t and atomic_long_t). 4 The atomic type provides an interface to the architecture's means of atomic 5 RMW operations between CPUs (atomic operations on MMIO are not supported and 20 RMW atomic operations: 67 Therefore, an explicitly unsigned variant of the atomic ops is strictly 91 C Atomic-RMW-ops-are-atomic-WRT-atomic_set 118 The obvious case where this is not so is when we need to implement atomic ops 155 All these operations are SMP atomic; that is, the operations (for a single 156 atomic variable) can be fully ordered and no intermediate state is lost or 192 only apply to the RMW atomic ops and can be used to augment/upgrade the [all …]
|
/Linux-v5.15/include/linux/ |
D | atomic.h | 2 /* Atomic operations usable in machine independent code */ 7 #include <asm/atomic.h> 11 * Relaxed variants of xchg, cmpxchg and some atomic operations. 80 #include <linux/atomic/atomic-arch-fallback.h> 81 #include <linux/atomic/atomic-long.h> 82 #include <linux/atomic/atomic-instrumented.h>
|
/Linux-v5.15/Documentation/litmus-tests/ |
D | README | 12 atomic (/atomic derectory) 15 Atomic-RMW+mb__after_atomic-is-stronger-than-acquire.litmus 16 Test that an atomic RMW followed by a smp_mb__after_atomic() is 20 Atomic-RMW-ops-are-atomic-WRT-atomic_set.litmus 21 Test that atomic_set() cannot break the atomicity of atomic RMWs.
|
/Linux-v5.15/drivers/gpu/drm/ |
D | drm_atomic.c | 98 * @state: atomic state 114 * drm_atomic_state_init - init new atomic state 116 * @state: atomic state 118 * Default implementation for filling in a new atomic state. 143 DRM_DEBUG_ATOMIC("Allocated atomic state %p\n", state); in drm_atomic_state_init() 153 * drm_atomic_state_alloc - allocate atomic state 156 * This allocates an empty atomic state to track updates. 181 * drm_atomic_state_default_clear - clear base atomic state 182 * @state: atomic state 184 * Default implementation for clearing atomic state. [all …]
|
D | drm_atomic_state_helper.c | 42 * DOC: atomic state reset and initialization 44 * Both the drm core and the atomic helpers assume that there is always the full 45 * and correct atomic software state for all connectors, CRTCs and planes 53 * the atomic helpers provide default reset implementations for all hooks. 55 * On the upside the precise state tracking of atomic simplifies system suspend 64 * @crtc_state: atomic CRTC state, must not be NULL 108 * Resets the atomic state for @crtc by freeing the state pointer (which might 124 * __drm_atomic_helper_crtc_duplicate_state - copy atomic CRTC state 126 * @state: atomic CRTC state 128 * Copies atomic state from a CRTC's current state and resets inferred values. [all …]
|
/Linux-v5.15/scripts/atomic/fallbacks/ |
D | fetch_add_unless | 3 * arch_${atomic}_fetch_add_unless - add unless the number is already a given value 4 * @v: pointer of type ${atomic}_t 12 arch_${atomic}_fetch_add_unless(${atomic}_t *v, ${int} a, ${int} u) 14 ${int} c = arch_${atomic}_read(v); 19 } while (!arch_${atomic}_try_cmpxchg(v, &c, c + a));
|
D | inc_and_test | 3 * arch_${atomic}_inc_and_test - increment and test 4 * @v: pointer of type ${atomic}_t 11 arch_${atomic}_inc_and_test(${atomic}_t *v) 13 return arch_${atomic}_inc_return(v) == 0;
|
D | dec_and_test | 3 * arch_${atomic}_dec_and_test - decrement and test 4 * @v: pointer of type ${atomic}_t 11 arch_${atomic}_dec_and_test(${atomic}_t *v) 13 return arch_${atomic}_dec_return(v) == 0;
|
/Linux-v5.15/include/asm-generic/bitops/ |
D | instrumented-non-atomic.h | 4 * This file provides wrappers with sanitizer instrumentation for non-atomic 21 * Unlike set_bit(), this function is non-atomic. If it is called on the same 36 * Unlike clear_bit(), this function is non-atomic. If it is called on the same 51 * Unlike change_bit(), this function is non-atomic. If it is called on the same 65 * We treat non-atomic read-write bitops a little more special. in __instrument_read_write_bitop() 69 * assume-plain-writes-atomic rule): in __instrument_read_write_bitop() 72 * races with unmarked readers -> check "atomic" write. in __instrument_read_write_bitop() 90 * This operation is non-atomic. If two instances of this operation race, one 104 * This operation is non-atomic. If two instances of this operation race, one 118 * This operation is non-atomic. If two instances of this operation race, one
|
/Linux-v5.15/Documentation/core-api/ |
D | local_ops.rst | 5 Semantics and Behavior of Local Atomic Operations 11 This document explains the purpose of the local atomic operations, how 26 Purpose of local atomic operations 29 Local atomic operations are meant to provide fast and highly reentrant per CPU 30 counters. They minimize the performance cost of standard atomic operations by 34 Having fast per CPU atomic counters is interesting in many cases: it does not 39 Local atomic operations only guarantee variable modification atomicity wrt the 50 It can be done by slightly modifying the standard atomic operations: only 63 Rules to follow when using local atomic operations 82 "``long``", aligned, variables are always atomic. Since no memory [all …]
|
/Linux-v5.15/net/rds/ |
D | rdma.c | 863 * Fill in rds_message for an atomic request. 873 || rm->atomic.op_active) in rds_cmsg_atomic() 881 rm->atomic.op_type = RDS_ATOMIC_TYPE_FADD; in rds_cmsg_atomic() 882 rm->atomic.op_m_fadd.add = args->fadd.add; in rds_cmsg_atomic() 883 rm->atomic.op_m_fadd.nocarry_mask = 0; in rds_cmsg_atomic() 886 rm->atomic.op_type = RDS_ATOMIC_TYPE_FADD; in rds_cmsg_atomic() 887 rm->atomic.op_m_fadd.add = args->m_fadd.add; in rds_cmsg_atomic() 888 rm->atomic.op_m_fadd.nocarry_mask = args->m_fadd.nocarry_mask; in rds_cmsg_atomic() 891 rm->atomic.op_type = RDS_ATOMIC_TYPE_CSWP; in rds_cmsg_atomic() 892 rm->atomic.op_m_cswp.compare = args->cswp.compare; in rds_cmsg_atomic() [all …]
|