Home
last modified time | relevance | path

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

1234567891011

/Linux-v4.19/arch/riscv/include/asm/
Datomic.h62 void atomic##prefix##_##op(c_type i, atomic##prefix##_t *v) \
96 c_type atomic##prefix##_fetch_##op##_relaxed(c_type i, \ in ATOMIC_OPS()
97 atomic##prefix##_t *v) \ in ATOMIC_OPS()
108 c_type atomic##prefix##_fetch_##op(c_type i, atomic##prefix##_t *v) \
121 c_type atomic##prefix##_##op##_return_relaxed(c_type i, \
122 atomic##prefix##_t *v) \
124 return atomic##prefix##_fetch_##op##_relaxed(i, v) c_op I; \
127 c_type atomic##prefix##_##op##_return(c_type i, atomic##prefix##_t *v) \
129 return atomic##prefix##_fetch_##op(i, v) c_op I; \
252 c_t atomic##prefix##_xchg_relaxed(atomic##prefix##_t *v, c_t n) \
[all …]
/Linux-v4.19/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.c26 atomic##bit##_set(&v, v0); \
28 atomic##bit##_##op(val, &v); \
30 WARN(atomic##bit##_read(&v) != r, "%Lx != %Lx\n", \
31 (unsigned long long)atomic##bit##_read(&v), \
50 atomic##bit##_set(&v, v0); \
53 BUG_ON(atomic##bit##_##op(val, &v) != r); \
54 BUG_ON(atomic##bit##_read(&v) != r); \
59 atomic##bit##_set(&v, v0); \
62 BUG_ON(atomic##bit##_##op(val, &v) != v0); \
63 BUG_ON(atomic##bit##_read(&v) != r); \
[all …]
/Linux-v4.19/net/rds/
Drdma.c802 || rm->atomic.op_active) in rds_cmsg_atomic()
810 rm->atomic.op_type = RDS_ATOMIC_TYPE_FADD; in rds_cmsg_atomic()
811 rm->atomic.op_m_fadd.add = args->fadd.add; in rds_cmsg_atomic()
812 rm->atomic.op_m_fadd.nocarry_mask = 0; in rds_cmsg_atomic()
815 rm->atomic.op_type = RDS_ATOMIC_TYPE_FADD; in rds_cmsg_atomic()
816 rm->atomic.op_m_fadd.add = args->m_fadd.add; in rds_cmsg_atomic()
817 rm->atomic.op_m_fadd.nocarry_mask = args->m_fadd.nocarry_mask; in rds_cmsg_atomic()
820 rm->atomic.op_type = RDS_ATOMIC_TYPE_CSWP; in rds_cmsg_atomic()
821 rm->atomic.op_m_cswp.compare = args->cswp.compare; in rds_cmsg_atomic()
822 rm->atomic.op_m_cswp.swap = args->cswp.swap; in rds_cmsg_atomic()
[all …]
/Linux-v4.19/Documentation/
Datomic_bitops.txt2 On atomic bitops.
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
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:
72 C atomic-set
99 The obvious case where this is not so is when we need to implement atomic ops
136 All these operations are SMP atomic; that is, the operations (for a single
137 atomic variable) can be fully ordered and no intermediate state is lost or
174 inherent to the used atomic op. These barriers provide a full smp_mb().
177 ordering on their SMP atomic primitives. For example our TSO architectures
/Linux-v4.19/sound/synth/emux/
Demux_oss.c40 void *private, int atomic, int hop);
43 int cmd, unsigned char *event, int atomic, int hop);
45 int cmd, unsigned char *event, int atomic, int hop);
47 int ch, int param, int val, int atomic, int hop);
301 int atomic, int hop) in snd_emux_event_oss_input() argument
314 return snd_emux_event_input(ev, direct, private_data, atomic, hop); in snd_emux_event_oss_input()
322 emuspec_control(emu, p, cmd, data, atomic, hop); in snd_emux_event_oss_input()
324 gusspec_control(emu, p, cmd, data, atomic, hop); in snd_emux_event_oss_input()
334 unsigned char *event, int atomic, int hop) in emuspec_control() argument
374 fake_event(emu, port, voice, MIDI_CTL_ALL_NOTES_OFF, 0, atomic, hop); in emuspec_control()
[all …]
/Linux-v4.19/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 …]
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 …]
Drefcount-vs-atomic.rst12 implementation from lib/refcount.c uses atomic operations underneath,
23 memory ordering in general and for atomic operations specifically.
36 each ``atomic_*()`` and ``refcount_*()`` operation is atomic and instructions
112 * no atomic counterpart --> :c:func:`refcount_add_not_zero`
129 * no atomic counterpart --> :c:func:`refcount_dec_if_one`
/Linux-v4.19/sound/core/seq/
Dseq_queue.c250 void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop) in snd_seq_check_queue() argument
275 snd_seq_dispatch_event(cell, atomic, hop); in snd_seq_check_queue()
283 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()
646 int atomic, int hop) in queue_broadcast_event() argument
661 snd_seq_kernel_client_dispatch(SNDRV_SEQ_CLIENT_SYSTEM, &sev, atomic, hop); in queue_broadcast_event()
670 int atomic, int hop) in snd_seq_queue_process_event() argument
677 queue_broadcast_event(q, ev, atomic, hop); in snd_seq_queue_process_event()
682 queue_broadcast_event(q, ev, atomic, hop); in snd_seq_queue_process_event()
[all …]
Dseq_clientmgr.h94 int snd_seq_dispatch_event(struct snd_seq_event_cell *cell, int atomic, int hop);
97 int snd_seq_kernel_client_enqueue(int client, struct snd_seq_event *ev, int atomic, int hop);
99 struct file *file, int atomic, int hop);
Dseq_clientmgr.c83 int err, int atomic, int hop);
86 int filter, int atomic, int hop);
518 int err, int atomic, int hop) in bounce_error_event() argument
540 result = snd_seq_deliver_single_event(NULL, &bounce_ev, 0, atomic, hop + 1); in bounce_error_event()
586 int filter, int atomic, int hop) in snd_seq_deliver_single_event() argument
623 atomic, hop); in snd_seq_deliver_single_event()
636 result = bounce_error_event(client, event, result, atomic, hop); in snd_seq_deliver_single_event()
647 int atomic, int hop) in deliver_to_subscribers() argument
663 if (atomic) in deliver_to_subscribers()
677 0, atomic, hop); in deliver_to_subscribers()
[all …]
Dseq_queue.h83 int snd_seq_enqueue_event(struct snd_seq_event_cell *cell, int atomic, int hop);
98 void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop);
110 int snd_seq_control_queue(struct snd_seq_event *ev, int atomic, int hop);
Dseq_virmidi.c81 bool atomic) in snd_virmidi_dev_receive_event() argument
87 if (atomic) in snd_virmidi_dev_receive_event()
104 if (atomic) in snd_virmidi_dev_receive_event()
116 void *private_data, int atomic, int hop) in snd_virmidi_event_input() argument
123 return snd_virmidi_dev_receive_event(rdev, ev, atomic); in snd_virmidi_event_input()
/Linux-v4.19/drivers/staging/erofs/
Dunzip_pagevec.h44 bool atomic) in z_erofs_pagevec_ctor_exit() argument
49 if (atomic) in z_erofs_pagevec_ctor_exit()
81 bool atomic) in z_erofs_pagevec_ctor_pagedown() argument
85 z_erofs_pagevec_ctor_exit(ctor, atomic); in z_erofs_pagevec_ctor_pagedown()
89 ctor->pages = atomic ? in z_erofs_pagevec_ctor_pagedown()
/Linux-v4.19/arch/arm/lib/
Duaccess_with_memcpy.c91 int atomic; in __copy_to_user_memcpy() local
99 atomic = faulthandler_disabled(); in __copy_to_user_memcpy()
101 if (!atomic) in __copy_to_user_memcpy()
109 if (!atomic) in __copy_to_user_memcpy()
113 if (!atomic) in __copy_to_user_memcpy()
133 if (!atomic) in __copy_to_user_memcpy()
/Linux-v4.19/include/sound/
Dseq_kernel.h66 int (*event_input)(struct snd_seq_event *ev, int direct, void *private_data, int atomic, int hop);
76 int snd_seq_kernel_client_enqueue(int client, struct snd_seq_event *ev, int atomic, int hop);
77 int snd_seq_kernel_client_dispatch(int client, struct snd_seq_event *ev, int atomic, int hop);
/Linux-v4.19/include/linux/
Dspinlock.h445 extern int _atomic_dec_and_lock(atomic_t *atomic, spinlock_t *lock);
446 #define atomic_dec_and_lock(atomic, lock) \ argument
447 __cond_lock(lock, _atomic_dec_and_lock(atomic, lock))
449 extern int _atomic_dec_and_lock_irqsave(atomic_t *atomic, spinlock_t *lock,
451 #define atomic_dec_and_lock_irqsave(atomic, lock, flags) \ argument
452 __cond_lock(lock, _atomic_dec_and_lock_irqsave(atomic, lock, &(flags)))
/Linux-v4.19/include/crypto/internal/
Dskcipher.h146 bool atomic);
151 bool atomic);
153 struct aead_request *req, bool atomic);
155 struct aead_request *req, bool atomic);
/Linux-v4.19/drivers/misc/sgi-gru/
Dgrufault.c266 int write, int atomic, unsigned long *gpa, int *pageshift) in gru_vtop() argument
284 if (atomic) in gru_vtop()
323 struct gru_thread_state *gts, int atomic, in gru_preload_tlb() argument
345 ret = gru_vtop(gts, vaddr, write, atomic, &gpa, &pageshift); in gru_preload_tlb()
351 atomic ? "atomic" : "non-atomic", gru->gs_gid, gts, tfh, in gru_preload_tlb()
375 int pageshift = 0, asid, write, ret, atomic = !cbk, indexway; in gru_try_dropin() local
426 ret = gru_vtop(gts, vaddr, write, atomic, &gpa, &pageshift); in gru_try_dropin()
434 if (atomic || !gru_update_cch(gts)) { in gru_try_dropin()
441 gru_preload_tlb(gru, gts, atomic, vaddr, asid, write, tlb_preload_count, tfh, cbe); in gru_try_dropin()
452 atomic ? "atomic" : "non-atomic", gru->gs_gid, gts, tfh, vaddr, asid, in gru_try_dropin()
/Linux-v4.19/arch/x86/lib/
Dcmpxchg16b_emu.S29 # do *not* have a fully atomic operation but just an operation that is
30 # *atomic* on a single cpu (as provided by the this_cpu_xx class of
/Linux-v4.19/fs/ubifs/
Dorphan.c242 static int do_write_orph_node(struct ubifs_info *c, int len, int atomic) in do_write_orph_node() argument
246 if (atomic) { in do_write_orph_node()
273 static int write_orph_node(struct ubifs_info *c, int atomic) in write_orph_node() argument
322 err = do_write_orph_node(c, len, atomic); in write_orph_node()
336 static int write_orph_nodes(struct ubifs_info *c, int atomic) in write_orph_nodes() argument
341 err = write_orph_node(c, atomic); in write_orph_nodes()
345 if (atomic) { in write_orph_nodes()
416 int avail, atomic = 0, err; in commit_orphans() local
425 atomic = 1; in commit_orphans()
427 err = write_orph_nodes(c, atomic); in commit_orphans()
/Linux-v4.19/sound/core/seq/oss/
Dseq_oss_device.h148 snd_seq_oss_dispatch(struct seq_oss_devinfo *dp, struct snd_seq_event *ev, int atomic, int hop) in snd_seq_oss_dispatch() argument
150 return snd_seq_kernel_client_dispatch(dp->cseq, ev, atomic, hop); in snd_seq_oss_dispatch()
/Linux-v4.19/Documentation/gpu/
Dtodo.rst48 Convert existing KMS drivers to atomic modesetting
51 3.19 has the atomic modeset interfaces and helpers, so drivers can now be
53 really want an atomic modeset interface, so this is all about the bright
56 There is a conversion guide for atomic and all you need is a GPU for a
62 do by directly using the new atomic helper driver callbacks.
70 it's not consistently used. This should be fixed, preferrably in the atomic
72 helper should also be moved from drm_plane_helper.c to the atomic helpers, to
78 Convert early atomic drivers to async commit helpers
81 For the first year the atomic modeset helpers didn't support asynchronous /
87 events for atomic commits correctly. But fixing these bugs is good anyway.
[all …]

1234567891011