diff options
author | Paul Mackerras <paulus@samba.org> | 2005-10-10 08:36:14 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2005-10-10 08:36:14 -0400 |
commit | 9994a33865f4d55c44c9731c01e1f891543278de (patch) | |
tree | 77d8fe580493dbf9ce1820a703c482fba291b6b9 /arch/powerpc/kernel/systbl.S | |
parent | 06d67d54741a5bfefa31945ef195dfa748c29025 (diff) |
powerpc: Introduce entry_{32,64}.S, misc_{32,64}.S, systbl.S
The system call table has been consolidated into systbl.S. We have
separate 32-bit and 64-bit versions of entry.S and misc.S since the
code is mostly sufficiently different to be not worth merging.
There are some common bits that will be extracted in future.
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/kernel/systbl.S')
-rw-r--r-- | arch/powerpc/kernel/systbl.S | 323 |
1 files changed, 323 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/systbl.S b/arch/powerpc/kernel/systbl.S new file mode 100644 index 000000000000..82d1fedb441c --- /dev/null +++ b/arch/powerpc/kernel/systbl.S | |||
@@ -0,0 +1,323 @@ | |||
1 | /* | ||
2 | * This file contains the table of syscall-handling functions. | ||
3 | * Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org) | ||
4 | * | ||
5 | * Largely rewritten by Cort Dougan (cort@cs.nmt.edu) | ||
6 | * and Paul Mackerras. | ||
7 | * | ||
8 | * Adapted for iSeries by Mike Corrigan (mikejc@us.ibm.com) | ||
9 | * PPC64 updates by Dave Engebretsen (engebret@us.ibm.com) | ||
10 | * | ||
11 | * This program is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License | ||
13 | * as published by the Free Software Foundation; either version | ||
14 | * 2 of the License, or (at your option) any later version. | ||
15 | */ | ||
16 | |||
17 | #include <linux/config.h> | ||
18 | #include <asm/ppc_asm.h> | ||
19 | |||
20 | #ifdef CONFIG_PPC64 | ||
21 | #define SYSCALL(func) .llong .sys_##func,.sys_##func | ||
22 | #define SYSCALL32(func) .llong .sys_##func,.sys32_##func | ||
23 | #define COMPAT_SYS(func) .llong .sys_##func,.compat_sys_##func | ||
24 | #define PPC_SYS(func) .llong .ppc_##func,.ppc_##func | ||
25 | #define OLDSYS(func) .llong .sys_ni_syscall,.sys_ni_syscall | ||
26 | #define SYS32ONLY(func) .llong .sys_ni_syscall,.sys32_##func | ||
27 | #define SYSX(f, f3264, f32) .llong .f,.f3264 | ||
28 | #else | ||
29 | #define SYSCALL(func) .long sys_##func | ||
30 | #define SYSCALL32(func) .long sys_##func | ||
31 | #define COMPAT_SYS(func) .long sys_##func | ||
32 | #define PPC_SYS(func) .long ppc_##func | ||
33 | #define OLDSYS(func) .long sys_##func | ||
34 | #define SYS32ONLY(func) .long sys_##func | ||
35 | #define SYSX(f, f3264, f32) .long f32 | ||
36 | #endif | ||
37 | |||
38 | #ifdef CONFIG_PPC64 | ||
39 | #define sys_sigpending sys_ni_syscall | ||
40 | #define sys_old_getrlimit sys_ni_syscall | ||
41 | #else | ||
42 | #define ppc_rtas sys_ni_syscall | ||
43 | #endif | ||
44 | |||
45 | _GLOBAL(sys_call_table) | ||
46 | SYSCALL(restart_syscall) | ||
47 | SYSCALL(exit) | ||
48 | PPC_SYS(fork) | ||
49 | SYSCALL(read) | ||
50 | SYSCALL(write) | ||
51 | COMPAT_SYS(open) | ||
52 | SYSCALL(close) | ||
53 | SYSCALL32(waitpid) | ||
54 | SYSCALL32(creat) | ||
55 | SYSCALL(link) | ||
56 | SYSCALL(unlink) | ||
57 | SYSCALL32(execve) | ||
58 | SYSCALL(chdir) | ||
59 | SYSX(sys64_time,compat_sys_time,sys_time) | ||
60 | SYSCALL(mknod) | ||
61 | SYSCALL(chmod) | ||
62 | SYSCALL(lchown) | ||
63 | SYSCALL(ni_syscall) | ||
64 | OLDSYS(stat) | ||
65 | SYSX(sys_lseek,ppc32_lseek,sys_lseek) | ||
66 | SYSCALL(getpid) | ||
67 | COMPAT_SYS(mount) | ||
68 | SYSX(sys_ni_syscall,sys_oldumount,sys_oldumount) | ||
69 | SYSCALL(setuid) | ||
70 | SYSCALL(getuid) | ||
71 | COMPAT_SYS(stime) | ||
72 | SYSCALL32(ptrace) | ||
73 | SYSCALL(alarm) | ||
74 | OLDSYS(fstat) | ||
75 | SYSCALL32(pause) | ||
76 | COMPAT_SYS(utime) | ||
77 | SYSCALL(ni_syscall) | ||
78 | SYSCALL(ni_syscall) | ||
79 | SYSCALL32(access) | ||
80 | SYSCALL32(nice) | ||
81 | SYSCALL(ni_syscall) | ||
82 | SYSCALL(sync) | ||
83 | SYSCALL32(kill) | ||
84 | SYSCALL(rename) | ||
85 | SYSCALL32(mkdir) | ||
86 | SYSCALL(rmdir) | ||
87 | SYSCALL(dup) | ||
88 | SYSCALL(pipe) | ||
89 | COMPAT_SYS(times) | ||
90 | SYSCALL(ni_syscall) | ||
91 | SYSCALL(brk) | ||
92 | SYSCALL(setgid) | ||
93 | SYSCALL(getgid) | ||
94 | SYSCALL(signal) | ||
95 | SYSCALL(geteuid) | ||
96 | SYSCALL(getegid) | ||
97 | SYSCALL(acct) | ||
98 | SYSCALL(umount) | ||
99 | SYSCALL(ni_syscall) | ||
100 | COMPAT_SYS(ioctl) | ||
101 | COMPAT_SYS(fcntl) | ||
102 | SYSCALL(ni_syscall) | ||
103 | SYSCALL32(setpgid) | ||
104 | SYSCALL(ni_syscall) | ||
105 | SYS32ONLY(olduname) | ||
106 | SYSCALL32(umask) | ||
107 | SYSCALL(chroot) | ||
108 | SYSCALL(ustat) | ||
109 | SYSCALL(dup2) | ||
110 | SYSCALL(getppid) | ||
111 | SYSCALL(getpgrp) | ||
112 | SYSCALL(setsid) | ||
113 | SYS32ONLY(sigaction) | ||
114 | SYSCALL(sgetmask) | ||
115 | SYSCALL32(ssetmask) | ||
116 | SYSCALL(setreuid) | ||
117 | SYSCALL(setregid) | ||
118 | SYSX(sys_ni_syscall,ppc32_sigsuspend,ppc_sigsuspend) | ||
119 | COMPAT_SYS(sigpending) | ||
120 | SYSCALL32(sethostname) | ||
121 | COMPAT_SYS(setrlimit) | ||
122 | COMPAT_SYS(old_getrlimit) | ||
123 | COMPAT_SYS(getrusage) | ||
124 | SYSCALL32(gettimeofday) | ||
125 | SYSCALL32(settimeofday) | ||
126 | SYSCALL32(getgroups) | ||
127 | SYSCALL32(setgroups) | ||
128 | SYSX(sys_ni_syscall,sys_ni_syscall,ppc_select) | ||
129 | SYSCALL(symlink) | ||
130 | OLDSYS(lstat) | ||
131 | SYSCALL32(readlink) | ||
132 | SYSCALL(uselib) | ||
133 | SYSCALL(swapon) | ||
134 | SYSCALL(reboot) | ||
135 | SYSX(sys_ni_syscall,old32_readdir,old_readdir) | ||
136 | SYSCALL(mmap) | ||
137 | SYSCALL(munmap) | ||
138 | SYSCALL(truncate) | ||
139 | SYSCALL(ftruncate) | ||
140 | SYSCALL(fchmod) | ||
141 | SYSCALL(fchown) | ||
142 | SYSCALL32(getpriority) | ||
143 | SYSCALL32(setpriority) | ||
144 | SYSCALL(ni_syscall) | ||
145 | COMPAT_SYS(statfs) | ||
146 | COMPAT_SYS(fstatfs) | ||
147 | SYSCALL(ni_syscall) | ||
148 | COMPAT_SYS(socketcall) | ||
149 | SYSCALL32(syslog) | ||
150 | COMPAT_SYS(setitimer) | ||
151 | COMPAT_SYS(getitimer) | ||
152 | COMPAT_SYS(newstat) | ||
153 | COMPAT_SYS(newlstat) | ||
154 | COMPAT_SYS(newfstat) | ||
155 | SYSX(sys_ni_syscall,sys32_uname,sys_uname) | ||
156 | SYSCALL(ni_syscall) | ||
157 | SYSCALL(vhangup) | ||
158 | SYSCALL(ni_syscall) | ||
159 | SYSCALL(ni_syscall) | ||
160 | COMPAT_SYS(wait4) | ||
161 | SYSCALL(swapoff) | ||
162 | SYSCALL32(sysinfo) | ||
163 | SYSCALL32(ipc) | ||
164 | SYSCALL(fsync) | ||
165 | SYSX(sys_ni_syscall,ppc32_sigreturn,sys_sigreturn) | ||
166 | PPC_SYS(clone) | ||
167 | SYSCALL32(setdomainname) | ||
168 | SYSX(ppc64_newuname,ppc64_newuname,sys_newuname) | ||
169 | SYSCALL(ni_syscall) | ||
170 | SYSCALL32(adjtimex) | ||
171 | SYSCALL(mprotect) | ||
172 | SYSX(sys_ni_syscall,compat_sys_sigprocmask,sys_sigprocmask) | ||
173 | SYSCALL(ni_syscall) | ||
174 | SYSCALL(init_module) | ||
175 | SYSCALL(delete_module) | ||
176 | SYSCALL(ni_syscall) | ||
177 | SYSCALL(quotactl) | ||
178 | SYSCALL32(getpgid) | ||
179 | SYSCALL(fchdir) | ||
180 | SYSCALL(bdflush) | ||
181 | SYSCALL32(sysfs) | ||
182 | SYSX(ppc64_personality,ppc64_personality,sys_personality) | ||
183 | SYSCALL(ni_syscall) | ||
184 | SYSCALL(setfsuid) | ||
185 | SYSCALL(setfsgid) | ||
186 | SYSCALL(llseek) | ||
187 | SYSCALL32(getdents) | ||
188 | SYSX(sys_select,ppc32_select,ppc_select) | ||
189 | SYSCALL(flock) | ||
190 | SYSCALL(msync) | ||
191 | COMPAT_SYS(readv) | ||
192 | COMPAT_SYS(writev) | ||
193 | SYSCALL32(getsid) | ||
194 | SYSCALL(fdatasync) | ||
195 | SYSCALL32(sysctl) | ||
196 | SYSCALL(mlock) | ||
197 | SYSCALL(munlock) | ||
198 | SYSCALL(mlockall) | ||
199 | SYSCALL(munlockall) | ||
200 | SYSCALL32(sched_setparam) | ||
201 | SYSCALL32(sched_getparam) | ||
202 | SYSCALL32(sched_setscheduler) | ||
203 | SYSCALL32(sched_getscheduler) | ||
204 | SYSCALL(sched_yield) | ||
205 | SYSCALL32(sched_get_priority_max) | ||
206 | SYSCALL32(sched_get_priority_min) | ||
207 | SYSCALL32(sched_rr_get_interval) | ||
208 | COMPAT_SYS(nanosleep) | ||
209 | SYSCALL(mremap) | ||
210 | SYSCALL(setresuid) | ||
211 | SYSCALL(getresuid) | ||
212 | SYSCALL(ni_syscall) | ||
213 | SYSCALL(poll) | ||
214 | COMPAT_SYS(nfsservctl) | ||
215 | SYSCALL(setresgid) | ||
216 | SYSCALL(getresgid) | ||
217 | SYSCALL32(prctl) | ||
218 | SYSX(ppc64_rt_sigreturn,ppc32_rt_sigreturn,sys_rt_sigreturn) | ||
219 | SYSCALL32(rt_sigaction) | ||
220 | SYSCALL32(rt_sigprocmask) | ||
221 | SYSCALL32(rt_sigpending) | ||
222 | COMPAT_SYS(rt_sigtimedwait) | ||
223 | SYSCALL32(rt_sigqueueinfo) | ||
224 | SYSX(ppc64_rt_sigsuspend,ppc32_rt_sigsuspend,ppc_rt_sigsuspend) | ||
225 | SYSCALL32(pread64) | ||
226 | SYSCALL32(pwrite64) | ||
227 | SYSCALL(chown) | ||
228 | SYSCALL(getcwd) | ||
229 | SYSCALL(capget) | ||
230 | SYSCALL(capset) | ||
231 | SYSCALL32(sigaltstack) | ||
232 | SYSX(sys_sendfile64,sys32_sendfile,sys_sendfile) | ||
233 | SYSCALL(ni_syscall) | ||
234 | SYSCALL(ni_syscall) | ||
235 | PPC_SYS(vfork) | ||
236 | COMPAT_SYS(getrlimit) | ||
237 | SYSCALL32(readahead) | ||
238 | SYS32ONLY(mmap2) | ||
239 | SYS32ONLY(truncate64) | ||
240 | SYS32ONLY(ftruncate64) | ||
241 | SYSX(sys_ni_syscall,sys_stat64,sys_stat64) | ||
242 | SYSX(sys_ni_syscall,sys_lstat64,sys_lstat64) | ||
243 | SYSX(sys_ni_syscall,sys_fstat64,sys_fstat64) | ||
244 | SYSCALL32(pciconfig_read) | ||
245 | SYSCALL32(pciconfig_write) | ||
246 | SYSCALL32(pciconfig_iobase) | ||
247 | SYSCALL(ni_syscall) | ||
248 | SYSCALL(getdents64) | ||
249 | SYSCALL(pivot_root) | ||
250 | SYSX(sys_ni_syscall,compat_sys_fcntl64,sys_fcntl64) | ||
251 | SYSCALL(madvise) | ||
252 | SYSCALL(mincore) | ||
253 | SYSCALL(gettid) | ||
254 | SYSCALL(tkill) | ||
255 | SYSCALL(setxattr) | ||
256 | SYSCALL(lsetxattr) | ||
257 | SYSCALL(fsetxattr) | ||
258 | SYSCALL(getxattr) | ||
259 | SYSCALL(lgetxattr) | ||
260 | SYSCALL(fgetxattr) | ||
261 | SYSCALL(listxattr) | ||
262 | SYSCALL(llistxattr) | ||
263 | SYSCALL(flistxattr) | ||
264 | SYSCALL(removexattr) | ||
265 | SYSCALL(lremovexattr) | ||
266 | SYSCALL(fremovexattr) | ||
267 | COMPAT_SYS(futex) | ||
268 | COMPAT_SYS(sched_setaffinity) | ||
269 | COMPAT_SYS(sched_getaffinity) | ||
270 | SYSCALL(ni_syscall) | ||
271 | SYSCALL(ni_syscall) | ||
272 | SYS32ONLY(sendfile64) | ||
273 | COMPAT_SYS(io_setup) | ||
274 | SYSCALL(io_destroy) | ||
275 | COMPAT_SYS(io_getevents) | ||
276 | COMPAT_SYS(io_submit) | ||
277 | SYSCALL(io_cancel) | ||
278 | SYSCALL(set_tid_address) | ||
279 | SYSX(sys_fadvise64,ppc32_fadvise64,sys_fadvise64) | ||
280 | SYSCALL(exit_group) | ||
281 | SYSX(sys_lookup_dcookie,ppc32_lookup_dcookie,sys_lookup_dcookie) | ||
282 | SYSCALL(epoll_create) | ||
283 | SYSCALL(epoll_ctl) | ||
284 | SYSCALL(epoll_wait) | ||
285 | SYSCALL(remap_file_pages) | ||
286 | SYSX(sys_timer_create,ppc32_timer_create,sys_timer_create) | ||
287 | COMPAT_SYS(timer_settime) | ||
288 | COMPAT_SYS(timer_gettime) | ||
289 | SYSCALL(timer_getoverrun) | ||
290 | SYSCALL(timer_delete) | ||
291 | COMPAT_SYS(clock_settime) | ||
292 | COMPAT_SYS(clock_gettime) | ||
293 | COMPAT_SYS(clock_getres) | ||
294 | COMPAT_SYS(clock_nanosleep) | ||
295 | SYSX(ppc64_swapcontext,ppc32_swapcontext,ppc_swapcontext) | ||
296 | SYSCALL32(tgkill) | ||
297 | SYSCALL32(utimes) | ||
298 | COMPAT_SYS(statfs64) | ||
299 | COMPAT_SYS(fstatfs64) | ||
300 | SYSX(sys_ni_syscall, ppc32_fadvise64_64, sys_fadvise64_64) | ||
301 | PPC_SYS(rtas) | ||
302 | OLDSYS(debug_setcontext) | ||
303 | SYSCALL(ni_syscall) | ||
304 | SYSCALL(ni_syscall) | ||
305 | COMPAT_SYS(mbind) | ||
306 | COMPAT_SYS(get_mempolicy) | ||
307 | COMPAT_SYS(set_mempolicy) | ||
308 | COMPAT_SYS(mq_open) | ||
309 | SYSCALL(mq_unlink) | ||
310 | COMPAT_SYS(mq_timedsend) | ||
311 | COMPAT_SYS(mq_timedreceive) | ||
312 | COMPAT_SYS(mq_notify) | ||
313 | COMPAT_SYS(mq_getsetattr) | ||
314 | COMPAT_SYS(kexec_load) | ||
315 | SYSCALL32(add_key) | ||
316 | SYSCALL32(request_key) | ||
317 | COMPAT_SYS(keyctl) | ||
318 | COMPAT_SYS(waitid) | ||
319 | SYSCALL32(ioprio_set) | ||
320 | SYSCALL32(ioprio_get) | ||
321 | SYSCALL(inotify_init) | ||
322 | SYSCALL(inotify_add_watch) | ||
323 | SYSCALL(inotify_rm_watch) | ||