/Linux-v5.15/scripts/atomic/ |
D | gen-atomics.sh | 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 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});
|
D | check-atomics.sh | 17 linux/atomic/atomic-instrumented.h 18 linux/atomic/atomic-long.h 19 linux/atomic/atomic-arch-fallback.h
|
D | atomic-tbl.sh | 98 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}"
|
D | gen-atomic-fallback.sh | 6 . ${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}"
|
D | gen-atomic-instrumented.sh | 6 . ${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/ |
D | dec_and_lock.c | 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 | 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), \ 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/ |
D | rdma.c | 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() 893 rm->atomic.op_m_cswp.swap = args->cswp.swap; in rds_cmsg_atomic() [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;
|
D | inc_not_zero | 3 * 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);
|
D | add_negative | 3 * 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;
|
D | sub_and_test | 3 * 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;
|
D | add_unless | 3 * 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;
|
D | inc_unless_negative | 3 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));
|
D | dec_unless_positive | 3 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));
|
D | dec_if_positive | 3 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/ |
D | atomic_bitops.txt | 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
|
/Linux-v5.15/sound/synth/emux/ |
D | emux_oss.c | 27 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/ |
D | atomic.h | 56 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/ |
D | seq_queue.c | 238 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/ |
D | qcom_scm-smc.c | 56 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/ |
D | README | 12 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.
|