Home
last modified time | relevance | path

Searched full:atomic (Results 1 – 25 of 2165) sorted by relevance

12345678910>>...87

/kernel/linux/linux-5.10/arch/mips/include/asm/octeon/
Dcvmx-fau.h123 * @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/include/drm/
Ddrm_modeset_helper_vtables.h59 * 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 …]
Ddrm_atomic.h37 * 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-5.10/Documentation/core-api/
Datomic_ops.rst2 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-5.10/arch/riscv/include/asm/
Datomic.h50 * 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/
Dgen-atomic-instrumented.sh6 . ${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 …]
Dgen-atomic-long.sh6 . ${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 …]
Dgen-atomics.sh4 # 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/liteos_a/arch/arm/arm/include/
Dlos_atomic.h33 * @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/
Ddec_and_lock.c4 #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-5.10/Documentation/
Datomic_bitops.txt2 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
Datomic_t.txt2 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-m4/iar/
Dlos_arch_atomic.h44 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/
Dlos_arch_atomic.h44 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/xtensa/lx6/gcc/
Dlos_arch_atomic.h44 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()
87 STATIC INLINE INT32 ArchAtomicSub(Atomic *v, INT32 subVal) in ArchAtomicSub()
104 STATIC INLINE VOID ArchAtomicInc(Atomic *v) in ArchAtomicInc()
109 STATIC INLINE VOID ArchAtomicDec(Atomic *v) in ArchAtomicDec()
114 STATIC INLINE INT32 ArchAtomicIncRet(Atomic *v) in ArchAtomicIncRet()
119 STATIC INLINE INT32 ArchAtomicDecRet(Atomic *v) in ArchAtomicDecRet()
126 * @brief Atomic exchange for 32-bit variable.
129 * This API is used to implement the atomic exchange for 32-bit variable
[all …]
/kernel/liteos_m/arch/arm/cortex-m55/gcc/TZ/non_secure/
Dlos_arch_atomic.h44 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-m7/gcc/
Dlos_arch_atomic.h44 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/csky/v2/gcc/
Dlos_arch_atomic.h44 STATIC INLINE INT32 ArchAtomicRead(const Atomic *v) in ArchAtomicRead()
59 STATIC INLINE VOID ArchAtomicSet(Atomic *v, INT32 setVal) in ArchAtomicSet()
71 STATIC INLINE INT32 ArchAtomicAdd(Atomic *v, INT32 addVal) in ArchAtomicAdd()
89 STATIC INLINE INT32 ArchAtomicSub(Atomic *v, INT32 subVal) in ArchAtomicSub()
107 STATIC INLINE VOID ArchAtomicInc(Atomic *v) in ArchAtomicInc()
112 STATIC INLINE VOID ArchAtomicDec(Atomic *v) in ArchAtomicDec()
117 STATIC INLINE INT32 ArchAtomicIncRet(Atomic *v) in ArchAtomicIncRet()
122 STATIC INLINE INT32 ArchAtomicDecRet(Atomic *v) in ArchAtomicDecRet()
129 * @brief Atomic exchange for 32-bit variable.
132 * This API is used to implement the atomic exchange for 32-bit variable
[all …]
/kernel/liteos_m/arch/arm/cortex-m33/iar/NTZ/
Dlos_arch_atomic.h44 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/gcc/NTZ/
Dlos_arch_atomic.h43 STATIC INLINE INT32 ArchAtomicRead(const Atomic *v) in ArchAtomicRead()
55 STATIC INLINE VOID ArchAtomicSet(Atomic *v, INT32 setVal) in ArchAtomicSet()
68 STATIC INLINE INT32 ArchAtomicAdd(Atomic *v, INT32 addVal) in ArchAtomicAdd()
85 STATIC INLINE INT32 ArchAtomicSub(Atomic *v, INT32 subVal) in ArchAtomicSub()
102 STATIC INLINE VOID ArchAtomicInc(Atomic *v) in ArchAtomicInc()
107 STATIC INLINE VOID ArchAtomicDec(Atomic *v) in ArchAtomicDec()
112 STATIC INLINE INT32 ArchAtomicIncRet(Atomic *v) in ArchAtomicIncRet()
117 STATIC INLINE INT32 ArchAtomicDecRet(Atomic *v) in ArchAtomicDecRet()
124 * @brief Atomic exchange for 32-bit variable.
127 * This API is used to implement the atomic exchange for 32-bit variable
[all …]
/kernel/liteos_m/arch/risc-v/riscv32/gcc/
Dlos_arch_atomic.h44 STATIC INLINE INT32 ArchAtomicRead(const Atomic *v) in ArchAtomicRead()
61 STATIC INLINE VOID ArchAtomicSet(Atomic *v, INT32 setVal) in ArchAtomicSet()
75 STATIC INLINE INT32 ArchAtomicAdd(Atomic *v, INT32 addVal) in ArchAtomicAdd()
93 STATIC INLINE INT32 ArchAtomicSub(Atomic *v, INT32 subVal) in ArchAtomicSub()
111 STATIC INLINE VOID ArchAtomicInc(Atomic *v) in ArchAtomicInc()
116 STATIC INLINE VOID ArchAtomicDec(Atomic *v) in ArchAtomicDec()
121 STATIC INLINE INT32 ArchAtomicIncRet(Atomic *v) in ArchAtomicIncRet()
126 STATIC INLINE INT32 ArchAtomicDecRet(Atomic *v) in ArchAtomicDecRet()
133 * @brief Atomic exchange for 32-bit variable.
136 * This API is used to implement the atomic exchange for 32-bit variable
[all …]
/kernel/liteos_m/arch/arm/cortex-m55/iar/TZ/non_secure/
Dlos_arch_atomic.h44 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-m33/gcc/TZ/non_secure/
Dlos_arch_atomic.h44 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-m33/gcc/NTZ/
Dlos_arch_atomic.h44 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/risc-v/nuclei/gcc/
Dlos_arch_atomic.h44 STATIC INLINE INT32 ArchAtomicRead(const Atomic *v) in ArchAtomicRead()
61 STATIC INLINE VOID ArchAtomicSet(Atomic *v, INT32 setVal) in ArchAtomicSet()
75 STATIC INLINE INT32 ArchAtomicAdd(Atomic *v, INT32 addVal) in ArchAtomicAdd()
93 STATIC INLINE INT32 ArchAtomicSub(Atomic *v, INT32 subVal) in ArchAtomicSub()
111 STATIC INLINE VOID ArchAtomicInc(Atomic *v) in ArchAtomicInc()
116 STATIC INLINE VOID ArchAtomicDec(Atomic *v) in ArchAtomicDec()
121 STATIC INLINE INT32 ArchAtomicIncRet(Atomic *v) in ArchAtomicIncRet()
126 STATIC INLINE INT32 ArchAtomicDecRet(Atomic *v) in ArchAtomicDecRet()
133 * @brief Atomic exchange for 32-bit variable.
136 * This API is used to implement the atomic exchange for 32-bit variable
[all …]

12345678910>>...87