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
22sys_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