diff options
Diffstat (limited to 'arch/tile/include')
-rw-r--r-- | arch/tile/include/asm/compat.h | 15 | ||||
-rw-r--r-- | arch/tile/include/asm/syscalls.h | 73 |
2 files changed, 30 insertions, 58 deletions
diff --git a/arch/tile/include/asm/compat.h b/arch/tile/include/asm/compat.h index 8b60ec8b2d19..c3ae570c0a5d 100644 --- a/arch/tile/include/asm/compat.h +++ b/arch/tile/include/asm/compat.h | |||
@@ -216,15 +216,16 @@ struct compat_siginfo; | |||
216 | struct compat_sigaltstack; | 216 | struct compat_sigaltstack; |
217 | long compat_sys_execve(const char __user *path, | 217 | long compat_sys_execve(const char __user *path, |
218 | const compat_uptr_t __user *argv, | 218 | const compat_uptr_t __user *argv, |
219 | const compat_uptr_t __user *envp); | 219 | const compat_uptr_t __user *envp, struct pt_regs *); |
220 | long compat_sys_rt_sigaction(int sig, struct compat_sigaction __user *act, | 220 | long compat_sys_rt_sigaction(int sig, struct compat_sigaction __user *act, |
221 | struct compat_sigaction __user *oact, | 221 | struct compat_sigaction __user *oact, |
222 | size_t sigsetsize); | 222 | size_t sigsetsize); |
223 | long compat_sys_rt_sigqueueinfo(int pid, int sig, | 223 | long compat_sys_rt_sigqueueinfo(int pid, int sig, |
224 | struct compat_siginfo __user *uinfo); | 224 | struct compat_siginfo __user *uinfo); |
225 | long compat_sys_rt_sigreturn(void); | 225 | long compat_sys_rt_sigreturn(struct pt_regs *); |
226 | long compat_sys_sigaltstack(const struct compat_sigaltstack __user *uss_ptr, | 226 | long compat_sys_sigaltstack(const struct compat_sigaltstack __user *uss_ptr, |
227 | struct compat_sigaltstack __user *uoss_ptr); | 227 | struct compat_sigaltstack __user *uoss_ptr, |
228 | struct pt_regs *); | ||
228 | long compat_sys_truncate64(char __user *filename, u32 dummy, u32 low, u32 high); | 229 | long compat_sys_truncate64(char __user *filename, u32 dummy, u32 low, u32 high); |
229 | long compat_sys_ftruncate64(unsigned int fd, u32 dummy, u32 low, u32 high); | 230 | long compat_sys_ftruncate64(unsigned int fd, u32 dummy, u32 low, u32 high); |
230 | long compat_sys_pread64(unsigned int fd, char __user *ubuf, size_t count, | 231 | long compat_sys_pread64(unsigned int fd, char __user *ubuf, size_t count, |
@@ -255,4 +256,12 @@ long tile_compat_sys_ptrace(compat_long_t request, compat_long_t pid, | |||
255 | /* Tilera Linux syscalls that don't have "compat" versions. */ | 256 | /* Tilera Linux syscalls that don't have "compat" versions. */ |
256 | #define compat_sys_flush_cache sys_flush_cache | 257 | #define compat_sys_flush_cache sys_flush_cache |
257 | 258 | ||
259 | /* These are the intvec_64.S trampolines. */ | ||
260 | long _compat_sys_execve(const char __user *path, | ||
261 | const compat_uptr_t __user *argv, | ||
262 | const compat_uptr_t __user *envp); | ||
263 | long _compat_sys_sigaltstack(const struct compat_sigaltstack __user *uss_ptr, | ||
264 | struct compat_sigaltstack __user *uoss_ptr); | ||
265 | long _compat_sys_rt_sigreturn(void); | ||
266 | |||
258 | #endif /* _ASM_TILE_COMPAT_H */ | 267 | #endif /* _ASM_TILE_COMPAT_H */ |
diff --git a/arch/tile/include/asm/syscalls.h b/arch/tile/include/asm/syscalls.h index ce99ffefeacf..3b5507c31eae 100644 --- a/arch/tile/include/asm/syscalls.h +++ b/arch/tile/include/asm/syscalls.h | |||
@@ -32,8 +32,9 @@ extern void *compat_sys_call_table[]; | |||
32 | 32 | ||
33 | /* | 33 | /* |
34 | * Note that by convention, any syscall which requires the current | 34 | * Note that by convention, any syscall which requires the current |
35 | * register set takes an additional "struct pt_regs *" pointer; the | 35 | * register set takes an additional "struct pt_regs *" pointer; a |
36 | * sys_xxx() function just adds the pointer and tail-calls to _sys_xxx(). | 36 | * _sys_xxx() trampoline in intvec*.S just sets up the pointer and |
37 | * jumps to sys_xxx(). | ||
37 | */ | 38 | */ |
38 | 39 | ||
39 | /* kernel/sys.c */ | 40 | /* kernel/sys.c */ |
@@ -43,66 +44,17 @@ long sys32_fadvise64(int fd, u32 offset_lo, u32 offset_hi, | |||
43 | int sys32_fadvise64_64(int fd, u32 offset_lo, u32 offset_hi, | 44 | int sys32_fadvise64_64(int fd, u32 offset_lo, u32 offset_hi, |
44 | u32 len_lo, u32 len_hi, int advice); | 45 | u32 len_lo, u32 len_hi, int advice); |
45 | long sys_flush_cache(void); | 46 | long sys_flush_cache(void); |
46 | long sys_mmap2(unsigned long addr, unsigned long len, | 47 | #ifndef __tilegx__ /* No mmap() in the 32-bit kernel. */ |
47 | unsigned long prot, unsigned long flags, | 48 | #define sys_mmap sys_mmap |
48 | unsigned long fd, unsigned long pgoff); | ||
49 | #ifdef __tilegx__ | ||
50 | long sys_mmap(unsigned long addr, unsigned long len, | ||
51 | unsigned long prot, unsigned long flags, | ||
52 | unsigned long fd, off_t pgoff); | ||
53 | #endif | 49 | #endif |
54 | 50 | ||
55 | /* kernel/process.c */ | ||
56 | long sys_clone(unsigned long clone_flags, unsigned long newsp, | ||
57 | void __user *parent_tid, void __user *child_tid); | ||
58 | long _sys_clone(unsigned long clone_flags, unsigned long newsp, | ||
59 | void __user *parent_tid, void __user *child_tid, | ||
60 | struct pt_regs *regs); | ||
61 | long sys_fork(void); | ||
62 | long _sys_fork(struct pt_regs *regs); | ||
63 | long sys_vfork(void); | ||
64 | long _sys_vfork(struct pt_regs *regs); | ||
65 | long sys_execve(const char __user *filename, | ||
66 | const char __user *const __user *argv, | ||
67 | const char __user *const __user *envp); | ||
68 | long _sys_execve(const char __user *filename, | ||
69 | const char __user *const __user *argv, | ||
70 | const char __user *const __user *envp, struct pt_regs *regs); | ||
71 | |||
72 | /* kernel/signal.c */ | ||
73 | long sys_sigaltstack(const stack_t __user *, stack_t __user *); | ||
74 | long _sys_sigaltstack(const stack_t __user *, stack_t __user *, | ||
75 | struct pt_regs *); | ||
76 | long sys_rt_sigreturn(void); | ||
77 | long _sys_rt_sigreturn(struct pt_regs *regs); | ||
78 | |||
79 | /* platform-independent functions */ | ||
80 | long sys_rt_sigsuspend(sigset_t __user *unewset, size_t sigsetsize); | ||
81 | long sys_rt_sigaction(int sig, const struct sigaction __user *act, | ||
82 | struct sigaction __user *oact, size_t sigsetsize); | ||
83 | |||
84 | #ifndef __tilegx__ | 51 | #ifndef __tilegx__ |
85 | /* mm/fault.c */ | 52 | /* mm/fault.c */ |
86 | int sys_cmpxchg_badaddr(unsigned long address); | 53 | long sys_cmpxchg_badaddr(unsigned long address, struct pt_regs *); |
87 | int _sys_cmpxchg_badaddr(unsigned long address, struct pt_regs *); | 54 | long _sys_cmpxchg_badaddr(unsigned long address); |
88 | #endif | 55 | #endif |
89 | 56 | ||
90 | #ifdef CONFIG_COMPAT | 57 | #ifdef CONFIG_COMPAT |
91 | long compat_sys_execve(const char __user *path, | ||
92 | const compat_uptr_t __user *argv, | ||
93 | const compat_uptr_t __user *envp); | ||
94 | long _compat_sys_execve(const char __user *path, | ||
95 | const compat_uptr_t __user *argv, | ||
96 | const compat_uptr_t __user *envp, | ||
97 | struct pt_regs *regs); | ||
98 | long compat_sys_sigaltstack(const struct compat_sigaltstack __user *uss_ptr, | ||
99 | struct compat_sigaltstack __user *uoss_ptr); | ||
100 | long _compat_sys_sigaltstack(const struct compat_sigaltstack __user *uss_ptr, | ||
101 | struct compat_sigaltstack __user *uoss_ptr, | ||
102 | struct pt_regs *regs); | ||
103 | long compat_sys_rt_sigreturn(void); | ||
104 | long _compat_sys_rt_sigreturn(struct pt_regs *regs); | ||
105 | |||
106 | /* These four are not defined for 64-bit, but serve as "compat" syscalls. */ | 58 | /* These four are not defined for 64-bit, but serve as "compat" syscalls. */ |
107 | long sys_fcntl64(unsigned int fd, unsigned int cmd, unsigned long arg); | 59 | long sys_fcntl64(unsigned int fd, unsigned int cmd, unsigned long arg); |
108 | long sys_fstat64(unsigned long fd, struct stat64 __user *statbuf); | 60 | long sys_fstat64(unsigned long fd, struct stat64 __user *statbuf); |
@@ -110,4 +62,15 @@ long sys_truncate64(const char __user *path, loff_t length); | |||
110 | long sys_ftruncate64(unsigned int fd, loff_t length); | 62 | long sys_ftruncate64(unsigned int fd, loff_t length); |
111 | #endif | 63 | #endif |
112 | 64 | ||
65 | /* These are the intvec*.S trampolines. */ | ||
66 | long _sys_sigaltstack(const stack_t __user *, stack_t __user *); | ||
67 | long _sys_rt_sigreturn(void); | ||
68 | long _sys_clone(unsigned long clone_flags, unsigned long newsp, | ||
69 | void __user *parent_tid, void __user *child_tid); | ||
70 | long _sys_execve(const char __user *filename, | ||
71 | const char __user *const __user *argv, | ||
72 | const char __user *const __user *envp); | ||
73 | |||
74 | #include <asm-generic/syscalls.h> | ||
75 | |||
113 | #endif /* _ASM_TILE_SYSCALLS_H */ | 76 | #endif /* _ASM_TILE_SYSCALLS_H */ |