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