404

[ Avaa Bypassed ]




Upload:

Command:

botdev@3.17.65.101: ~ $
/*
 *  Copyright (C) 2011 Texas Instruments Incorporated
 *  Author: Mark Salter <msalter@redhat.com>
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License version 2 as
 *  published by the Free Software Foundation.
 */
#ifndef _ASM_C6X_UACCESS_H
#define _ASM_C6X_UACCESS_H

#include <linux/types.h>
#include <linux/compiler.h>
#include <linux/string.h>

/*
 * C6X supports unaligned 32 and 64 bit loads and stores.
 */
static inline __must_check unsigned long
raw_copy_from_user(void *to, const void __user *from, unsigned long n)
{
	u32 tmp32;
	u64 tmp64;

	if (__builtin_constant_p(n)) {
		switch (n) {
		case 1:
			*(u8 *)to = *(u8 __force *)from;
			return 0;
		case 4:
			asm volatile ("ldnw .d1t1 *%2,%0\n"
				      "nop  4\n"
				      "stnw .d1t1 %0,*%1\n"
				      : "=&a"(tmp32)
				      : "A"(to), "a"(from)
				      : "memory");
			return 0;
		case 8:
			asm volatile ("ldndw .d1t1 *%2,%0\n"
				      "nop   4\n"
				      "stndw .d1t1 %0,*%1\n"
				      : "=&a"(tmp64)
				      : "a"(to), "a"(from)
				      : "memory");
			return 0;
		default:
			break;
		}
	}

	memcpy(to, (const void __force *)from, n);
	return 0;
}

static inline __must_check unsigned long
raw_copy_to_user(void __user *to, const void *from, unsigned long n)
{
	u32 tmp32;
	u64 tmp64;

	if (__builtin_constant_p(n)) {
		switch (n) {
		case 1:
			*(u8 __force *)to = *(u8 *)from;
			return 0;
		case 4:
			asm volatile ("ldnw .d1t1 *%2,%0\n"
				      "nop  4\n"
				      "stnw .d1t1 %0,*%1\n"
				      : "=&a"(tmp32)
				      : "a"(to), "a"(from)
				      : "memory");
			return 0;
		case 8:
			asm volatile ("ldndw .d1t1 *%2,%0\n"
				      "nop   4\n"
				      "stndw .d1t1 %0,*%1\n"
				      : "=&a"(tmp64)
				      : "a"(to), "a"(from)
				      : "memory");
			return 0;
		default:
			break;
		}
	}

	memcpy((void __force *)to, from, n);
	return 0;
}
#define INLINE_COPY_FROM_USER
#define INLINE_COPY_TO_USER

extern int _access_ok(unsigned long addr, unsigned long size);
#ifdef CONFIG_ACCESS_CHECK
#define __access_ok _access_ok
#endif

#include <asm-generic/uaccess.h>

#endif /* _ASM_C6X_UACCESS_H */

Filemanager

Name Type Size Permission Actions
Kbuild File 865 B 0644
asm-offsets.h File 35 B 0644
bitops.h File 2.17 KB 0644
bug.h File 705 B 0644
cache.h File 3.1 KB 0644
cacheflush.h File 2.05 KB 0644
checksum.h File 947 B 0644
clock.h File 3.51 KB 0644
cmpxchg.h File 1.57 KB 0644
delay.h File 1.67 KB 0644
dma-mapping.h File 911 B 0644
dscr.h File 909 B 0644
elf.h File 3.18 KB 0644
flat.h File 677 B 0644
ftrace.h File 97 B 0644
hardirq.h File 572 B 0644
irq.h File 1.59 KB 0644
irqflags.h File 1.67 KB 0644
linkage.h File 497 B 0644
megamod-pic.h File 213 B 0644
module.h File 639 B 0644
page.h File 312 B 0644
pgtable.h File 2.29 KB 0644
processor.h File 3.31 KB 0644
procinfo.h File 673 B 0644
ptrace.h File 998 B 0644
sections.h File 287 B 0644
setup.h File 914 B 0644
soc.h File 929 B 0644
special_insns.h File 1.82 KB 0644
string.h File 616 B 0644
switch_to.h File 992 B 0644
syscall.h File 2.2 KB 0644
syscalls.h File 1.73 KB 0644
thread_info.h File 2.63 KB 0644
timer64.h File 154 B 0644
timex.h File 867 B 0644
tlb.h File 192 B 0644
traps.h File 1.29 KB 0644
uaccess.h File 2.14 KB 0644
unaligned.h File 4.63 KB 0644