/* SPDX-License-Identifier: GPL-2.0 */ #ifndef _ASM_SCORE_CMPXCHG_H #define _ASM_SCORE_CMPXCHG_H #include <linux/irqflags.h> struct __xchg_dummy { unsigned long a[100]; }; #define __xg(x) ((struct __xchg_dummy *)(x)) static inline unsigned long __xchg(volatile unsigned long *m, unsigned long val) { unsigned long retval; unsigned long flags; local_irq_save(flags); retval = *m; *m = val; local_irq_restore(flags); return retval; } #define xchg(ptr, v) \ ((__typeof__(*(ptr))) __xchg((unsigned long *)(ptr), \ (unsigned long)(v))) static inline unsigned long __cmpxchg(volatile unsigned long *m, unsigned long old, unsigned long new) { unsigned long retval; unsigned long flags; local_irq_save(flags); retval = *m; if (retval == old) *m = new; local_irq_restore(flags); return retval; } #define cmpxchg(ptr, o, n) \ ((__typeof__(*(ptr))) __cmpxchg((unsigned long *)(ptr), \ (unsigned long)(o), \ (unsigned long)(n))) #include <asm-generic/cmpxchg-local.h> #endif /* _ASM_SCORE_CMPXCHG_H */
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
Kbuild | File | 340 B | 0644 |
|
asm-offsets.h | File | 35 B | 0644 |
|
asmmacro.h | File | 2.48 KB | 0644 |
|
atomic.h | File | 187 B | 0644 |
|
bitops.h | File | 266 B | 0644 |
|
bug.h | File | 578 B | 0644 |
|
bugs.h | File | 154 B | 0644 |
|
cache.h | File | 199 B | 0644 |
|
cacheflush.h | File | 1.63 KB | 0644 |
|
checksum.h | File | 5.61 KB | 0644 |
|
cmpxchg.h | File | 1.02 KB | 0644 |
|
delay.h | File | 567 B | 0644 |
|
device.h | File | 162 B | 0644 |
|
div64.h | File | 158 B | 0644 |
|
dma.h | File | 171 B | 0644 |
|
elf.h | File | 2.84 KB | 0644 |
|
emergency-restart.h | File | 206 B | 0644 |
|
exec.h | File | 181 B | 0644 |
|
fixmap.h | File | 2.38 KB | 0644 |
|
ftrace.h | File | 90 B | 0644 |
|
futex.h | File | 158 B | 0644 |
|
hardirq.h | File | 166 B | 0644 |
|
hw_irq.h | File | 90 B | 0644 |
|
io.h | File | 212 B | 0644 |
|
irq.h | File | 794 B | 0644 |
|
irq_regs.h | File | 258 B | 0644 |
|
irqflags.h | File | 1.9 KB | 0644 |
|
kdebug.h | File | 162 B | 0644 |
|
kmap_types.h | File | 178 B | 0644 |
|
linkage.h | File | 189 B | 0644 |
|
local.h | File | 158 B | 0644 |
|
local64.h | File | 33 B | 0644 |
|
mmu.h | File | 157 B | 0644 |
|
mmu_context.h | File | 2.68 KB | 0644 |
|
module.h | File | 949 B | 0644 |
|
page.h | File | 2.84 KB | 0644 |
|
pci.h | File | 81 B | 0644 |
|
percpu.h | File | 162 B | 0644 |
|
pgalloc.h | File | 1.81 KB | 0644 |
|
pgtable-bits.h | File | 990 B | 0644 |
|
pgtable.h | File | 7.29 KB | 0644 |
|
processor.h | File | 2.39 KB | 0644 |
|
ptrace.h | File | 749 B | 0644 |
|
scoreregs.h | File | 1.4 KB | 0644 |
|
segment.h | File | 513 B | 0644 |
|
setup.h | File | 1.01 KB | 0644 |
|
shmparam.h | File | 170 B | 0644 |
|
string.h | File | 327 B | 0644 |
|
switch_to.h | File | 323 B | 0644 |
|
syscalls.h | File | 229 B | 0644 |
|
thread_info.h | File | 2.55 KB | 0644 |
|
timex.h | File | 216 B | 0644 |
|
tlb.h | File | 538 B | 0644 |
|
tlbflush.h | File | 3.02 KB | 0644 |
|
topology.h | File | 170 B | 0644 |
|
uaccess.h | File | 10.78 KB | 0644 |
|
ucontext.h | File | 34 B | 0644 |
|
unaligned.h | File | 174 B | 0644 |
|
user.h | File | 437 B | 0644 |
|