Home
last modified time | relevance | path

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

12345678910>>...13

/Linux-v5.15/scripts/atomic/
Dgen-atomics.sh11 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
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}arch_${atomic}_${name}(${argscast});
Dcheck-atomics.sh17 linux/atomic/atomic-instrumented.h
18 linux/atomic/atomic-long.h
19 linux/atomic/atomic-arch-fallback.h
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.sh6 . ${ATOMICDIR}/atomic-tbl.sh
17 local atomic="$1"; shift
20 local atomicname="arch_${atomic}_${pfx}${name}${sfx}${order}"
24 local params="$(gen_params "${int}" "${atomic}" "$@")"
66 local atomic="$1"
68 local basename="arch_${atomic}_${pfx}${name}${sfx}"
80 local atomic="$1"
82 local basename="arch_${atomic}_${pfx}${name}${sfx}"
Dgen-atomic-instrumented.sh6 . ${ATOMICDIR}/atomic-tbl.sh
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.
/Linux-v5.15/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 …]
/Linux-v5.15/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 …]
/Linux-v5.15/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;
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_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));
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));
/Linux-v5.15/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
/Linux-v5.15/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 …]
/Linux-v5.15/arch/riscv/include/asm/
Datomic.h56 void arch_atomic##prefix##_##op(c_type i, atomic##prefix##_t *v) \
91 atomic##prefix##_t *v) \ in ATOMIC_OPS()
102 c_type arch_atomic##prefix##_fetch_##op(c_type i, atomic##prefix##_t *v) \
116 atomic##prefix##_t *v) \
121 c_type arch_atomic##prefix##_##op##_return(c_type i, atomic##prefix##_t *v) \
247 c_t arch_atomic##prefix##_xchg_relaxed(atomic##prefix##_t *v, c_t n) \
252 c_t arch_atomic##prefix##_xchg_acquire(atomic##prefix##_t *v, c_t n) \
257 c_t arch_atomic##prefix##_xchg_release(atomic##prefix##_t *v, c_t n) \
262 c_t arch_atomic##prefix##_xchg(atomic##prefix##_t *v, c_t n) \
267 c_t arch_atomic##prefix##_cmpxchg_relaxed(atomic##prefix##_t *v, \
[all …]
/Linux-v5.15/sound/core/seq/
Dseq_queue.c238 void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop) in snd_seq_check_queue() argument
265 snd_seq_dispatch_event(cell, atomic, hop); in snd_seq_check_queue()
274 snd_seq_dispatch_event(cell, atomic, hop); in snd_seq_check_queue()
290 int snd_seq_enqueue_event(struct snd_seq_event_cell *cell, int atomic, int hop) in snd_seq_enqueue_event() argument
334 snd_seq_check_queue(q, atomic, hop); in snd_seq_enqueue_event()
620 int atomic, int hop) in queue_broadcast_event() argument
635 snd_seq_kernel_client_dispatch(SNDRV_SEQ_CLIENT_SYSTEM, &sev, atomic, hop); in queue_broadcast_event()
644 int atomic, int hop) in snd_seq_queue_process_event() argument
651 queue_broadcast_event(q, ev, atomic, hop); in snd_seq_queue_process_event()
656 queue_broadcast_event(q, ev, atomic, hop); in snd_seq_queue_process_event()
[all …]
/Linux-v5.15/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()
/Linux-v5.15/Documentation/litmus-tests/
DREADME12 atomic (/atomic derectory)
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.

12345678910>>...13