/Linux-v4.19/arch/riscv/include/asm/ |
D | atomic.h | 62 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/ |
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 | 26 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/ |
D | rdma.c | 802 || 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/ |
D | atomic_bitops.txt | 2 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
|
D | atomic_t.txt | 2 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/ |
D | emux_oss.c | 40 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/ |
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 …]
|
D | local_ops.rst | 11 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 …]
|
D | refcount-vs-atomic.rst | 12 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/ |
D | seq_queue.c | 250 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 …]
|
D | seq_clientmgr.h | 94 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);
|
D | seq_clientmgr.c | 83 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 …]
|
D | seq_queue.h | 83 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);
|
D | seq_virmidi.c | 81 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/ |
D | unzip_pagevec.h | 44 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/ |
D | uaccess_with_memcpy.c | 91 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/ |
D | seq_kernel.h | 66 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/ |
D | spinlock.h | 445 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/ |
D | skcipher.h | 146 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/ |
D | grufault.c | 266 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/ |
D | cmpxchg16b_emu.S | 29 # 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/ |
D | orphan.c | 242 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/ |
D | seq_oss_device.h | 148 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/ |
D | todo.rst | 48 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 …]
|