__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __ASM_SH_UACCESS_H
#define __ASM_SH_UACCESS_H
#include <asm/extable.h>
#include <asm-generic/access_ok.h>
/*
* Uh, these should become the main single-value transfer routines ...
* They automatically use the right size if we just have the right
* pointer type ...
*
* As SuperH uses the same address space for kernel and user data, we
* can just do these as direct assignments.
*
* Careful to not
* (a) re-use the arguments for side effects (sizeof is ok)
* (b) require any knowledge of processes at this stage
*/
#define put_user(x,ptr) __put_user_check((x), (ptr), sizeof(*(ptr)))
#define get_user(x,ptr) __get_user_check((x), (ptr), sizeof(*(ptr)))
/*
* The "__xxx" versions do not do address space checking, useful when
* doing multiple accesses to the same area (the user has to do the
* checks by hand with "access_ok()")
*/
#define __put_user(x,ptr) __put_user_nocheck((x), (ptr), sizeof(*(ptr)))
#define __get_user(x,ptr) __get_user_nocheck((x), (ptr), sizeof(*(ptr)))
struct __large_struct { unsigned long buf[100]; };
#define __m(x) (*(struct __large_struct __user *)(x))
#define __get_user_nocheck(x,ptr,size) \
({ \
long __gu_err; \
unsigned long __gu_val; \
const __typeof__(*(ptr)) __user *__gu_addr = (ptr); \
__chk_user_ptr(ptr); \
__get_user_size(__gu_val, __gu_addr, (size), __gu_err); \
(x) = (__force __typeof__(*(ptr)))__gu_val; \
__gu_err; \
})
#define __get_user_check(x,ptr,size) \
({ \
long __gu_err = -EFAULT; \
unsigned long __gu_val = 0; \
const __typeof__(*(ptr)) __user *__gu_addr = (ptr); \
if (likely(access_ok(__gu_addr, (size)))) \
__get_user_size(__gu_val, __gu_addr, (size), __gu_err); \
(x) = (__force __typeof__(*(ptr)))__gu_val; \
__gu_err; \
})
#define __put_user_nocheck(x,ptr,size) \
({ \
long __pu_err; \
__typeof__(*(ptr)) __user *__pu_addr = (ptr); \
__typeof__(*(ptr)) __pu_val = x; \
__chk_user_ptr(ptr); \
__put_user_size(__pu_val, __pu_addr, (size), __pu_err); \
__pu_err; \
})
#define __put_user_check(x,ptr,size) \
({ \
long __pu_err = -EFAULT; \
__typeof__(*(ptr)) __user *__pu_addr = (ptr); \
__typeof__(*(ptr)) __pu_val = x; \
if (likely(access_ok(__pu_addr, size))) \
__put_user_size(__pu_val, __pu_addr, (size), \
__pu_err); \
__pu_err; \
})
# include <asm/uaccess_32.h>
extern long strncpy_from_user(char *dest, const char __user *src, long count);
extern __must_check long strnlen_user(const char __user *str, long n);
/* Generic arbitrary sized copy. */
/* Return the number of bytes NOT copied */
__kernel_size_t __copy_user(void *to, const void *from, __kernel_size_t n);
static __always_inline unsigned long
raw_copy_from_user(void *to, const void __user *from, unsigned long n)
{
return __copy_user(to, (__force void *)from, n);
}
static __always_inline unsigned long __must_check
raw_copy_to_user(void __user *to, const void *from, unsigned long n)
{
return __copy_user((__force void *)to, from, n);
}
#define INLINE_COPY_FROM_USER
#define INLINE_COPY_TO_USER
/*
* Clear the area and return remaining number of bytes
* (on failure. Usually it's 0.)
*/
__kernel_size_t __clear_user(void __user *addr, __kernel_size_t size);
#define clear_user(addr,n) \
({ \
void __user * __cl_addr = (addr); \
unsigned long __cl_size = (n); \
\
if (__cl_size && access_ok(__cl_addr, __cl_size)) \
__cl_size = __clear_user(__cl_addr, __cl_size); \
\
__cl_size; \
})
extern void *set_exception_table_vec(unsigned int vec, void *handler);
static inline void *set_exception_table_evt(unsigned int evt, void *handler)
{
return set_exception_table_vec(evt >> 5, handler);
}
struct mem_access {
unsigned long (*from)(void *dst, const void __user *src, unsigned long cnt);
unsigned long (*to)(void __user *dst, const void *src, unsigned long cnt);
};
int handle_unaligned_access(insn_size_t instruction, struct pt_regs *regs,
struct mem_access *ma, int, unsigned long address);
#endif /* __ASM_SH_UACCESS_H */
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| Kbuild | File | 170 B | 0644 |
|
| adc.h | File | 211 B | 0644 |
|
| addrspace.h | File | 1.85 KB | 0644 |
|
| alignment.h | File | 654 B | 0644 |
|
| asm-offsets.h | File | 74 B | 0644 |
|
| atomic-grb.h | File | 2.97 KB | 0644 |
|
| atomic-irq.h | File | 2.01 KB | 0644 |
|
| atomic-llsc.h | File | 2.49 KB | 0644 |
|
| atomic.h | File | 693 B | 0644 |
|
| barrier.h | File | 1.47 KB | 0644 |
|
| bitops-cas.h | File | 1.73 KB | 0644 |
|
| bitops-grb.h | File | 6.21 KB | 0644 |
|
| bitops-llsc.h | File | 2.79 KB | 0644 |
|
| bitops-op32.h | File | 3.82 KB | 0644 |
|
| bitops.h | File | 1.58 KB | 0644 |
|
| bl_bit.h | File | 66 B | 0644 |
|
| bl_bit_32.h | File | 639 B | 0644 |
|
| bug.h | File | 2.77 KB | 0644 |
|
| cache.h | File | 1.31 KB | 0644 |
|
| cache_insns.h | File | 71 B | 0644 |
|
| cache_insns_32.h | File | 642 B | 0644 |
|
| cacheflush.h | File | 4.22 KB | 0644 |
|
| cachetype.h | File | 170 B | 0644 |
|
| checksum.h | File | 68 B | 0644 |
|
| checksum_32.h | File | 4.92 KB | 0644 |
|
| clock.h | File | 436 B | 0644 |
|
| cmpxchg-cas.h | File | 549 B | 0644 |
|
| cmpxchg-grb.h | File | 2.8 KB | 0644 |
|
| cmpxchg-irq.h | File | 1.04 KB | 0644 |
|
| cmpxchg-llsc.h | File | 1.06 KB | 0644 |
|
| cmpxchg-xchg.h | File | 1.24 KB | 0644 |
|
| cmpxchg.h | File | 2.09 KB | 0644 |
|
| device.h | File | 442 B | 0644 |
|
| dma-register.h | File | 1.67 KB | 0644 |
|
| dma.h | File | 3.09 KB | 0644 |
|
| dmabrg.h | File | 536 B | 0644 |
|
| dwarf.h | File | 9.66 KB | 0644 |
|
| elf.h | File | 5.87 KB | 0644 |
|
| entry-macros.S | File | 1.85 KB | 0644 |
|
| extable.h | File | 135 B | 0644 |
|
| fixmap.h | File | 2.48 KB | 0644 |
|
| flat.h | File | 865 B | 0644 |
|
| fpu.h | File | 1.67 KB | 0644 |
|
| freq.h | File | 212 B | 0644 |
|
| ftrace.h | File | 1.41 KB | 0644 |
|
| futex-cas.h | File | 728 B | 0644 |
|
| futex-irq.h | File | 482 B | 0644 |
|
| futex-llsc.h | File | 870 B | 0644 |
|
| futex.h | File | 1.35 KB | 0644 |
|
| hardirq.h | File | 267 B | 0644 |
|
| hd64461.h | File | 11.79 KB | 0644 |
|
| heartbeat.h | File | 383 B | 0644 |
|
| hugetlb.h | File | 552 B | 0644 |
|
| hw_breakpoint.h | File | 1.99 KB | 0644 |
|
| hw_irq.h | File | 915 B | 0644 |
|
| i2c-sh7760.h | File | 406 B | 0644 |
|
| io.h | File | 8.88 KB | 0644 |
|
| io_generic.h | File | 661 B | 0644 |
|
| io_noioport.h | File | 1.25 KB | 0644 |
|
| io_trapped.h | File | 1.44 KB | 0644 |
|
| irq.h | File | 1.16 KB | 0644 |
|
| irqflags.h | File | 226 B | 0644 |
|
| kdebug.h | File | 433 B | 0644 |
|
| kexec.h | File | 2.62 KB | 0644 |
|
| kgdb.h | File | 851 B | 0644 |
|
| kprobes.h | File | 1.27 KB | 0644 |
|
| linkage.h | File | 154 B | 0644 |
|
| machvec.h | File | 699 B | 0644 |
|
| mmiowb.h | File | 246 B | 0644 |
|
| mmu.h | File | 2.18 KB | 0644 |
|
| mmu_context.h | File | 4.07 KB | 0644 |
|
| mmu_context_32.h | File | 1.11 KB | 0644 |
|
| mmzone.h | File | 970 B | 0644 |
|
| module.h | File | 276 B | 0644 |
|
| page.h | File | 4.6 KB | 0644 |
|
| pci.h | File | 2.78 KB | 0644 |
|
| perf_event.h | File | 797 B | 0644 |
|
| pgalloc.h | File | 1.13 KB | 0644 |
|
| pgtable-2level.h | File | 567 B | 0644 |
|
| pgtable-3level.h | File | 1.5 KB | 0644 |
|
| pgtable.h | File | 3.89 KB | 0644 |
|
| pgtable_32.h | File | 16.53 KB | 0644 |
|
| platform_early.h | File | 1.81 KB | 0644 |
|
| posix_types.h | File | 71 B | 0644 |
|
| processor.h | File | 4.22 KB | 0644 |
|
| processor_32.h | File | 4.41 KB | 0644 |
|
| ptrace.h | File | 3.74 KB | 0644 |
|
| ptrace_32.h | File | 307 B | 0644 |
|
| push-switch.h | File | 755 B | 0644 |
|
| reboot.h | File | 472 B | 0644 |
|
| romimage-macros.h | File | 1.1 KB | 0644 |
|
| rtc.h | File | 226 B | 0644 |
|
| seccomp.h | File | 546 B | 0644 |
|
| sections.h | File | 311 B | 0644 |
|
| setup.h | File | 764 B | 0644 |
|
| sfp-machine.h | File | 2.7 KB | 0644 |
|
| sh7760fb.h | File | 5.61 KB | 0644 |
|
| sh_bios.h | File | 743 B | 0644 |
|
| shmparam.h | File | 489 B | 0644 |
|
| siu.h | File | 385 B | 0644 |
|
| smc37c93x.h | File | 5.56 KB | 0644 |
|
| smp-ops.h | File | 1.02 KB | 0644 |
|
| smp.h | File | 1.8 KB | 0644 |
|
| sparsemem.h | File | 319 B | 0644 |
|
| spi.h | File | 265 B | 0644 |
|
| spinlock-cas.h | File | 1.95 KB | 0644 |
|
| spinlock-llsc.h | File | 4.05 KB | 0644 |
|
| spinlock.h | File | 438 B | 0644 |
|
| spinlock_types.h | File | 469 B | 0644 |
|
| sram.h | File | 670 B | 0644 |
|
| stackprotector.h | File | 532 B | 0644 |
|
| stacktrace.h | File | 528 B | 0644 |
|
| string.h | File | 66 B | 0644 |
|
| string_32.h | File | 2.16 KB | 0644 |
|
| suspend.h | File | 2.52 KB | 0644 |
|
| switch_to.h | File | 190 B | 0644 |
|
| switch_to_32.h | File | 3.55 KB | 0644 |
|
| syscall.h | File | 201 B | 0644 |
|
| syscall_32.h | File | 1.59 KB | 0644 |
|
| syscalls.h | File | 532 B | 0644 |
|
| syscalls_32.h | File | 979 B | 0644 |
|
| thread_info.h | File | 4.95 KB | 0644 |
|
| timex.h | File | 637 B | 0644 |
|
| tlb.h | File | 738 B | 0644 |
|
| tlbflush.h | File | 1.77 KB | 0644 |
|
| topology.h | File | 645 B | 0644 |
|
| traps.h | File | 424 B | 0644 |
|
| traps_32.h | File | 1.42 KB | 0644 |
|
| types.h | File | 332 B | 0644 |
|
| uaccess.h | File | 4.05 KB | 0644 |
|
| uaccess_32.h | File | 4.89 KB | 0644 |
|
| uncached.h | File | 1.34 KB | 0644 |
|
| unistd.h | File | 953 B | 0644 |
|
| unwinder.h | File | 856 B | 0644 |
|
| user.h | File | 2.19 KB | 0644 |
|
| vermagic.h | File | 709 B | 0644 |
|
| vmalloc.h | File | 84 B | 0644 |
|
| vmlinux.lds.h | File | 416 B | 0644 |
|
| watchdog.h | File | 3.89 KB | 0644 |
|
| word-at-a-time.h | File | 1.34 KB | 0644 |
|