diff options
Diffstat (limited to 'arch/um/kernel/skas/include/uaccess-skas.h')
-rw-r--r-- | arch/um/kernel/skas/include/uaccess-skas.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/arch/um/kernel/skas/include/uaccess-skas.h b/arch/um/kernel/skas/include/uaccess-skas.h new file mode 100644 index 000000000000..11986c9b9ddf --- /dev/null +++ b/arch/um/kernel/skas/include/uaccess-skas.h | |||
@@ -0,0 +1,45 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2002 Jeff Dike (jdike@karaya.com) | ||
3 | * Licensed under the GPL | ||
4 | */ | ||
5 | |||
6 | #ifndef __SKAS_UACCESS_H | ||
7 | #define __SKAS_UACCESS_H | ||
8 | |||
9 | #include "asm/errno.h" | ||
10 | #include "asm/fixmap.h" | ||
11 | |||
12 | #define access_ok_skas(type, addr, size) \ | ||
13 | ((segment_eq(get_fs(), KERNEL_DS)) || \ | ||
14 | (((unsigned long) (addr) < TASK_SIZE) && \ | ||
15 | ((unsigned long) (addr) + (size) <= TASK_SIZE)) || \ | ||
16 | ((type == VERIFY_READ ) && \ | ||
17 | ((unsigned long) (addr) >= FIXADDR_USER_START) && \ | ||
18 | ((unsigned long) (addr) + (size) <= FIXADDR_USER_END) && \ | ||
19 | ((unsigned long) (addr) + (size) >= (unsigned long)(addr)))) | ||
20 | |||
21 | static inline int verify_area_skas(int type, const void * addr, | ||
22 | unsigned long size) | ||
23 | { | ||
24 | return(access_ok_skas(type, addr, size) ? 0 : -EFAULT); | ||
25 | } | ||
26 | |||
27 | extern int copy_from_user_skas(void *to, const void *from, int n); | ||
28 | extern int copy_to_user_skas(void *to, const void *from, int n); | ||
29 | extern int strncpy_from_user_skas(char *dst, const char *src, int count); | ||
30 | extern int __clear_user_skas(void *mem, int len); | ||
31 | extern int clear_user_skas(void *mem, int len); | ||
32 | extern int strnlen_user_skas(const void *str, int len); | ||
33 | |||
34 | #endif | ||
35 | |||
36 | /* | ||
37 | * Overrides for Emacs so that we follow Linus's tabbing style. | ||
38 | * Emacs will notice this stuff at the end of the file and automatically | ||
39 | * adjust the settings for this buffer only. This must remain at the end | ||
40 | * of the file. | ||
41 | * --------------------------------------------------------------------------- | ||
42 | * Local variables: | ||
43 | * c-file-style: "linux" | ||
44 | * End: | ||
45 | */ | ||