Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus
[linux-2.6] / arch / sparc64 / kernel / systbls.S
1 /* systbls.S: System call entry point tables for OS compatibility.
2  *            The native Linux system call table lives here also.
3  *
4  * Copyright (C) 1995, 1996, 2007 David S. Miller (davem@davemloft.net)
5  * Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
6  *
7  * Based upon preliminary work which is:
8  *
9  * Copyright (C) 1995 Adrian M. Rodriguez (adrian@remus.rutgers.edu)
10  */
11
12
13         .text
14         .align  4
15
16 #ifdef CONFIG_COMPAT
17         /* First, the 32-bit Linux native syscall table. */
18
19         .globl sys_call_table32
20 sys_call_table32:
21 /*0*/   .word sys_restart_syscall, sys32_exit, sys_fork, sys_read, sys_write
22 /*5*/   .word sys32_open, sys_close, sys32_wait4, sys32_creat, sys_link
23 /*10*/  .word sys_unlink, sunos_execv, sys_chdir, sys32_chown16, sys32_mknod
24 /*15*/  .word sys_chmod, sys32_lchown16, sparc_brk, sys32_perfctr, sys32_lseek
25 /*20*/  .word sys_getpid, sys_capget, sys_capset, sys32_setuid16, sys32_getuid16
26 /*25*/  .word sys32_vmsplice, sys_ptrace, sys_alarm, sys32_sigaltstack, sys32_pause
27 /*30*/  .word compat_sys_utime, sys_lchown, sys_fchown, sys32_access, sys32_nice
28         .word sys_chown, sys_sync, sys32_kill, compat_sys_newstat, sys32_sendfile
29 /*40*/  .word compat_sys_newlstat, sys_dup, sys_pipe, compat_sys_times, sys_getuid
30         .word sys32_umount, sys32_setgid16, sys32_getgid16, sys32_signal, sys32_geteuid16
31 /*50*/  .word sys32_getegid16, sys_acct, sys_nis_syscall, sys_getgid, compat_sys_ioctl
32         .word sys32_reboot, sys32_mmap2, sys_symlink, sys32_readlink, sys32_execve
33 /*60*/  .word sys32_umask, sys_chroot, compat_sys_newfstat, compat_sys_fstat64, sys_getpagesize
34         .word sys32_msync, sys_vfork, sys32_pread64, sys32_pwrite64, sys_geteuid
35 /*70*/  .word sys_getegid, sys_mmap, sys_setreuid, sys_munmap, sys_mprotect
36         .word sys_madvise, sys_vhangup, sys32_truncate64, sys_mincore, sys32_getgroups16
37 /*80*/  .word sys32_setgroups16, sys_getpgrp, sys32_setgroups, sys32_setitimer, sys32_ftruncate64
38         .word sys32_swapon, sys32_getitimer, sys_setuid, sys32_sethostname, sys_setgid
39 /*90*/  .word sys_dup2, sys_setfsuid, compat_sys_fcntl, sys32_select, sys_setfsgid
40         .word sys_fsync, sys32_setpriority, sys_nis_syscall, sys_nis_syscall, sys_nis_syscall
41 /*100*/ .word sys32_getpriority, sys32_rt_sigreturn, sys32_rt_sigaction, sys32_rt_sigprocmask, sys32_rt_sigpending
42         .word compat_sys_rt_sigtimedwait, sys32_rt_sigqueueinfo, compat_sys_rt_sigsuspend, sys_setresuid, sys_getresuid
43 /*110*/ .word sys_setresgid, sys_getresgid, sys_setregid, sys_nis_syscall, sys_nis_syscall
44         .word sys32_getgroups, sys32_gettimeofday, sys32_getrusage, sys_nis_syscall, sys_getcwd
45 /*120*/ .word compat_sys_readv, compat_sys_writev, sys32_settimeofday, sys32_fchown16, sys_fchmod
46         .word sys_nis_syscall, sys32_setreuid16, sys32_setregid16, sys_rename, sys_truncate
47 /*130*/ .word sys_ftruncate, sys_flock, compat_sys_lstat64, sys_nis_syscall, sys_nis_syscall
48         .word sys_nis_syscall, sys32_mkdir, sys_rmdir, sys32_utimes, compat_sys_stat64
49 /*140*/ .word sys32_sendfile64, sys_nis_syscall, sys32_futex, sys_gettid, compat_sys_getrlimit
50         .word compat_sys_setrlimit, sys_pivot_root, sys32_prctl, sys_pciconfig_read, sys_pciconfig_write
51 /*150*/ .word sys_nis_syscall, sys_inotify_init, sys_inotify_add_watch, sys_poll, sys_getdents64
52         .word compat_sys_fcntl64, sys_inotify_rm_watch, compat_sys_statfs, compat_sys_fstatfs, sys_oldumount
53 /*160*/ .word compat_sys_sched_setaffinity, compat_sys_sched_getaffinity, sys32_getdomainname, sys32_setdomainname, sys_nis_syscall
54         .word sys_quotactl, sys_set_tid_address, compat_sys_mount, sys_ustat, sys32_setxattr
55 /*170*/ .word sys32_lsetxattr, sys32_fsetxattr, sys_getxattr, sys_lgetxattr, compat_sys_getdents
56         .word sys_setsid, sys_fchdir, sys32_fgetxattr, sys_listxattr, sys_llistxattr
57 /*180*/ .word sys32_flistxattr, sys_removexattr, sys_lremovexattr, compat_sys_sigpending, sys_ni_syscall
58         .word sys32_setpgid, sys32_fremovexattr, sys32_tkill, sys32_exit_group, sparc64_newuname
59 /*190*/ .word sys32_init_module, sparc64_personality, sys_remap_file_pages, sys32_epoll_create, sys32_epoll_ctl
60         .word sys32_epoll_wait, sys32_ioprio_set, sys_getppid, sys32_sigaction, sys_sgetmask
61 /*200*/ .word sys32_ssetmask, sys_sigsuspend, compat_sys_newlstat, sys_uselib, compat_sys_old_readdir
62         .word sys32_readahead, sys32_socketcall, sys32_syslog, sys32_lookup_dcookie, sys32_fadvise64
63 /*210*/ .word sys32_fadvise64_64, sys32_tgkill, sys32_waitpid, sys_swapoff, compat_sys_sysinfo
64         .word compat_sys_ipc, sys32_sigreturn, sys_clone, sys32_ioprio_get, compat_sys_adjtimex
65 /*220*/ .word sys32_sigprocmask, sys_ni_syscall, sys32_delete_module, sys_ni_syscall, sys32_getpgid
66         .word sys32_bdflush, sys32_sysfs, sys_nis_syscall, sys32_setfsuid16, sys32_setfsgid16
67 /*230*/ .word sys32_select, compat_sys_time, sys32_splice, compat_sys_stime, compat_sys_statfs64
68         .word compat_sys_fstatfs64, sys_llseek, sys_mlock, sys_munlock, sys32_mlockall
69 /*240*/ .word sys_munlockall, sys32_sched_setparam, sys32_sched_getparam, sys32_sched_setscheduler, sys32_sched_getscheduler
70         .word sys_sched_yield, sys32_sched_get_priority_max, sys32_sched_get_priority_min, sys32_sched_rr_get_interval, compat_sys_nanosleep
71 /*250*/ .word sys32_mremap, sys32_sysctl, sys32_getsid, sys_fdatasync, sys32_nfsservctl
72         .word sys32_sync_file_range, compat_sys_clock_settime, compat_sys_clock_gettime, compat_sys_clock_getres, sys32_clock_nanosleep
73 /*260*/ .word compat_sys_sched_getaffinity, compat_sys_sched_setaffinity, sys32_timer_settime, compat_sys_timer_gettime, sys_timer_getoverrun
74         .word sys_timer_delete, compat_sys_timer_create, sys_ni_syscall, compat_sys_io_setup, sys_io_destroy
75 /*270*/ .word sys32_io_submit, sys_io_cancel, compat_sys_io_getevents, sys32_mq_open, sys_mq_unlink
76         .word compat_sys_mq_timedsend, compat_sys_mq_timedreceive, compat_sys_mq_notify, compat_sys_mq_getsetattr, compat_sys_waitid
77 /*280*/ .word sys32_tee, sys_add_key, sys_request_key, sys_keyctl, compat_sys_openat
78         .word sys_mkdirat, sys_mknodat, sys_fchownat, compat_sys_futimesat, compat_sys_fstatat64
79 /*290*/ .word sys_unlinkat, sys_renameat, sys_linkat, sys_symlinkat, sys_readlinkat
80         .word sys_fchmodat, sys_faccessat, compat_sys_pselect6, compat_sys_ppoll, sys_unshare
81 /*300*/ .word compat_sys_set_robust_list, compat_sys_get_robust_list, compat_sys_migrate_pages, compat_sys_mbind, compat_sys_get_mempolicy
82         .word compat_sys_set_mempolicy, compat_sys_kexec_load, compat_sys_move_pages, sys_getcpu, compat_sys_epoll_pwait
83 /*310*/ .word compat_sys_utimensat, compat_sys_signalfd, compat_sys_timerfd, sys_eventfd, compat_sys_fallocate
84
85 #endif /* CONFIG_COMPAT */
86
87         /* Now the 64-bit native Linux syscall table. */
88
89         .align  4
90         .globl sys_call_table64, sys_call_table
91 sys_call_table64:
92 sys_call_table:
93 /*0*/   .word sys_restart_syscall, sparc_exit, sys_fork, sys_read, sys_write
94 /*5*/   .word sys_open, sys_close, sys_wait4, sys_creat, sys_link
95 /*10*/  .word sys_unlink, sys_nis_syscall, sys_chdir, sys_chown, sys_mknod
96 /*15*/  .word sys_chmod, sys_lchown, sparc_brk, sys_perfctr, sys_lseek
97 /*20*/  .word sys_getpid, sys_capget, sys_capset, sys_setuid, sys_getuid
98 /*25*/  .word sys_vmsplice, sys_ptrace, sys_alarm, sys_sigaltstack, sys_nis_syscall
99 /*30*/  .word sys_utime, sys_nis_syscall, sys_nis_syscall, sys_access, sys_nice
100         .word sys_nis_syscall, sys_sync, sys_kill, sys_newstat, sys_sendfile64
101 /*40*/  .word sys_newlstat, sys_dup, sys_pipe, sys_times, sys_nis_syscall
102         .word sys_umount, sys_setgid, sys_getgid, sys_signal, sys_geteuid
103 /*50*/  .word sys_getegid, sys_acct, sys_memory_ordering, sys_nis_syscall, sys_ioctl
104         .word sys_reboot, sys_nis_syscall, sys_symlink, sys_readlink, sys_execve
105 /*60*/  .word sys_umask, sys_chroot, sys_newfstat, sys_fstat64, sys_getpagesize
106         .word sys_msync, sys_vfork, sys_pread64, sys_pwrite64, sys_nis_syscall
107 /*70*/  .word sys_nis_syscall, sys_mmap, sys_nis_syscall, sys64_munmap, sys_mprotect
108         .word sys_madvise, sys_vhangup, sys_nis_syscall, sys_mincore, sys_getgroups
109 /*80*/  .word sys_setgroups, sys_getpgrp, sys_nis_syscall, sys_setitimer, sys_nis_syscall
110         .word sys_swapon, sys_getitimer, sys_nis_syscall, sys_sethostname, sys_nis_syscall
111 /*90*/  .word sys_dup2, sys_nis_syscall, sys_fcntl, sys_select, sys_nis_syscall
112         .word sys_fsync, sys_setpriority, sys_socket, sys_connect, sys_accept
113 /*100*/ .word sys_getpriority, sys_rt_sigreturn, sys_rt_sigaction, sys_rt_sigprocmask, sys_rt_sigpending
114         .word sys_rt_sigtimedwait, sys_rt_sigqueueinfo, sys_rt_sigsuspend, sys_setresuid, sys_getresuid
115 /*110*/ .word sys_setresgid, sys_getresgid, sys_nis_syscall, sys_recvmsg, sys_sendmsg
116         .word sys_nis_syscall, sys_gettimeofday, sys_getrusage, sys_getsockopt, sys_getcwd
117 /*120*/ .word sys_readv, sys_writev, sys_settimeofday, sys_fchown, sys_fchmod
118         .word sys_recvfrom, sys_setreuid, sys_setregid, sys_rename, sys_truncate
119 /*130*/ .word sys_ftruncate, sys_flock, sys_lstat64, sys_sendto, sys_shutdown
120         .word sys_socketpair, sys_mkdir, sys_rmdir, sys_utimes, sys_stat64
121 /*140*/ .word sys_sendfile64, sys_getpeername, sys_futex, sys_gettid, sys_getrlimit
122         .word sys_setrlimit, sys_pivot_root, sys_prctl, sys_pciconfig_read, sys_pciconfig_write
123 /*150*/ .word sys_getsockname, sys_inotify_init, sys_inotify_add_watch, sys_poll, sys_getdents64
124         .word sys_nis_syscall, sys_inotify_rm_watch, sys_statfs, sys_fstatfs, sys_oldumount
125 /*160*/ .word sys_sched_setaffinity, sys_sched_getaffinity, sys_getdomainname, sys_setdomainname, sys_utrap_install
126         .word sys_quotactl, sys_set_tid_address, sys_mount, sys_ustat, sys_setxattr
127 /*170*/ .word sys_lsetxattr, sys_fsetxattr, sys_getxattr, sys_lgetxattr, sys_getdents
128         .word sys_setsid, sys_fchdir, sys_fgetxattr, sys_listxattr, sys_llistxattr
129 /*180*/ .word sys_flistxattr, sys_removexattr, sys_lremovexattr, sys_nis_syscall, sys_ni_syscall
130         .word sys_setpgid, sys_fremovexattr, sys_tkill, sys_exit_group, sparc64_newuname
131 /*190*/ .word sys_init_module, sparc64_personality, sys_remap_file_pages, sys_epoll_create, sys_epoll_ctl
132         .word sys_epoll_wait, sys_ioprio_set, sys_getppid, sys_nis_syscall, sys_sgetmask
133 /*200*/ .word sys_ssetmask, sys_nis_syscall, sys_newlstat, sys_uselib, sys_nis_syscall
134         .word sys_readahead, sys_socketcall, sys_syslog, sys_lookup_dcookie, sys_fadvise64
135 /*210*/ .word sys_fadvise64_64, sys_tgkill, sys_waitpid, sys_swapoff, sys_sysinfo
136         .word sys_ipc, sys_nis_syscall, sys_clone, sys_ioprio_get, sys_adjtimex
137 /*220*/ .word sys_nis_syscall, sys_ni_syscall, sys_delete_module, sys_ni_syscall, sys_getpgid
138         .word sys_bdflush, sys_sysfs, sys_nis_syscall, sys_setfsuid, sys_setfsgid
139 /*230*/ .word sys_select, sys_nis_syscall, sys_splice, sys_stime, sys_statfs64
140         .word sys_fstatfs64, sys_llseek, sys_mlock, sys_munlock, sys_mlockall
141 /*240*/ .word sys_munlockall, sys_sched_setparam, sys_sched_getparam, sys_sched_setscheduler, sys_sched_getscheduler
142         .word sys_sched_yield, sys_sched_get_priority_max, sys_sched_get_priority_min, sys_sched_rr_get_interval, sys_nanosleep
143 /*250*/ .word sys64_mremap, sys_sysctl, sys_getsid, sys_fdatasync, sys_nfsservctl
144         .word sys_sync_file_range, sys_clock_settime, sys_clock_gettime, sys_clock_getres, sys_clock_nanosleep
145 /*260*/ .word sys_sched_getaffinity, sys_sched_setaffinity, sys_timer_settime, sys_timer_gettime, sys_timer_getoverrun
146         .word sys_timer_delete, sys_timer_create, sys_ni_syscall, sys_io_setup, sys_io_destroy
147 /*270*/ .word sys_io_submit, sys_io_cancel, sys_io_getevents, sys_mq_open, sys_mq_unlink
148         .word sys_mq_timedsend, sys_mq_timedreceive, sys_mq_notify, sys_mq_getsetattr, sys_waitid
149 /*280*/ .word sys_tee, sys_add_key, sys_request_key, sys_keyctl, sys_openat
150         .word sys_mkdirat, sys_mknodat, sys_fchownat, sys_futimesat, sys_fstatat64
151 /*290*/ .word sys_unlinkat, sys_renameat, sys_linkat, sys_symlinkat, sys_readlinkat
152         .word sys_fchmodat, sys_faccessat, sys_pselect6, sys_ppoll, sys_unshare
153 /*300*/ .word sys_set_robust_list, sys_get_robust_list, sys_migrate_pages, sys_mbind, sys_get_mempolicy
154         .word sys_set_mempolicy, sys_kexec_load, sys_move_pages, sys_getcpu, sys_epoll_pwait
155 /*310*/ .word sys_utimensat, sys_signalfd, sys_timerfd, sys_eventfd, sys_fallocate
156
157 #if defined(CONFIG_SUNOS_EMUL) || defined(CONFIG_SOLARIS_EMUL) || \
158     defined(CONFIG_SOLARIS_EMUL_MODULE)
159         /* Now the 32-bit SunOS syscall table. */
160
161         .align 4
162         .globl sunos_sys_table
163 sunos_sys_table:
164 /*0*/   .word sunos_indir, sys32_exit, sys_fork
165         .word sunos_read, sunos_write, sunos_open
166         .word sys_close, sunos_wait4, sys_creat
167         .word sys_link, sys_unlink, sunos_execv
168         .word sys_chdir, sunos_nosys, sys32_mknod
169         .word sys_chmod, sys32_lchown16, sunos_brk
170         .word sunos_nosys, sys32_lseek, sunos_getpid
171         .word sunos_nosys, sunos_nosys, sunos_nosys
172         .word sunos_getuid, sunos_nosys, sys_ptrace
173         .word sunos_nosys, sunos_nosys, sunos_nosys
174         .word sunos_nosys, sunos_nosys, sunos_nosys
175         .word sys_access, sunos_nosys, sunos_nosys
176         .word sys_sync, sys_kill, compat_sys_newstat
177         .word sunos_nosys, compat_sys_newlstat, sys_dup
178         .word sys_pipe, sunos_nosys, sunos_nosys
179         .word sunos_nosys, sunos_nosys, sunos_getgid
180         .word sunos_nosys, sunos_nosys
181 /*50*/  .word sunos_nosys, sys_acct, sunos_nosys
182         .word sunos_mctl, sunos_ioctl, sys_reboot
183         .word sunos_nosys, sys_symlink, sys_readlink
184         .word sys32_execve, sys_umask, sys_chroot
185         .word compat_sys_newfstat, sunos_nosys, sys_getpagesize
186         .word sys_msync, sys_vfork, sunos_nosys
187         .word sunos_nosys, sunos_sbrk, sunos_sstk
188         .word sunos_mmap, sunos_vadvise, sys_munmap
189         .word sys_mprotect, sys_madvise, sys_vhangup
190         .word sunos_nosys, sys_mincore, sys32_getgroups16
191         .word sys32_setgroups16, sys_getpgrp, sunos_setpgrp
192         .word compat_sys_setitimer, sunos_nosys, sys_swapon
193         .word compat_sys_getitimer, sys_gethostname, sys_sethostname
194         .word sunos_getdtablesize, sys_dup2, sunos_nop
195         .word compat_sys_fcntl, sunos_select, sunos_nop
196         .word sys_fsync, sys32_setpriority, sys32_socket
197         .word sys32_connect, sunos_accept
198 /*100*/ .word sys_getpriority, sunos_send, sunos_recv
199         .word sunos_nosys, sys32_bind, sunos_setsockopt
200         .word sys32_listen, sunos_nosys, sunos_sigaction
201         .word sunos_sigblock, sunos_sigsetmask, sys_sigpause
202         .word sys32_sigstack, sys32_recvmsg, sys32_sendmsg
203         .word sunos_nosys, sys32_gettimeofday, compat_sys_getrusage
204         .word sunos_getsockopt, sunos_nosys, sunos_readv
205         .word sunos_writev, sys32_settimeofday, sys32_fchown16
206         .word sys_fchmod, sys32_recvfrom, sys32_setreuid16
207         .word sys32_setregid16, sys_rename, sys_truncate
208         .word sys_ftruncate, sys_flock, sunos_nosys
209         .word sys32_sendto, sys32_shutdown, sys32_socketpair
210         .word sys_mkdir, sys_rmdir, sys32_utimes
211         .word sys32_sigreturn, sunos_nosys, sys32_getpeername
212         .word sunos_gethostid, sunos_nosys, compat_sys_getrlimit
213         .word compat_sys_setrlimit, sunos_killpg, sunos_nosys
214         .word sunos_nosys, sunos_nosys
215 /*150*/ .word sys32_getsockname, sunos_nosys, sunos_nosys
216         .word sys_poll, sunos_nosys, sunos_nosys
217         .word sunos_getdirentries, compat_sys_statfs, compat_sys_fstatfs
218         .word sys_oldumount, sunos_nosys, sunos_nosys
219         .word sys_getdomainname, sys_setdomainname
220         .word sunos_nosys, sys_quotactl, sunos_nosys
221         .word sunos_nosys, sys_ustat, sunos_semsys
222         .word sunos_nosys, sunos_shmsys, sunos_audit
223         .word sunos_nosys, sunos_getdents, sys_setsid
224         .word sys_fchdir, sunos_nosys, sunos_nosys
225         .word sunos_nosys, sunos_nosys, sunos_nosys
226         .word sunos_nosys, compat_sys_sigpending, sunos_nosys
227         .word sys_setpgid, sunos_pathconf, sunos_fpathconf
228         .word sunos_sysconf, sunos_uname, sunos_nosys
229         .word sunos_nosys, sunos_nosys, sunos_nosys
230         .word sunos_nosys, sunos_nosys, sunos_nosys
231         .word sunos_nosys, sunos_nosys, sunos_nosys
232 /*200*/ .word sunos_nosys, sunos_nosys, sunos_nosys
233         .word sunos_nosys, sunos_nosys, sunos_nosys
234         .word sunos_nosys, sunos_nosys, sunos_nosys
235         .word sunos_nosys, sunos_nosys, sunos_nosys
236         .word sunos_nosys, sunos_nosys, sunos_nosys
237         .word sunos_nosys, sunos_nosys, sunos_nosys
238         .word sunos_nosys, sunos_nosys, sunos_nosys
239         .word sunos_nosys, sunos_nosys, sunos_nosys
240         .word sunos_nosys, sunos_nosys, sunos_nosys
241         .word sunos_nosys, sunos_nosys, sunos_nosys
242         .word sunos_nosys, sunos_nosys, sunos_nosys
243         .word sunos_nosys, sunos_nosys, sunos_nosys
244         .word sunos_nosys, sunos_nosys, sunos_nosys
245         .word sunos_nosys, sunos_nosys, sunos_nosys
246         .word sunos_nosys, sunos_nosys, sunos_nosys
247         .word sunos_nosys, sunos_nosys, sunos_nosys
248         .word sunos_nosys, sunos_nosys
249 /*250*/ .word sunos_nosys, sunos_nosys, sunos_nosys
250         .word sunos_nosys, sunos_nosys, sunos_nosys
251         .word sunos_nosys, sunos_nosys, sunos_nosys
252         .word sunos_nosys
253 /*260*/ .word sunos_nosys, sunos_nosys, sunos_nosys
254         .word sunos_nosys, sunos_nosys, sunos_nosys
255         .word sunos_nosys, sunos_nosys, sunos_nosys
256         .word sunos_nosys
257 /*270*/ .word sunos_nosys, sunos_nosys, sunos_nosys
258         .word sunos_nosys, sunos_nosys, sunos_nosys
259         .word sunos_nosys, sunos_nosys, sunos_nosys
260         .word sunos_nosys
261 /*280*/ .word sunos_nosys, sunos_nosys, sunos_nosys
262         .word sunos_nosys, sunos_nosys, sunos_nosys
263         .word sunos_nosys, sunos_nosys, sunos_nosys
264         .word sunos_nosys
265 /*290*/ .word sunos_nosys, sunos_nosys, sunos_nosys
266         .word sunos_nosys, sunos_nosys, sunos_nosys
267         .word sunos_nosys, sunos_nosys, sunos_nosys
268         .word sunos_nosys
269 /*300*/ .word sunos_nosys, sunos_nosys, sunos_nosys
270         .word sunos_nosys, sunos_nosys, sunos_nosys
271         .word sunos_nosys, sunos_nosys, sunos_nosys
272         .word sunos_nosys
273 /*310*/ .word sunos_nosys, sunos_nosys, sunos_nosys
274         .word sunos_nosys, sunos_nosys
275
276 #endif