unistd.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:32k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  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.  * Linux o32 style syscalls are in the range from 4000 to 4999.
  16.  */
  17. #define __NR_Linux32 4000
  18. #define __NR_Linux32_syscall (__NR_Linux32 +   0)
  19. #define __NR_Linux32_exit (__NR_Linux32 +   1)
  20. #define __NR_Linux32_fork (__NR_Linux32 +   2)
  21. #define __NR_Linux32_read (__NR_Linux32 +   3)
  22. #define __NR_Linux32_write (__NR_Linux32 +   4)
  23. #define __NR_Linux32_open (__NR_Linux32 +   5)
  24. #define __NR_Linux32_close (__NR_Linux32 +   6)
  25. #define __NR_Linux32_waitpid (__NR_Linux32 +   7)
  26. #define __NR_Linux32_creat (__NR_Linux32 +   8)
  27. #define __NR_Linux32_link (__NR_Linux32 +   9)
  28. #define __NR_Linux32_unlink (__NR_Linux32 +  10)
  29. #define __NR_Linux32_execve (__NR_Linux32 +  11)
  30. #define __NR_Linux32_chdir (__NR_Linux32 +  12)
  31. #define __NR_Linux32_time (__NR_Linux32 +  13)
  32. #define __NR_Linux32_mknod (__NR_Linux32 +  14)
  33. #define __NR_Linux32_chmod (__NR_Linux32 +  15)
  34. #define __NR_Linux32_lchown (__NR_Linux32 +  16)
  35. #define __NR_Linux32_break (__NR_Linux32 +  17)
  36. #define __NR_Linux32_oldstat (__NR_Linux32 +  18)
  37. #define __NR_Linux32_lseek (__NR_Linux32 +  19)
  38. #define __NR_Linux32_getpid (__NR_Linux32 +  20)
  39. #define __NR_Linux32_mount (__NR_Linux32 +  21)
  40. #define __NR_Linux32_umount (__NR_Linux32 +  22)
  41. #define __NR_Linux32_setuid (__NR_Linux32 +  23)
  42. #define __NR_Linux32_getuid (__NR_Linux32 +  24)
  43. #define __NR_Linux32_stime (__NR_Linux32 +  25)
  44. #define __NR_Linux32_ptrace (__NR_Linux32 +  26)
  45. #define __NR_Linux32_alarm (__NR_Linux32 +  27)
  46. #define __NR_Linux32_oldfstat (__NR_Linux32 +  28)
  47. #define __NR_Linux32_pause (__NR_Linux32 +  29)
  48. #define __NR_Linux32_utime (__NR_Linux32 +  30)
  49. #define __NR_Linux32_stty (__NR_Linux32 +  31)
  50. #define __NR_Linux32_gtty (__NR_Linux32 +  32)
  51. #define __NR_Linux32_access (__NR_Linux32 +  33)
  52. #define __NR_Linux32_nice (__NR_Linux32 +  34)
  53. #define __NR_Linux32_ftime (__NR_Linux32 +  35)
  54. #define __NR_Linux32_sync (__NR_Linux32 +  36)
  55. #define __NR_Linux32_kill (__NR_Linux32 +  37)
  56. #define __NR_Linux32_rename (__NR_Linux32 +  38)
  57. #define __NR_Linux32_mkdir (__NR_Linux32 +  39)
  58. #define __NR_Linux32_rmdir (__NR_Linux32 +  40)
  59. #define __NR_Linux32_dup (__NR_Linux32 +  41)
  60. #define __NR_Linux32_pipe (__NR_Linux32 +  42)
  61. #define __NR_Linux32_times (__NR_Linux32 +  43)
  62. #define __NR_Linux32_prof (__NR_Linux32 +  44)
  63. #define __NR_Linux32_brk (__NR_Linux32 +  45)
  64. #define __NR_Linux32_setgid (__NR_Linux32 +  46)
  65. #define __NR_Linux32_getgid (__NR_Linux32 +  47)
  66. #define __NR_Linux32_signal (__NR_Linux32 +  48)
  67. #define __NR_Linux32_geteuid (__NR_Linux32 +  49)
  68. #define __NR_Linux32_getegid (__NR_Linux32 +  50)
  69. #define __NR_Linux32_acct (__NR_Linux32 +  51)
  70. #define __NR_Linux32_umount2 (__NR_Linux32 +  52)
  71. #define __NR_Linux32_lock (__NR_Linux32 +  53)
  72. #define __NR_Linux32_ioctl (__NR_Linux32 +  54)
  73. #define __NR_Linux32_fcntl (__NR_Linux32 +  55)
  74. #define __NR_Linux32_mpx (__NR_Linux32 +  56)
  75. #define __NR_Linux32_setpgid (__NR_Linux32 +  57)
  76. #define __NR_Linux32_ulimit (__NR_Linux32 +  58)
  77. #define __NR_Linux32_unused59 (__NR_Linux32 +  59)
  78. #define __NR_Linux32_umask (__NR_Linux32 +  60)
  79. #define __NR_Linux32_chroot (__NR_Linux32 +  61)
  80. #define __NR_Linux32_ustat (__NR_Linux32 +  62)
  81. #define __NR_Linux32_dup2 (__NR_Linux32 +  63)
  82. #define __NR_Linux32_getppid (__NR_Linux32 +  64)
  83. #define __NR_Linux32_getpgrp (__NR_Linux32 +  65)
  84. #define __NR_Linux32_setsid (__NR_Linux32 +  66)
  85. #define __NR_Linux32_sigaction (__NR_Linux32 +  67)
  86. #define __NR_Linux32_sgetmask (__NR_Linux32 +  68)
  87. #define __NR_Linux32_ssetmask (__NR_Linux32 +  69)
  88. #define __NR_Linux32_setreuid (__NR_Linux32 +  70)
  89. #define __NR_Linux32_setregid (__NR_Linux32 +  71)
  90. #define __NR_Linux32_sigsuspend (__NR_Linux32 +  72)
  91. #define __NR_Linux32_sigpending (__NR_Linux32 +  73)
  92. #define __NR_Linux32_sethostname (__NR_Linux32 +  74)
  93. #define __NR_Linux32_setrlimit (__NR_Linux32 +  75)
  94. #define __NR_Linux32_getrlimit (__NR_Linux32 +  76)
  95. #define __NR_Linux32_getrusage (__NR_Linux32 +  77)
  96. #define __NR_Linux32_gettimeofday (__NR_Linux32 +  78)
  97. #define __NR_Linux32_settimeofday (__NR_Linux32 +  79)
  98. #define __NR_Linux32_getgroups (__NR_Linux32 +  80)
  99. #define __NR_Linux32_setgroups (__NR_Linux32 +  81)
  100. #define __NR_Linux32_reserved82 (__NR_Linux32 +  82)
  101. #define __NR_Linux32_symlink (__NR_Linux32 +  83)
  102. #define __NR_Linux32_oldlstat (__NR_Linux32 +  84)
  103. #define __NR_Linux32_readlink (__NR_Linux32 +  85)
  104. #define __NR_Linux32_uselib (__NR_Linux32 +  86)
  105. #define __NR_Linux32_swapon (__NR_Linux32 +  87)
  106. #define __NR_Linux32_reboot (__NR_Linux32 +  88)
  107. #define __NR_Linux32_readdir (__NR_Linux32 +  89)
  108. #define __NR_Linux32_mmap (__NR_Linux32 +  90)
  109. #define __NR_Linux32_munmap (__NR_Linux32 +  91)
  110. #define __NR_Linux32_truncate (__NR_Linux32 +  92)
  111. #define __NR_Linux32_ftruncate (__NR_Linux32 +  93)
  112. #define __NR_Linux32_fchmod (__NR_Linux32 +  94)
  113. #define __NR_Linux32_fchown (__NR_Linux32 +  95)
  114. #define __NR_Linux32_getpriority (__NR_Linux32 +  96)
  115. #define __NR_Linux32_setpriority (__NR_Linux32 +  97)
  116. #define __NR_Linux32_profil (__NR_Linux32 +  98)
  117. #define __NR_Linux32_statfs (__NR_Linux32 +  99)
  118. #define __NR_Linux32_fstatfs (__NR_Linux32 + 100)
  119. #define __NR_Linux32_ioperm (__NR_Linux32 + 101)
  120. #define __NR_Linux32_socketcall (__NR_Linux32 + 102)
  121. #define __NR_Linux32_syslog (__NR_Linux32 + 103)
  122. #define __NR_Linux32_setitimer (__NR_Linux32 + 104)
  123. #define __NR_Linux32_getitimer (__NR_Linux32 + 105)
  124. #define __NR_Linux32_stat (__NR_Linux32 + 106)
  125. #define __NR_Linux32_lstat (__NR_Linux32 + 107)
  126. #define __NR_Linux32_fstat (__NR_Linux32 + 108)
  127. #define __NR_Linux32_unused109 (__NR_Linux32 + 109)
  128. #define __NR_Linux32_iopl (__NR_Linux32 + 110)
  129. #define __NR_Linux32_vhangup (__NR_Linux32 + 111)
  130. #define __NR_Linux32_idle (__NR_Linux32 + 112)
  131. #define __NR_Linux32_vm86 (__NR_Linux32 + 113)
  132. #define __NR_Linux32_wait4 (__NR_Linux32 + 114)
  133. #define __NR_Linux32_swapoff (__NR_Linux32 + 115)
  134. #define __NR_Linux32_sysinfo (__NR_Linux32 + 116)
  135. #define __NR_Linux32_ipc (__NR_Linux32 + 117)
  136. #define __NR_Linux32_fsync (__NR_Linux32 + 118)
  137. #define __NR_Linux32_sigreturn (__NR_Linux32 + 119)
  138. #define __NR_Linux32_clone (__NR_Linux32 + 120)
  139. #define __NR_Linux32_setdomainname (__NR_Linux32 + 121)
  140. #define __NR_Linux32_uname (__NR_Linux32 + 122)
  141. #define __NR_Linux32_modify_ldt (__NR_Linux32 + 123)
  142. #define __NR_Linux32_adjtimex (__NR_Linux32 + 124)
  143. #define __NR_Linux32_mprotect (__NR_Linux32 + 125)
  144. #define __NR_Linux32_sigprocmask (__NR_Linux32 + 126)
  145. #define __NR_Linux32_create_module (__NR_Linux32 + 127)
  146. #define __NR_Linux32_init_module (__NR_Linux32 + 128)
  147. #define __NR_Linux32_delete_module (__NR_Linux32 + 129)
  148. #define __NR_Linux32_get_kernel_syms (__NR_Linux32 + 130)
  149. #define __NR_Linux32_quotactl (__NR_Linux32 + 131)
  150. #define __NR_Linux32_getpgid (__NR_Linux32 + 132)
  151. #define __NR_Linux32_fchdir (__NR_Linux32 + 133)
  152. #define __NR_Linux32_bdflush (__NR_Linux32 + 134)
  153. #define __NR_Linux32_sysfs (__NR_Linux32 + 135)
  154. #define __NR_Linux32_personality (__NR_Linux32 + 136)
  155. #define __NR_Linux32_afs_syscall (__NR_Linux32 + 137) /* Syscall for Andrew File System */
  156. #define __NR_Linux32_setfsuid (__NR_Linux32 + 138)
  157. #define __NR_Linux32_setfsgid (__NR_Linux32 + 139)
  158. #define __NR_Linux32__llseek (__NR_Linux32 + 140)
  159. #define __NR_Linux32_getdents (__NR_Linux32 + 141)
  160. #define __NR_Linux32__newselect (__NR_Linux32 + 142)
  161. #define __NR_Linux32_flock (__NR_Linux32 + 143)
  162. #define __NR_Linux32_msync (__NR_Linux32 + 144)
  163. #define __NR_Linux32_readv (__NR_Linux32 + 145)
  164. #define __NR_Linux32_writev (__NR_Linux32 + 146)
  165. #define __NR_Linux32_cacheflush (__NR_Linux32 + 147)
  166. #define __NR_Linux32_cachectl (__NR_Linux32 + 148)
  167. #define __NR_Linux32_sysmips (__NR_Linux32 + 149)
  168. #define __NR_Linux32_unused150 (__NR_Linux32 + 150)
  169. #define __NR_Linux32_getsid (__NR_Linux32 + 151)
  170. #define __NR_Linux32_fdatasync (__NR_Linux32 + 152)
  171. #define __NR_Linux32__sysctl (__NR_Linux32 + 153)
  172. #define __NR_Linux32_mlock (__NR_Linux32 + 154)
  173. #define __NR_Linux32_munlock (__NR_Linux32 + 155)
  174. #define __NR_Linux32_mlockall (__NR_Linux32 + 156)
  175. #define __NR_Linux32_munlockall (__NR_Linux32 + 157)
  176. #define __NR_Linux32_sched_setparam (__NR_Linux32 + 158)
  177. #define __NR_Linux32_sched_getparam (__NR_Linux32 + 159)
  178. #define __NR_Linux32_sched_setscheduler (__NR_Linux32 + 160)
  179. #define __NR_Linux32_sched_getscheduler (__NR_Linux32 + 161)
  180. #define __NR_Linux32_sched_yield (__NR_Linux32 + 162)
  181. #define __NR_Linux32_sched_get_priority_max (__NR_Linux32 + 163)
  182. #define __NR_Linux32_sched_get_priority_min (__NR_Linux32 + 164)
  183. #define __NR_Linux32_sched_rr_get_interval (__NR_Linux32 + 165)
  184. #define __NR_Linux32_nanosleep (__NR_Linux32 + 166)
  185. #define __NR_Linux32_mremap (__NR_Linux32 + 167)
  186. #define __NR_Linux32_accept (__NR_Linux32 + 168)
  187. #define __NR_Linux32_bind (__NR_Linux32 + 169)
  188. #define __NR_Linux32_connect (__NR_Linux32 + 170)
  189. #define __NR_Linux32_getpeername (__NR_Linux32 + 171)
  190. #define __NR_Linux32_getsockname (__NR_Linux32 + 172)
  191. #define __NR_Linux32_getsockopt (__NR_Linux32 + 173)
  192. #define __NR_Linux32_listen (__NR_Linux32 + 174)
  193. #define __NR_Linux32_recv (__NR_Linux32 + 175)
  194. #define __NR_Linux32_recvfrom (__NR_Linux32 + 176)
  195. #define __NR_Linux32_recvmsg (__NR_Linux32 + 177)
  196. #define __NR_Linux32_send (__NR_Linux32 + 178)
  197. #define __NR_Linux32_sendmsg (__NR_Linux32 + 179)
  198. #define __NR_Linux32_sendto (__NR_Linux32 + 180)
  199. #define __NR_Linux32_setsockopt (__NR_Linux32 + 181)
  200. #define __NR_Linux32_shutdown (__NR_Linux32 + 182)
  201. #define __NR_Linux32_socket (__NR_Linux32 + 183)
  202. #define __NR_Linux32_socketpair (__NR_Linux32 + 184)
  203. #define __NR_Linux32_setresuid (__NR_Linux32 + 185)
  204. #define __NR_Linux32_getresuid (__NR_Linux32 + 186)
  205. #define __NR_Linux32_query_module (__NR_Linux32 + 187)
  206. #define __NR_Linux32_poll (__NR_Linux32 + 188)
  207. #define __NR_Linux32_nfsservctl (__NR_Linux32 + 189)
  208. #define __NR_Linux32_setresgid (__NR_Linux32 + 190)
  209. #define __NR_Linux32_getresgid (__NR_Linux32 + 191)
  210. #define __NR_Linux32_prctl (__NR_Linux32 + 192)
  211. #define __NR_Linux32_rt_sigreturn (__NR_Linux32 + 193)
  212. #define __NR_Linux32_rt_sigaction (__NR_Linux32 + 194)
  213. #define __NR_Linux32_rt_sigprocmask (__NR_Linux32 + 195)
  214. #define __NR_Linux32_rt_sigpending (__NR_Linux32 + 196)
  215. #define __NR_Linux32_rt_sigtimedwait (__NR_Linux32 + 197)
  216. #define __NR_Linux32_rt_sigqueueinfo (__NR_Linux32 + 198)
  217. #define __NR_Linux32_rt_sigsuspend (__NR_Linux32 + 199)
  218. #define __NR_Linux32_pread (__NR_Linux32 + 200)
  219. #define __NR_Linux32_pwrite (__NR_Linux32 + 201)
  220. #define __NR_Linux32_chown (__NR_Linux32 + 202)
  221. #define __NR_Linux32_getcwd (__NR_Linux32 + 203)
  222. #define __NR_Linux32_capget (__NR_Linux32 + 204)
  223. #define __NR_Linux32_capset (__NR_Linux32 + 205)
  224. #define __NR_Linux32_sigaltstack (__NR_Linux32 + 206)
  225. #define __NR_Linux32_sendfile (__NR_Linux32 + 207)
  226. #define __NR_Linux32_getpmsg (__NR_Linux32 + 208)
  227. #define __NR_Linux32_putpmsg (__NR_Linux32 + 209)
  228. #define __NR_Linux32_mmap2 (__NR_Linux32 + 210)
  229. #define __NR_Linux32_truncate64 (__NR_Linux32 + 211)
  230. #define __NR_Linux32_ftruncate64 (__NR_Linux32 + 212)
  231. #define __NR_Linux32_stat64 (__NR_Linux32 + 213)
  232. #define __NR_Linux32_lstat64 (__NR_Linux32 + 214)
  233. #define __NR_Linux32_fstat64 (__NR_Linux32 + 215)
  234. #define __NR_Linux32_root_pivot (__NR_Linux32 + 216)
  235. #define __NR_Linux32_mincore (__NR_Linux32 + 217)
  236. #define __NR_Linux32_madvise (__NR_Linux32 + 218)
  237. #define __NR_Linux32_getdents64 (__NR_Linux32 + 219)
  238. #define __NR_Linux32_fcntl64 (__NR_Linux32 + 220)
  239. /*
  240.  * Offset of the last Linux o32 flavoured syscall
  241.  */
  242. #define __NR_Linux32_syscalls 220
  243. /*
  244.  * Linux 64-bit syscalls are in the range from 5000 to 5999.
  245.  */
  246. #define __NR_Linux 5000
  247. #define __NR_syscall (__NR_Linux +   0)
  248. #define __NR_exit (__NR_Linux +   1)
  249. #define __NR_fork (__NR_Linux +   2)
  250. #define __NR_read (__NR_Linux +   3)
  251. #define __NR_write (__NR_Linux +   4)
  252. #define __NR_open (__NR_Linux +   5)
  253. #define __NR_close (__NR_Linux +   6)
  254. #define __NR_waitpid (__NR_Linux +   7)
  255. #define __NR_creat (__NR_Linux +   8)
  256. #define __NR_link (__NR_Linux +   9)
  257. #define __NR_unlink (__NR_Linux +  10)
  258. #define __NR_execve (__NR_Linux +  11)
  259. #define __NR_chdir (__NR_Linux +  12)
  260. #define __NR_time (__NR_Linux +  13)
  261. #define __NR_mknod (__NR_Linux +  14)
  262. #define __NR_chmod (__NR_Linux +  15)
  263. #define __NR_lchown (__NR_Linux +  16)
  264. #define __NR_break (__NR_Linux +  17)
  265. #define __NR_oldstat (__NR_Linux +  18)
  266. #define __NR_lseek (__NR_Linux +  19)
  267. #define __NR_getpid (__NR_Linux +  20)
  268. #define __NR_mount (__NR_Linux +  21)
  269. #define __NR_umount (__NR_Linux +  22)
  270. #define __NR_setuid (__NR_Linux +  23)
  271. #define __NR_getuid (__NR_Linux +  24)
  272. #define __NR_stime (__NR_Linux +  25)
  273. #define __NR_ptrace (__NR_Linux +  26)
  274. #define __NR_alarm (__NR_Linux +  27)
  275. #define __NR_oldfstat (__NR_Linux +  28)
  276. #define __NR_pause (__NR_Linux +  29)
  277. #define __NR_utime (__NR_Linux +  30)
  278. #define __NR_stty (__NR_Linux +  31)
  279. #define __NR_gtty (__NR_Linux +  32)
  280. #define __NR_access (__NR_Linux +  33)
  281. #define __NR_nice (__NR_Linux +  34)
  282. #define __NR_ftime (__NR_Linux +  35)
  283. #define __NR_sync (__NR_Linux +  36)
  284. #define __NR_kill (__NR_Linux +  37)
  285. #define __NR_rename (__NR_Linux +  38)
  286. #define __NR_mkdir (__NR_Linux +  39)
  287. #define __NR_rmdir (__NR_Linux +  40)
  288. #define __NR_dup (__NR_Linux +  41)
  289. #define __NR_pipe (__NR_Linux +  42)
  290. #define __NR_times (__NR_Linux +  43)
  291. #define __NR_prof (__NR_Linux +  44)
  292. #define __NR_brk (__NR_Linux +  45)
  293. #define __NR_setgid (__NR_Linux +  46)
  294. #define __NR_getgid (__NR_Linux +  47)
  295. #define __NR_signal (__NR_Linux +  48)
  296. #define __NR_geteuid (__NR_Linux +  49)
  297. #define __NR_getegid (__NR_Linux +  50)
  298. #define __NR_acct (__NR_Linux +  51)
  299. #define __NR_umount2 (__NR_Linux +  52)
  300. #define __NR_lock (__NR_Linux +  53)
  301. #define __NR_ioctl (__NR_Linux +  54)
  302. #define __NR_fcntl (__NR_Linux +  55)
  303. #define __NR_mpx (__NR_Linux +  56)
  304. #define __NR_setpgid (__NR_Linux +  57)
  305. #define __NR_ulimit (__NR_Linux +  58)
  306. #define __NR_unused59 (__NR_Linux +  59)
  307. #define __NR_umask (__NR_Linux +  60)
  308. #define __NR_chroot (__NR_Linux +  61)
  309. #define __NR_ustat (__NR_Linux +  62)
  310. #define __NR_dup2 (__NR_Linux +  63)
  311. #define __NR_getppid (__NR_Linux +  64)
  312. #define __NR_getpgrp (__NR_Linux +  65)
  313. #define __NR_setsid (__NR_Linux +  66)
  314. #define __NR_sigaction (__NR_Linux +  67)
  315. #define __NR_sgetmask (__NR_Linux +  68)
  316. #define __NR_ssetmask (__NR_Linux +  69)
  317. #define __NR_setreuid (__NR_Linux +  70)
  318. #define __NR_setregid (__NR_Linux +  71)
  319. #define __NR_sigsuspend (__NR_Linux +  72)
  320. #define __NR_sigpending (__NR_Linux +  73)
  321. #define __NR_sethostname (__NR_Linux +  74)
  322. #define __NR_setrlimit (__NR_Linux +  75)
  323. #define __NR_getrlimit (__NR_Linux +  76)
  324. #define __NR_getrusage (__NR_Linux +  77)
  325. #define __NR_gettimeofday (__NR_Linux +  78)
  326. #define __NR_settimeofday (__NR_Linux +  79)
  327. #define __NR_getgroups (__NR_Linux +  80)
  328. #define __NR_setgroups (__NR_Linux +  81)
  329. #define __NR_reserved82 (__NR_Linux +  82)
  330. #define __NR_symlink (__NR_Linux +  83)
  331. #define __NR_oldlstat (__NR_Linux +  84)
  332. #define __NR_readlink (__NR_Linux +  85)
  333. #define __NR_uselib (__NR_Linux +  86)
  334. #define __NR_swapon (__NR_Linux +  87)
  335. #define __NR_reboot (__NR_Linux +  88)
  336. #define __NR_readdir (__NR_Linux +  89)
  337. #define __NR_mmap (__NR_Linux +  90)
  338. #define __NR_munmap (__NR_Linux +  91)
  339. #define __NR_truncate (__NR_Linux +  92)
  340. #define __NR_ftruncate (__NR_Linux +  93)
  341. #define __NR_fchmod (__NR_Linux +  94)
  342. #define __NR_fchown (__NR_Linux +  95)
  343. #define __NR_getpriority (__NR_Linux +  96)
  344. #define __NR_setpriority (__NR_Linux +  97)
  345. #define __NR_profil (__NR_Linux +  98)
  346. #define __NR_statfs (__NR_Linux +  99)
  347. #define __NR_fstatfs (__NR_Linux + 100)
  348. #define __NR_ioperm (__NR_Linux + 101)
  349. #define __NR_socketcall (__NR_Linux + 102)
  350. #define __NR_syslog (__NR_Linux + 103)
  351. #define __NR_setitimer (__NR_Linux + 104)
  352. #define __NR_getitimer (__NR_Linux + 105)
  353. #define __NR_stat (__NR_Linux + 106)
  354. #define __NR_lstat (__NR_Linux + 107)
  355. #define __NR_fstat (__NR_Linux + 108)
  356. #define __NR_unused109 (__NR_Linux + 109)
  357. #define __NR_iopl (__NR_Linux + 110)
  358. #define __NR_vhangup (__NR_Linux + 111)
  359. #define __NR_idle (__NR_Linux + 112)
  360. #define __NR_vm86 (__NR_Linux + 113)
  361. #define __NR_wait4 (__NR_Linux + 114)
  362. #define __NR_swapoff (__NR_Linux + 115)
  363. #define __NR_sysinfo (__NR_Linux + 116)
  364. #define __NR_ipc (__NR_Linux + 117)
  365. #define __NR_fsync (__NR_Linux + 118)
  366. #define __NR_sigreturn (__NR_Linux + 119)
  367. #define __NR_clone (__NR_Linux + 120)
  368. #define __NR_setdomainname (__NR_Linux + 121)
  369. #define __NR_uname (__NR_Linux + 122)
  370. #define __NR_modify_ldt (__NR_Linux + 123)
  371. #define __NR_adjtimex (__NR_Linux + 124)
  372. #define __NR_mprotect (__NR_Linux + 125)
  373. #define __NR_sigprocmask (__NR_Linux + 126)
  374. #define __NR_create_module (__NR_Linux + 127)
  375. #define __NR_init_module (__NR_Linux + 128)
  376. #define __NR_delete_module (__NR_Linux + 129)
  377. #define __NR_get_kernel_syms (__NR_Linux + 130)
  378. #define __NR_quotactl (__NR_Linux + 131)
  379. #define __NR_getpgid (__NR_Linux + 132)
  380. #define __NR_fchdir (__NR_Linux + 133)
  381. #define __NR_bdflush (__NR_Linux + 134)
  382. #define __NR_sysfs (__NR_Linux + 135)
  383. #define __NR_personality (__NR_Linux + 136)
  384. #define __NR_afs_syscall (__NR_Linux + 137) /* Syscall for Andrew File System */
  385. #define __NR_setfsuid (__NR_Linux + 138)
  386. #define __NR_setfsgid (__NR_Linux + 139)
  387. #define __NR__llseek (__NR_Linux + 140)
  388. #define __NR_getdents (__NR_Linux + 141)
  389. #define __NR__newselect (__NR_Linux + 142)
  390. #define __NR_flock (__NR_Linux + 143)
  391. #define __NR_msync (__NR_Linux + 144)
  392. #define __NR_readv (__NR_Linux + 145)
  393. #define __NR_writev (__NR_Linux + 146)
  394. #define __NR_cacheflush (__NR_Linux + 147)
  395. #define __NR_cachectl (__NR_Linux + 148)
  396. #define __NR_sysmips (__NR_Linux + 149)
  397. #define __NR_unused150 (__NR_Linux + 150)
  398. #define __NR_getsid (__NR_Linux + 151)
  399. #define __NR_fdatasync (__NR_Linux + 152)
  400. #define __NR__sysctl (__NR_Linux + 153)
  401. #define __NR_mlock (__NR_Linux + 154)
  402. #define __NR_munlock (__NR_Linux + 155)
  403. #define __NR_mlockall (__NR_Linux + 156)
  404. #define __NR_munlockall (__NR_Linux + 157)
  405. #define __NR_sched_setparam (__NR_Linux + 158)
  406. #define __NR_sched_getparam (__NR_Linux + 159)
  407. #define __NR_sched_setscheduler (__NR_Linux + 160)
  408. #define __NR_sched_getscheduler (__NR_Linux + 161)
  409. #define __NR_sched_yield (__NR_Linux + 162)
  410. #define __NR_sched_get_priority_max (__NR_Linux + 163)
  411. #define __NR_sched_get_priority_min (__NR_Linux + 164)
  412. #define __NR_sched_rr_get_interval (__NR_Linux + 165)
  413. #define __NR_nanosleep (__NR_Linux + 166)
  414. #define __NR_mremap (__NR_Linux + 167)
  415. #define __NR_accept (__NR_Linux + 168)
  416. #define __NR_bind (__NR_Linux + 169)
  417. #define __NR_connect (__NR_Linux + 170)
  418. #define __NR_getpeername (__NR_Linux + 171)
  419. #define __NR_getsockname (__NR_Linux + 172)
  420. #define __NR_getsockopt (__NR_Linux + 173)
  421. #define __NR_listen (__NR_Linux + 174)
  422. #define __NR_recv (__NR_Linux + 175)
  423. #define __NR_recvfrom (__NR_Linux + 176)
  424. #define __NR_recvmsg (__NR_Linux + 177)
  425. #define __NR_send (__NR_Linux + 178)
  426. #define __NR_sendmsg (__NR_Linux + 179)
  427. #define __NR_sendto (__NR_Linux + 180)
  428. #define __NR_setsockopt (__NR_Linux + 181)
  429. #define __NR_shutdown (__NR_Linux + 182)
  430. #define __NR_socket (__NR_Linux + 183)
  431. #define __NR_socketpair (__NR_Linux + 184)
  432. #define __NR_setresuid (__NR_Linux + 185)
  433. #define __NR_getresuid (__NR_Linux + 186)
  434. #define __NR_query_module (__NR_Linux + 187)
  435. #define __NR_poll (__NR_Linux + 188)
  436. #define __NR_nfsservctl (__NR_Linux + 189)
  437. #define __NR_setresgid (__NR_Linux + 190)
  438. #define __NR_getresgid (__NR_Linux + 191)
  439. #define __NR_prctl (__NR_Linux + 192)
  440. #define __NR_rt_sigreturn (__NR_Linux + 193)
  441. #define __NR_rt_sigaction (__NR_Linux + 194)
  442. #define __NR_rt_sigprocmask (__NR_Linux + 195)
  443. #define __NR_rt_sigpending (__NR_Linux + 196)
  444. #define __NR_rt_sigtimedwait (__NR_Linux + 197)
  445. #define __NR_rt_sigqueueinfo (__NR_Linux + 198)
  446. #define __NR_rt_sigsuspend (__NR_Linux + 199)
  447. #define __NR_pread (__NR_Linux + 200)
  448. #define __NR_pwrite (__NR_Linux + 201)
  449. #define __NR_chown (__NR_Linux + 202)
  450. #define __NR_getcwd (__NR_Linux + 203)
  451. #define __NR_capget (__NR_Linux + 204)
  452. #define __NR_capset (__NR_Linux + 205)
  453. #define __NR_sigaltstack (__NR_Linux + 206)
  454. #define __NR_sendfile (__NR_Linux + 207)
  455. #define __NR_getpmsg (__NR_Linux + 208)
  456. #define __NR_putpmsg (__NR_Linux + 209)
  457. #define __NR_root_pivot (__NR_Linux + 210)
  458. #define __NR_mincore (__NR_Linux + 211)
  459. #define __NR_madvise (__NR_Linux + 212)
  460. #define __NR_getdents64 (__NR_Linux + 213)
  461. /*
  462.  * Offset of the last Linux flavoured syscall
  463.  */
  464. #define __NR_Linux_syscalls 213
  465. #ifndef _LANGUAGE_ASSEMBLY
  466. /* XXX - _foo needs to be __foo, while __NR_bar could be _NR_bar. */
  467. #define _syscall0(type,name) 
  468. type name(void) 
  469. long __res, __err; 
  470. __asm__ volatile ("lit$2, %2nt" 
  471.   "syscallnt" 
  472.   "movet%0, $2nt" 
  473.   "movet%1, $7" 
  474.                   : "=r" (__res), "=r" (__err) 
  475.                   : "i" (__NR_##name) 
  476.                   : "$2", "$7","$8","$9","$10","$11","$12","$13","$14","$15", 
  477.     "$24"); 
  478. if (__err == 0) 
  479. return (type) __res; 
  480. errno = __res; 
  481. return -1; 
  482. }
  483. /*
  484.  * DANGER: This macro isn't usable for the pipe(2) call
  485.  * which has a unusual return convention.
  486.  */
  487. #define _syscall1(type,name,atype,a) 
  488. type name(atype a) 
  489. long __res, __err; 
  490. __asm__ volatile ("movet$4, %3nt" 
  491.   "lit$2, %2nt" 
  492.   "syscallnt" 
  493.   "movet%0, $2nt" 
  494.   "movet%1, $7" 
  495.                   : "=r" (__res), "=r" (__err) 
  496.                   : "i" (__NR_##name),"r" ((long)(a)) 
  497.                   : "$2","$4","$7","$8","$9","$10","$11","$12","$13","$14", 
  498.     "$15","$24"); 
  499. if (__err == 0) 
  500. return (type) __res; 
  501. errno = __res; 
  502. return -1; 
  503. }
  504. #define _syscall2(type,name,atype,a,btype,b) 
  505. type name(atype a,btype b) 
  506. long __res, __err; 
  507. __asm__ volatile ("movet$4, %3nt" 
  508.   "movet$5, %4nt" 
  509.   "lit$2, %2nt" 
  510.   "syscallnt" 
  511.   "movet%0, $2nt" 
  512.   "movet%1, $7" 
  513.   : "=r" (__res), "=r" (__err) 
  514.   : "i" (__NR_##name),"r" ((long)(a)), 
  515.                       "r" ((long)(b)) 
  516.   : "$2","$4","$5","$7","$8","$9","$10","$11","$12","$13","$14","$15", 
  517.                     "$24"); 
  518. if (__err == 0) 
  519. return (type) __res; 
  520. errno = __res; 
  521. return -1; 
  522. }
  523. #define _syscall3(type,name,atype,a,btype,b,ctype,c) 
  524. type name (atype a, btype b, ctype c) 
  525. long __res, __err; 
  526. __asm__ volatile ("movet$4, %3nt" 
  527.                   "movet$5, %4nt" 
  528.                   "movet$6, %5nt" 
  529.   "lit$2, %2nt" 
  530.   "syscallnt" 
  531.   "movet%0, $2nt" 
  532.   "movet%1, $7" 
  533.                   : "=r" (__res), "=r" (__err) 
  534.                   : "i" (__NR_##name),"r" ((long)(a)), 
  535.                                       "r" ((long)(b)), 
  536.                                       "r" ((long)(c)) 
  537.   : "$2","$4","$5","$6","$7","$8","$9","$10","$11","$12", 
  538.     "$13","$14","$15","$24"); 
  539. if (__err == 0) 
  540. return (type) __res; 
  541. errno = __res; 
  542. return -1; 
  543. }
  544. #define _syscall4(type,name,atype,a,btype,b,ctype,c,dtype,d) 
  545. type name (atype a, btype b, ctype c, dtype d) 
  546. long __res, __err; 
  547. __asm__ volatile ("movet$4, %3nt" 
  548.                   "movet$5, %4nt" 
  549.                   "movet$6, %5nt" 
  550.                   "movet$7, %6nt" 
  551.   "lit$2, %2nt" 
  552.   "syscallnt" 
  553.   "movet%0, $2nt" 
  554.   "movet%1, $7" 
  555.                   : "=r" (__res), "=r" (__err) 
  556.                   : "i" (__NR_##name),"r" ((long)(a)), 
  557.                                       "r" ((long)(b)), 
  558.                                       "r" ((long)(c)), 
  559.                                       "r" ((long)(d)) 
  560.                   : "$2","$4","$5","$6","$7","$8","$9","$10","$11","$12", 
  561.     "$13","$14","$15","$24"); 
  562. if (__err == 0) 
  563. return (type) __res; 
  564. errno = __res; 
  565. return -1; 
  566. }
  567. #if (_MIPS_SIM == _ABIN32) || (_MIPS_SIM == _ABI64)
  568. #define _syscall5(type,name,atype,a,btype,b,ctype,c,dtype,d,etype,e) 
  569. type name (atype a,btype b,ctype c,dtype d,etype e) 
  570. long __res, __err; 
  571. __asm__ volatile ("movet$4, %3nt" 
  572.                   "movet$5, %4nt" 
  573.                   "movet$6, %5nt" 
  574.                   "movet$7, %6nt" 
  575.   "movet$8, %7nt" 
  576.   "swt$2, 16($29)nt" 
  577.   "lit$2, %2nt" 
  578.   "syscallnt" 
  579.   "movet%0, $2nt" 
  580.   "movet%1, $7" 
  581.                   : "=r" (__res), "=r" (__err) 
  582.                   : "i" (__NR_##name),"r" ((long)(a)), 
  583.                                       "r" ((long)(b)), 
  584.                                       "r" ((long)(c)), 
  585.                                       "r" ((long)(d)), 
  586.                                       "r" ((long)(e)) 
  587.                   : "$2","$4","$5","$6","$7","$8","$9","$10","$11","$12", 
  588.                     "$13","$14","$15","$24"); 
  589. if (__err == 0) 
  590. return (type) __res; 
  591. errno = __res; 
  592. return -1; 
  593. }
  594. #define _syscall6(type,name,atype,a,btype,b,ctype,c,dtype,d,etype,e,ftype,f) 
  595. type name (atype a,btype b,ctype c,dtype d,etype e,ftype f) 
  596. long __res, __err; 
  597. __asm__ volatile ("movet$4, %3nt" 
  598.                   "movet$5, %4nt" 
  599.                   "movet$6, %5nt" 
  600.                   "movet$7, %6nt" 
  601.                   "movet$8, %7nt" 
  602.                   "movet$9, %8nt" 
  603.   "lit$2, %2nt" 
  604.   "syscallnt" 
  605.   "movet%0, $2nt" 
  606.   "movet%1, $7" 
  607.                   : "=r" (__res), "=r" (__err) 
  608.                   : "i" (__NR_##name),"r" ((long)(a)), 
  609.                                       "r" ((long)(b)), 
  610.                                       "r" ((long)(c)), 
  611.                                       "r" ((long)(d)), 
  612.                                       "m" ((long)(e)), 
  613.                                       "m" ((long)(f)) 
  614.                   : "$2","$3","$4","$5","$6","$7","$8","$9","$10","$11", 
  615.                     "$12","$13","$14","$15","$24"); 
  616. if (__err == 0) 
  617. return (type) __res; 
  618. errno = __res; 
  619. return -1; 
  620. }
  621. #define _syscall7(type,name,atype,a,btype,b,ctype,c,dtype,d,etype,e,ftype,f,gtype,g) 
  622. type name (atype a,btype b,ctype c,dtype d,etype e,ftype f,gtype g) 
  623. long __res, __err; 
  624. __asm__ volatile ("movet$4, %3nt" 
  625.                   "movet$5, %4nt" 
  626.                   "movet$6, %5nt" 
  627.                   "movet$7, %6nt" 
  628.                   "movet$8, %7nt" 
  629.                   "movet$9, %8nt" 
  630.                   "movet$10, %9nt" 
  631.   "lit$2, %2nt" 
  632.   "syscallnt" 
  633.   "movet%0, $2nt" 
  634.   "movet%1, $7" 
  635.                   : "=r" (__res), "=r" (__err) 
  636.                   : "i" (__NR_##name),"r" ((long)(a)), 
  637.                                       "r" ((long)(b)), 
  638.                                       "r" ((long)(c)), 
  639.                                       "r" ((long)(d)), 
  640.                                       "r" ((long)(e)), 
  641.                                       "r" ((long)(f)), 
  642.                                       "r" ((long)(g)) 
  643.                   : "$2","$3","$4","$5","$6","$7","$8","$9","$10","$11", 
  644.                     "$12","$13","$14","$15","$24"); 
  645. if (__err == 0) 
  646. return (type) __res; 
  647. errno = __res; 
  648. return -1; 
  649. }
  650. #else /* not N32 or 64 ABI */
  651. /* These are here for sake of fucking lusercode living in the fucking believe
  652.    having to fuck around with the syscall interface themselfes.  */
  653. #define _syscall5(type,name,atype,a,btype,b,ctype,c,dtype,d,etype,e) 
  654. type name (atype a,btype b,ctype c,dtype d,etype e) 
  655. long __res, __err; 
  656. __asm__ volatile ("movet$4, %3nt" 
  657.                   "movet$5, %4nt" 
  658.                   "movet$6, %5nt" 
  659.   "lwt$2, %7nt" 
  660.                   "movet$7, %6nt" 
  661.   "subut$29, 24nt" 
  662.   "swt$2, 16($29)nt" 
  663.   "lit$2, %2nt" 
  664.   "syscallnt" 
  665.   "movet%0, $2nt" 
  666.   "movet%1, $7" 
  667.   "addiut$29,24" 
  668.                   : "=r" (__res), "=r" (__err) 
  669.                   : "i" (__NR_##name),"r" ((long)(a)), 
  670.                                       "r" ((long)(b)), 
  671.                                       "r" ((long)(c)), 
  672.                                       "r" ((long)(d)), 
  673.                                       "m" ((long)(e)) 
  674.                   : "$2","$4","$5","$6","$7","$8","$9","$10","$11","$12", 
  675.                     "$13","$14","$15","$24"); 
  676. if (__err == 0) 
  677. return (type) __res; 
  678. errno = __res; 
  679. return -1; 
  680. }
  681. #define _syscall6(type,name,atype,a,btype,b,ctype,c,dtype,d,etype,e,ftype,f) 
  682. type name (atype a,btype b,ctype c,dtype d,etype e,ftype f) 
  683. long __res, __err; 
  684. __asm__ volatile ("movet$4, %3nt" 
  685.                   "movet$5, %4nt" 
  686.                   "movet$6, %5nt" 
  687.   "lwt$2, %7nt" 
  688.   "lwt$3, %8nt" 
  689.                   "movet$7, %6nt" 
  690.   "subut$29, 24nt" 
  691.   "swt$2, 16($29)nt" 
  692.   "swt$3, 20($29)nt" 
  693.   "lit$2, %2nt" 
  694.                   "syscallnt" 
  695.   "movet%0, $2nt" 
  696.   "movet%1, $7" 
  697.   "addiut$29, 24" 
  698.                   : "=r" (__res), "=r" (__err) 
  699.                   : "i" (__NR_##name),"r" ((long)(a)), 
  700.                                       "r" ((long)(b)), 
  701.                                       "r" ((long)(c)), 
  702.                                       "r" ((long)(d)), 
  703.                                       "m" ((long)(e)), 
  704.                                       "m" ((long)(f)) 
  705.                   : "$2","$3","$4","$5","$6","$7","$8","$9","$10","$11", 
  706.                     "$12","$13","$14","$15","$24"); 
  707. if (__err == 0) 
  708. return (type) __res; 
  709. errno = __res; 
  710. return -1; 
  711. }
  712. #define _syscall7(type,name,atype,a,btype,b,ctype,c,dtype,d,etype,e,ftype,f,gtype,g) 
  713. type name (atype a,btype b,ctype c,dtype d,etype e,ftype f,gtype g) 
  714. long __res, __err; 
  715. __asm__ volatile ("movet$4, %3nt" 
  716.                   "movet$5, %4nt" 
  717.                   "movet$6, %5nt" 
  718.   "lwt$2, %7nt" 
  719.   "lwt$3, %8nt" 
  720.                   "movet$7, %6nt" 
  721.   "subut$29, 32nt" 
  722.   "swt$2, 16($29)nt" 
  723.   "lwt$2, %9nt" 
  724.   "swt$3, 20($29)nt" 
  725.   "swt$2, 24($29)nt" 
  726.   "lit$2, %2nt" 
  727.                   "syscallnt" 
  728.   "movet%0, $2nt" 
  729.   "movet%1, $7" 
  730.   "addiut$29, 32" 
  731.                   : "=r" (__res), "=r" (__err) 
  732.                   : "i" (__NR_##name),"r" ((long)(a)), 
  733.                                       "r" ((long)(b)), 
  734.                                       "r" ((long)(c)), 
  735.                                       "r" ((long)(d)), 
  736.                                       "m" ((long)(e)), 
  737.                                       "m" ((long)(f)), 
  738.                                       "m" ((long)(g)) 
  739.                   : "$2","$3","$4","$5","$6","$7","$8","$9","$10","$11", 
  740.                     "$12","$13","$14","$15","$24"); 
  741. if (__err == 0) 
  742. return (type) __res; 
  743. errno = __res; 
  744. return -1; 
  745. }
  746. #endif
  747. #ifdef __KERNEL_SYSCALLS__
  748. /*
  749.  * we need this inline - forking from kernel space will result
  750.  * in NO COPY ON WRITE (!!!), until an execve is executed. This
  751.  * is no problem, but for the stack. This is handled by not letting
  752.  * main() use the stack at all after fork(). Thus, no function
  753.  * calls - which means inline code for fork too, as otherwise we
  754.  * would use the stack upon exit from 'fork()'.
  755.  *
  756.  * Actually only pause and fork are needed inline, so that there
  757.  * won't be any messing with the stack from main(), but we define
  758.  * some others too.
  759.  */
  760. #define __NR__exit __NR_exit
  761. static inline _syscall0(int,sync)
  762. static inline _syscall0(pid_t,setsid)
  763. static inline _syscall3(int,write,int,fd,const char *,buf,off_t,count)
  764. static inline _syscall3(int,read,int,fd,char *,buf,off_t,count)
  765. static inline _syscall3(off_t,lseek,int,fd,off_t,offset,int,count)
  766. static inline _syscall1(int,dup,int,fd)
  767. static inline _syscall3(int,execve,const char *,file,char **,argv,char **,envp)
  768. static inline _syscall3(int,open,const char *,file,int,flag,int,mode)
  769. static inline _syscall1(int,close,int,fd)
  770. static inline _syscall1(int,_exit,int,exitcode)
  771. static inline _syscall3(pid_t,waitpid,pid_t,pid,int *,wait_stat,int,options)
  772. static inline _syscall1(int,delete_module,const char *,name)
  773. static inline pid_t wait(int * wait_stat)
  774. {
  775. return waitpid(-1,wait_stat,0);
  776. }
  777. #endif /* !defined (__KERNEL_SYSCALLS__) */
  778. #endif /* !defined (_LANGUAGE_ASSEMBLY) */
  779. #endif /* _ASM_UNISTD_H */