| /kernel/linux/linux-6.6/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 …]
|
| /kernel/linux/linux-5.10/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 …]
|
| /kernel/linux/linux-6.6/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() 53 int _atomic_dec_and_raw_lock(atomic_t *atomic, raw_spinlock_t *lock) in _atomic_dec_and_raw_lock() argument [all …]
|
| /kernel/linux/linux-5.10/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. 198 * struct drm_private_state_funcs - atomic state functions for private objects 200 * These hooks are used by atomic helpers to create, swap and destroy states of 203 * added to the atomic states is expected to have an implementation of these 216 * Duplicated atomic state or NULL when obj->state is not 231 * struct drm_private_obj - base struct for driver private atomic object 265 * @state: Current atomic state for this driver private object. [all …]
|
| /kernel/linux/linux-6.6/include/drm/ |
| D | drm_modeset_helper_vtables.h | 62 * These hooks are used by the legacy CRTC helpers and the new atomic 77 * This callback is used by the legacy CRTC helpers. Atomic helpers 79 * facilitate transitions to atomic, but it is deprecated. Instead 92 * This callback is used by the legacy CRTC helpers. Atomic helpers 94 * transitions to atomic, but it is deprecated. Instead @atomic_disable 107 * This callback is used by the legacy CRTC helpers. Atomic helpers 109 * transitions to atomic, but it is deprecated. Instead @atomic_enable 127 * atomic helpers to validate modes supplied by userspace in 134 * Since this function is both called from the check phase of an atomic 159 * 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 245 * struct drm_private_obj - base struct for driver private atomic object 299 * @state: Current atomic state for this driver private object. [all …]
|
| D | drm_crtc.h | 99 * &drm_mode_config_funcs.atomic_check callback to reject an atomic 108 * @planes_changed: Planes on this crtc are updated. Used by the atomic 109 * helpers and drivers to steer the atomic commit control flow. 114 * @mode_changed: @mode or @enable has been changed. Used by the atomic 115 * helpers and drivers to steer the atomic commit control flow. See also 126 * @active_changed: @active has been toggled. Used by the atomic 127 * helpers and drivers to steer the atomic commit control flow. See also 134 * either in their state or routing. Used by the atomic 135 * helpers and drivers to steer the atomic commit control flow. See also 138 * Drivers are supposed to set this as-needed from their own atomic [all …]
|
| /kernel/linux/linux-5.10/Documentation/core-api/ |
| D | atomic_ops.rst | 2 Semantics and Behavior of Atomic and Bitmask Operations 8 maintainers on how to implement atomic counter, bitops, and spinlock 11 Atomic Type And Operations 41 The initializer is atomic in that the return values of the atomic operations 62 The setting is atomic in that the return values of the atomic operations by 73 The read is atomic in that the return value is guaranteed to be one of the 180 locks, or atomic operations if variable a can change at runtime! 186 Now, we move onto the atomic operation interfaces typically implemented with 215 and after the atomic operation calls are strongly ordered with respect 216 to the atomic operation itself. [all …]
|
| /kernel/linux/linux-6.6/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
|
| /kernel/linux/linux-5.10/arch/riscv/include/asm/ |
| D | atomic.h | 50 * First, the atomic ops that have no ordering constraints and therefor don't 56 void atomic##prefix##_##op(c_type i, atomic##prefix##_t *v) \ 84 * Atomic ops that have ordered, relaxed, acquire, and release variants. in ATOMIC_OPS() 90 c_type atomic##prefix##_fetch_##op##_relaxed(c_type i, \ in ATOMIC_OPS() 91 atomic##prefix##_t *v) \ in ATOMIC_OPS() 102 c_type atomic##prefix##_fetch_##op(c_type i, atomic##prefix##_t *v) \ 115 c_type atomic##prefix##_##op##_return_relaxed(c_type i, \ 116 atomic##prefix##_t *v) \ 118 return atomic##prefix##_fetch_##op##_relaxed(i, v) c_op I; \ 121 c_type atomic##prefix##_##op##_return(c_type i, atomic##prefix##_t *v) \ [all …]
|
| /kernel/linux/linux-5.10/scripts/atomic/ |
| 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_guard(meta, atomic, pfx, name, sfx, order) 48 local atomic="$1"; shift 54 local atomicname="arch_${atomic}_${pfx}${name}${sfx}${order}" 58 # We definitely need a preprocessor symbol for this atomic if it is an 72 #gen_proto_order_variant(meta, pfx, name, sfx, order, atomic, int, arg...) 80 local atomic="$1"; shift 83 local atomicname="${atomic}_${pfx}${name}${sfx}${order}" 85 local guard="$(gen_guard "${meta}" "${atomic}" "${pfx}" "${name}" "${sfx}" "${order}")" [all …]
|
| 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-atomics.sh | 4 # Generate atomic headers 11 gen-atomic-instrumented.sh asm-generic/atomic-instrumented.h 12 gen-atomic-long.sh asm-generic/atomic-long.h 13 gen-atomic-fallback.sh linux/atomic-arch-fallback.h arch_ 14 gen-atomic-fallback.sh linux/atomic-fallback.h
|
| /kernel/linux/linux-6.6/include/linux/atomic/ |
| D | atomic-instrumented.h | 3 // Generated by scripts/atomic/gen-atomic-instrumented.sh 7 * This file provoides atomic operations with explicit instrumentation (e.g. 20 * atomic_read() - atomic load with relaxed ordering 37 * atomic_read_acquire() - atomic load with acquire ordering 54 * atomic_set() - atomic set with relaxed ordering 72 * atomic_set_release() - atomic set with release ordering 91 * atomic_add() - atomic add with relaxed ordering 109 * atomic_add_return() - atomic add with full ordering 128 * atomic_add_return_acquire() - atomic add with acquire ordering 146 * atomic_add_return_release() - atomic add with release ordering [all …]
|
| D | atomic-long.h | 3 // Generated by scripts/atomic/gen-atomic-long.sh 25 * raw_atomic_long_read() - atomic load with relaxed ordering 45 * raw_atomic_long_read_acquire() - atomic load with acquire ordering 65 * raw_atomic_long_set() - atomic set with relaxed ordering 86 * raw_atomic_long_set_release() - atomic set with release ordering 107 * raw_atomic_long_add() - atomic add with relaxed ordering 128 * raw_atomic_long_add_return() - atomic add with full ordering 149 * raw_atomic_long_add_return_acquire() - atomic add with acquire ordering 170 * raw_atomic_long_add_return_release() - atomic add with release ordering 191 * raw_atomic_long_add_return_relaxed() - atomic add with relaxed ordering [all …]
|
| D | atomic-arch-fallback.h | 3 // Generated by scripts/atomic/gen-atomic-fallback.sh 432 * raw_atomic_read() - atomic load with relaxed ordering 448 * raw_atomic_read_acquire() - atomic load with acquire ordering 477 * raw_atomic_set() - atomic set with relaxed ordering 494 * raw_atomic_set_release() - atomic set with release ordering 520 * raw_atomic_add() - atomic add with relaxed ordering 537 * raw_atomic_add_return() - atomic add with full ordering 564 * raw_atomic_add_return_acquire() - atomic add with acquire ordering 591 * raw_atomic_add_return_release() - atomic add with release ordering 617 * raw_atomic_add_return_relaxed() - atomic add with relaxed ordering [all …]
|
| /kernel/liteos_a/arch/arm/arm/include/ |
| D | los_atomic.h | 33 * @defgroup los_atomic Atomic 48 typedef volatile INT32 Atomic; typedef 53 * @brief Atomic read. 56 * This API is used to implement the atomic read and return the result value of the read. 69 STATIC INLINE INT32 LOS_AtomicRead(const Atomic *v) in LOS_AtomicRead() 76 * @brief Atomic setting. 79 * This API is used to implement the atomic setting operation. 93 STATIC INLINE VOID LOS_AtomicSet(Atomic *v, INT32 setVal) in LOS_AtomicSet() 100 * @brief Atomic addition. 103 * This API is used to implement the atomic addition and return the result value of the augend. [all …]
|
| /kernel/linux/linux-5.10/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()
|
| /kernel/linux/linux-6.6/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: 67 Since a platform only has a single means of achieving atomic operations
|
| /kernel/linux/linux-5.10/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 …]
|
| /kernel/liteos_m/arch/arm/cortex-m33/gcc/NTZ/ |
| D | los_arch_atomic.h | 44 STATIC INLINE INT32 ArchAtomicRead(const Atomic *v) in ArchAtomicRead() 56 STATIC INLINE VOID ArchAtomicSet(Atomic *v, INT32 setVal) in ArchAtomicSet() 69 STATIC INLINE INT32 ArchAtomicAdd(Atomic *v, INT32 addVal) in ArchAtomicAdd() 86 STATIC INLINE INT32 ArchAtomicSub(Atomic *v, INT32 subVal) in ArchAtomicSub() 103 STATIC INLINE VOID ArchAtomicInc(Atomic *v) in ArchAtomicInc() 108 STATIC INLINE VOID ArchAtomicDec(Atomic *v) in ArchAtomicDec() 113 STATIC INLINE INT32 ArchAtomicIncRet(Atomic *v) in ArchAtomicIncRet() 118 STATIC INLINE INT32 ArchAtomicDecRet(Atomic *v) in ArchAtomicDecRet() 125 * @brief Atomic exchange for 32-bit variable. 128 * This API is used to implement the atomic exchange for 32-bit variable [all …]
|
| /kernel/liteos_m/arch/arm/cortex-m4/iar/ |
| D | los_arch_atomic.h | 44 STATIC INLINE INT32 ArchAtomicRead(const Atomic *v) in ArchAtomicRead() 56 STATIC INLINE VOID ArchAtomicSet(Atomic *v, INT32 setVal) in ArchAtomicSet() 69 STATIC INLINE INT32 ArchAtomicAdd(Atomic *v, INT32 addVal) in ArchAtomicAdd() 86 STATIC INLINE INT32 ArchAtomicSub(Atomic *v, INT32 subVal) in ArchAtomicSub() 103 STATIC INLINE VOID ArchAtomicInc(Atomic *v) in ArchAtomicInc() 108 STATIC INLINE VOID ArchAtomicDec(Atomic *v) in ArchAtomicDec() 113 STATIC INLINE INT32 ArchAtomicIncRet(Atomic *v) in ArchAtomicIncRet() 118 STATIC INLINE INT32 ArchAtomicDecRet(Atomic *v) in ArchAtomicDecRet() 125 * @brief Atomic exchange for 32-bit variable. 128 * This API is used to implement the atomic exchange for 32-bit variable [all …]
|
| /kernel/liteos_m/arch/arm/cortex-m55/iar/NTZ/ |
| D | los_arch_atomic.h | 44 STATIC INLINE INT32 ArchAtomicRead(const Atomic *v) in ArchAtomicRead() 56 STATIC INLINE VOID ArchAtomicSet(Atomic *v, INT32 setVal) in ArchAtomicSet() 69 STATIC INLINE INT32 ArchAtomicAdd(Atomic *v, INT32 addVal) in ArchAtomicAdd() 86 STATIC INLINE INT32 ArchAtomicSub(Atomic *v, INT32 subVal) in ArchAtomicSub() 103 STATIC INLINE VOID ArchAtomicInc(Atomic *v) in ArchAtomicInc() 108 STATIC INLINE VOID ArchAtomicDec(Atomic *v) in ArchAtomicDec() 113 STATIC INLINE INT32 ArchAtomicIncRet(Atomic *v) in ArchAtomicIncRet() 118 STATIC INLINE INT32 ArchAtomicDecRet(Atomic *v) in ArchAtomicDecRet() 125 * @brief Atomic exchange for 32-bit variable. 128 * This API is used to implement the atomic exchange for 32-bit variable [all …]
|