Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.15-rc6 1197 lines 45 kB view raw
1/* 2 * This file is subject to the terms and conditions of the GNU General Public 3 * License. See the file "COPYING" in the main directory of this archive 4 * for more details. 5 * 6 * Copyright (C) 1995, 96, 97, 98, 99, 2000 by Ralf Baechle 7 * Copyright (C) 1999, 2000 Silicon Graphics, Inc. 8 * 9 * Changed system calls macros _syscall5 - _syscall7 to push args 5 to 7 onto 10 * the stack. Robin Farine for ACN S.A, Copyright (C) 1996 by ACN S.A 11 */ 12#ifndef _ASM_UNISTD_H 13#define _ASM_UNISTD_H 14 15#include <asm/sgidefs.h> 16 17#if _MIPS_SIM == _MIPS_SIM_ABI32 18 19/* 20 * Linux o32 style syscalls are in the range from 4000 to 4999. 21 */ 22#define __NR_Linux 4000 23#define __NR_syscall (__NR_Linux + 0) 24#define __NR_exit (__NR_Linux + 1) 25#define __NR_fork (__NR_Linux + 2) 26#define __NR_read (__NR_Linux + 3) 27#define __NR_write (__NR_Linux + 4) 28#define __NR_open (__NR_Linux + 5) 29#define __NR_close (__NR_Linux + 6) 30#define __NR_waitpid (__NR_Linux + 7) 31#define __NR_creat (__NR_Linux + 8) 32#define __NR_link (__NR_Linux + 9) 33#define __NR_unlink (__NR_Linux + 10) 34#define __NR_execve (__NR_Linux + 11) 35#define __NR_chdir (__NR_Linux + 12) 36#define __NR_time (__NR_Linux + 13) 37#define __NR_mknod (__NR_Linux + 14) 38#define __NR_chmod (__NR_Linux + 15) 39#define __NR_lchown (__NR_Linux + 16) 40#define __NR_break (__NR_Linux + 17) 41#define __NR_unused18 (__NR_Linux + 18) 42#define __NR_lseek (__NR_Linux + 19) 43#define __NR_getpid (__NR_Linux + 20) 44#define __NR_mount (__NR_Linux + 21) 45#define __NR_umount (__NR_Linux + 22) 46#define __NR_setuid (__NR_Linux + 23) 47#define __NR_getuid (__NR_Linux + 24) 48#define __NR_stime (__NR_Linux + 25) 49#define __NR_ptrace (__NR_Linux + 26) 50#define __NR_alarm (__NR_Linux + 27) 51#define __NR_unused28 (__NR_Linux + 28) 52#define __NR_pause (__NR_Linux + 29) 53#define __NR_utime (__NR_Linux + 30) 54#define __NR_stty (__NR_Linux + 31) 55#define __NR_gtty (__NR_Linux + 32) 56#define __NR_access (__NR_Linux + 33) 57#define __NR_nice (__NR_Linux + 34) 58#define __NR_ftime (__NR_Linux + 35) 59#define __NR_sync (__NR_Linux + 36) 60#define __NR_kill (__NR_Linux + 37) 61#define __NR_rename (__NR_Linux + 38) 62#define __NR_mkdir (__NR_Linux + 39) 63#define __NR_rmdir (__NR_Linux + 40) 64#define __NR_dup (__NR_Linux + 41) 65#define __NR_pipe (__NR_Linux + 42) 66#define __NR_times (__NR_Linux + 43) 67#define __NR_prof (__NR_Linux + 44) 68#define __NR_brk (__NR_Linux + 45) 69#define __NR_setgid (__NR_Linux + 46) 70#define __NR_getgid (__NR_Linux + 47) 71#define __NR_signal (__NR_Linux + 48) 72#define __NR_geteuid (__NR_Linux + 49) 73#define __NR_getegid (__NR_Linux + 50) 74#define __NR_acct (__NR_Linux + 51) 75#define __NR_umount2 (__NR_Linux + 52) 76#define __NR_lock (__NR_Linux + 53) 77#define __NR_ioctl (__NR_Linux + 54) 78#define __NR_fcntl (__NR_Linux + 55) 79#define __NR_mpx (__NR_Linux + 56) 80#define __NR_setpgid (__NR_Linux + 57) 81#define __NR_ulimit (__NR_Linux + 58) 82#define __NR_unused59 (__NR_Linux + 59) 83#define __NR_umask (__NR_Linux + 60) 84#define __NR_chroot (__NR_Linux + 61) 85#define __NR_ustat (__NR_Linux + 62) 86#define __NR_dup2 (__NR_Linux + 63) 87#define __NR_getppid (__NR_Linux + 64) 88#define __NR_getpgrp (__NR_Linux + 65) 89#define __NR_setsid (__NR_Linux + 66) 90#define __NR_sigaction (__NR_Linux + 67) 91#define __NR_sgetmask (__NR_Linux + 68) 92#define __NR_ssetmask (__NR_Linux + 69) 93#define __NR_setreuid (__NR_Linux + 70) 94#define __NR_setregid (__NR_Linux + 71) 95#define __NR_sigsuspend (__NR_Linux + 72) 96#define __NR_sigpending (__NR_Linux + 73) 97#define __NR_sethostname (__NR_Linux + 74) 98#define __NR_setrlimit (__NR_Linux + 75) 99#define __NR_getrlimit (__NR_Linux + 76) 100#define __NR_getrusage (__NR_Linux + 77) 101#define __NR_gettimeofday (__NR_Linux + 78) 102#define __NR_settimeofday (__NR_Linux + 79) 103#define __NR_getgroups (__NR_Linux + 80) 104#define __NR_setgroups (__NR_Linux + 81) 105#define __NR_reserved82 (__NR_Linux + 82) 106#define __NR_symlink (__NR_Linux + 83) 107#define __NR_unused84 (__NR_Linux + 84) 108#define __NR_readlink (__NR_Linux + 85) 109#define __NR_uselib (__NR_Linux + 86) 110#define __NR_swapon (__NR_Linux + 87) 111#define __NR_reboot (__NR_Linux + 88) 112#define __NR_readdir (__NR_Linux + 89) 113#define __NR_mmap (__NR_Linux + 90) 114#define __NR_munmap (__NR_Linux + 91) 115#define __NR_truncate (__NR_Linux + 92) 116#define __NR_ftruncate (__NR_Linux + 93) 117#define __NR_fchmod (__NR_Linux + 94) 118#define __NR_fchown (__NR_Linux + 95) 119#define __NR_getpriority (__NR_Linux + 96) 120#define __NR_setpriority (__NR_Linux + 97) 121#define __NR_profil (__NR_Linux + 98) 122#define __NR_statfs (__NR_Linux + 99) 123#define __NR_fstatfs (__NR_Linux + 100) 124#define __NR_ioperm (__NR_Linux + 101) 125#define __NR_socketcall (__NR_Linux + 102) 126#define __NR_syslog (__NR_Linux + 103) 127#define __NR_setitimer (__NR_Linux + 104) 128#define __NR_getitimer (__NR_Linux + 105) 129#define __NR_stat (__NR_Linux + 106) 130#define __NR_lstat (__NR_Linux + 107) 131#define __NR_fstat (__NR_Linux + 108) 132#define __NR_unused109 (__NR_Linux + 109) 133#define __NR_iopl (__NR_Linux + 110) 134#define __NR_vhangup (__NR_Linux + 111) 135#define __NR_idle (__NR_Linux + 112) 136#define __NR_vm86 (__NR_Linux + 113) 137#define __NR_wait4 (__NR_Linux + 114) 138#define __NR_swapoff (__NR_Linux + 115) 139#define __NR_sysinfo (__NR_Linux + 116) 140#define __NR_ipc (__NR_Linux + 117) 141#define __NR_fsync (__NR_Linux + 118) 142#define __NR_sigreturn (__NR_Linux + 119) 143#define __NR_clone (__NR_Linux + 120) 144#define __NR_setdomainname (__NR_Linux + 121) 145#define __NR_uname (__NR_Linux + 122) 146#define __NR_modify_ldt (__NR_Linux + 123) 147#define __NR_adjtimex (__NR_Linux + 124) 148#define __NR_mprotect (__NR_Linux + 125) 149#define __NR_sigprocmask (__NR_Linux + 126) 150#define __NR_create_module (__NR_Linux + 127) 151#define __NR_init_module (__NR_Linux + 128) 152#define __NR_delete_module (__NR_Linux + 129) 153#define __NR_get_kernel_syms (__NR_Linux + 130) 154#define __NR_quotactl (__NR_Linux + 131) 155#define __NR_getpgid (__NR_Linux + 132) 156#define __NR_fchdir (__NR_Linux + 133) 157#define __NR_bdflush (__NR_Linux + 134) 158#define __NR_sysfs (__NR_Linux + 135) 159#define __NR_personality (__NR_Linux + 136) 160#define __NR_afs_syscall (__NR_Linux + 137) /* Syscall for Andrew File System */ 161#define __NR_setfsuid (__NR_Linux + 138) 162#define __NR_setfsgid (__NR_Linux + 139) 163#define __NR__llseek (__NR_Linux + 140) 164#define __NR_getdents (__NR_Linux + 141) 165#define __NR__newselect (__NR_Linux + 142) 166#define __NR_flock (__NR_Linux + 143) 167#define __NR_msync (__NR_Linux + 144) 168#define __NR_readv (__NR_Linux + 145) 169#define __NR_writev (__NR_Linux + 146) 170#define __NR_cacheflush (__NR_Linux + 147) 171#define __NR_cachectl (__NR_Linux + 148) 172#define __NR_sysmips (__NR_Linux + 149) 173#define __NR_unused150 (__NR_Linux + 150) 174#define __NR_getsid (__NR_Linux + 151) 175#define __NR_fdatasync (__NR_Linux + 152) 176#define __NR__sysctl (__NR_Linux + 153) 177#define __NR_mlock (__NR_Linux + 154) 178#define __NR_munlock (__NR_Linux + 155) 179#define __NR_mlockall (__NR_Linux + 156) 180#define __NR_munlockall (__NR_Linux + 157) 181#define __NR_sched_setparam (__NR_Linux + 158) 182#define __NR_sched_getparam (__NR_Linux + 159) 183#define __NR_sched_setscheduler (__NR_Linux + 160) 184#define __NR_sched_getscheduler (__NR_Linux + 161) 185#define __NR_sched_yield (__NR_Linux + 162) 186#define __NR_sched_get_priority_max (__NR_Linux + 163) 187#define __NR_sched_get_priority_min (__NR_Linux + 164) 188#define __NR_sched_rr_get_interval (__NR_Linux + 165) 189#define __NR_nanosleep (__NR_Linux + 166) 190#define __NR_mremap (__NR_Linux + 167) 191#define __NR_accept (__NR_Linux + 168) 192#define __NR_bind (__NR_Linux + 169) 193#define __NR_connect (__NR_Linux + 170) 194#define __NR_getpeername (__NR_Linux + 171) 195#define __NR_getsockname (__NR_Linux + 172) 196#define __NR_getsockopt (__NR_Linux + 173) 197#define __NR_listen (__NR_Linux + 174) 198#define __NR_recv (__NR_Linux + 175) 199#define __NR_recvfrom (__NR_Linux + 176) 200#define __NR_recvmsg (__NR_Linux + 177) 201#define __NR_send (__NR_Linux + 178) 202#define __NR_sendmsg (__NR_Linux + 179) 203#define __NR_sendto (__NR_Linux + 180) 204#define __NR_setsockopt (__NR_Linux + 181) 205#define __NR_shutdown (__NR_Linux + 182) 206#define __NR_socket (__NR_Linux + 183) 207#define __NR_socketpair (__NR_Linux + 184) 208#define __NR_setresuid (__NR_Linux + 185) 209#define __NR_getresuid (__NR_Linux + 186) 210#define __NR_query_module (__NR_Linux + 187) 211#define __NR_poll (__NR_Linux + 188) 212#define __NR_nfsservctl (__NR_Linux + 189) 213#define __NR_setresgid (__NR_Linux + 190) 214#define __NR_getresgid (__NR_Linux + 191) 215#define __NR_prctl (__NR_Linux + 192) 216#define __NR_rt_sigreturn (__NR_Linux + 193) 217#define __NR_rt_sigaction (__NR_Linux + 194) 218#define __NR_rt_sigprocmask (__NR_Linux + 195) 219#define __NR_rt_sigpending (__NR_Linux + 196) 220#define __NR_rt_sigtimedwait (__NR_Linux + 197) 221#define __NR_rt_sigqueueinfo (__NR_Linux + 198) 222#define __NR_rt_sigsuspend (__NR_Linux + 199) 223#define __NR_pread64 (__NR_Linux + 200) 224#define __NR_pwrite64 (__NR_Linux + 201) 225#define __NR_chown (__NR_Linux + 202) 226#define __NR_getcwd (__NR_Linux + 203) 227#define __NR_capget (__NR_Linux + 204) 228#define __NR_capset (__NR_Linux + 205) 229#define __NR_sigaltstack (__NR_Linux + 206) 230#define __NR_sendfile (__NR_Linux + 207) 231#define __NR_getpmsg (__NR_Linux + 208) 232#define __NR_putpmsg (__NR_Linux + 209) 233#define __NR_mmap2 (__NR_Linux + 210) 234#define __NR_truncate64 (__NR_Linux + 211) 235#define __NR_ftruncate64 (__NR_Linux + 212) 236#define __NR_stat64 (__NR_Linux + 213) 237#define __NR_lstat64 (__NR_Linux + 214) 238#define __NR_fstat64 (__NR_Linux + 215) 239#define __NR_pivot_root (__NR_Linux + 216) 240#define __NR_mincore (__NR_Linux + 217) 241#define __NR_madvise (__NR_Linux + 218) 242#define __NR_getdents64 (__NR_Linux + 219) 243#define __NR_fcntl64 (__NR_Linux + 220) 244#define __NR_reserved221 (__NR_Linux + 221) 245#define __NR_gettid (__NR_Linux + 222) 246#define __NR_readahead (__NR_Linux + 223) 247#define __NR_setxattr (__NR_Linux + 224) 248#define __NR_lsetxattr (__NR_Linux + 225) 249#define __NR_fsetxattr (__NR_Linux + 226) 250#define __NR_getxattr (__NR_Linux + 227) 251#define __NR_lgetxattr (__NR_Linux + 228) 252#define __NR_fgetxattr (__NR_Linux + 229) 253#define __NR_listxattr (__NR_Linux + 230) 254#define __NR_llistxattr (__NR_Linux + 231) 255#define __NR_flistxattr (__NR_Linux + 232) 256#define __NR_removexattr (__NR_Linux + 233) 257#define __NR_lremovexattr (__NR_Linux + 234) 258#define __NR_fremovexattr (__NR_Linux + 235) 259#define __NR_tkill (__NR_Linux + 236) 260#define __NR_sendfile64 (__NR_Linux + 237) 261#define __NR_futex (__NR_Linux + 238) 262#define __NR_sched_setaffinity (__NR_Linux + 239) 263#define __NR_sched_getaffinity (__NR_Linux + 240) 264#define __NR_io_setup (__NR_Linux + 241) 265#define __NR_io_destroy (__NR_Linux + 242) 266#define __NR_io_getevents (__NR_Linux + 243) 267#define __NR_io_submit (__NR_Linux + 244) 268#define __NR_io_cancel (__NR_Linux + 245) 269#define __NR_exit_group (__NR_Linux + 246) 270#define __NR_lookup_dcookie (__NR_Linux + 247) 271#define __NR_epoll_create (__NR_Linux + 248) 272#define __NR_epoll_ctl (__NR_Linux + 249) 273#define __NR_epoll_wait (__NR_Linux + 250) 274#define __NR_remap_file_pages (__NR_Linux + 251) 275#define __NR_set_tid_address (__NR_Linux + 252) 276#define __NR_restart_syscall (__NR_Linux + 253) 277#define __NR_fadvise64 (__NR_Linux + 254) 278#define __NR_statfs64 (__NR_Linux + 255) 279#define __NR_fstatfs64 (__NR_Linux + 256) 280#define __NR_timer_create (__NR_Linux + 257) 281#define __NR_timer_settime (__NR_Linux + 258) 282#define __NR_timer_gettime (__NR_Linux + 259) 283#define __NR_timer_getoverrun (__NR_Linux + 260) 284#define __NR_timer_delete (__NR_Linux + 261) 285#define __NR_clock_settime (__NR_Linux + 262) 286#define __NR_clock_gettime (__NR_Linux + 263) 287#define __NR_clock_getres (__NR_Linux + 264) 288#define __NR_clock_nanosleep (__NR_Linux + 265) 289#define __NR_tgkill (__NR_Linux + 266) 290#define __NR_utimes (__NR_Linux + 267) 291#define __NR_mbind (__NR_Linux + 268) 292#define __NR_get_mempolicy (__NR_Linux + 269) 293#define __NR_set_mempolicy (__NR_Linux + 270) 294#define __NR_mq_open (__NR_Linux + 271) 295#define __NR_mq_unlink (__NR_Linux + 272) 296#define __NR_mq_timedsend (__NR_Linux + 273) 297#define __NR_mq_timedreceive (__NR_Linux + 274) 298#define __NR_mq_notify (__NR_Linux + 275) 299#define __NR_mq_getsetattr (__NR_Linux + 276) 300#define __NR_vserver (__NR_Linux + 277) 301#define __NR_waitid (__NR_Linux + 278) 302/* #define __NR_sys_setaltroot (__NR_Linux + 279) */ 303#define __NR_add_key (__NR_Linux + 280) 304#define __NR_request_key (__NR_Linux + 281) 305#define __NR_keyctl (__NR_Linux + 282) 306#define __NR_set_thread_area (__NR_Linux + 283) 307#define __NR_inotify_init (__NR_Linux + 284) 308#define __NR_inotify_add_watch (__NR_Linux + 285) 309#define __NR_inotify_rm_watch (__NR_Linux + 286) 310 311 312/* 313 * Offset of the last Linux o32 flavoured syscall 314 */ 315#define __NR_Linux_syscalls 286 316 317#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */ 318 319#define __NR_O32_Linux 4000 320#define __NR_O32_Linux_syscalls 283 321 322#if _MIPS_SIM == _MIPS_SIM_ABI64 323 324/* 325 * Linux 64-bit syscalls are in the range from 5000 to 5999. 326 */ 327#define __NR_Linux 5000 328#define __NR_read (__NR_Linux + 0) 329#define __NR_write (__NR_Linux + 1) 330#define __NR_open (__NR_Linux + 2) 331#define __NR_close (__NR_Linux + 3) 332#define __NR_stat (__NR_Linux + 4) 333#define __NR_fstat (__NR_Linux + 5) 334#define __NR_lstat (__NR_Linux + 6) 335#define __NR_poll (__NR_Linux + 7) 336#define __NR_lseek (__NR_Linux + 8) 337#define __NR_mmap (__NR_Linux + 9) 338#define __NR_mprotect (__NR_Linux + 10) 339#define __NR_munmap (__NR_Linux + 11) 340#define __NR_brk (__NR_Linux + 12) 341#define __NR_rt_sigaction (__NR_Linux + 13) 342#define __NR_rt_sigprocmask (__NR_Linux + 14) 343#define __NR_ioctl (__NR_Linux + 15) 344#define __NR_pread64 (__NR_Linux + 16) 345#define __NR_pwrite64 (__NR_Linux + 17) 346#define __NR_readv (__NR_Linux + 18) 347#define __NR_writev (__NR_Linux + 19) 348#define __NR_access (__NR_Linux + 20) 349#define __NR_pipe (__NR_Linux + 21) 350#define __NR__newselect (__NR_Linux + 22) 351#define __NR_sched_yield (__NR_Linux + 23) 352#define __NR_mremap (__NR_Linux + 24) 353#define __NR_msync (__NR_Linux + 25) 354#define __NR_mincore (__NR_Linux + 26) 355#define __NR_madvise (__NR_Linux + 27) 356#define __NR_shmget (__NR_Linux + 28) 357#define __NR_shmat (__NR_Linux + 29) 358#define __NR_shmctl (__NR_Linux + 30) 359#define __NR_dup (__NR_Linux + 31) 360#define __NR_dup2 (__NR_Linux + 32) 361#define __NR_pause (__NR_Linux + 33) 362#define __NR_nanosleep (__NR_Linux + 34) 363#define __NR_getitimer (__NR_Linux + 35) 364#define __NR_setitimer (__NR_Linux + 36) 365#define __NR_alarm (__NR_Linux + 37) 366#define __NR_getpid (__NR_Linux + 38) 367#define __NR_sendfile (__NR_Linux + 39) 368#define __NR_socket (__NR_Linux + 40) 369#define __NR_connect (__NR_Linux + 41) 370#define __NR_accept (__NR_Linux + 42) 371#define __NR_sendto (__NR_Linux + 43) 372#define __NR_recvfrom (__NR_Linux + 44) 373#define __NR_sendmsg (__NR_Linux + 45) 374#define __NR_recvmsg (__NR_Linux + 46) 375#define __NR_shutdown (__NR_Linux + 47) 376#define __NR_bind (__NR_Linux + 48) 377#define __NR_listen (__NR_Linux + 49) 378#define __NR_getsockname (__NR_Linux + 50) 379#define __NR_getpeername (__NR_Linux + 51) 380#define __NR_socketpair (__NR_Linux + 52) 381#define __NR_setsockopt (__NR_Linux + 53) 382#define __NR_getsockopt (__NR_Linux + 54) 383#define __NR_clone (__NR_Linux + 55) 384#define __NR_fork (__NR_Linux + 56) 385#define __NR_execve (__NR_Linux + 57) 386#define __NR_exit (__NR_Linux + 58) 387#define __NR_wait4 (__NR_Linux + 59) 388#define __NR_kill (__NR_Linux + 60) 389#define __NR_uname (__NR_Linux + 61) 390#define __NR_semget (__NR_Linux + 62) 391#define __NR_semop (__NR_Linux + 63) 392#define __NR_semctl (__NR_Linux + 64) 393#define __NR_shmdt (__NR_Linux + 65) 394#define __NR_msgget (__NR_Linux + 66) 395#define __NR_msgsnd (__NR_Linux + 67) 396#define __NR_msgrcv (__NR_Linux + 68) 397#define __NR_msgctl (__NR_Linux + 69) 398#define __NR_fcntl (__NR_Linux + 70) 399#define __NR_flock (__NR_Linux + 71) 400#define __NR_fsync (__NR_Linux + 72) 401#define __NR_fdatasync (__NR_Linux + 73) 402#define __NR_truncate (__NR_Linux + 74) 403#define __NR_ftruncate (__NR_Linux + 75) 404#define __NR_getdents (__NR_Linux + 76) 405#define __NR_getcwd (__NR_Linux + 77) 406#define __NR_chdir (__NR_Linux + 78) 407#define __NR_fchdir (__NR_Linux + 79) 408#define __NR_rename (__NR_Linux + 80) 409#define __NR_mkdir (__NR_Linux + 81) 410#define __NR_rmdir (__NR_Linux + 82) 411#define __NR_creat (__NR_Linux + 83) 412#define __NR_link (__NR_Linux + 84) 413#define __NR_unlink (__NR_Linux + 85) 414#define __NR_symlink (__NR_Linux + 86) 415#define __NR_readlink (__NR_Linux + 87) 416#define __NR_chmod (__NR_Linux + 88) 417#define __NR_fchmod (__NR_Linux + 89) 418#define __NR_chown (__NR_Linux + 90) 419#define __NR_fchown (__NR_Linux + 91) 420#define __NR_lchown (__NR_Linux + 92) 421#define __NR_umask (__NR_Linux + 93) 422#define __NR_gettimeofday (__NR_Linux + 94) 423#define __NR_getrlimit (__NR_Linux + 95) 424#define __NR_getrusage (__NR_Linux + 96) 425#define __NR_sysinfo (__NR_Linux + 97) 426#define __NR_times (__NR_Linux + 98) 427#define __NR_ptrace (__NR_Linux + 99) 428#define __NR_getuid (__NR_Linux + 100) 429#define __NR_syslog (__NR_Linux + 101) 430#define __NR_getgid (__NR_Linux + 102) 431#define __NR_setuid (__NR_Linux + 103) 432#define __NR_setgid (__NR_Linux + 104) 433#define __NR_geteuid (__NR_Linux + 105) 434#define __NR_getegid (__NR_Linux + 106) 435#define __NR_setpgid (__NR_Linux + 107) 436#define __NR_getppid (__NR_Linux + 108) 437#define __NR_getpgrp (__NR_Linux + 109) 438#define __NR_setsid (__NR_Linux + 110) 439#define __NR_setreuid (__NR_Linux + 111) 440#define __NR_setregid (__NR_Linux + 112) 441#define __NR_getgroups (__NR_Linux + 113) 442#define __NR_setgroups (__NR_Linux + 114) 443#define __NR_setresuid (__NR_Linux + 115) 444#define __NR_getresuid (__NR_Linux + 116) 445#define __NR_setresgid (__NR_Linux + 117) 446#define __NR_getresgid (__NR_Linux + 118) 447#define __NR_getpgid (__NR_Linux + 119) 448#define __NR_setfsuid (__NR_Linux + 120) 449#define __NR_setfsgid (__NR_Linux + 121) 450#define __NR_getsid (__NR_Linux + 122) 451#define __NR_capget (__NR_Linux + 123) 452#define __NR_capset (__NR_Linux + 124) 453#define __NR_rt_sigpending (__NR_Linux + 125) 454#define __NR_rt_sigtimedwait (__NR_Linux + 126) 455#define __NR_rt_sigqueueinfo (__NR_Linux + 127) 456#define __NR_rt_sigsuspend (__NR_Linux + 128) 457#define __NR_sigaltstack (__NR_Linux + 129) 458#define __NR_utime (__NR_Linux + 130) 459#define __NR_mknod (__NR_Linux + 131) 460#define __NR_personality (__NR_Linux + 132) 461#define __NR_ustat (__NR_Linux + 133) 462#define __NR_statfs (__NR_Linux + 134) 463#define __NR_fstatfs (__NR_Linux + 135) 464#define __NR_sysfs (__NR_Linux + 136) 465#define __NR_getpriority (__NR_Linux + 137) 466#define __NR_setpriority (__NR_Linux + 138) 467#define __NR_sched_setparam (__NR_Linux + 139) 468#define __NR_sched_getparam (__NR_Linux + 140) 469#define __NR_sched_setscheduler (__NR_Linux + 141) 470#define __NR_sched_getscheduler (__NR_Linux + 142) 471#define __NR_sched_get_priority_max (__NR_Linux + 143) 472#define __NR_sched_get_priority_min (__NR_Linux + 144) 473#define __NR_sched_rr_get_interval (__NR_Linux + 145) 474#define __NR_mlock (__NR_Linux + 146) 475#define __NR_munlock (__NR_Linux + 147) 476#define __NR_mlockall (__NR_Linux + 148) 477#define __NR_munlockall (__NR_Linux + 149) 478#define __NR_vhangup (__NR_Linux + 150) 479#define __NR_pivot_root (__NR_Linux + 151) 480#define __NR__sysctl (__NR_Linux + 152) 481#define __NR_prctl (__NR_Linux + 153) 482#define __NR_adjtimex (__NR_Linux + 154) 483#define __NR_setrlimit (__NR_Linux + 155) 484#define __NR_chroot (__NR_Linux + 156) 485#define __NR_sync (__NR_Linux + 157) 486#define __NR_acct (__NR_Linux + 158) 487#define __NR_settimeofday (__NR_Linux + 159) 488#define __NR_mount (__NR_Linux + 160) 489#define __NR_umount2 (__NR_Linux + 161) 490#define __NR_swapon (__NR_Linux + 162) 491#define __NR_swapoff (__NR_Linux + 163) 492#define __NR_reboot (__NR_Linux + 164) 493#define __NR_sethostname (__NR_Linux + 165) 494#define __NR_setdomainname (__NR_Linux + 166) 495#define __NR_create_module (__NR_Linux + 167) 496#define __NR_init_module (__NR_Linux + 168) 497#define __NR_delete_module (__NR_Linux + 169) 498#define __NR_get_kernel_syms (__NR_Linux + 170) 499#define __NR_query_module (__NR_Linux + 171) 500#define __NR_quotactl (__NR_Linux + 172) 501#define __NR_nfsservctl (__NR_Linux + 173) 502#define __NR_getpmsg (__NR_Linux + 174) 503#define __NR_putpmsg (__NR_Linux + 175) 504#define __NR_afs_syscall (__NR_Linux + 176) 505#define __NR_reserved177 (__NR_Linux + 177) 506#define __NR_gettid (__NR_Linux + 178) 507#define __NR_readahead (__NR_Linux + 179) 508#define __NR_setxattr (__NR_Linux + 180) 509#define __NR_lsetxattr (__NR_Linux + 181) 510#define __NR_fsetxattr (__NR_Linux + 182) 511#define __NR_getxattr (__NR_Linux + 183) 512#define __NR_lgetxattr (__NR_Linux + 184) 513#define __NR_fgetxattr (__NR_Linux + 185) 514#define __NR_listxattr (__NR_Linux + 186) 515#define __NR_llistxattr (__NR_Linux + 187) 516#define __NR_flistxattr (__NR_Linux + 188) 517#define __NR_removexattr (__NR_Linux + 189) 518#define __NR_lremovexattr (__NR_Linux + 190) 519#define __NR_fremovexattr (__NR_Linux + 191) 520#define __NR_tkill (__NR_Linux + 192) 521#define __NR_reserved193 (__NR_Linux + 193) 522#define __NR_futex (__NR_Linux + 194) 523#define __NR_sched_setaffinity (__NR_Linux + 195) 524#define __NR_sched_getaffinity (__NR_Linux + 196) 525#define __NR_cacheflush (__NR_Linux + 197) 526#define __NR_cachectl (__NR_Linux + 198) 527#define __NR_sysmips (__NR_Linux + 199) 528#define __NR_io_setup (__NR_Linux + 200) 529#define __NR_io_destroy (__NR_Linux + 201) 530#define __NR_io_getevents (__NR_Linux + 202) 531#define __NR_io_submit (__NR_Linux + 203) 532#define __NR_io_cancel (__NR_Linux + 204) 533#define __NR_exit_group (__NR_Linux + 205) 534#define __NR_lookup_dcookie (__NR_Linux + 206) 535#define __NR_epoll_create (__NR_Linux + 207) 536#define __NR_epoll_ctl (__NR_Linux + 208) 537#define __NR_epoll_wait (__NR_Linux + 209) 538#define __NR_remap_file_pages (__NR_Linux + 210) 539#define __NR_rt_sigreturn (__NR_Linux + 211) 540#define __NR_set_tid_address (__NR_Linux + 212) 541#define __NR_restart_syscall (__NR_Linux + 213) 542#define __NR_semtimedop (__NR_Linux + 214) 543#define __NR_fadvise64 (__NR_Linux + 215) 544#define __NR_timer_create (__NR_Linux + 216) 545#define __NR_timer_settime (__NR_Linux + 217) 546#define __NR_timer_gettime (__NR_Linux + 218) 547#define __NR_timer_getoverrun (__NR_Linux + 219) 548#define __NR_timer_delete (__NR_Linux + 220) 549#define __NR_clock_settime (__NR_Linux + 221) 550#define __NR_clock_gettime (__NR_Linux + 222) 551#define __NR_clock_getres (__NR_Linux + 223) 552#define __NR_clock_nanosleep (__NR_Linux + 224) 553#define __NR_tgkill (__NR_Linux + 225) 554#define __NR_utimes (__NR_Linux + 226) 555#define __NR_mbind (__NR_Linux + 227) 556#define __NR_get_mempolicy (__NR_Linux + 228) 557#define __NR_set_mempolicy (__NR_Linux + 229) 558#define __NR_mq_open (__NR_Linux + 230) 559#define __NR_mq_unlink (__NR_Linux + 231) 560#define __NR_mq_timedsend (__NR_Linux + 232) 561#define __NR_mq_timedreceive (__NR_Linux + 233) 562#define __NR_mq_notify (__NR_Linux + 234) 563#define __NR_mq_getsetattr (__NR_Linux + 235) 564#define __NR_vserver (__NR_Linux + 236) 565#define __NR_waitid (__NR_Linux + 237) 566/* #define __NR_sys_setaltroot (__NR_Linux + 238) */ 567#define __NR_add_key (__NR_Linux + 239) 568#define __NR_request_key (__NR_Linux + 240) 569#define __NR_keyctl (__NR_Linux + 241) 570#define __NR_set_thread_area (__NR_Linux + 242) 571#define __NR_inotify_init (__NR_Linux + 243) 572#define __NR_inotify_add_watch (__NR_Linux + 244) 573#define __NR_inotify_rm_watch (__NR_Linux + 245) 574 575/* 576 * Offset of the last Linux 64-bit flavoured syscall 577 */ 578#define __NR_Linux_syscalls 245 579 580#endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */ 581 582#define __NR_64_Linux 5000 583#define __NR_64_Linux_syscalls 242 584 585#if _MIPS_SIM == _MIPS_SIM_NABI32 586 587/* 588 * Linux N32 syscalls are in the range from 6000 to 6999. 589 */ 590#define __NR_Linux 6000 591#define __NR_read (__NR_Linux + 0) 592#define __NR_write (__NR_Linux + 1) 593#define __NR_open (__NR_Linux + 2) 594#define __NR_close (__NR_Linux + 3) 595#define __NR_stat (__NR_Linux + 4) 596#define __NR_fstat (__NR_Linux + 5) 597#define __NR_lstat (__NR_Linux + 6) 598#define __NR_poll (__NR_Linux + 7) 599#define __NR_lseek (__NR_Linux + 8) 600#define __NR_mmap (__NR_Linux + 9) 601#define __NR_mprotect (__NR_Linux + 10) 602#define __NR_munmap (__NR_Linux + 11) 603#define __NR_brk (__NR_Linux + 12) 604#define __NR_rt_sigaction (__NR_Linux + 13) 605#define __NR_rt_sigprocmask (__NR_Linux + 14) 606#define __NR_ioctl (__NR_Linux + 15) 607#define __NR_pread64 (__NR_Linux + 16) 608#define __NR_pwrite64 (__NR_Linux + 17) 609#define __NR_readv (__NR_Linux + 18) 610#define __NR_writev (__NR_Linux + 19) 611#define __NR_access (__NR_Linux + 20) 612#define __NR_pipe (__NR_Linux + 21) 613#define __NR__newselect (__NR_Linux + 22) 614#define __NR_sched_yield (__NR_Linux + 23) 615#define __NR_mremap (__NR_Linux + 24) 616#define __NR_msync (__NR_Linux + 25) 617#define __NR_mincore (__NR_Linux + 26) 618#define __NR_madvise (__NR_Linux + 27) 619#define __NR_shmget (__NR_Linux + 28) 620#define __NR_shmat (__NR_Linux + 29) 621#define __NR_shmctl (__NR_Linux + 30) 622#define __NR_dup (__NR_Linux + 31) 623#define __NR_dup2 (__NR_Linux + 32) 624#define __NR_pause (__NR_Linux + 33) 625#define __NR_nanosleep (__NR_Linux + 34) 626#define __NR_getitimer (__NR_Linux + 35) 627#define __NR_setitimer (__NR_Linux + 36) 628#define __NR_alarm (__NR_Linux + 37) 629#define __NR_getpid (__NR_Linux + 38) 630#define __NR_sendfile (__NR_Linux + 39) 631#define __NR_socket (__NR_Linux + 40) 632#define __NR_connect (__NR_Linux + 41) 633#define __NR_accept (__NR_Linux + 42) 634#define __NR_sendto (__NR_Linux + 43) 635#define __NR_recvfrom (__NR_Linux + 44) 636#define __NR_sendmsg (__NR_Linux + 45) 637#define __NR_recvmsg (__NR_Linux + 46) 638#define __NR_shutdown (__NR_Linux + 47) 639#define __NR_bind (__NR_Linux + 48) 640#define __NR_listen (__NR_Linux + 49) 641#define __NR_getsockname (__NR_Linux + 50) 642#define __NR_getpeername (__NR_Linux + 51) 643#define __NR_socketpair (__NR_Linux + 52) 644#define __NR_setsockopt (__NR_Linux + 53) 645#define __NR_getsockopt (__NR_Linux + 54) 646#define __NR_clone (__NR_Linux + 55) 647#define __NR_fork (__NR_Linux + 56) 648#define __NR_execve (__NR_Linux + 57) 649#define __NR_exit (__NR_Linux + 58) 650#define __NR_wait4 (__NR_Linux + 59) 651#define __NR_kill (__NR_Linux + 60) 652#define __NR_uname (__NR_Linux + 61) 653#define __NR_semget (__NR_Linux + 62) 654#define __NR_semop (__NR_Linux + 63) 655#define __NR_semctl (__NR_Linux + 64) 656#define __NR_shmdt (__NR_Linux + 65) 657#define __NR_msgget (__NR_Linux + 66) 658#define __NR_msgsnd (__NR_Linux + 67) 659#define __NR_msgrcv (__NR_Linux + 68) 660#define __NR_msgctl (__NR_Linux + 69) 661#define __NR_fcntl (__NR_Linux + 70) 662#define __NR_flock (__NR_Linux + 71) 663#define __NR_fsync (__NR_Linux + 72) 664#define __NR_fdatasync (__NR_Linux + 73) 665#define __NR_truncate (__NR_Linux + 74) 666#define __NR_ftruncate (__NR_Linux + 75) 667#define __NR_getdents (__NR_Linux + 76) 668#define __NR_getcwd (__NR_Linux + 77) 669#define __NR_chdir (__NR_Linux + 78) 670#define __NR_fchdir (__NR_Linux + 79) 671#define __NR_rename (__NR_Linux + 80) 672#define __NR_mkdir (__NR_Linux + 81) 673#define __NR_rmdir (__NR_Linux + 82) 674#define __NR_creat (__NR_Linux + 83) 675#define __NR_link (__NR_Linux + 84) 676#define __NR_unlink (__NR_Linux + 85) 677#define __NR_symlink (__NR_Linux + 86) 678#define __NR_readlink (__NR_Linux + 87) 679#define __NR_chmod (__NR_Linux + 88) 680#define __NR_fchmod (__NR_Linux + 89) 681#define __NR_chown (__NR_Linux + 90) 682#define __NR_fchown (__NR_Linux + 91) 683#define __NR_lchown (__NR_Linux + 92) 684#define __NR_umask (__NR_Linux + 93) 685#define __NR_gettimeofday (__NR_Linux + 94) 686#define __NR_getrlimit (__NR_Linux + 95) 687#define __NR_getrusage (__NR_Linux + 96) 688#define __NR_sysinfo (__NR_Linux + 97) 689#define __NR_times (__NR_Linux + 98) 690#define __NR_ptrace (__NR_Linux + 99) 691#define __NR_getuid (__NR_Linux + 100) 692#define __NR_syslog (__NR_Linux + 101) 693#define __NR_getgid (__NR_Linux + 102) 694#define __NR_setuid (__NR_Linux + 103) 695#define __NR_setgid (__NR_Linux + 104) 696#define __NR_geteuid (__NR_Linux + 105) 697#define __NR_getegid (__NR_Linux + 106) 698#define __NR_setpgid (__NR_Linux + 107) 699#define __NR_getppid (__NR_Linux + 108) 700#define __NR_getpgrp (__NR_Linux + 109) 701#define __NR_setsid (__NR_Linux + 110) 702#define __NR_setreuid (__NR_Linux + 111) 703#define __NR_setregid (__NR_Linux + 112) 704#define __NR_getgroups (__NR_Linux + 113) 705#define __NR_setgroups (__NR_Linux + 114) 706#define __NR_setresuid (__NR_Linux + 115) 707#define __NR_getresuid (__NR_Linux + 116) 708#define __NR_setresgid (__NR_Linux + 117) 709#define __NR_getresgid (__NR_Linux + 118) 710#define __NR_getpgid (__NR_Linux + 119) 711#define __NR_setfsuid (__NR_Linux + 120) 712#define __NR_setfsgid (__NR_Linux + 121) 713#define __NR_getsid (__NR_Linux + 122) 714#define __NR_capget (__NR_Linux + 123) 715#define __NR_capset (__NR_Linux + 124) 716#define __NR_rt_sigpending (__NR_Linux + 125) 717#define __NR_rt_sigtimedwait (__NR_Linux + 126) 718#define __NR_rt_sigqueueinfo (__NR_Linux + 127) 719#define __NR_rt_sigsuspend (__NR_Linux + 128) 720#define __NR_sigaltstack (__NR_Linux + 129) 721#define __NR_utime (__NR_Linux + 130) 722#define __NR_mknod (__NR_Linux + 131) 723#define __NR_personality (__NR_Linux + 132) 724#define __NR_ustat (__NR_Linux + 133) 725#define __NR_statfs (__NR_Linux + 134) 726#define __NR_fstatfs (__NR_Linux + 135) 727#define __NR_sysfs (__NR_Linux + 136) 728#define __NR_getpriority (__NR_Linux + 137) 729#define __NR_setpriority (__NR_Linux + 138) 730#define __NR_sched_setparam (__NR_Linux + 139) 731#define __NR_sched_getparam (__NR_Linux + 140) 732#define __NR_sched_setscheduler (__NR_Linux + 141) 733#define __NR_sched_getscheduler (__NR_Linux + 142) 734#define __NR_sched_get_priority_max (__NR_Linux + 143) 735#define __NR_sched_get_priority_min (__NR_Linux + 144) 736#define __NR_sched_rr_get_interval (__NR_Linux + 145) 737#define __NR_mlock (__NR_Linux + 146) 738#define __NR_munlock (__NR_Linux + 147) 739#define __NR_mlockall (__NR_Linux + 148) 740#define __NR_munlockall (__NR_Linux + 149) 741#define __NR_vhangup (__NR_Linux + 150) 742#define __NR_pivot_root (__NR_Linux + 151) 743#define __NR__sysctl (__NR_Linux + 152) 744#define __NR_prctl (__NR_Linux + 153) 745#define __NR_adjtimex (__NR_Linux + 154) 746#define __NR_setrlimit (__NR_Linux + 155) 747#define __NR_chroot (__NR_Linux + 156) 748#define __NR_sync (__NR_Linux + 157) 749#define __NR_acct (__NR_Linux + 158) 750#define __NR_settimeofday (__NR_Linux + 159) 751#define __NR_mount (__NR_Linux + 160) 752#define __NR_umount2 (__NR_Linux + 161) 753#define __NR_swapon (__NR_Linux + 162) 754#define __NR_swapoff (__NR_Linux + 163) 755#define __NR_reboot (__NR_Linux + 164) 756#define __NR_sethostname (__NR_Linux + 165) 757#define __NR_setdomainname (__NR_Linux + 166) 758#define __NR_create_module (__NR_Linux + 167) 759#define __NR_init_module (__NR_Linux + 168) 760#define __NR_delete_module (__NR_Linux + 169) 761#define __NR_get_kernel_syms (__NR_Linux + 170) 762#define __NR_query_module (__NR_Linux + 171) 763#define __NR_quotactl (__NR_Linux + 172) 764#define __NR_nfsservctl (__NR_Linux + 173) 765#define __NR_getpmsg (__NR_Linux + 174) 766#define __NR_putpmsg (__NR_Linux + 175) 767#define __NR_afs_syscall (__NR_Linux + 176) 768#define __NR_reserved177 (__NR_Linux + 177) 769#define __NR_gettid (__NR_Linux + 178) 770#define __NR_readahead (__NR_Linux + 179) 771#define __NR_setxattr (__NR_Linux + 180) 772#define __NR_lsetxattr (__NR_Linux + 181) 773#define __NR_fsetxattr (__NR_Linux + 182) 774#define __NR_getxattr (__NR_Linux + 183) 775#define __NR_lgetxattr (__NR_Linux + 184) 776#define __NR_fgetxattr (__NR_Linux + 185) 777#define __NR_listxattr (__NR_Linux + 186) 778#define __NR_llistxattr (__NR_Linux + 187) 779#define __NR_flistxattr (__NR_Linux + 188) 780#define __NR_removexattr (__NR_Linux + 189) 781#define __NR_lremovexattr (__NR_Linux + 190) 782#define __NR_fremovexattr (__NR_Linux + 191) 783#define __NR_tkill (__NR_Linux + 192) 784#define __NR_reserved193 (__NR_Linux + 193) 785#define __NR_futex (__NR_Linux + 194) 786#define __NR_sched_setaffinity (__NR_Linux + 195) 787#define __NR_sched_getaffinity (__NR_Linux + 196) 788#define __NR_cacheflush (__NR_Linux + 197) 789#define __NR_cachectl (__NR_Linux + 198) 790#define __NR_sysmips (__NR_Linux + 199) 791#define __NR_io_setup (__NR_Linux + 200) 792#define __NR_io_destroy (__NR_Linux + 201) 793#define __NR_io_getevents (__NR_Linux + 202) 794#define __NR_io_submit (__NR_Linux + 203) 795#define __NR_io_cancel (__NR_Linux + 204) 796#define __NR_exit_group (__NR_Linux + 205) 797#define __NR_lookup_dcookie (__NR_Linux + 206) 798#define __NR_epoll_create (__NR_Linux + 207) 799#define __NR_epoll_ctl (__NR_Linux + 208) 800#define __NR_epoll_wait (__NR_Linux + 209) 801#define __NR_remap_file_pages (__NR_Linux + 210) 802#define __NR_rt_sigreturn (__NR_Linux + 211) 803#define __NR_fcntl64 (__NR_Linux + 212) 804#define __NR_set_tid_address (__NR_Linux + 213) 805#define __NR_restart_syscall (__NR_Linux + 214) 806#define __NR_semtimedop (__NR_Linux + 215) 807#define __NR_fadvise64 (__NR_Linux + 216) 808#define __NR_statfs64 (__NR_Linux + 217) 809#define __NR_fstatfs64 (__NR_Linux + 218) 810#define __NR_sendfile64 (__NR_Linux + 219) 811#define __NR_timer_create (__NR_Linux + 220) 812#define __NR_timer_settime (__NR_Linux + 221) 813#define __NR_timer_gettime (__NR_Linux + 222) 814#define __NR_timer_getoverrun (__NR_Linux + 223) 815#define __NR_timer_delete (__NR_Linux + 224) 816#define __NR_clock_settime (__NR_Linux + 225) 817#define __NR_clock_gettime (__NR_Linux + 226) 818#define __NR_clock_getres (__NR_Linux + 227) 819#define __NR_clock_nanosleep (__NR_Linux + 228) 820#define __NR_tgkill (__NR_Linux + 229) 821#define __NR_utimes (__NR_Linux + 230) 822#define __NR_mbind (__NR_Linux + 231) 823#define __NR_get_mempolicy (__NR_Linux + 232) 824#define __NR_set_mempolicy (__NR_Linux + 233) 825#define __NR_mq_open (__NR_Linux + 234) 826#define __NR_mq_unlink (__NR_Linux + 235) 827#define __NR_mq_timedsend (__NR_Linux + 236) 828#define __NR_mq_timedreceive (__NR_Linux + 237) 829#define __NR_mq_notify (__NR_Linux + 238) 830#define __NR_mq_getsetattr (__NR_Linux + 239) 831#define __NR_vserver (__NR_Linux + 240) 832#define __NR_waitid (__NR_Linux + 241) 833/* #define __NR_sys_setaltroot (__NR_Linux + 242) */ 834#define __NR_add_key (__NR_Linux + 243) 835#define __NR_request_key (__NR_Linux + 244) 836#define __NR_keyctl (__NR_Linux + 245) 837#define __NR_set_thread_area (__NR_Linux + 246) 838#define __NR_inotify_init (__NR_Linux + 247) 839#define __NR_inotify_add_watch (__NR_Linux + 248) 840#define __NR_inotify_rm_watch (__NR_Linux + 249) 841 842/* 843 * Offset of the last N32 flavoured syscall 844 */ 845#define __NR_Linux_syscalls 249 846 847#endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */ 848 849#define __NR_N32_Linux 6000 850#define __NR_N32_Linux_syscalls 246 851 852#ifndef __ASSEMBLY__ 853 854/* XXX - _foo needs to be __foo, while __NR_bar could be _NR_bar. */ 855#define _syscall0(type,name) \ 856type name(void) \ 857{ \ 858 register unsigned long __a3 asm("$7"); \ 859 unsigned long __v0; \ 860 \ 861 __asm__ volatile ( \ 862 ".set\tnoreorder\n\t" \ 863 "li\t$2, %2\t\t\t# " #name "\n\t" \ 864 "syscall\n\t" \ 865 "move\t%0, $2\n\t" \ 866 ".set\treorder" \ 867 : "=&r" (__v0), "=r" (__a3) \ 868 : "i" (__NR_##name) \ 869 : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \ 870 "memory"); \ 871 \ 872 if (__a3 == 0) \ 873 return (type) __v0; \ 874 errno = __v0; \ 875 return (type) -1; \ 876} 877 878/* 879 * DANGER: This macro isn't usable for the pipe(2) call 880 * which has a unusual return convention. 881 */ 882#define _syscall1(type,name,atype,a) \ 883type name(atype a) \ 884{ \ 885 register unsigned long __a0 asm("$4") = (unsigned long) a; \ 886 register unsigned long __a3 asm("$7"); \ 887 unsigned long __v0; \ 888 \ 889 __asm__ volatile ( \ 890 ".set\tnoreorder\n\t" \ 891 "li\t$2, %3\t\t\t# " #name "\n\t" \ 892 "syscall\n\t" \ 893 "move\t%0, $2\n\t" \ 894 ".set\treorder" \ 895 : "=&r" (__v0), "=r" (__a3) \ 896 : "r" (__a0), "i" (__NR_##name) \ 897 : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \ 898 "memory"); \ 899 \ 900 if (__a3 == 0) \ 901 return (type) __v0; \ 902 errno = __v0; \ 903 return (type) -1; \ 904} 905 906#define _syscall2(type,name,atype,a,btype,b) \ 907type name(atype a, btype b) \ 908{ \ 909 register unsigned long __a0 asm("$4") = (unsigned long) a; \ 910 register unsigned long __a1 asm("$5") = (unsigned long) b; \ 911 register unsigned long __a3 asm("$7"); \ 912 unsigned long __v0; \ 913 \ 914 __asm__ volatile ( \ 915 ".set\tnoreorder\n\t" \ 916 "li\t$2, %4\t\t\t# " #name "\n\t" \ 917 "syscall\n\t" \ 918 "move\t%0, $2\n\t" \ 919 ".set\treorder" \ 920 : "=&r" (__v0), "=r" (__a3) \ 921 : "r" (__a0), "r" (__a1), "i" (__NR_##name) \ 922 : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \ 923 "memory"); \ 924 \ 925 if (__a3 == 0) \ 926 return (type) __v0; \ 927 errno = __v0; \ 928 return (type) -1; \ 929} 930 931#define _syscall3(type,name,atype,a,btype,b,ctype,c) \ 932type name(atype a, btype b, ctype c) \ 933{ \ 934 register unsigned long __a0 asm("$4") = (unsigned long) a; \ 935 register unsigned long __a1 asm("$5") = (unsigned long) b; \ 936 register unsigned long __a2 asm("$6") = (unsigned long) c; \ 937 register unsigned long __a3 asm("$7"); \ 938 unsigned long __v0; \ 939 \ 940 __asm__ volatile ( \ 941 ".set\tnoreorder\n\t" \ 942 "li\t$2, %5\t\t\t# " #name "\n\t" \ 943 "syscall\n\t" \ 944 "move\t%0, $2\n\t" \ 945 ".set\treorder" \ 946 : "=&r" (__v0), "=r" (__a3) \ 947 : "r" (__a0), "r" (__a1), "r" (__a2), "i" (__NR_##name) \ 948 : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \ 949 "memory"); \ 950 \ 951 if (__a3 == 0) \ 952 return (type) __v0; \ 953 errno = __v0; \ 954 return (type) -1; \ 955} 956 957#define _syscall4(type,name,atype,a,btype,b,ctype,c,dtype,d) \ 958type name(atype a, btype b, ctype c, dtype d) \ 959{ \ 960 register unsigned long __a0 asm("$4") = (unsigned long) a; \ 961 register unsigned long __a1 asm("$5") = (unsigned long) b; \ 962 register unsigned long __a2 asm("$6") = (unsigned long) c; \ 963 register unsigned long __a3 asm("$7") = (unsigned long) d; \ 964 unsigned long __v0; \ 965 \ 966 __asm__ volatile ( \ 967 ".set\tnoreorder\n\t" \ 968 "li\t$2, %5\t\t\t# " #name "\n\t" \ 969 "syscall\n\t" \ 970 "move\t%0, $2\n\t" \ 971 ".set\treorder" \ 972 : "=&r" (__v0), "+r" (__a3) \ 973 : "r" (__a0), "r" (__a1), "r" (__a2), "i" (__NR_##name) \ 974 : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \ 975 "memory"); \ 976 \ 977 if (__a3 == 0) \ 978 return (type) __v0; \ 979 errno = __v0; \ 980 return (type) -1; \ 981} 982 983#if (_MIPS_SIM == _MIPS_SIM_ABI32) 984 985/* 986 * Using those means your brain needs more than an oil change ;-) 987 */ 988 989#define _syscall5(type,name,atype,a,btype,b,ctype,c,dtype,d,etype,e) \ 990type name(atype a, btype b, ctype c, dtype d, etype e) \ 991{ \ 992 register unsigned long __a0 asm("$4") = (unsigned long) a; \ 993 register unsigned long __a1 asm("$5") = (unsigned long) b; \ 994 register unsigned long __a2 asm("$6") = (unsigned long) c; \ 995 register unsigned long __a3 asm("$7") = (unsigned long) d; \ 996 unsigned long __v0; \ 997 \ 998 __asm__ volatile ( \ 999 ".set\tnoreorder\n\t" \ 1000 "lw\t$2, %6\n\t" \ 1001 "subu\t$29, 32\n\t" \ 1002 "sw\t$2, 16($29)\n\t" \ 1003 "li\t$2, %5\t\t\t# " #name "\n\t" \ 1004 "syscall\n\t" \ 1005 "move\t%0, $2\n\t" \ 1006 "addiu\t$29, 32\n\t" \ 1007 ".set\treorder" \ 1008 : "=&r" (__v0), "+r" (__a3) \ 1009 : "r" (__a0), "r" (__a1), "r" (__a2), "i" (__NR_##name), \ 1010 "m" ((unsigned long)e) \ 1011 : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \ 1012 "memory"); \ 1013 \ 1014 if (__a3 == 0) \ 1015 return (type) __v0; \ 1016 errno = __v0; \ 1017 return (type) -1; \ 1018} 1019 1020#define _syscall6(type,name,atype,a,btype,b,ctype,c,dtype,d,etype,e,ftype,f) \ 1021type name(atype a, btype b, ctype c, dtype d, etype e, ftype f) \ 1022{ \ 1023 register unsigned long __a0 asm("$4") = (unsigned long) a; \ 1024 register unsigned long __a1 asm("$5") = (unsigned long) b; \ 1025 register unsigned long __a2 asm("$6") = (unsigned long) c; \ 1026 register unsigned long __a3 asm("$7") = (unsigned long) d; \ 1027 unsigned long __v0; \ 1028 \ 1029 __asm__ volatile ( \ 1030 ".set\tnoreorder\n\t" \ 1031 "lw\t$2, %6\n\t" \ 1032 "lw\t$8, %7\n\t" \ 1033 "subu\t$29, 32\n\t" \ 1034 "sw\t$2, 16($29)\n\t" \ 1035 "sw\t$8, 20($29)\n\t" \ 1036 "li\t$2, %5\t\t\t# " #name "\n\t" \ 1037 "syscall\n\t" \ 1038 "move\t%0, $2\n\t" \ 1039 "addiu\t$29, 32\n\t" \ 1040 ".set\treorder" \ 1041 : "=&r" (__v0), "+r" (__a3) \ 1042 : "r" (__a0), "r" (__a1), "r" (__a2), "i" (__NR_##name), \ 1043 "m" ((unsigned long)e), "m" ((unsigned long)f) \ 1044 : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \ 1045 "memory"); \ 1046 \ 1047 if (__a3 == 0) \ 1048 return (type) __v0; \ 1049 errno = __v0; \ 1050 return (type) -1; \ 1051} 1052 1053#endif /* (_MIPS_SIM == _MIPS_SIM_ABI32) */ 1054 1055#if (_MIPS_SIM == _MIPS_SIM_NABI32) || (_MIPS_SIM == _MIPS_SIM_ABI64) 1056 1057#define _syscall5(type,name,atype,a,btype,b,ctype,c,dtype,d,etype,e) \ 1058type name (atype a,btype b,ctype c,dtype d,etype e) \ 1059{ \ 1060 register unsigned long __a0 asm("$4") = (unsigned long) a; \ 1061 register unsigned long __a1 asm("$5") = (unsigned long) b; \ 1062 register unsigned long __a2 asm("$6") = (unsigned long) c; \ 1063 register unsigned long __a3 asm("$7") = (unsigned long) d; \ 1064 register unsigned long __a4 asm("$8") = (unsigned long) e; \ 1065 unsigned long __v0; \ 1066 \ 1067 __asm__ volatile ( \ 1068 ".set\tnoreorder\n\t" \ 1069 "li\t$2, %6\t\t\t# " #name "\n\t" \ 1070 "syscall\n\t" \ 1071 "move\t%0, $2\n\t" \ 1072 ".set\treorder" \ 1073 : "=&r" (__v0), "+r" (__a3) \ 1074 : "r" (__a0), "r" (__a1), "r" (__a2), "r" (__a4), "i" (__NR_##name) \ 1075 : "$2", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \ 1076 "memory"); \ 1077 \ 1078 if (__a3 == 0) \ 1079 return (type) __v0; \ 1080 errno = __v0; \ 1081 return (type) -1; \ 1082} 1083 1084#define _syscall6(type,name,atype,a,btype,b,ctype,c,dtype,d,etype,e,ftype,f) \ 1085type name (atype a,btype b,ctype c,dtype d,etype e,ftype f) \ 1086{ \ 1087 register unsigned long __a0 asm("$4") = (unsigned long) a; \ 1088 register unsigned long __a1 asm("$5") = (unsigned long) b; \ 1089 register unsigned long __a2 asm("$6") = (unsigned long) c; \ 1090 register unsigned long __a3 asm("$7") = (unsigned long) d; \ 1091 register unsigned long __a4 asm("$8") = (unsigned long) e; \ 1092 register unsigned long __a5 asm("$9") = (unsigned long) f; \ 1093 unsigned long __v0; \ 1094 \ 1095 __asm__ volatile ( \ 1096 ".set\tnoreorder\n\t" \ 1097 "li\t$2, %7\t\t\t# " #name "\n\t" \ 1098 "syscall\n\t" \ 1099 "move\t%0, $2\n\t" \ 1100 ".set\treorder" \ 1101 : "=&r" (__v0), "+r" (__a3) \ 1102 : "r" (__a0), "r" (__a1), "r" (__a2), "r" (__a4), "r" (__a5), \ 1103 "i" (__NR_##name) \ 1104 : "$2", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24", \ 1105 "memory"); \ 1106 \ 1107 if (__a3 == 0) \ 1108 return (type) __v0; \ 1109 errno = __v0; \ 1110 return (type) -1; \ 1111} 1112 1113#endif /* (_MIPS_SIM == _MIPS_SIM_NABI32) || (_MIPS_SIM == _MIPS_SIM_ABI64) */ 1114 1115#ifdef __KERNEL__ 1116 1117#include <linux/config.h> 1118 1119#define __ARCH_WANT_IPC_PARSE_VERSION 1120#define __ARCH_WANT_OLD_READDIR 1121#define __ARCH_WANT_SYS_ALARM 1122#define __ARCH_WANT_SYS_GETHOSTNAME 1123#define __ARCH_WANT_SYS_PAUSE 1124#define __ARCH_WANT_SYS_SGETMASK 1125#define __ARCH_WANT_SYS_UTIME 1126#define __ARCH_WANT_SYS_WAITPID 1127#define __ARCH_WANT_SYS_SOCKETCALL 1128#define __ARCH_WANT_SYS_FADVISE64 1129#define __ARCH_WANT_SYS_GETPGRP 1130#define __ARCH_WANT_SYS_LLSEEK 1131#define __ARCH_WANT_SYS_NICE 1132#define __ARCH_WANT_SYS_OLD_GETRLIMIT 1133#define __ARCH_WANT_SYS_OLDUMOUNT 1134#define __ARCH_WANT_SYS_SIGPENDING 1135#define __ARCH_WANT_SYS_SIGPROCMASK 1136#define __ARCH_WANT_SYS_RT_SIGACTION 1137# ifndef __mips64 1138# define __ARCH_WANT_STAT64 1139# endif 1140# ifdef CONFIG_32BIT 1141# define __ARCH_WANT_SYS_TIME 1142# endif 1143# ifdef CONFIG_MIPS32_O32 1144# define __ARCH_WANT_COMPAT_SYS_TIME 1145# endif 1146#endif 1147 1148#ifdef __KERNEL_SYSCALLS__ 1149 1150#include <linux/compiler.h> 1151#include <linux/types.h> 1152#include <linux/linkage.h> 1153#include <asm/ptrace.h> 1154#include <asm/sim.h> 1155 1156/* 1157 * we need this inline - forking from kernel space will result 1158 * in NO COPY ON WRITE (!!!), until an execve is executed. This 1159 * is no problem, but for the stack. This is handled by not letting 1160 * main() use the stack at all after fork(). Thus, no function 1161 * calls - which means inline code for fork too, as otherwise we 1162 * would use the stack upon exit from 'fork()'. 1163 * 1164 * Actually only pause and fork are needed inline, so that there 1165 * won't be any messing with the stack from main(), but we define 1166 * some others too. 1167 */ 1168static inline _syscall3(int,execve,const char *,file,char **,argv,char **,envp) 1169 1170asmlinkage unsigned long sys_mmap( 1171 unsigned long addr, size_t len, 1172 int prot, int flags, 1173 int fd, off_t offset); 1174asmlinkage long sys_mmap2( 1175 unsigned long addr, unsigned long len, 1176 unsigned long prot, unsigned long flags, 1177 unsigned long fd, unsigned long pgoff); 1178asmlinkage int sys_execve(nabi_no_regargs struct pt_regs regs); 1179asmlinkage int sys_pipe(nabi_no_regargs struct pt_regs regs); 1180struct sigaction; 1181asmlinkage long sys_rt_sigaction(int sig, 1182 const struct sigaction __user *act, 1183 struct sigaction __user *oact, 1184 size_t sigsetsize); 1185 1186#endif /* __KERNEL_SYSCALLS__ */ 1187#endif /* !__ASSEMBLY__ */ 1188 1189/* 1190 * "Conditional" syscalls 1191 * 1192 * What we want is __attribute__((weak,alias("sys_ni_syscall"))), 1193 * but it doesn't work on all toolchains, so we just do it by hand 1194 */ 1195#define cond_syscall(x) asm(".weak\t" #x "\n" #x "\t=\tsys_ni_syscall") 1196 1197#endif /* _ASM_UNISTD_H */