OXIESEC PANEL
- Current Dir:
/
/
usr
/
src
/
linux-headers-4.15.0-213
/
arch
/
m32r
/
include
/
asm
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
05/09/2024 07:14:12 AM
rwxr-xr-x
📄
Kbuild
318 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
addrspace.h
1.67 KB
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--
📄
assembler.h
4.2 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
atomic.h
6.29 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
barrier.h
506 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
bitops.h
6.23 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
bug.h
115 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
bugs.h
410 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
cache.h
222 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
cachectl.h
739 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
cacheflush.h
3.2 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
checksum.h
4.83 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
cmpxchg.h
4.86 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
dcache_clear.h
1.01 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
delay.h
31 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
device.h
148 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
div64.h
31 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
dma-mapping.h
570 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
dma.h
281 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
elf.h
3.64 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
emergency-restart.h
188 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
fb.h
414 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
flat.h
4.2 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
ftrace.h
12 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
futex.h
82 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
hardirq.h
214 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
hw_irq.h
87 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
io.h
6.44 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
irq.h
2.94 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
irq_regs.h
34 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
irqflags.h
2.24 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
kdebug.h
32 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
kmap_types.h
251 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
linkage.h
177 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
local.h
7.8 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
local64.h
33 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
m32102.h
14.71 KB
01/28/2018 09:20:33 PM
rw-r--r--
📁
m32104ut
-
05/09/2024 07:14:16 AM
rwxr-xr-x
📁
m32700ut
-
05/09/2024 07:14:16 AM
rwxr-xr-x
📄
m32r.h
5.7 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
m32r_mp_fpga.h
14.89 KB
01/28/2018 09:20:33 PM
rw-r--r--
📁
mappi2
-
05/09/2024 07:14:16 AM
rwxr-xr-x
📁
mappi3
-
05/09/2024 07:14:16 AM
rwxr-xr-x
📄
mc146818rtc.h
671 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
mmu.h
403 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
mmu_context.h
4.23 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
mmzone.h
1.29 KB
01/28/2018 09:20:33 PM
rw-r--r--
📁
opsput
-
05/09/2024 07:14:16 AM
rwxr-xr-x
📄
page.h
2.62 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pci.h
147 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
percpu.h
165 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
pgalloc.h
1.84 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pgtable-2level.h
2.31 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pgtable.h
9.7 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
processor.h
2.93 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
ptrace.h
1.3 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
rtc.h
1.99 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
s1d13806.h
9.84 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
segment.h
228 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
serial.h
187 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
setup.h
1022 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
shmparam.h
197 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
signal.h
561 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
smp.h
3.5 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
spinlock.h
7.15 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
spinlock_types.h
520 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
string.h
378 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
switch_to.h
1.48 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
syscall.h
252 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
termios.h
1.74 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
thread_info.h
3.71 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
timex.h
581 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
tlb.h
483 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
tlbflush.h
2.94 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
topology.h
167 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
types.h
258 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
uaccess.h
15.3 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
ucontext.h
321 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
unaligned.h
592 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
unistd.h
1.23 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
user.h
2.1 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
vga.h
436 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
xor.h
148 bytes
01/28/2018 09:20:33 PM
rw-r--r--
Editing: bitops.h
Close
/* SPDX-License-Identifier: GPL-2.0 */ #ifndef _ASM_M32R_BITOPS_H #define _ASM_M32R_BITOPS_H /* * linux/include/asm-m32r/bitops.h * * Copyright 1992, Linus Torvalds. * * M32R version: * Copyright (C) 2001, 2002 Hitoshi Yamamoto * Copyright (C) 2004 Hirokazu Takata <takata at linux-m32r.org> */ #ifndef _LINUX_BITOPS_H #error only <linux/bitops.h> can be included directly #endif #include <linux/compiler.h> #include <linux/irqflags.h> #include <asm/assembler.h> #include <asm/byteorder.h> #include <asm/dcache_clear.h> #include <asm/types.h> #include <asm/barrier.h> /* * These have to be done with inline assembly: that way the bit-setting * is guaranteed to be atomic. All bit operations return 0 if the bit * was cleared before the operation and != 0 if it was not. * * bit 0 is the LSB of addr; bit 32 is the LSB of (addr+1). */ /** * set_bit - Atomically set a bit in memory * @nr: the bit to set * @addr: the address to start counting from * * This function is atomic and may not be reordered. See __set_bit() * if you do not require the atomic guarantees. * Note that @nr may be almost arbitrarily large; this function is not * restricted to acting on a single-word quantity. */ static __inline__ void set_bit(int nr, volatile void * addr) { __u32 mask; volatile __u32 *a = addr; unsigned long flags; unsigned long tmp; a += (nr >> 5); mask = (1 << (nr & 0x1F)); local_irq_save(flags); __asm__ __volatile__ ( DCACHE_CLEAR("%0", "r6", "%1") M32R_LOCK" %0, @%1; \n\t" "or %0, %2; \n\t" M32R_UNLOCK" %0, @%1; \n\t" : "=&r" (tmp) : "r" (a), "r" (mask) : "memory" #ifdef CONFIG_CHIP_M32700_TS1 , "r6" #endif /* CONFIG_CHIP_M32700_TS1 */ ); local_irq_restore(flags); } /** * clear_bit - Clears a bit in memory * @nr: Bit to clear * @addr: Address to start counting from * * clear_bit() is atomic and may not be reordered. However, it does * not contain a memory barrier, so if it is used for locking purposes, * you should call smp_mb__before_atomic() and/or smp_mb__after_atomic() * in order to ensure changes are visible on other processors. */ static __inline__ void clear_bit(int nr, volatile void * addr) { __u32 mask; volatile __u32 *a = addr; unsigned long flags; unsigned long tmp; a += (nr >> 5); mask = (1 << (nr & 0x1F)); local_irq_save(flags); __asm__ __volatile__ ( DCACHE_CLEAR("%0", "r6", "%1") M32R_LOCK" %0, @%1; \n\t" "and %0, %2; \n\t" M32R_UNLOCK" %0, @%1; \n\t" : "=&r" (tmp) : "r" (a), "r" (~mask) : "memory" #ifdef CONFIG_CHIP_M32700_TS1 , "r6" #endif /* CONFIG_CHIP_M32700_TS1 */ ); local_irq_restore(flags); } /** * change_bit - Toggle a bit in memory * @nr: Bit to clear * @addr: Address to start counting from * * change_bit() is atomic and may not be reordered. * Note that @nr may be almost arbitrarily large; this function is not * restricted to acting on a single-word quantity. */ static __inline__ void change_bit(int nr, volatile void * addr) { __u32 mask; volatile __u32 *a = addr; unsigned long flags; unsigned long tmp; a += (nr >> 5); mask = (1 << (nr & 0x1F)); local_irq_save(flags); __asm__ __volatile__ ( DCACHE_CLEAR("%0", "r6", "%1") M32R_LOCK" %0, @%1; \n\t" "xor %0, %2; \n\t" M32R_UNLOCK" %0, @%1; \n\t" : "=&r" (tmp) : "r" (a), "r" (mask) : "memory" #ifdef CONFIG_CHIP_M32700_TS1 , "r6" #endif /* CONFIG_CHIP_M32700_TS1 */ ); local_irq_restore(flags); } /** * test_and_set_bit - Set a bit and return its old value * @nr: Bit to set * @addr: Address to count from * * This operation is atomic and cannot be reordered. * It also implies a memory barrier. */ static __inline__ int test_and_set_bit(int nr, volatile void * addr) { __u32 mask, oldbit; volatile __u32 *a = addr; unsigned long flags; unsigned long tmp; a += (nr >> 5); mask = (1 << (nr & 0x1F)); local_irq_save(flags); __asm__ __volatile__ ( DCACHE_CLEAR("%0", "%1", "%2") M32R_LOCK" %0, @%2; \n\t" "mv %1, %0; \n\t" "and %0, %3; \n\t" "or %1, %3; \n\t" M32R_UNLOCK" %1, @%2; \n\t" : "=&r" (oldbit), "=&r" (tmp) : "r" (a), "r" (mask) : "memory" ); local_irq_restore(flags); return (oldbit != 0); } /** * test_and_clear_bit - Clear a bit and return its old value * @nr: Bit to set * @addr: Address to count from * * This operation is atomic and cannot be reordered. * It also implies a memory barrier. */ static __inline__ int test_and_clear_bit(int nr, volatile void * addr) { __u32 mask, oldbit; volatile __u32 *a = addr; unsigned long flags; unsigned long tmp; a += (nr >> 5); mask = (1 << (nr & 0x1F)); local_irq_save(flags); __asm__ __volatile__ ( DCACHE_CLEAR("%0", "%1", "%3") M32R_LOCK" %0, @%3; \n\t" "mv %1, %0; \n\t" "and %0, %2; \n\t" "not %2, %2; \n\t" "and %1, %2; \n\t" M32R_UNLOCK" %1, @%3; \n\t" : "=&r" (oldbit), "=&r" (tmp), "+r" (mask) : "r" (a) : "memory" ); local_irq_restore(flags); return (oldbit != 0); } /** * test_and_change_bit - Change a bit and return its old value * @nr: Bit to set * @addr: Address to count from * * This operation is atomic and cannot be reordered. * It also implies a memory barrier. */ static __inline__ int test_and_change_bit(int nr, volatile void * addr) { __u32 mask, oldbit; volatile __u32 *a = addr; unsigned long flags; unsigned long tmp; a += (nr >> 5); mask = (1 << (nr & 0x1F)); local_irq_save(flags); __asm__ __volatile__ ( DCACHE_CLEAR("%0", "%1", "%2") M32R_LOCK" %0, @%2; \n\t" "mv %1, %0; \n\t" "and %0, %3; \n\t" "xor %1, %3; \n\t" M32R_UNLOCK" %1, @%2; \n\t" : "=&r" (oldbit), "=&r" (tmp) : "r" (a), "r" (mask) : "memory" ); local_irq_restore(flags); return (oldbit != 0); } #include <asm-generic/bitops/non-atomic.h> #include <asm-generic/bitops/ffz.h> #include <asm-generic/bitops/__ffs.h> #include <asm-generic/bitops/fls.h> #include <asm-generic/bitops/__fls.h> #include <asm-generic/bitops/fls64.h> #ifdef __KERNEL__ #include <asm-generic/bitops/sched.h> #include <asm-generic/bitops/find.h> #include <asm-generic/bitops/ffs.h> #include <asm-generic/bitops/hweight.h> #include <asm-generic/bitops/lock.h> #endif /* __KERNEL__ */ #ifdef __KERNEL__ #include <asm-generic/bitops/le.h> #include <asm-generic/bitops/ext2-atomic.h> #endif /* __KERNEL__ */ #endif /* _ASM_M32R_BITOPS_H */