Home
last modified time | relevance | path

Searched refs:atomic (Results 1 – 25 of 315) sorted by relevance

12345678910>>...13

/kernel/linux/linux-5.10/arch/riscv/include/asm/
Datomic.h56 void atomic##prefix##_##op(c_type i, atomic##prefix##_t *v) \
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) \
123 return atomic##prefix##_fetch_##op(i, v) c_op I; \
247 c_t atomic##prefix##_xchg_relaxed(atomic##prefix##_t *v, c_t n) \
[all …]
/kernel/linux/linux-5.10/scripts/atomic/
Dgen-atomics.sh11 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
Dgen-atomic-long.sh6 . ${ATOMICDIR}/atomic-tbl.sh
13 local atomic="$1"; shift
17 printf "($(gen_param_type "${arg}" "${int}" "${atomic}"))"
24 local atomic="$1"; shift
27 local cast="$(gen_cast "$1" "${int}" "${atomic}")"
40 local atomic="$1"; shift
45 local argscast="$(gen_args_cast "${int}" "${atomic}" "$@")"
52 ${retstmt}${atomic}_${name}(${argscast});
Dgen-atomic-instrumented.sh6 . ${ATOMICDIR}/atomic-tbl.sh
48 local atomic="$1"; shift
54 local atomicname="arch_${atomic}_${pfx}${name}${sfx}${order}"
80 local atomic="$1"; shift
83 local atomicname="${atomic}_${pfx}${name}${sfx}${order}"
85 local guard="$(gen_guard "${meta}" "${atomic}" "${pfx}" "${name}" "${sfx}" "${order}")"
88 local params="$(gen_params "${int}" "${atomic}" "$@")"
145 * This file provides wrappers with KASAN instrumentation for atomic operations.
Datomic-tbl.sh98 local atomic="$1"; shift
103 v) type="${atomic}_t *";;
104 cv) type="const ${atomic}_t *";;
115 local atomic="$1"; shift
117 local type="$(gen_param_type "${arg}" "${int}" "${atomic}")"
126 local atomic="$1"; shift
129 gen_param "$1" "${int}" "${atomic}"
Dgen-atomic-fallback.sh7 . ${ATOMICDIR}/atomic-tbl.sh
19 local atomic="$1"; shift
22 local atomicname="${arch}${atomic}_${pfx}${name}${sfx}${order}"
26 local params="$(gen_params "${int}" "${atomic}" "$@")"
69 local atomic="$2"
71 local basename="${arch}${atomic}_${pfx}${name}${sfx}"
84 local atomic="$2"
86 local basename="${arch}${atomic}_${pfx}${name}${sfx}"
131 printf "#endif /* ${arch}${atomic}_${pfx}${name}${sfx} */\n\n"
Dcheck-atomics.sh17 asm-generic/atomic-instrumented.h
18 asm-generic/atomic-long.h
19 linux/atomic-arch-fallback.h
20 linux/atomic-fallback.h
/kernel/linux/linux-5.10/lib/
Ddec_and_lock.c21 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()
Datomic64_test.c22 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), \
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); \
58 BUG_ON(atomic##bit##_##op(val, &v) != v0); \
59 BUG_ON(atomic##bit##_read(&v) != r); \
[all …]
/kernel/linux/linux-5.10/net/rds/
Drdma.c873 || 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()
893 rm->atomic.op_m_cswp.swap = args->cswp.swap; in rds_cmsg_atomic()
[all …]
/kernel/linux/linux-5.10/scripts/atomic/fallbacks/
Dfetch_add_unless3 * ${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));
Dinc_and_test3 * ${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;
Ddec_and_test3 * ${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;
Dinc_not_zero3 * ${arch}${atomic}_inc_not_zero - increment unless the number is zero
4 * @v: pointer of type ${atomic}_t
10 ${arch}${atomic}_inc_not_zero(${atomic}_t *v)
12 return ${arch}${atomic}_add_unless(v, 1, 0);
Dadd_negative3 * ${arch}${atomic}_add_negative - add and test if negative
5 * @v: pointer of type ${atomic}_t
12 ${arch}${atomic}_add_negative(${int} i, ${atomic}_t *v)
14 return ${arch}${atomic}_add_return(i, v) < 0;
Dsub_and_test3 * ${arch}${atomic}_sub_and_test - subtract value from variable and test result
5 * @v: pointer of type ${atomic}_t
12 ${arch}${atomic}_sub_and_test(${int} i, ${atomic}_t *v)
14 return ${arch}${atomic}_sub_return(i, v) == 0;
Dadd_unless3 * ${arch}${atomic}_add_unless - add unless the number is already a given value
4 * @v: pointer of type ${atomic}_t
12 ${arch}${atomic}_add_unless(${atomic}_t *v, ${int} a, ${int} u)
14 return ${arch}${atomic}_fetch_add_unless(v, a, u) != u;
Ddec_unless_positive3 ${arch}${atomic}_dec_unless_positive(${atomic}_t *v)
5 ${int} c = ${arch}${atomic}_read(v);
10 } while (!${arch}${atomic}_try_cmpxchg(v, &c, c - 1));
Dinc_unless_negative3 ${arch}${atomic}_inc_unless_negative(${atomic}_t *v)
5 ${int} c = ${arch}${atomic}_read(v);
10 } while (!${arch}${atomic}_try_cmpxchg(v, &c, c + 1));
Ddec_if_positive3 ${arch}${atomic}_dec_if_positive(${atomic}_t *v)
5 ${int} dec, c = ${arch}${atomic}_read(v);
11 } while (!${arch}${atomic}_try_cmpxchg(v, &c, dec));
/kernel/linux/linux-5.10/Documentation/
Datomic_bitops.txt5 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
/kernel/linux/linux-5.10/sound/synth/emux/
Demux_oss.c27 void *private, int atomic, int hop);
30 int cmd, unsigned char *event, int atomic, int hop);
32 int cmd, unsigned char *event, int atomic, int hop);
34 int ch, int param, int val, int atomic, int hop);
288 int atomic, int hop) in snd_emux_event_oss_input() argument
301 return snd_emux_event_input(ev, direct, private_data, atomic, hop); in snd_emux_event_oss_input()
309 emuspec_control(emu, p, cmd, data, atomic, hop); in snd_emux_event_oss_input()
311 gusspec_control(emu, p, cmd, data, atomic, hop); in snd_emux_event_oss_input()
321 unsigned char *event, int atomic, int hop) in emuspec_control() argument
361 fake_event(emu, port, voice, MIDI_CTL_ALL_NOTES_OFF, 0, atomic, hop); in emuspec_control()
[all …]
/kernel/linux/linux-5.10/Documentation/core-api/
Datomic_ops.rst8 maintainers on how to implement atomic counter, bitops, and spinlock
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.
219 before and after the atomic operation.
221 If the atomic instructions used in an implementation provide explicit
[all …]
/kernel/linux/linux-5.10/drivers/firmware/
Dqcom_scm-smc.c56 struct arm_smccc_res *res, bool atomic) in __scm_smc_do() argument
60 if (atomic) { in __scm_smc_do()
83 struct qcom_scm_res *res, bool atomic) in __scm_smc_call() argument
90 gfp_t flag = atomic ? GFP_ATOMIC : GFP_KERNEL; in __scm_smc_call()
91 u32 smccc_call_type = atomic ? ARM_SMCCC_FAST_CALL : ARM_SMCCC_STD_CALL; in __scm_smc_call()
138 __scm_smc_do(&smc, &smc_res, atomic); in __scm_smc_call()
/kernel/linux/linux-5.10/sound/core/seq/
Dseq_queue.c239 void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop) in snd_seq_check_queue() argument
267 snd_seq_dispatch_event(cell, atomic, hop); in snd_seq_check_queue()
278 snd_seq_dispatch_event(cell, atomic, hop); in snd_seq_check_queue()
299 int snd_seq_enqueue_event(struct snd_seq_event_cell *cell, int atomic, int hop) in snd_seq_enqueue_event() argument
343 snd_seq_check_queue(q, atomic, hop); in snd_seq_enqueue_event()
651 int atomic, int hop) in queue_broadcast_event() argument
666 snd_seq_kernel_client_dispatch(SNDRV_SEQ_CLIENT_SYSTEM, &sev, atomic, hop); in queue_broadcast_event()
675 int atomic, int hop) in snd_seq_queue_process_event() argument
682 queue_broadcast_event(q, ev, atomic, hop); in snd_seq_queue_process_event()
687 queue_broadcast_event(q, ev, atomic, hop); in snd_seq_queue_process_event()
[all …]

12345678910>>...13