Home
last modified time | relevance | path

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

12345678910>>...13

/linux/lib/
H A 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()
53 int atomic_dec_and_raw_lock(atomic_t *atomic, raw_spinlock_ argument
68 _atomic_dec_and_raw_lock_irqsave(atomic_t * atomic,raw_spinlock_t * lock,unsigned long * flags) _atomic_dec_and_raw_lock_irqsave() argument
[all...]
/linux/scripts/atomic/
H A 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
14 gen-rust-atomic-helpers.sh ../rust/helpers/atomic.c
H A Datomic-tbl.sh117 local atomic="$1"; shift
122 v) type="${atomic}_t *";;
123 cv) type="const ${atomic}_t *";;
134 local atomic="$1"; shift
136 local type="$(gen_param_type "${arg}" "${int}" "${atomic}")"
145 local atomic="$1"; shift
148 gen_param "$1" "${int}" "${atomic}"
195 local atomic="$1"; shift
198 local atomicname="${atomic}_${pfx}${name}${sfx}${order}"
202 local params="$(gen_params "${int}" "${atomic}" "$@")"
[all …]
H A Dgen-atomic-fallback.sh6 . ${ATOMICDIR}/atomic-tbl.sh
17 local atomic="$1"; shift
22 local params="$(gen_params "${int}" "${atomic}" "$@")"
63 local atomic="$1"; shift
66 local atomicname="${atomic}_${pfx}${name}${sfx}${order}"
67 local basename="${atomic}_${pfx}${name}${sfx}"
73 local params="$(gen_params "${int}" "${atomic}" "$@")"
76 gen_kerneldoc "raw_" "${meta}" "${pfx}" "${name}" "${sfx}" "${order}" "${atomic}" "${int}" "$@"
101 gen_order_fallback "${meta}" "${pfx}" "${name}" "${sfx}" "${order}" "${atomic}" "${int}" "$@"
112 gen_proto_fallback "${meta}" "${pfx}" "${name}" "${sfx}" "${order}" "${atomic}" "${int}" "$@"
[all …]
H A 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}")"
48 local argscast_32="$(gen_args_cast "int" "atomic" "$@")"
H A Dgen-rust-atomic-helpers.sh6 . ${ATOMICDIR}/atomic-tbl.sh
8 #gen_proto_order_variant(meta, pfx, name, sfx, order, atomic, int, arg...)
16 local atomic="$1"; shift
19 local atomicname="${atomic}_${pfx}${name}${sfx}${order}"
22 local params="$(gen_params "${int}" "${atomic}" "$@")"
43 * This file provides helpers for the various atomic functions for Rust.
48 #include <linux/atomic.h>
53 gen_proto "${meta}" "${name}" "atomic" "int" ${args}
/linux/net/rds/
H A 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/Documentation/
H A 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:
67 Since a platform only has a single means of achieving atomic operations
H A 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 …]
/linux/sound/synth/emux/
H A 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);
290 int atomic, int hop) in snd_emux_event_oss_input() argument
303 return snd_emux_event_input(ev, direct, private_data, atomic, hop); in snd_emux_event_oss_input()
311 emuspec_control(emu, p, cmd, data, atomic, hop); in snd_emux_event_oss_input()
313 gusspec_control(emu, p, cmd, data, atomic, hop); in snd_emux_event_oss_input()
323 unsigned char *event, int atomic, int hop) in emuspec_control() argument
363 fake_event(emu, port, voice, MIDI_CTL_ALL_NOTES_OFF, 0, atomic, hop); in emuspec_control()
[all …]
/linux/drivers/firmware/arm_scmi/transports/
H A DKconfig52 bool "Enable atomic mode support for SCMI SMC transport"
55 Enable support of atomic operation for SCMI SMC based transport.
57 If you want the SCMI SMC based transport to operate in atomic
60 Enabling atomic mode operations allows any SCMI driver using this
61 transport to optionally ask for atomic SCMI transactions and operate
62 in atomic context too, at the price of using a number of busy-waiting
109 bool "Enable atomic mode for SCMI VirtIO transport"
112 Enable support of atomic operation for SCMI VirtIO based transport.
114 If you want the SCMI VirtIO based transport to operate in atomic
118 Enabling atomic mode operations allows any SCMI driver using this
[all …]
/linux/sound/core/seq/
H A Dseq_queue.c230 void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop) in snd_seq_check_queue() argument
256 snd_seq_dispatch_event(cell, atomic, hop); in snd_seq_check_queue()
267 snd_seq_dispatch_event(cell, atomic, hop); in snd_seq_check_queue()
286 int snd_seq_enqueue_event(struct snd_seq_event_cell *cell, int atomic, int hop) in snd_seq_enqueue_event() argument
329 snd_seq_check_queue(q, atomic, hop); in snd_seq_enqueue_event()
570 int atomic, int hop) in queue_broadcast_event() argument
585 snd_seq_kernel_client_dispatch(SNDRV_SEQ_CLIENT_SYSTEM, &sev, atomic, hop); in queue_broadcast_event()
594 int atomic, int hop) in snd_seq_queue_process_event() argument
601 queue_broadcast_event(q, ev, atomic, hop); in snd_seq_queue_process_event()
606 queue_broadcast_event(q, ev, atomic, hop); in snd_seq_queue_process_event()
[all …]
H A Dseq_system.c81 void snd_seq_system_broadcast(int client, int port, int type, bool atomic) in snd_seq_system_broadcast() argument
88 snd_seq_kernel_client_dispatch(sysclient, &ev, atomic, 0); in snd_seq_system_broadcast()
94 bool atomic) in snd_seq_system_notify() argument
101 return snd_seq_kernel_client_dispatch(sysclient, ev, atomic, 0); in snd_seq_system_notify()
105 static int event_input_timer(struct snd_seq_event * ev, int direct, void *private_data, int atomic,… in event_input_timer() argument
107 return snd_seq_control_queue(ev, atomic, hop); in event_input_timer()
H A Dseq_ump_convert.c365 int atomic, int hop) in cvt_ump_midi1_to_midi2() argument
428 atomic, hop); in cvt_ump_midi1_to_midi2()
435 int atomic, int hop) in cvt_ump_midi2_to_midi1() argument
472 atomic, hop); in cvt_ump_midi2_to_midi1()
479 atomic, hop); in cvt_ump_midi2_to_midi1()
500 atomic, hop); in cvt_ump_midi2_to_midi1()
508 int atomic, int hop) in cvt_ump_to_any() argument
542 &ev_cvt[i], atomic, hop); in cvt_ump_to_any()
554 int atomic, int hop) in deliver_with_group_convert() argument
565 atomic, hop); in deliver_with_group_convert()
[all …]
/linux/include/linux/
H A Dspinlock.h170 * architectures imply an smp_mb() for each atomic instruction and equally don't
494 * (asm-mips/atomic.h needs above definitions)
496 #include <linux/atomic.h>
499 * @atomic: the atomic counter
502 * Decrements @atomic by 1. If the result is 0, returns true and locks
505 extern int atomic_dec_and_lock(atomic_t *atomic, spinlock_t *lock) __cond_acquires(true, lock);
507 extern int _atomic_dec_and_lock_irqsave(atomic_t *atomic, spinlock_t *lock,
509 #define atomic_dec_and_lock_irqsave(atomic, lock, flags) _atomic_dec_and_lock_irqsave(atomic, loc
501 atomic_dec_and_lock(atomic,lock) global() argument
506 atomic_dec_and_lock_irqsave(atomic,lock,flags) global() argument
510 atomic_dec_and_raw_lock(atomic,lock) global() argument
515 atomic_dec_and_raw_lock_irqsave(atomic,lock,flags) global() argument
[all...]
/linux/arch/mips/include/asm/
H A Datomic.h37 ATOMIC_OPS(atomic, int)
144 ATOMIC_OPS(atomic, add, int, +=, addu, ll, sc)
145 ATOMIC_OPS(atomic, sub, int, -=, subu, ll, sc)
166 ATOMIC_OPS(atomic, and, int, &=, and, ll, sc)
167 ATOMIC_OPS(atomic, or, int, |=, or, ll, sc)
168 ATOMIC_OPS(atomic, xor, int, ^=, xor, ll, sc)
248 ATOMIC_SIP_OP(atomic, int, subu, ll, sc)
/linux/Documentation/core-api/
H A Dlocal_ops.rst11 This document explains the purpose of the local atomic operations, how
26 Purpose of local atomic operations
29 Local atomic operations are meant to provide fast and highly reentrant per CPU
30 counters. They minimize the performance cost of standard atomic operations by
34 Having fast per CPU atomic counters is interesting in many cases: it does not
39 Local atomic operations only guarantee variable modification atomicity wrt the
50 It can be done by slightly modifying the standard atomic operations: only
63 Rules to follow when using local atomic operations
82 "``long``", aligned, variables are always atomic. Since no memory
87 How to use local atomic operations
[all …]
/linux/drivers/gpu/drm/ci/xfails/
H A Dmeson-g12b-fails.txt9 kms_properties@connector-properties-atomic,Fail
11 kms_properties@get_properties-sanity-atomic,Fail
12 kms_properties@get_properties-sanity-non-atomic,Fail
/linux/drivers/gpu/drm/xe/
H A Dxe_vm_madvise.c130 xe_assert(vm->xe, op->atomic.val <= DRM_XE_ATOMIC_CPU); in madvise_atomic()
134 !(op->atomic.val == DRM_XE_ATOMIC_DEVICE && in madvise_atomic()
140 if (vmas[i]->attr.atomic_access == op->atomic.val) { in madvise_atomic()
144 vmas[i]->attr.atomic_access = op->atomic.val; in madvise_atomic()
148 if (!bo || bo->attr.atomic_access == op->atomic.val) in madvise_atomic()
153 bo->attr.atomic_access = op->atomic.val; in madvise_atomic()
282 if (XE_IOCTL_DBG(xe, args->atomic.val > DRM_XE_ATOMIC_CPU)) in madvise_args_are_sane()
285 if (XE_IOCTL_DBG(xe, args->atomic.pad)) in madvise_args_are_sane()
288 if (XE_IOCTL_DBG(xe, args->atomic.reserved)) in madvise_args_are_sane()
454 args->atomic.val)) { in xe_vm_madvise_ioctl()
H A Dxe_mmio.c283 u32 timeout_us, u32 *out_val, bool atomic, bool expect_match) in __xe_mmio_wait32() argument
311 if (atomic) in __xe_mmio_wait32()
355 u32 *out_val, bool atomic) in xe_mmio_wait32() argument
357 return __xe_mmio_wait32(mmio, reg, mask, val, timeout_us, out_val, atomic, true); in xe_mmio_wait32()
374 u32 *out_val, bool atomic) in xe_mmio_wait32_not() argument
376 return __xe_mmio_wait32(mmio, reg, mask, val, timeout_us, out_val, atomic, false); in xe_mmio_wait32_not()
/linux/drivers/i2c/busses/
H A Di2c-xiic.c104 bool atomic; member
410 if (!i2c->atomic) in xiic_setclk()
504 if (!i2c->atomic) in xiic_reinit()
587 if (!i2c->atomic) in xiic_read_rx()
684 if (!i2c->atomic) in xiic_fill_tx_fifo()
709 if (!i2c->atomic) in xiic_fill_tx_fifo()
714 if (i2c->atomic && xiic_error_check(i2c)) in xiic_fill_tx_fifo()
918 if (i2c->atomic) in xiic_wait_not_busy()
959 if (!i2c->atomic) in xiic_start_recv()
1060 if (!i2c->atomic) in xiic_start_recv()
[all …]
H A Di2c-imx-lpi2c.c214 #define lpi2c_imx_read_msr_poll_timeout(atomic, val, cond) \ argument
215 (atomic ? readl_poll_timeout_atomic(lpi2c_imx->base + LPI2C_MSR, val, \
226 static int lpi2c_imx_bus_busy(struct lpi2c_imx_struct *lpi2c_imx, bool atomic) in lpi2c_imx_bus_busy() argument
231 err = lpi2c_imx_read_msr_poll_timeout(atomic, temp, in lpi2c_imx_bus_busy()
276 struct i2c_msg *msgs, bool atomic) in lpi2c_imx_start() argument
288 return lpi2c_imx_bus_busy(lpi2c_imx, atomic); in lpi2c_imx_start()
291 static void lpi2c_imx_stop(struct lpi2c_imx_struct *lpi2c_imx, bool atomic) in lpi2c_imx_stop() argument
298 err = lpi2c_imx_read_msr_poll_timeout(atomic, temp, temp & MSR_SDF); in lpi2c_imx_stop()
416 static int lpi2c_imx_txfifo_empty(struct lpi2c_imx_struct *lpi2c_imx, bool atomic) in lpi2c_imx_txfifo_empty() argument
421 err = lpi2c_imx_read_msr_poll_timeout(atomic, temp, in lpi2c_imx_txfifo_empty()
[all …]
/linux/Documentation/litmus-tests/
H A DREADME12 atomic (/atomic directory)
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.
/linux/drivers/misc/sgi-gru/
H A Dgrufault.c253 int write, int atomic, unsigned long *gpa, int *pageshift) in gru_vtop() argument
271 if (atomic) in gru_vtop()
310 struct gru_thread_state *gts, int atomic, in gru_preload_tlb() argument
332 ret = gru_vtop(gts, vaddr, write, atomic, &gpa, &pageshift); in gru_preload_tlb()
338 atomic ? "atomic" : "non-atomic", gru->gs_gid, gts, tfh, in gru_preload_tlb()
362 int pageshift = 0, asid, write, ret, atomic = !cbk, indexway; in gru_try_dropin() local
413 ret = gru_vtop(gts, vaddr, write, atomic, &gpa, &pageshift); in gru_try_dropin()
421 if (atomic || !gru_update_cch(gts)) { in gru_try_dropin()
428 gru_preload_tlb(gru, gts, atomic, vaddr, asid, write, tlb_preload_count, tfh, cbe); in gru_try_dropin()
439 atomic ? "atomic" : "non-atomic", gru->gs_gid, gts, tfh, vaddr, asid, in gru_try_dropin()
/linux/scripts/atomic/fallbacks/
H A Dset_release2 if (__native_word(${atomic}_t)) {
6 raw_${atomic}_set(v, i);

12345678910>>...13