[POWERPC] mpic: add support for serial mode interrupts
[deliverable/linux.git] / arch / powerpc / kernel / systbl.S
CommitLineData
9994a338
PM
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
9994a338
PM
22#define COMPAT_SYS(func) .llong .sys_##func,.compat_sys_##func
23#define PPC_SYS(func) .llong .ppc_##func,.ppc_##func
24#define OLDSYS(func) .llong .sys_ni_syscall,.sys_ni_syscall
b09a4913 25#define SYS32ONLY(func) .llong .sys_ni_syscall,.compat_sys_##func
9994a338
PM
26#define SYSX(f, f3264, f32) .llong .f,.f3264
27#else
28#define SYSCALL(func) .long sys_##func
9994a338
PM
29#define COMPAT_SYS(func) .long sys_##func
30#define PPC_SYS(func) .long ppc_##func
31#define OLDSYS(func) .long sys_##func
32#define SYS32ONLY(func) .long sys_##func
33#define SYSX(f, f3264, f32) .long f32
34#endif
35
36#ifdef CONFIG_PPC64
37#define sys_sigpending sys_ni_syscall
38#define sys_old_getrlimit sys_ni_syscall
9994a338
PM
39#endif
40
41_GLOBAL(sys_call_table)
42SYSCALL(restart_syscall)
43SYSCALL(exit)
44PPC_SYS(fork)
45SYSCALL(read)
46SYSCALL(write)
47COMPAT_SYS(open)
48SYSCALL(close)
b09a4913
SR
49COMPAT_SYS(waitpid)
50COMPAT_SYS(creat)
9994a338
PM
51SYSCALL(link)
52SYSCALL(unlink)
b09a4913 53COMPAT_SYS(execve)
9994a338 54SYSCALL(chdir)
002ec58e 55COMPAT_SYS(time)
9994a338
PM
56SYSCALL(mknod)
57SYSCALL(chmod)
58SYSCALL(lchown)
59SYSCALL(ni_syscall)
60OLDSYS(stat)
61SYSX(sys_lseek,ppc32_lseek,sys_lseek)
62SYSCALL(getpid)
63COMPAT_SYS(mount)
64SYSX(sys_ni_syscall,sys_oldumount,sys_oldumount)
65SYSCALL(setuid)
66SYSCALL(getuid)
67COMPAT_SYS(stime)
b09a4913 68COMPAT_SYS(ptrace)
9994a338
PM
69SYSCALL(alarm)
70OLDSYS(fstat)
b09a4913 71COMPAT_SYS(pause)
9994a338
PM
72COMPAT_SYS(utime)
73SYSCALL(ni_syscall)
74SYSCALL(ni_syscall)
b09a4913
SR
75COMPAT_SYS(access)
76COMPAT_SYS(nice)
9994a338
PM
77SYSCALL(ni_syscall)
78SYSCALL(sync)
b09a4913 79COMPAT_SYS(kill)
9994a338 80SYSCALL(rename)
b09a4913 81COMPAT_SYS(mkdir)
9994a338
PM
82SYSCALL(rmdir)
83SYSCALL(dup)
84SYSCALL(pipe)
85COMPAT_SYS(times)
86SYSCALL(ni_syscall)
87SYSCALL(brk)
88SYSCALL(setgid)
89SYSCALL(getgid)
90SYSCALL(signal)
91SYSCALL(geteuid)
92SYSCALL(getegid)
93SYSCALL(acct)
94SYSCALL(umount)
95SYSCALL(ni_syscall)
96COMPAT_SYS(ioctl)
97COMPAT_SYS(fcntl)
98SYSCALL(ni_syscall)
b09a4913 99COMPAT_SYS(setpgid)
9994a338 100SYSCALL(ni_syscall)
30286ef6 101SYSX(sys_ni_syscall,sys_olduname, sys_olduname)
b09a4913 102COMPAT_SYS(umask)
9994a338
PM
103SYSCALL(chroot)
104SYSCALL(ustat)
105SYSCALL(dup2)
106SYSCALL(getppid)
107SYSCALL(getpgrp)
108SYSCALL(setsid)
109SYS32ONLY(sigaction)
110SYSCALL(sgetmask)
b09a4913 111COMPAT_SYS(ssetmask)
9994a338
PM
112SYSCALL(setreuid)
113SYSCALL(setregid)
401d1f02 114SYS32ONLY(sigsuspend)
9994a338 115COMPAT_SYS(sigpending)
b09a4913 116COMPAT_SYS(sethostname)
9994a338
PM
117COMPAT_SYS(setrlimit)
118COMPAT_SYS(old_getrlimit)
119COMPAT_SYS(getrusage)
b09a4913
SR
120COMPAT_SYS(gettimeofday)
121COMPAT_SYS(settimeofday)
122COMPAT_SYS(getgroups)
123COMPAT_SYS(setgroups)
9994a338
PM
124SYSX(sys_ni_syscall,sys_ni_syscall,ppc_select)
125SYSCALL(symlink)
126OLDSYS(lstat)
b09a4913 127COMPAT_SYS(readlink)
9994a338
PM
128SYSCALL(uselib)
129SYSCALL(swapon)
130SYSCALL(reboot)
131SYSX(sys_ni_syscall,old32_readdir,old_readdir)
132SYSCALL(mmap)
133SYSCALL(munmap)
134SYSCALL(truncate)
135SYSCALL(ftruncate)
136SYSCALL(fchmod)
137SYSCALL(fchown)
b09a4913
SR
138COMPAT_SYS(getpriority)
139COMPAT_SYS(setpriority)
9994a338
PM
140SYSCALL(ni_syscall)
141COMPAT_SYS(statfs)
142COMPAT_SYS(fstatfs)
143SYSCALL(ni_syscall)
144COMPAT_SYS(socketcall)
b09a4913 145COMPAT_SYS(syslog)
9994a338
PM
146COMPAT_SYS(setitimer)
147COMPAT_SYS(getitimer)
148COMPAT_SYS(newstat)
149COMPAT_SYS(newlstat)
150COMPAT_SYS(newfstat)
30286ef6 151SYSX(sys_ni_syscall,sys_uname,sys_uname)
9994a338
PM
152SYSCALL(ni_syscall)
153SYSCALL(vhangup)
154SYSCALL(ni_syscall)
155SYSCALL(ni_syscall)
156COMPAT_SYS(wait4)
157SYSCALL(swapoff)
b09a4913
SR
158COMPAT_SYS(sysinfo)
159COMPAT_SYS(ipc)
9994a338 160SYSCALL(fsync)
401d1f02 161SYS32ONLY(sigreturn)
9994a338 162PPC_SYS(clone)
b09a4913 163COMPAT_SYS(setdomainname)
30286ef6 164PPC_SYS(newuname)
9994a338 165SYSCALL(ni_syscall)
b09a4913 166COMPAT_SYS(adjtimex)
9994a338
PM
167SYSCALL(mprotect)
168SYSX(sys_ni_syscall,compat_sys_sigprocmask,sys_sigprocmask)
169SYSCALL(ni_syscall)
170SYSCALL(init_module)
171SYSCALL(delete_module)
172SYSCALL(ni_syscall)
173SYSCALL(quotactl)
b09a4913 174COMPAT_SYS(getpgid)
9994a338
PM
175SYSCALL(fchdir)
176SYSCALL(bdflush)
b09a4913 177COMPAT_SYS(sysfs)
9994a338
PM
178SYSX(ppc64_personality,ppc64_personality,sys_personality)
179SYSCALL(ni_syscall)
180SYSCALL(setfsuid)
181SYSCALL(setfsgid)
182SYSCALL(llseek)
b09a4913 183COMPAT_SYS(getdents)
9994a338
PM
184SYSX(sys_select,ppc32_select,ppc_select)
185SYSCALL(flock)
186SYSCALL(msync)
187COMPAT_SYS(readv)
188COMPAT_SYS(writev)
b09a4913 189COMPAT_SYS(getsid)
9994a338 190SYSCALL(fdatasync)
b09a4913 191COMPAT_SYS(sysctl)
9994a338
PM
192SYSCALL(mlock)
193SYSCALL(munlock)
194SYSCALL(mlockall)
195SYSCALL(munlockall)
b09a4913
SR
196COMPAT_SYS(sched_setparam)
197COMPAT_SYS(sched_getparam)
198COMPAT_SYS(sched_setscheduler)
199COMPAT_SYS(sched_getscheduler)
9994a338 200SYSCALL(sched_yield)
b09a4913
SR
201COMPAT_SYS(sched_get_priority_max)
202COMPAT_SYS(sched_get_priority_min)
203COMPAT_SYS(sched_rr_get_interval)
9994a338
PM
204COMPAT_SYS(nanosleep)
205SYSCALL(mremap)
206SYSCALL(setresuid)
207SYSCALL(getresuid)
208SYSCALL(ni_syscall)
209SYSCALL(poll)
210COMPAT_SYS(nfsservctl)
211SYSCALL(setresgid)
212SYSCALL(getresgid)
b09a4913 213COMPAT_SYS(prctl)
401d1f02 214COMPAT_SYS(rt_sigreturn)
b09a4913
SR
215COMPAT_SYS(rt_sigaction)
216COMPAT_SYS(rt_sigprocmask)
217COMPAT_SYS(rt_sigpending)
9994a338 218COMPAT_SYS(rt_sigtimedwait)
b09a4913 219COMPAT_SYS(rt_sigqueueinfo)
401d1f02 220COMPAT_SYS(rt_sigsuspend)
b09a4913
SR
221COMPAT_SYS(pread64)
222COMPAT_SYS(pwrite64)
9994a338
PM
223SYSCALL(chown)
224SYSCALL(getcwd)
225SYSCALL(capget)
226SYSCALL(capset)
b09a4913
SR
227COMPAT_SYS(sigaltstack)
228SYSX(sys_sendfile64,compat_sys_sendfile,sys_sendfile)
9994a338
PM
229SYSCALL(ni_syscall)
230SYSCALL(ni_syscall)
231PPC_SYS(vfork)
232COMPAT_SYS(getrlimit)
b09a4913 233COMPAT_SYS(readahead)
9994a338
PM
234SYS32ONLY(mmap2)
235SYS32ONLY(truncate64)
236SYS32ONLY(ftruncate64)
237SYSX(sys_ni_syscall,sys_stat64,sys_stat64)
238SYSX(sys_ni_syscall,sys_lstat64,sys_lstat64)
239SYSX(sys_ni_syscall,sys_fstat64,sys_fstat64)
f8cd3216
SR
240SYSCALL(pciconfig_read)
241SYSCALL(pciconfig_write)
242SYSCALL(pciconfig_iobase)
9994a338
PM
243SYSCALL(ni_syscall)
244SYSCALL(getdents64)
245SYSCALL(pivot_root)
246SYSX(sys_ni_syscall,compat_sys_fcntl64,sys_fcntl64)
247SYSCALL(madvise)
248SYSCALL(mincore)
249SYSCALL(gettid)
250SYSCALL(tkill)
251SYSCALL(setxattr)
252SYSCALL(lsetxattr)
253SYSCALL(fsetxattr)
254SYSCALL(getxattr)
255SYSCALL(lgetxattr)
256SYSCALL(fgetxattr)
257SYSCALL(listxattr)
258SYSCALL(llistxattr)
259SYSCALL(flistxattr)
260SYSCALL(removexattr)
261SYSCALL(lremovexattr)
262SYSCALL(fremovexattr)
263COMPAT_SYS(futex)
264COMPAT_SYS(sched_setaffinity)
265COMPAT_SYS(sched_getaffinity)
266SYSCALL(ni_syscall)
267SYSCALL(ni_syscall)
268SYS32ONLY(sendfile64)
269COMPAT_SYS(io_setup)
270SYSCALL(io_destroy)
271COMPAT_SYS(io_getevents)
272COMPAT_SYS(io_submit)
273SYSCALL(io_cancel)
274SYSCALL(set_tid_address)
275SYSX(sys_fadvise64,ppc32_fadvise64,sys_fadvise64)
276SYSCALL(exit_group)
277SYSX(sys_lookup_dcookie,ppc32_lookup_dcookie,sys_lookup_dcookie)
278SYSCALL(epoll_create)
279SYSCALL(epoll_ctl)
280SYSCALL(epoll_wait)
281SYSCALL(remap_file_pages)
3a0f69d5 282SYSX(sys_timer_create,compat_sys_timer_create,sys_timer_create)
9994a338
PM
283COMPAT_SYS(timer_settime)
284COMPAT_SYS(timer_gettime)
285SYSCALL(timer_getoverrun)
286SYSCALL(timer_delete)
287COMPAT_SYS(clock_settime)
288COMPAT_SYS(clock_gettime)
289COMPAT_SYS(clock_getres)
290COMPAT_SYS(clock_nanosleep)
1bd79336 291SYSX(ppc64_swapcontext,ppc32_swapcontext,ppc_swapcontext)
b09a4913
SR
292COMPAT_SYS(tgkill)
293COMPAT_SYS(utimes)
9994a338
PM
294COMPAT_SYS(statfs64)
295COMPAT_SYS(fstatfs64)
77f543cb 296SYSX(sys_ni_syscall, ppc_fadvise64_64, ppc_fadvise64_64)
9994a338
PM
297PPC_SYS(rtas)
298OLDSYS(debug_setcontext)
299SYSCALL(ni_syscall)
300SYSCALL(ni_syscall)
301COMPAT_SYS(mbind)
302COMPAT_SYS(get_mempolicy)
303COMPAT_SYS(set_mempolicy)
304COMPAT_SYS(mq_open)
305SYSCALL(mq_unlink)
306COMPAT_SYS(mq_timedsend)
307COMPAT_SYS(mq_timedreceive)
308COMPAT_SYS(mq_notify)
309COMPAT_SYS(mq_getsetattr)
310COMPAT_SYS(kexec_load)
b09a4913
SR
311COMPAT_SYS(add_key)
312COMPAT_SYS(request_key)
9994a338
PM
313COMPAT_SYS(keyctl)
314COMPAT_SYS(waitid)
b09a4913
SR
315COMPAT_SYS(ioprio_set)
316COMPAT_SYS(ioprio_get)
9994a338
PM
317SYSCALL(inotify_init)
318SYSCALL(inotify_add_watch)
319SYSCALL(inotify_rm_watch)
67207b96
AB
320SYSCALL(spu_run)
321SYSCALL(spu_create)
f27201da
DW
322COMPAT_SYS(pselect6)
323COMPAT_SYS(ppoll)
b37ce281 324SYSCALL(unshare)
b45e516f 325SYSCALL(splice)
70524490 326SYSCALL(tee)
912d35f8 327SYSCALL(vmsplice)
2833c28a
AS
328COMPAT_SYS(openat)
329SYSCALL(mkdirat)
330SYSCALL(mknodat)
331SYSCALL(fchownat)
332COMPAT_SYS(futimesat)
333SYSX(sys_newfstatat, sys_fstatat64, sys_fstatat64)
334SYSCALL(unlinkat)
335SYSCALL(renameat)
336SYSCALL(linkat)
337SYSCALL(symlinkat)
338SYSCALL(readlinkat)
339SYSCALL(fchmodat)
340SYSCALL(faccessat)
0f041082
DW
341COMPAT_SYS(get_robust_list)
342COMPAT_SYS(set_robust_list)
23b2527d
AB
343
344/*
345 * please add new calls to arch/powerpc/platforms/cell/spu_callbacks.c
346 * as well when appropriate.
347 */
This page took 0.10928 seconds and 5 git commands to generate.