/kernel/linux/linux-5.10/arch/riscv/include/asm/ |
D | atomic.h | 56 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/ |
D | gen-atomics.sh | 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
|
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}${atomic}_${name}(${argscast});
|
D | gen-atomic-instrumented.sh | 6 . ${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.
|
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 | 7 . ${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"
|
D | check-atomics.sh | 17 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/ |
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 …]
|
/kernel/linux/linux-5.10/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 …]
|
/kernel/linux/linux-5.10/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 | 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 | 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_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));
|
/kernel/linux/linux-5.10/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
|
/kernel/linux/linux-5.10/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 …]
|
/kernel/linux/linux-5.10/Documentation/core-api/ |
D | atomic_ops.rst | 8 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/ |
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()
|
/kernel/linux/linux-5.10/sound/core/seq/ |
D | seq_queue.c | 239 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 …]
|