diff options
author | Paul Mundt <lethal@linux-sh.org> | 2007-11-11 03:46:49 -0500 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2008-01-27 23:18:45 -0500 |
commit | 1b6cf8175e52cbda111ab8b590da6a1d093e9954 (patch) | |
tree | c21147bf2fd8c260e743a7100b0d63ca91a6f4d6 /arch/sh/kernel/syscalls_64.S | |
parent | 4c91d6b105af5ab3011158addbd23f038aee6a00 (diff) |
sh: Split out syscall ABI for _32 and _64 variants.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/kernel/syscalls_64.S')
-rw-r--r-- | arch/sh/kernel/syscalls_64.S | 381 |
1 files changed, 381 insertions, 0 deletions
diff --git a/arch/sh/kernel/syscalls_64.S b/arch/sh/kernel/syscalls_64.S new file mode 100644 index 000000000000..abb94c05d07a --- /dev/null +++ b/arch/sh/kernel/syscalls_64.S | |||
@@ -0,0 +1,381 @@ | |||
1 | /* | ||
2 | * arch/sh64/kernel/syscalls.S | ||
3 | * | ||
4 | * Copyright (C) 2000, 2001 Paolo Alberelli | ||
5 | * Copyright (C) 2004 - 2007 Paul Mundt | ||
6 | * Copyright (C) 2003, 2004 Richard Curnow | ||
7 | * | ||
8 | * This file is subject to the terms and conditions of the GNU General Public | ||
9 | * License. See the file "COPYING" in the main directory of this archive | ||
10 | * for more details. | ||
11 | */ | ||
12 | |||
13 | #include <linux/sys.h> | ||
14 | |||
15 | .section .data, "aw" | ||
16 | .balign 32 | ||
17 | |||
18 | /* | ||
19 | * System calls jump table | ||
20 | */ | ||
21 | .globl sys_call_table | ||
22 | sys_call_table: | ||
23 | .long sys_restart_syscall /* 0 - old "setup()" system call */ | ||
24 | .long sys_exit | ||
25 | .long sys_fork | ||
26 | .long sys_read | ||
27 | .long sys_write | ||
28 | .long sys_open /* 5 */ | ||
29 | .long sys_close | ||
30 | .long sys_waitpid | ||
31 | .long sys_creat | ||
32 | .long sys_link | ||
33 | .long sys_unlink /* 10 */ | ||
34 | .long sys_execve | ||
35 | .long sys_chdir | ||
36 | .long sys_time | ||
37 | .long sys_mknod | ||
38 | .long sys_chmod /* 15 */ | ||
39 | .long sys_lchown16 | ||
40 | .long sys_ni_syscall /* old break syscall holder */ | ||
41 | .long sys_stat | ||
42 | .long sys_lseek | ||
43 | .long sys_getpid /* 20 */ | ||
44 | .long sys_mount | ||
45 | .long sys_oldumount | ||
46 | .long sys_setuid16 | ||
47 | .long sys_getuid16 | ||
48 | .long sys_stime /* 25 */ | ||
49 | .long sh64_ptrace | ||
50 | .long sys_alarm | ||
51 | .long sys_fstat | ||
52 | .long sys_pause | ||
53 | .long sys_utime /* 30 */ | ||
54 | .long sys_ni_syscall /* old stty syscall holder */ | ||
55 | .long sys_ni_syscall /* old gtty syscall holder */ | ||
56 | .long sys_access | ||
57 | .long sys_nice | ||
58 | .long sys_ni_syscall /* 35 */ /* old ftime syscall holder */ | ||
59 | .long sys_sync | ||
60 | .long sys_kill | ||
61 | .long sys_rename | ||
62 | .long sys_mkdir | ||
63 | .long sys_rmdir /* 40 */ | ||
64 | .long sys_dup | ||
65 | .long sys_pipe | ||
66 | .long sys_times | ||
67 | .long sys_ni_syscall /* old prof syscall holder */ | ||
68 | .long sys_brk /* 45 */ | ||
69 | .long sys_setgid16 | ||
70 | .long sys_getgid16 | ||
71 | .long sys_signal | ||
72 | .long sys_geteuid16 | ||
73 | .long sys_getegid16 /* 50 */ | ||
74 | .long sys_acct | ||
75 | .long sys_umount /* recycled never used phys( */ | ||
76 | .long sys_ni_syscall /* old lock syscall holder */ | ||
77 | .long sys_ioctl | ||
78 | .long sys_fcntl /* 55 */ | ||
79 | .long sys_ni_syscall /* old mpx syscall holder */ | ||
80 | .long sys_setpgid | ||
81 | .long sys_ni_syscall /* old ulimit syscall holder */ | ||
82 | .long sys_ni_syscall /* sys_olduname */ | ||
83 | .long sys_umask /* 60 */ | ||
84 | .long sys_chroot | ||
85 | .long sys_ustat | ||
86 | .long sys_dup2 | ||
87 | .long sys_getppid | ||
88 | .long sys_getpgrp /* 65 */ | ||
89 | .long sys_setsid | ||
90 | .long sys_sigaction | ||
91 | .long sys_sgetmask | ||
92 | .long sys_ssetmask | ||
93 | .long sys_setreuid16 /* 70 */ | ||
94 | .long sys_setregid16 | ||
95 | .long sys_sigsuspend | ||
96 | .long sys_sigpending | ||
97 | .long sys_sethostname | ||
98 | .long sys_setrlimit /* 75 */ | ||
99 | .long sys_old_getrlimit | ||
100 | .long sys_getrusage | ||
101 | .long sys_gettimeofday | ||
102 | .long sys_settimeofday | ||
103 | .long sys_getgroups16 /* 80 */ | ||
104 | .long sys_setgroups16 | ||
105 | .long sys_ni_syscall /* sys_oldselect */ | ||
106 | .long sys_symlink | ||
107 | .long sys_lstat | ||
108 | .long sys_readlink /* 85 */ | ||
109 | .long sys_uselib | ||
110 | .long sys_swapon | ||
111 | .long sys_reboot | ||
112 | .long old_readdir | ||
113 | .long old_mmap /* 90 */ | ||
114 | .long sys_munmap | ||
115 | .long sys_truncate | ||
116 | .long sys_ftruncate | ||
117 | .long sys_fchmod | ||
118 | .long sys_fchown16 /* 95 */ | ||
119 | .long sys_getpriority | ||
120 | .long sys_setpriority | ||
121 | .long sys_ni_syscall /* old profil syscall holder */ | ||
122 | .long sys_statfs | ||
123 | .long sys_fstatfs /* 100 */ | ||
124 | .long sys_ni_syscall /* ioperm */ | ||
125 | .long sys_socketcall /* Obsolete implementation of socket syscall */ | ||
126 | .long sys_syslog | ||
127 | .long sys_setitimer | ||
128 | .long sys_getitimer /* 105 */ | ||
129 | .long sys_newstat | ||
130 | .long sys_newlstat | ||
131 | .long sys_newfstat | ||
132 | .long sys_uname | ||
133 | .long sys_ni_syscall /* 110 */ /* iopl */ | ||
134 | .long sys_vhangup | ||
135 | .long sys_ni_syscall /* idle */ | ||
136 | .long sys_ni_syscall /* vm86old */ | ||
137 | .long sys_wait4 | ||
138 | .long sys_swapoff /* 115 */ | ||
139 | .long sys_sysinfo | ||
140 | .long sys_ipc /* Obsolete ipc syscall implementation */ | ||
141 | .long sys_fsync | ||
142 | .long sys_sigreturn | ||
143 | .long sys_clone /* 120 */ | ||
144 | .long sys_setdomainname | ||
145 | .long sys_newuname | ||
146 | .long sys_ni_syscall /* sys_modify_ldt */ | ||
147 | .long sys_adjtimex | ||
148 | .long sys_mprotect /* 125 */ | ||
149 | .long sys_sigprocmask | ||
150 | .long sys_ni_syscall /* old "create_module" */ | ||
151 | .long sys_init_module | ||
152 | .long sys_delete_module | ||
153 | .long sys_ni_syscall /* 130: old "get_kernel_syms" */ | ||
154 | .long sys_quotactl | ||
155 | .long sys_getpgid | ||
156 | .long sys_fchdir | ||
157 | .long sys_bdflush | ||
158 | .long sys_sysfs /* 135 */ | ||
159 | .long sys_personality | ||
160 | .long sys_ni_syscall /* for afs_syscall */ | ||
161 | .long sys_setfsuid16 | ||
162 | .long sys_setfsgid16 | ||
163 | .long sys_llseek /* 140 */ | ||
164 | .long sys_getdents | ||
165 | .long sys_select | ||
166 | .long sys_flock | ||
167 | .long sys_msync | ||
168 | .long sys_readv /* 145 */ | ||
169 | .long sys_writev | ||
170 | .long sys_getsid | ||
171 | .long sys_fdatasync | ||
172 | .long sys_sysctl | ||
173 | .long sys_mlock /* 150 */ | ||
174 | .long sys_munlock | ||
175 | .long sys_mlockall | ||
176 | .long sys_munlockall | ||
177 | .long sys_sched_setparam | ||
178 | .long sys_sched_getparam /* 155 */ | ||
179 | .long sys_sched_setscheduler | ||
180 | .long sys_sched_getscheduler | ||
181 | .long sys_sched_yield | ||
182 | .long sys_sched_get_priority_max | ||
183 | .long sys_sched_get_priority_min /* 160 */ | ||
184 | .long sys_sched_rr_get_interval | ||
185 | .long sys_nanosleep | ||
186 | .long sys_mremap | ||
187 | .long sys_setresuid16 | ||
188 | .long sys_getresuid16 /* 165 */ | ||
189 | .long sys_ni_syscall /* vm86 */ | ||
190 | .long sys_ni_syscall /* old "query_module" */ | ||
191 | .long sys_poll | ||
192 | .long sys_nfsservctl | ||
193 | .long sys_setresgid16 /* 170 */ | ||
194 | .long sys_getresgid16 | ||
195 | .long sys_prctl | ||
196 | .long sys_rt_sigreturn | ||
197 | .long sys_rt_sigaction | ||
198 | .long sys_rt_sigprocmask /* 175 */ | ||
199 | .long sys_rt_sigpending | ||
200 | .long sys_rt_sigtimedwait | ||
201 | .long sys_rt_sigqueueinfo | ||
202 | .long sys_rt_sigsuspend | ||
203 | .long sys_pread64 /* 180 */ | ||
204 | .long sys_pwrite64 | ||
205 | .long sys_chown16 | ||
206 | .long sys_getcwd | ||
207 | .long sys_capget | ||
208 | .long sys_capset /* 185 */ | ||
209 | .long sys_sigaltstack | ||
210 | .long sys_sendfile | ||
211 | .long sys_ni_syscall /* streams1 */ | ||
212 | .long sys_ni_syscall /* streams2 */ | ||
213 | .long sys_vfork /* 190 */ | ||
214 | .long sys_getrlimit | ||
215 | .long sys_mmap2 | ||
216 | .long sys_truncate64 | ||
217 | .long sys_ftruncate64 | ||
218 | .long sys_stat64 /* 195 */ | ||
219 | .long sys_lstat64 | ||
220 | .long sys_fstat64 | ||
221 | .long sys_lchown | ||
222 | .long sys_getuid | ||
223 | .long sys_getgid /* 200 */ | ||
224 | .long sys_geteuid | ||
225 | .long sys_getegid | ||
226 | .long sys_setreuid | ||
227 | .long sys_setregid | ||
228 | .long sys_getgroups /* 205 */ | ||
229 | .long sys_setgroups | ||
230 | .long sys_fchown | ||
231 | .long sys_setresuid | ||
232 | .long sys_getresuid | ||
233 | .long sys_setresgid /* 210 */ | ||
234 | .long sys_getresgid | ||
235 | .long sys_chown | ||
236 | .long sys_setuid | ||
237 | .long sys_setgid | ||
238 | .long sys_setfsuid /* 215 */ | ||
239 | .long sys_setfsgid | ||
240 | .long sys_pivot_root | ||
241 | .long sys_mincore | ||
242 | .long sys_madvise | ||
243 | /* Broken-out socket family (maintain backwards compatibility in syscall | ||
244 | numbering with 2.4) */ | ||
245 | .long sys_socket /* 220 */ | ||
246 | .long sys_bind | ||
247 | .long sys_connect | ||
248 | .long sys_listen | ||
249 | .long sys_accept | ||
250 | .long sys_getsockname /* 225 */ | ||
251 | .long sys_getpeername | ||
252 | .long sys_socketpair | ||
253 | .long sys_send | ||
254 | .long sys_sendto | ||
255 | .long sys_recv /* 230*/ | ||
256 | .long sys_recvfrom | ||
257 | .long sys_shutdown | ||
258 | .long sys_setsockopt | ||
259 | .long sys_getsockopt | ||
260 | .long sys_sendmsg /* 235 */ | ||
261 | .long sys_recvmsg | ||
262 | /* Broken-out IPC family (maintain backwards compatibility in syscall | ||
263 | numbering with 2.4) */ | ||
264 | .long sys_semop | ||
265 | .long sys_semget | ||
266 | .long sys_semctl | ||
267 | .long sys_msgsnd /* 240 */ | ||
268 | .long sys_msgrcv | ||
269 | .long sys_msgget | ||
270 | .long sys_msgctl | ||
271 | .long sys_shmat | ||
272 | .long sys_shmdt /* 245 */ | ||
273 | .long sys_shmget | ||
274 | .long sys_shmctl | ||
275 | /* Rest of syscalls listed in 2.4 i386 unistd.h */ | ||
276 | .long sys_getdents64 | ||
277 | .long sys_fcntl64 | ||
278 | .long sys_ni_syscall /* 250 reserved for TUX */ | ||
279 | .long sys_ni_syscall /* Reserved for Security */ | ||
280 | .long sys_gettid | ||
281 | .long sys_readahead | ||
282 | .long sys_setxattr | ||
283 | .long sys_lsetxattr /* 255 */ | ||
284 | .long sys_fsetxattr | ||
285 | .long sys_getxattr | ||
286 | .long sys_lgetxattr | ||
287 | .long sys_fgetxattr | ||
288 | .long sys_listxattr /* 260 */ | ||
289 | .long sys_llistxattr | ||
290 | .long sys_flistxattr | ||
291 | .long sys_removexattr | ||
292 | .long sys_lremovexattr | ||
293 | .long sys_fremovexattr /* 265 */ | ||
294 | .long sys_tkill | ||
295 | .long sys_sendfile64 | ||
296 | .long sys_futex | ||
297 | .long sys_sched_setaffinity | ||
298 | .long sys_sched_getaffinity /* 270 */ | ||
299 | .long sys_ni_syscall | ||
300 | .long sys_ni_syscall | ||
301 | .long sys_io_setup | ||
302 | .long sys_io_destroy | ||
303 | .long sys_io_getevents /* 275 */ | ||
304 | .long sys_io_submit | ||
305 | .long sys_io_cancel | ||
306 | .long sys_fadvise64 | ||
307 | .long sys_ni_syscall | ||
308 | .long sys_exit_group /* 280 */ | ||
309 | /* Rest of new 2.6 syscalls */ | ||
310 | .long sys_lookup_dcookie | ||
311 | .long sys_epoll_create | ||
312 | .long sys_epoll_ctl | ||
313 | .long sys_epoll_wait | ||
314 | .long sys_remap_file_pages /* 285 */ | ||
315 | .long sys_set_tid_address | ||
316 | .long sys_timer_create | ||
317 | .long sys_timer_settime | ||
318 | .long sys_timer_gettime | ||
319 | .long sys_timer_getoverrun /* 290 */ | ||
320 | .long sys_timer_delete | ||
321 | .long sys_clock_settime | ||
322 | .long sys_clock_gettime | ||
323 | .long sys_clock_getres | ||
324 | .long sys_clock_nanosleep /* 295 */ | ||
325 | .long sys_statfs64 | ||
326 | .long sys_fstatfs64 | ||
327 | .long sys_tgkill | ||
328 | .long sys_utimes | ||
329 | .long sys_fadvise64_64 /* 300 */ | ||
330 | .long sys_ni_syscall /* Reserved for vserver */ | ||
331 | .long sys_ni_syscall /* Reserved for mbind */ | ||
332 | .long sys_ni_syscall /* get_mempolicy */ | ||
333 | .long sys_ni_syscall /* set_mempolicy */ | ||
334 | .long sys_mq_open /* 305 */ | ||
335 | .long sys_mq_unlink | ||
336 | .long sys_mq_timedsend | ||
337 | .long sys_mq_timedreceive | ||
338 | .long sys_mq_notify | ||
339 | .long sys_mq_getsetattr /* 310 */ | ||
340 | .long sys_ni_syscall /* Reserved for kexec */ | ||
341 | .long sys_waitid | ||
342 | .long sys_add_key | ||
343 | .long sys_request_key | ||
344 | .long sys_keyctl /* 315 */ | ||
345 | .long sys_ioprio_set | ||
346 | .long sys_ioprio_get | ||
347 | .long sys_inotify_init | ||
348 | .long sys_inotify_add_watch | ||
349 | .long sys_inotify_rm_watch /* 320 */ | ||
350 | .long sys_ni_syscall | ||
351 | .long sys_migrate_pages | ||
352 | .long sys_openat | ||
353 | .long sys_mkdirat | ||
354 | .long sys_mknodat /* 325 */ | ||
355 | .long sys_fchownat | ||
356 | .long sys_futimesat | ||
357 | .long sys_fstatat64 | ||
358 | .long sys_unlinkat | ||
359 | .long sys_renameat /* 330 */ | ||
360 | .long sys_linkat | ||
361 | .long sys_symlinkat | ||
362 | .long sys_readlinkat | ||
363 | .long sys_fchmodat | ||
364 | .long sys_faccessat /* 335 */ | ||
365 | .long sys_pselect6 | ||
366 | .long sys_ppoll | ||
367 | .long sys_unshare | ||
368 | .long sys_set_robust_list | ||
369 | .long sys_get_robust_list /* 340 */ | ||
370 | .long sys_splice | ||
371 | .long sys_sync_file_range | ||
372 | .long sys_tee | ||
373 | .long sys_vmsplice | ||
374 | .long sys_move_pages /* 345 */ | ||
375 | .long sys_getcpu | ||
376 | .long sys_epoll_pwait | ||
377 | .long sys_utimensat | ||
378 | .long sys_signalfd | ||
379 | .long sys_timerfd /* 350 */ | ||
380 | .long sys_eventfd | ||
381 | .long sys_fallocate | ||