2 * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
3 * Copyright (c) 1993, 1994, 1995 Rick Sladkey <jrs@world.std.com>
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 * 3. The name of the author may not be used to endorse or promote products
15 * derived from this software without specific prior written permission.
17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 /* primary syscalls */
35 int sys_restart_syscall();
36 int sys_setup(), sys_exit(), sys_fork(), sys_read(), sys_write();
37 int sys_open(), sys_close(), sys_waitpid(), sys_creat(), sys_link();
38 int sys_unlink(), sys_execve(), sys_chdir(), sys_time(), sys_mknod();
39 int sys_chmod(), sys_chown(), sys_break(), sys_oldstat();
40 int sys_lseek(), sys_getpid(), sys_mount(), sys_umount(), sys_umount2();
41 int sys_setuid(), sys_getuid(), sys_stime(), sys_ptrace();
42 int sys_alarm(), sys_oldfstat(), sys_pause(), sys_utime();
43 int sys_stty(), sys_gtty(), sys_access(), sys_nice(), sys_ftime();
44 int sys_sync(), sys_kill(), sys_rename(), sys_mkdir(), sys_rmdir();
45 int sys_dup(), sys_pipe(), sys_times(), sys_prof(), sys_brk();
46 int sys_setgid(), sys_getgid(), sys_signal(), sys_geteuid();
47 int sys_getegid(), sys_acct(), sys_phys(), sys_lock(), sys_ioctl();
48 int sys_fcntl(), sys_mpx(), sys_setpgid(), sys_ulimit();
49 int sys_olduname(), sys_umask(), sys_chroot(), sys_ustat();
50 int sys_dup2(), sys_getppid(), sys_getpgrp(), sys_setsid();
51 int sys_sigaction(), sys_siggetmask(), sys_sigsetmask();
52 int sys_setreuid(), sys_setregid(), sys_sigsuspend();
53 int sys_sigpending(), sys_sethostname(), sys_setrlimit();
54 int sys_getrlimit(), sys_getrusage(), sys_gettimeofday();
55 int sys_settimeofday(), sys_getgroups(), sys_setgroups();
56 int sys_setgroups32(), sys_getgroups32();
57 int sys_oldselect(), sys_symlink(), sys_oldlstat(), sys_readlink();
58 int sys_uselib(), sys_swapon(), sys_reboot(), sys_readdir();
59 int sys_mmap(), sys_munmap(), sys_truncate(), sys_ftruncate();
60 int sys_fchmod(), sys_fchown(), sys_getpriority();
61 int sys_setpriority(), sys_profil(), sys_statfs(), sys_fstatfs();
62 int sys_ioperm(), sys_socketcall(), sys_syslog(), sys_setitimer();
63 int sys_getitimer(), sys_stat(), sys_lstat(), sys_fstat();
64 int sys_uname(), sys_iopl(), sys_vhangup(), sys_idle(), sys_vm86();
65 int sys_wait4(), sys_swapoff(), sys_ipc(), sys_sigreturn();
66 int sys_fsync(), sys_clone(), sys_setdomainname(), sys_sysinfo();
67 int sys_modify_ldt(), sys_adjtimex(), sys_mprotect();
68 int sys_sigprocmask(), sys_create_module(), sys_init_module();
69 int sys_delete_module(), sys_get_kernel_syms(), sys_quotactl();
70 int sys_getpgid(), sys_fchdir(), sys_bdflush();
71 int sys_sysfs(), sys_personality(), sys_afs_syscall();
72 int sys_setfsuid(), sys_setfsgid(), sys_llseek();
73 int sys_getdents(), sys_flock(), sys_msync();
74 int sys_readv(), sys_writev(), sys_select();
75 int sys_getsid(), sys_fdatasync(), sys_sysctl();
76 int sys_mlock(), sys_munlock(), sys_mlockall(), sys_munlockall(), sys_madvise();
77 int sys_sched_setparam(), sys_sched_getparam();
78 int sys_sched_setscheduler(), sys_sched_getscheduler(), sys_sched_yield();
79 int sys_sched_get_priority_max(), sys_sched_get_priority_min();
80 int sys_sched_rr_get_interval(), sys_nanosleep(), sys_mremap();
81 int sys_sendmsg(), sys_recvmsg(), sys_setresuid(), sys_setresgid();
82 int sys_getresuid(), sys_getresgid(), sys_pread(), sys_pwrite(), sys_getcwd();
83 int sys_preadv(), sys_pwritev();
84 int sys_sigaltstack(), sys_rt_sigprocmask(), sys_rt_sigaction();
85 int sys_rt_sigpending(), sys_rt_sigsuspend(), sys_rt_sigqueueinfo();
86 int sys_rt_sigtimedwait(), sys_prctl(), sys_poll(), sys_vfork();
87 int sys_sendfile(), sys_old_mmap(), sys_stat64(), sys_lstat64(), sys_fstat64();
88 int sys_truncate64(), sys_ftruncate64(), sys_pivotroot();
90 int sys_getpmsg(), sys_putpmsg(), sys_readahead(), sys_sendfile64();
91 int sys_setxattr(), sys_fsetxattr(), sys_getxattr(), sys_fgetxattr();
92 int sys_listxattr(), sys_flistxattr(), sys_removexattr(), sys_fremovexattr();
93 int sys_sched_setaffinity(), sys_sched_getaffinity(), sys_futex();
94 int sys_set_thread_area(), sys_get_thread_area(), sys_remap_file_pages();
95 int sys_timer_create(), sys_timer_delete(), sys_timer_getoverrun();
96 int sys_timer_gettime(), sys_timer_settime(), sys_clock_settime();
97 int sys_clock_gettime(), sys_clock_getres(), sys_clock_nanosleep();
98 int sys_semtimedop(), sys_statfs64(), sys_fstatfs64(), sys_tgkill();
99 int sys_mq_open(), sys_mq_timedsend(), sys_mq_timedreceive();
100 int sys_mq_notify(), sys_mq_getsetattr();
101 int sys_epoll_create(), sys_epoll_ctl(), sys_epoll_wait();
102 int sys_waitid(), sys_fadvise64(), sys_fadvise64_64();
103 int sys_mbind(), sys_get_mempolicy(), sys_set_mempolicy(), sys_move_pages();
104 int sys_arch_prctl();
105 int sys_io_setup(), sys_io_submit(), sys_io_cancel(), sys_io_getevents(), sys_io_destroy();
106 int sys_utimensat(), sys_epoll_pwait(), sys_signalfd(), sys_timerfd(), sys_eventfd();
108 int sys_fallocate(), sys_timerfd_create(), sys_timerfd_settime(), sys_timerfd_gettime();
109 int sys_signalfd4(), sys_eventfd2(), sys_epoll_create1(), sys_dup3(), sys_pipe2();
111 /* sys_socketcall subcalls */
113 int sys_socket(), sys_bind(), sys_connect(), sys_listen(), sys_accept4();
114 int sys_accept(), sys_getsockname(), sys_getpeername(), sys_socketpair();
115 int sys_send(), sys_recv(), sys_sendto(), sys_recvfrom();
116 int sys_shutdown(), sys_setsockopt(), sys_getsockopt();
121 int sys_newfstatat();
127 int sys_readlinkat();
135 int sys_query_module();
138 int sys_inotify_add_watch();
139 int sys_inotify_rm_watch();
140 int sys_inotify_init1();
148 /* architecture-specific calls */
150 int sys_osf_select();
151 int sys_osf_gettimeofday();
152 int sys_osf_settimeofday();
153 int sys_osf_getitimer();
154 int sys_osf_setitimer();
155 int sys_osf_getrusage();
157 int sys_osf_utimes();
163 # define SYS_waitid 284
165 # define SYS_waitid 438
167 # define SYS_waitid (NR_SYSCALL_BASE + 280)
169 # define SYS_waitid 1270
171 # define SYS_waitid 277
172 # elif defined POWERPC
173 # define SYS_waitid 272
174 # elif defined S390 || defined S390X
175 # define SYS_waitid 281
177 # define SYS_waitid 312
179 # define SYS_waitid 312
181 # define SYS_waitid 284
182 # elif defined SPARC || defined SPARC64
183 # define SYS_waitid 279
184 # elif defined X86_64
185 # define SYS_waitid 247
189 #if !defined(ALPHA) && !defined(MIPS) && !defined(HPPA) && \
190 !defined(__ARM_EABI__)
193 * IA64 syscall numbers (the only ones available from standard header
194 * files) are disjoint from IA32 syscall numbers. We need to define
195 * the IA32 socket call number here.
197 # define SYS_socketcall 102
204 # undef SYS_getsockname
205 # undef SYS_getpeername
206 # undef SYS_socketpair
212 # undef SYS_setsockopt
213 # undef SYS_getsockopt
217 # if defined(SPARC) || defined(SPARC64)
218 # define SYS_socket_subcall 353
220 # define SYS_socket_subcall 400
222 #define SYS_sub_socket (SYS_socket_subcall + 1)
223 #define SYS_sub_bind (SYS_socket_subcall + 2)
224 #define SYS_sub_connect (SYS_socket_subcall + 3)
225 #define SYS_sub_listen (SYS_socket_subcall + 4)
226 #define SYS_sub_accept (SYS_socket_subcall + 5)
227 #define SYS_sub_getsockname (SYS_socket_subcall + 6)
228 #define SYS_sub_getpeername (SYS_socket_subcall + 7)
229 #define SYS_sub_socketpair (SYS_socket_subcall + 8)
230 #define SYS_sub_send (SYS_socket_subcall + 9)
231 #define SYS_sub_recv (SYS_socket_subcall + 10)
232 #define SYS_sub_sendto (SYS_socket_subcall + 11)
233 #define SYS_sub_recvfrom (SYS_socket_subcall + 12)
234 #define SYS_sub_shutdown (SYS_socket_subcall + 13)
235 #define SYS_sub_setsockopt (SYS_socket_subcall + 14)
236 #define SYS_sub_getsockopt (SYS_socket_subcall + 15)
237 #define SYS_sub_sendmsg (SYS_socket_subcall + 16)
238 #define SYS_sub_recvmsg (SYS_socket_subcall + 17)
239 #define SYS_sub_accept4 (SYS_socket_subcall + 18)
240 #define SYS_sub_recvmmsg (SYS_socket_subcall + 19)
242 #define SYS_socket_nsubcalls 20
243 #endif /* !(ALPHA || MIPS || HPPA) */
245 /* sys_ipc subcalls */
247 int sys_semget(), sys_semctl(), sys_semop();
248 int sys_msgsnd(), sys_msgrcv(), sys_msgget(), sys_msgctl();
249 int sys_shmat(), sys_shmdt(), sys_shmget(), sys_shmctl();
251 #if !defined(ALPHA) && !defined(MIPS) && !defined(HPPA) && \
252 !defined(__ARM_EABI__)
255 * IA64 syscall numbers (the only ones available from standard
256 * header files) are disjoint from IA32 syscall numbers. We need
257 * to define the IA32 socket call number here. Fortunately, this
258 * symbol, `SYS_ipc', is not used by any of the IA64 code so
259 * re-defining this symbol will not cause a problem.
266 # undef SYS_semtimedop
276 #define SYS_ipc_subcall ((SYS_socket_subcall)+(SYS_socket_nsubcalls))
277 #define SYS_sub_semop (SYS_ipc_subcall + 1)
278 #define SYS_sub_semget (SYS_ipc_subcall + 2)
279 #define SYS_sub_semctl (SYS_ipc_subcall + 3)
280 #define SYS_sub_semtimedop (SYS_ipc_subcall + 4)
281 #define SYS_sub_msgsnd (SYS_ipc_subcall + 11)
282 #define SYS_sub_msgrcv (SYS_ipc_subcall + 12)
283 #define SYS_sub_msgget (SYS_ipc_subcall + 13)
284 #define SYS_sub_msgctl (SYS_ipc_subcall + 14)
285 #define SYS_sub_shmat (SYS_ipc_subcall + 21)
286 #define SYS_sub_shmdt (SYS_ipc_subcall + 22)
287 #define SYS_sub_shmget (SYS_ipc_subcall + 23)
288 #define SYS_sub_shmctl (SYS_ipc_subcall + 24)
290 #define SYS_ipc_nsubcalls 25
291 #endif /* !(ALPHA || MIPS || HPPA) */
293 #if defined SYS_ipc_subcall && !defined SYS_ipc
294 # define SYS_ipc SYS_ipc_subcall
296 #if defined SYS_socket_subcall && !defined SYS_socketcall
297 # define SYS_socketcall SYS_socket_subcall
302 * IA64 syscall numbers (the only ones available from standard header
303 * files) are disjoint from IA32 syscall numbers. We need to define
304 * some IA32 specific syscalls here.
307 # define SYS_vfork 190
308 # define SYS32_exit 1
309 # define SYS_waitpid 7
310 # define SYS32_wait4 114
311 # define SYS32_execve 11
314 #if defined(ALPHA) || defined(IA64)
315 int sys_getpagesize();
319 int osf_statfs(), osf_fstatfs();
323 int sys_getpmsg(), sys_putpmsg(); /* STREAMS stuff */
330 int sys_setpgrp(), sys_gethostname(), sys_getdtablesize(), sys_utimes();
331 int sys_capget(), sys_capset();
333 #if defined M68K || defined SH
334 int sys_cacheflush();
337 int sys_pread64(), sys_pwrite64();
340 int sys_subpage_prot();
344 int sys_sram_alloc();
345 int sys_cacheflush();
348 #if defined SPARC || defined SPARC64
349 #include "sparc/syscall1.h"
351 int sys_getpagesize();
352 int sys_getmsg(), sys_putmsg();
354 int sys_semsys(), sys_semctl(), sys_semget();
355 #define SYS_semsys_subcall 200
356 #define SYS_semsys_nsubcalls 3
357 #define SYS_semctl (SYS_semsys_subcall + 0)
358 #define SYS_semget (SYS_semsys_subcall + 1)
359 #define SYS_semop (SYS_semsys_subcall + 2)
360 int sys_msgsys(), sys_msgget(), sys_msgctl(), sys_msgrcv(), sys_msgsnd();
361 #define SYS_msgsys_subcall 203
362 #define SYS_msgsys_nsubcalls 4
363 #define SYS_msgget (SYS_msgsys_subcall + 0)
364 #define SYS_msgctl (SYS_msgsys_subcall + 1)
365 #define SYS_msgrcv (SYS_msgsys_subcall + 2)
366 #define SYS_msgsnd (SYS_msgsys_subcall + 3)
367 int sys_shmsys(), sys_shmat(), sys_shmctl(), sys_shmdt(), sys_shmget();
368 #define SYS_shmsys_subcall 207
369 #define SYS_shmsys_nsubcalls 4
370 #define SYS_shmat (SYS_shmsys_subcall + 0)
371 #define SYS_shmctl (SYS_shmsys_subcall + 1)
372 #define SYS_shmdt (SYS_shmsys_subcall + 2)
373 #define SYS_shmget (SYS_shmsys_subcall + 3)