OXIESEC PANEL
- Current Dir:
/
/
usr
/
src
/
linux-headers-4.15.0-213
/
arch
/
openrisc
/
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
997 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
3.02 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
barrier.h
203 bytes
06/16/2023 05:32:39 PM
rw-r--r--
📁
bitops
-
05/09/2024 07:14:16 AM
rwxr-xr-x
📄
bitops.h
1.5 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
cache.h
888 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
cacheflush.h
3.37 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
cmpxchg.h
3.92 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
cpuinfo.h
970 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
delay.h
670 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
dma-mapping.h
968 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
elf.h
2.02 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
fixmap.h
2.74 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
futex.h
2.24 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
io.h
1.31 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
irq.h
835 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
irqflags.h
866 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
linkage.h
764 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
mmu.h
728 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
mmu_context.h
1.3 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
page.h
2.54 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pgalloc.h
2.57 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pgtable.h
13.96 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
processor.h
2.7 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
ptrace.h
3.33 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
serial.h
1.11 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
smp.h
822 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
spinlock.h
985 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
spinlock_types.h
188 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
spr.h
1.17 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
spr_defs.h
22.91 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
string.h
324 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
syscall.h
1.91 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
syscalls.h
1.04 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
thread_info.h
3.85 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
time.h
627 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
timex.h
914 bytes
06/16/2023 05:32:39 PM
rw-r--r--
📄
tlb.h
1.01 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
tlbflush.h
2.05 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
uaccess.h
7.98 KB
06/16/2023 05:32:39 PM
rw-r--r--
📄
unaligned.h
1.7 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
unwinder.h
557 bytes
01/28/2018 09:20:33 PM
rw-r--r--
Editing: futex.h
Close
/* SPDX-License-Identifier: GPL-2.0 */ #ifndef __ASM_OPENRISC_FUTEX_H #define __ASM_OPENRISC_FUTEX_H #ifdef __KERNEL__ #include <linux/futex.h> #include <linux/uaccess.h> #include <asm/errno.h> #define __futex_atomic_op(insn, ret, oldval, uaddr, oparg) \ ({ \ __asm__ __volatile__ ( \ "1: l.lwa %0, %2 \n" \ insn "\n" \ "2: l.swa %2, %1 \n" \ " l.bnf 1b \n" \ " l.ori %1, r0, 0 \n" \ "3: \n" \ ".section .fixup,\"ax\" \n" \ "4: l.j 3b \n" \ " l.addi %1, r0, %3 \n" \ ".previous \n" \ ".section __ex_table,\"a\" \n" \ ".word 1b,4b,2b,4b \n" \ ".previous \n" \ : "=&r" (oldval), "=&r" (ret), "+m" (*uaddr) \ : "i" (-EFAULT), "r" (oparg) \ : "cc", "memory" \ ); \ }) static inline int arch_futex_atomic_op_inuser(int op, int oparg, int *oval, u32 __user *uaddr) { int oldval = 0, ret; pagefault_disable(); switch (op) { case FUTEX_OP_SET: __futex_atomic_op("l.or %1,%4,%4", ret, oldval, uaddr, oparg); break; case FUTEX_OP_ADD: __futex_atomic_op("l.add %1,%0,%4", ret, oldval, uaddr, oparg); break; case FUTEX_OP_OR: __futex_atomic_op("l.or %1,%0,%4", ret, oldval, uaddr, oparg); break; case FUTEX_OP_ANDN: __futex_atomic_op("l.and %1,%0,%4", ret, oldval, uaddr, ~oparg); break; case FUTEX_OP_XOR: __futex_atomic_op("l.xor %1,%0,%4", ret, oldval, uaddr, oparg); break; default: ret = -ENOSYS; } pagefault_enable(); if (!ret) *oval = oldval; return ret; } static inline int futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr, u32 oldval, u32 newval) { int ret = 0; u32 prev; if (!access_ok(VERIFY_WRITE, uaddr, sizeof(u32))) return -EFAULT; __asm__ __volatile__ ( \ "1: l.lwa %1, %2 \n" \ " l.sfeq %1, %3 \n" \ " l.bnf 3f \n" \ " l.nop \n" \ "2: l.swa %2, %4 \n" \ " l.bnf 1b \n" \ " l.nop \n" \ "3: \n" \ ".section .fixup,\"ax\" \n" \ "4: l.j 3b \n" \ " l.addi %0, r0, %5 \n" \ ".previous \n" \ ".section __ex_table,\"a\" \n" \ ".word 1b,4b,2b,4b \n" \ ".previous \n" \ : "+r" (ret), "=&r" (prev), "+m" (*uaddr) \ : "r" (oldval), "r" (newval), "i" (-EFAULT) \ : "cc", "memory" \ ); *uval = prev; return ret; } #endif /* __KERNEL__ */ #endif /* __ASM_OPENRISC_FUTEX_H */