OXIESEC PANEL
- Current Dir:
/
/
usr
/
src
/
linux-headers-4.15.0-213
/
arch
/
tile
/
include
/
asm
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
05/09/2024 07:14:13 AM
rwxr-xr-x
📄
Kbuild
439 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
asm-offsets.h
35 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
atomic.h
5.14 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
atomic_32.h
8.91 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
atomic_64.h
5.51 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
backtrace.h
3.98 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
barrier.h
2.89 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
bitops.h
2.37 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
bitops_32.h
4.01 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
bitops_64.h
2.67 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
cache.h
2.6 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
cacheflush.h
4.94 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
checksum.h
1.23 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
cmpxchg.h
3.47 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
compat.h
7.38 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
current.h
947 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
delay.h
1.1 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
device.h
978 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
div64.h
319 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
dma-mapping.h
1.82 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
dma.h
762 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
elf.h
5.42 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
fixmap.h
2.73 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
ftrace.h
1.08 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
futex.h
4.23 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
hardirq.h
1.28 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
hardwall.h
1.08 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
highmem.h
2.08 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
homecache.h
4.21 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
hugetlb.h
3.04 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
hv_driver.h
1.92 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
ide.h
758 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
insn.h
1.79 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
io.h
12.43 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
irq.h
3.11 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
irq_work.h
283 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
irqflags.h
10.55 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
jump_label.h
1.47 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
kdebug.h
769 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
kexec.h
2.23 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
kgdb.h
1.99 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
kmap_types.h
1.02 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
kprobes.h
2.19 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
linkage.h
1.46 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
mmu.h
965 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
mmu_context.h
4.5 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
mmzone.h
2.07 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
module.h
1.12 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
page.h
10.32 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pci.h
6.58 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
percpu.h
1.79 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
perf_event.h
766 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
pgalloc.h
4.76 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pgtable.h
15.66 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pgtable_32.h
4.08 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pgtable_64.h
5.11 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pmc.h
2.15 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
processor.h
10.62 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
ptrace.h
2.96 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
sections.h
1.37 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
setup.h
1.63 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
sigframe.h
956 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
signal.h
1.07 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
smp.h
3.98 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
spinlock.h
741 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
spinlock_32.h
2.9 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
spinlock_64.h
3.88 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
spinlock_types.h
1.58 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
stack.h
2.59 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
string.h
1.19 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
switch_to.h
2.75 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
syscall.h
2.88 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
syscalls.h
2.35 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
thread_info.h
5.54 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
tile-desc.h
650 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
tile-desc_32.h
12.54 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
tile-desc_64.h
10.83 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
timex.h
1.71 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
tlb.h
878 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
tlbflush.h
3.99 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
topology.h
1.52 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
traps.h
2.44 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
uaccess.h
12.77 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
unaligned.h
1.56 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
unistd.h
777 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
user.h
717 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
vdso.h
1.84 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
vga.h
1.05 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
word-at-a-time.h
1.07 KB
01/28/2018 09:20:33 PM
rw-r--r--
Editing: atomic.h
Close
/* * Copyright 2010 Tilera Corporation. All Rights Reserved. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation, version 2. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or * NON INFRINGEMENT. See the GNU General Public License for * more details. * * Atomic primitives. */ #ifndef _ASM_TILE_ATOMIC_H #define _ASM_TILE_ATOMIC_H #include <asm/cmpxchg.h> #ifndef __ASSEMBLY__ #include <linux/compiler.h> #include <linux/types.h> #define ATOMIC_INIT(i) { (i) } /** * atomic_read - read atomic variable * @v: pointer of type atomic_t * * Atomically reads the value of @v. */ static inline int atomic_read(const atomic_t *v) { return READ_ONCE(v->counter); } /** * atomic_sub_return - subtract integer and return * @v: pointer of type atomic_t * @i: integer value to subtract * * Atomically subtracts @i from @v and returns @v - @i */ #define atomic_sub_return(i, v) atomic_add_return((int)(-(i)), (v)) #define atomic_fetch_sub(i, v) atomic_fetch_add(-(int)(i), (v)) /** * atomic_sub - subtract integer from atomic variable * @i: integer value to subtract * @v: pointer of type atomic_t * * Atomically subtracts @i from @v. */ #define atomic_sub(i, v) atomic_add((int)(-(i)), (v)) /** * atomic_sub_and_test - subtract value from variable and test result * @i: integer value to subtract * @v: pointer of type atomic_t * * Atomically subtracts @i from @v and returns true if the result is * zero, or false for all other cases. */ #define atomic_sub_and_test(i, v) (atomic_sub_return((i), (v)) == 0) /** * atomic_inc_return - increment memory and return * @v: pointer of type atomic_t * * Atomically increments @v by 1 and returns the new value. */ #define atomic_inc_return(v) atomic_add_return(1, (v)) /** * atomic_dec_return - decrement memory and return * @v: pointer of type atomic_t * * Atomically decrements @v by 1 and returns the new value. */ #define atomic_dec_return(v) atomic_sub_return(1, (v)) /** * atomic_inc - increment atomic variable * @v: pointer of type atomic_t * * Atomically increments @v by 1. */ #define atomic_inc(v) atomic_add(1, (v)) /** * atomic_dec - decrement atomic variable * @v: pointer of type atomic_t * * Atomically decrements @v by 1. */ #define atomic_dec(v) atomic_sub(1, (v)) /** * atomic_dec_and_test - decrement and test * @v: pointer of type atomic_t * * Atomically decrements @v by 1 and returns true if the result is 0. */ #define atomic_dec_and_test(v) (atomic_dec_return(v) == 0) /** * atomic_inc_and_test - increment and test * @v: pointer of type atomic_t * * Atomically increments @v by 1 and returns true if the result is 0. */ #define atomic_inc_and_test(v) (atomic_inc_return(v) == 0) /** * atomic_xchg - atomically exchange contents of memory with a new value * @v: pointer of type atomic_t * @i: integer value to store in memory * * Atomically sets @v to @i and returns old @v */ static inline int atomic_xchg(atomic_t *v, int n) { return xchg(&v->counter, n); } /** * atomic_cmpxchg - atomically exchange contents of memory if it matches * @v: pointer of type atomic_t * @o: old value that memory should have * @n: new value to write to memory if it matches * * Atomically checks if @v holds @o and replaces it with @n if so. * Returns the old value at @v. */ static inline int atomic_cmpxchg(atomic_t *v, int o, int n) { return cmpxchg(&v->counter, o, n); } /** * atomic_add_negative - add and test if negative * @v: pointer of type atomic_t * @i: integer value to add * * Atomically adds @i to @v and returns true if the result is * negative, or false when result is greater than or equal to zero. */ #define atomic_add_negative(i, v) (atomic_add_return((i), (v)) < 0) #endif /* __ASSEMBLY__ */ #ifndef __tilegx__ #include <asm/atomic_32.h> #else #include <asm/atomic_64.h> #endif #ifndef __ASSEMBLY__ /** * atomic64_xchg - atomically exchange contents of memory with a new value * @v: pointer of type atomic64_t * @i: integer value to store in memory * * Atomically sets @v to @i and returns old @v */ static inline long long atomic64_xchg(atomic64_t *v, long long n) { return xchg64(&v->counter, n); } /** * atomic64_cmpxchg - atomically exchange contents of memory if it matches * @v: pointer of type atomic64_t * @o: old value that memory should have * @n: new value to write to memory if it matches * * Atomically checks if @v holds @o and replaces it with @n if so. * Returns the old value at @v. */ static inline long long atomic64_cmpxchg(atomic64_t *v, long long o, long long n) { return cmpxchg64(&v->counter, o, n); } static inline long long atomic64_dec_if_positive(atomic64_t *v) { long long c, old, dec; c = atomic64_read(v); for (;;) { dec = c - 1; if (unlikely(dec < 0)) break; old = atomic64_cmpxchg((v), c, dec); if (likely(old == c)) break; c = old; } return dec; } #endif /* __ASSEMBLY__ */ #endif /* _ASM_TILE_ATOMIC_H */