unistd.h 44 KB

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