diff options
author | kaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk> | 2003-03-12 00:15:31 +0000 |
---|---|---|
committer | kaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk> | 2003-03-12 00:15:31 +0000 |
commit | ee53d3b8685245febda44ac761877871ec4cd0f4 (patch) | |
tree | 67e5392c3f16c0716b3ca8356cd93cd244b58d4b /xenolinux-2.4.21-pre4-sparse/arch/xeno/lib/usercopy.c | |
parent | 7c2ffc6c5043e0a49fbe1b81f9da465ec68a9e64 (diff) | |
download | xen-ee53d3b8685245febda44ac761877871ec4cd0f4.tar.gz xen-ee53d3b8685245febda44ac761877871ec4cd0f4.tar.bz2 xen-ee53d3b8685245febda44ac761877871ec4cd0f4.zip |
bitkeeper revision 1.122.1.5 (3e6e7c23wQxW8Ugs0UKsqigrHkcXQg)
mkbuildtree:
new file
.del-hypervisor-ifs~86b59453fcfcbc0d:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/hypervisor-ifs
.del-usercopy.c~a4e3819a4723317b:
Delete: xenolinux-2.4.21-pre4-sparse/arch/xeno/lib/usercopy.c
.del-sys_i386.c~ad2d4399a2d28db9:
Delete: xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/sys_i386.c
.del-strstr.c~a59de40cfa231931:
Delete: xenolinux-2.4.21-pre4-sparse/arch/xeno/lib/strstr.c
.del-semaphore.c~e68c48eef7115b45:
Delete: xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/semaphore.c
.del-pageattr.c~f12f3a2d4d9a5533:
Delete: xenolinux-2.4.21-pre4-sparse/arch/xeno/mm/pageattr.c
.del-old-checksum.c~f071ac0bcd5b2d9a:
Delete: xenolinux-2.4.21-pre4-sparse/arch/xeno/lib/old-checksum.c
.del-mmx.c~c322b85572d0e637:
Delete: xenolinux-2.4.21-pre4-sparse/arch/xeno/lib/mmx.c
.del-memcpy.c~40a930c62e045f5:
Delete: xenolinux-2.4.21-pre4-sparse/arch/xeno/lib/memcpy.c
.del-iodebug.c~23f7b78313546ddc:
Delete: xenolinux-2.4.21-pre4-sparse/arch/xeno/lib/iodebug.c
.del-getuser.S~b9140bdb7786f6dc:
Delete: xenolinux-2.4.21-pre4-sparse/arch/xeno/lib/getuser.S
.del-extable.c~d3064107fd4524e5:
Delete: xenolinux-2.4.21-pre4-sparse/arch/xeno/mm/extable.c
.del-dec_and_lock.c~702a868529eefccf:
Delete: xenolinux-2.4.21-pre4-sparse/arch/xeno/lib/dec_and_lock.c
.del-checksum.S~a821c465832e250c:
Delete: xenolinux-2.4.21-pre4-sparse/arch/xeno/lib/checksum.S
.del-xor.h~998f147781a971b7:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/xor.h
.del-vga.h~45c4f65abf0d3704:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/vga.h
.del-user.h~dd2c2e4cf89a81:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/user.h
.del-unistd.h~33920ed4177b943c:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/unistd.h
.del-unaligned.h~535ed3d510980f67:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/unaligned.h
.del-ucontext.h~217079ee95a5eb94:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/ucontext.h
.del-uaccess.h~3681b94ef8d5a0f4:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/uaccess.h
.del-types.h~c4fb05b781c9652c:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/types.h
.del-tlb.h~6ad1bd639fc9d921:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/tlb.h
.del-timex.h~51d9b0c83c732bcc:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/timex.h
.del-termios.h~ccfbd8bcc37ae57d:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/termios.h
.del-termbits.h~438385b2cd8fd6b0:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/termbits.h
.del-string.h~673ad5d9e7f34adc:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/string.h
.del-string-486.h~365fff788bc1adf5:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/string-486.h
.del-statfs.h~65d9b1d7c4114f2e:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/statfs.h
.del-stat.h~c1aa8136a8e00c11:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/stat.h
.del-spinlock.h~ec9397b86265414c:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/spinlock.h
.del-softirq.h~587d767979e60f4a:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/softirq.h
.del-sockios.h~30f6e946644b28a4:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/sockios.h
.del-socket.h~4b1ff6de54a2e75:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/socket.h
.del-smplock.h~d5ea37028dfc0796:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/smplock.h
.del-signal.h~bff6ca682e48d282:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/signal.h
.del-siginfo.h~6e147c4b81453d48:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/siginfo.h
.del-sigcontext.h~15a1460eea0fc80d:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/sigcontext.h
.del-shmparam.h~97d1aa6d272dd55c:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/shmparam.h
.del-shmbuf.h~d92a8c2e377edd83:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/shmbuf.h
.del-setup.h~4250896c3e302c1d:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/setup.h
.del-serial.h~584ec6aaea6b0efc:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/serial.h
.del-sembuf.h~4fc6c36d718bc878:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/sembuf.h
.del-semaphore.h~90a0e3df1d186e71:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/semaphore.h
.del-ptrace.c~5c3f8d1f817aa462:
Delete: xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/ptrace.c
.del-init_task.c~319ec38b798d3c7c:
Delete: xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/init_task.c
.del-scatterlist.h~1988430d982706fb:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/scatterlist.h
.del-rwsem.h~548d272fd25fd023:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/rwsem.h
.del-rwlock.h~75a3e9a0d5b70d88:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/rwlock.h
.del-resource.h~4ac2e8ff9316f133:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/resource.h
.del-posix_types.h~14d068cffd4b8776:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/posix_types.h
.del-poll.h~15c1158844d735b:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/poll.h
.del-parport.h~ce6ec6eea26a26f:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/parport.h
.del-param.h~1fcb86dbbfaae433:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/param.h
.del-namei.h~f25c9c58c76cddf4:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/namei.h
.del-mtrr.h~375ef594799aeb34:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/mtrr.h
.del-msr.h~cbf3b3e52c9bed91:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/msr.h
.del-msgbuf.h~ab21bfe6a970c7d6:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/msgbuf.h
.del-mpspec.h~9a3c3e9cda38bf43:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/mpspec.h
.del-module.h~e271946131c6cf33:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/module.h
.del-mmx.h~bc63c7c24adb85ea:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/mmx.h
.del-mman.h~43ec3a0326f0d774:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/mman.h
.del-mca_dma.h~a4e495084d965428:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/mca_dma.h
.del-mc146818rtc.h~d7e968dbd77bc13a:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/mc146818rtc.h
.del-math_emu.h~fba78190435e5abd:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/math_emu.h
.del-locks.h~e022163a8c6f92:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/locks.h
.del-linux_logo.h~2034953cfe415a:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/linux_logo.h
.del-ldt.h~191ca1efbffba82a:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/ldt.h
.del-kmap_types.h~517fab0f9758f3b:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/kmap_types.h
.del-keyboard.h~b2a7fe4183f53eb0:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/keyboard.h
.del-ipcbuf.h~cee91af271f4ead9:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/ipcbuf.h
.del-ipc.h~f6063a09bec6a01e:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/ipc.h
.del-ioctls.h~cc185671abf46a0a:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/ioctls.h
.del-ioctl.h~8603eb7a7f9acbad:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/ioctl.h
.del-io_apic.h~9f66b09afe289021:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/io_apic.h
.del-init.h~9d30d474b845bc1:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/init.h
.del-ide.h~805c47c1a5ebf196:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/ide.h
.del-i387.h~3b360e96fea6fe7:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/i387.h
.del-hdreg.h~c4bbd6ffab3763d6:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/hdreg.h
.del-hardirq.h~9b375250fe601395:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/hardirq.h
.del-floppy.h~d6f10807cbe15906:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/floppy.h
.del-fcntl.h~ee3e644a21150dde:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/fcntl.h
.del-errno.h~bab55cfe5c4ff883:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/errno.h
.del-elf.h~af645629b45e7fe7:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/elf.h
.del-dma.h~938dff3f930de2e4:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/dma.h
.del-div64.h~aa6562c04bfaf412:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/div64.h
.del-delay.h~e3ba89df403d5622:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/delay.h
.del-debugreg.h~b3975b26e222b6c3:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/debugreg.h
.del-current.h~800e8314ee81c074:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/current.h
.del-cpufeature.h~89666e396b49acdd:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/cpufeature.h
.del-checksum.h~82af6c19c8cc4ff3:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/checksum.h
.del-cache.h~694ef1ffd8450db4:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/cache.h
.del-byteorder.h~f14ceb3575444d8a:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/byteorder.h
.del-boot.h~83206c92a8649e3f:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/boot.h
.del-bitops.h~e3c609f48d6cdb91:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/bitops.h
.del-atomic.h~328669154749bfad:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/atomic.h
.del-apicdef.h~2f13a4cfaa79d855:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/apicdef.h
.del-apic.h~2690e76edadb6a8:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/apic.h
.del-a.out.h~b638f33fa82e889d:
Delete: xenolinux-2.4.21-pre4-sparse/include/asm-xeno/a.out.h
Diffstat (limited to 'xenolinux-2.4.21-pre4-sparse/arch/xeno/lib/usercopy.c')
-rw-r--r-- | xenolinux-2.4.21-pre4-sparse/arch/xeno/lib/usercopy.c | 190 |
1 files changed, 0 insertions, 190 deletions
diff --git a/xenolinux-2.4.21-pre4-sparse/arch/xeno/lib/usercopy.c b/xenolinux-2.4.21-pre4-sparse/arch/xeno/lib/usercopy.c deleted file mode 100644 index d81fa81af8..0000000000 --- a/xenolinux-2.4.21-pre4-sparse/arch/xeno/lib/usercopy.c +++ /dev/null @@ -1,190 +0,0 @@ -/* - * User address space access functions. - * The non inlined parts of asm-i386/uaccess.h are here. - * - * Copyright 1997 Andi Kleen <ak@muc.de> - * Copyright 1997 Linus Torvalds - */ -#include <linux/config.h> -#include <asm/uaccess.h> -#include <asm/mmx.h> - -#ifdef CONFIG_X86_USE_3DNOW_AND_WORKS - -unsigned long -__generic_copy_to_user(void *to, const void *from, unsigned long n) -{ - if (access_ok(VERIFY_WRITE, to, n)) - { - if(n<512) - __copy_user(to,from,n); - else - mmx_copy_user(to,from,n); - } - return n; -} - -unsigned long -__generic_copy_from_user(void *to, const void *from, unsigned long n) -{ - if (access_ok(VERIFY_READ, from, n)) - { - if(n<512) - __copy_user_zeroing(to,from,n); - else - mmx_copy_user_zeroing(to, from, n); - } - else - memset(to, 0, n); - return n; -} - -#else - -unsigned long -__generic_copy_to_user(void *to, const void *from, unsigned long n) -{ - prefetch(from); - if (access_ok(VERIFY_WRITE, to, n)) - __copy_user(to,from,n); - return n; -} - -unsigned long -__generic_copy_from_user(void *to, const void *from, unsigned long n) -{ - prefetchw(to); - if (access_ok(VERIFY_READ, from, n)) - __copy_user_zeroing(to,from,n); - else - memset(to, 0, n); - return n; -} - -#endif - -/* - * Copy a null terminated string from userspace. - */ - -#define __do_strncpy_from_user(dst,src,count,res) \ -do { \ - int __d0, __d1, __d2; \ - __asm__ __volatile__( \ - " testl %1,%1\n" \ - " jz 2f\n" \ - "0: lodsb\n" \ - " stosb\n" \ - " testb %%al,%%al\n" \ - " jz 1f\n" \ - " decl %1\n" \ - " jnz 0b\n" \ - "1: subl %1,%0\n" \ - "2:\n" \ - ".section .fixup,\"ax\"\n" \ - "3: movl %5,%0\n" \ - " jmp 2b\n" \ - ".previous\n" \ - ".section __ex_table,\"a\"\n" \ - " .align 4\n" \ - " .long 0b,3b\n" \ - ".previous" \ - : "=d"(res), "=c"(count), "=&a" (__d0), "=&S" (__d1), \ - "=&D" (__d2) \ - : "i"(-EFAULT), "0"(count), "1"(count), "3"(src), "4"(dst) \ - : "memory"); \ -} while (0) - -long -__strncpy_from_user(char *dst, const char *src, long count) -{ - long res; - __do_strncpy_from_user(dst, src, count, res); - return res; -} - -long -strncpy_from_user(char *dst, const char *src, long count) -{ - long res = -EFAULT; - if (access_ok(VERIFY_READ, src, 1)) - __do_strncpy_from_user(dst, src, count, res); - return res; -} - - -/* - * Zero Userspace - */ - -#define __do_clear_user(addr,size) \ -do { \ - int __d0; \ - __asm__ __volatile__( \ - "0: rep; stosl\n" \ - " movl %2,%0\n" \ - "1: rep; stosb\n" \ - "2:\n" \ - ".section .fixup,\"ax\"\n" \ - "3: lea 0(%2,%0,4),%0\n" \ - " jmp 2b\n" \ - ".previous\n" \ - ".section __ex_table,\"a\"\n" \ - " .align 4\n" \ - " .long 0b,3b\n" \ - " .long 1b,2b\n" \ - ".previous" \ - : "=&c"(size), "=&D" (__d0) \ - : "r"(size & 3), "0"(size / 4), "1"(addr), "a"(0)); \ -} while (0) - -unsigned long -clear_user(void *to, unsigned long n) -{ - if (access_ok(VERIFY_WRITE, to, n)) - __do_clear_user(to, n); - return n; -} - -unsigned long -__clear_user(void *to, unsigned long n) -{ - __do_clear_user(to, n); - return n; -} - -/* - * Return the size of a string (including the ending 0) - * - * Return 0 on exception, a value greater than N if too long - */ - -long strnlen_user(const char *s, long n) -{ - unsigned long mask = -__addr_ok(s); - unsigned long res, tmp; - - __asm__ __volatile__( - " testl %0, %0\n" - " jz 3f\n" - " andl %0,%%ecx\n" - "0: repne; scasb\n" - " setne %%al\n" - " subl %%ecx,%0\n" - " addl %0,%%eax\n" - "1:\n" - ".section .fixup,\"ax\"\n" - "2: xorl %%eax,%%eax\n" - " jmp 1b\n" - "3: movb $1,%%al\n" - " jmp 1b\n" - ".previous\n" - ".section __ex_table,\"a\"\n" - " .align 4\n" - " .long 0b,2b\n" - ".previous" - :"=r" (n), "=D" (s), "=a" (res), "=c" (tmp) - :"0" (n), "1" (s), "2" (0), "3" (mask) - :"cc"); - return res & mask; -} |