Commit | Line | Data |
---|---|---|
1da177e4 LT |
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 | */ |