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

嵌入式Linux

开发平台:

Unix_Linux

  1. #ifndef _ALPHA_UNISTD_H
  2. #define _ALPHA_UNISTD_H
  3. #define __NR_osf_syscall   0 /* not implemented */
  4. #define __NR_exit   1
  5. #define __NR_fork   2
  6. #define __NR_read   3
  7. #define __NR_write   4
  8. #define __NR_osf_old_open   5 /* not implemented */
  9. #define __NR_close   6
  10. #define __NR_osf_wait4   7
  11. #define __NR_osf_old_creat   8 /* not implemented */
  12. #define __NR_link   9
  13. #define __NR_unlink  10
  14. #define __NR_osf_execve  11 /* not implemented */
  15. #define __NR_chdir  12
  16. #define __NR_fchdir  13
  17. #define __NR_mknod  14
  18. #define __NR_chmod  15
  19. #define __NR_chown  16
  20. #define __NR_brk  17
  21. #define __NR_osf_getfsstat  18 /* not implemented */
  22. #define __NR_lseek  19
  23. #define __NR_getxpid  20
  24. #define __NR_osf_mount  21
  25. #define __NR_umount  22
  26. #define __NR_setuid  23
  27. #define __NR_getxuid  24
  28. #define __NR_exec_with_loader  25 /* not implemented */
  29. #define __NR_ptrace  26
  30. #define __NR_osf_nrecvmsg  27 /* not implemented */
  31. #define __NR_osf_nsendmsg  28 /* not implemented */
  32. #define __NR_osf_nrecvfrom  29 /* not implemented */
  33. #define __NR_osf_naccept  30 /* not implemented */
  34. #define __NR_osf_ngetpeername  31 /* not implemented */
  35. #define __NR_osf_ngetsockname  32 /* not implemented */
  36. #define __NR_access  33
  37. #define __NR_osf_chflags  34 /* not implemented */
  38. #define __NR_osf_fchflags  35 /* not implemented */
  39. #define __NR_sync  36
  40. #define __NR_kill  37
  41. #define __NR_osf_old_stat  38 /* not implemented */
  42. #define __NR_setpgid  39
  43. #define __NR_osf_old_lstat  40 /* not implemented */
  44. #define __NR_dup  41
  45. #define __NR_pipe  42
  46. #define __NR_osf_set_program_attributes 43
  47. #define __NR_osf_profil  44 /* not implemented */
  48. #define __NR_open  45
  49. #define __NR_osf_old_sigaction  46 /* not implemented */
  50. #define __NR_getxgid  47
  51. #define __NR_osf_sigprocmask  48
  52. #define __NR_osf_getlogin  49 /* not implemented */
  53. #define __NR_osf_setlogin  50 /* not implemented */
  54. #define __NR_acct  51
  55. #define __NR_sigpending  52
  56. #define __NR_ioctl  54
  57. #define __NR_osf_reboot  55 /* not implemented */
  58. #define __NR_osf_revoke  56 /* not implemented */
  59. #define __NR_symlink  57
  60. #define __NR_readlink  58
  61. #define __NR_execve  59
  62. #define __NR_umask  60
  63. #define __NR_chroot  61
  64. #define __NR_osf_old_fstat  62 /* not implemented */
  65. #define __NR_getpgrp  63
  66. #define __NR_getpagesize  64
  67. #define __NR_osf_mremap  65 /* not implemented */
  68. #define __NR_vfork  66
  69. #define __NR_stat  67
  70. #define __NR_lstat  68
  71. #define __NR_osf_sbrk  69 /* not implemented */
  72. #define __NR_osf_sstk  70 /* not implemented */
  73. #define __NR_mmap  71 /* OSF/1 mmap is superset of Linux */
  74. #define __NR_osf_old_vadvise  72 /* not implemented */
  75. #define __NR_munmap  73
  76. #define __NR_mprotect  74
  77. #define __NR_madvise  75
  78. #define __NR_vhangup  76
  79. #define __NR_osf_kmodcall  77 /* not implemented */
  80. #define __NR_osf_mincore  78 /* not implemented */
  81. #define __NR_getgroups  79
  82. #define __NR_setgroups  80
  83. #define __NR_osf_old_getpgrp  81 /* not implemented */
  84. #define __NR_setpgrp  82 /* BSD alias for setpgid */
  85. #define __NR_osf_setitimer  83
  86. #define __NR_osf_old_wait  84 /* not implemented */
  87. #define __NR_osf_table  85 /* not implemented */
  88. #define __NR_osf_getitimer  86
  89. #define __NR_gethostname  87
  90. #define __NR_sethostname  88
  91. #define __NR_getdtablesize  89
  92. #define __NR_dup2  90
  93. #define __NR_fstat  91
  94. #define __NR_fcntl  92
  95. #define __NR_osf_select  93
  96. #define __NR_poll  94
  97. #define __NR_fsync  95
  98. #define __NR_setpriority  96
  99. #define __NR_socket  97
  100. #define __NR_connect  98
  101. #define __NR_accept  99
  102. #define __NR_getpriority 100
  103. #define __NR_send 101
  104. #define __NR_recv 102
  105. #define __NR_sigreturn 103
  106. #define __NR_bind 104
  107. #define __NR_setsockopt 105
  108. #define __NR_listen 106
  109. #define __NR_osf_plock 107 /* not implemented */
  110. #define __NR_osf_old_sigvec 108 /* not implemented */
  111. #define __NR_osf_old_sigblock 109 /* not implemented */
  112. #define __NR_osf_old_sigsetmask 110 /* not implemented */
  113. #define __NR_sigsuspend 111
  114. #define __NR_osf_sigstack 112
  115. #define __NR_recvmsg 113
  116. #define __NR_sendmsg 114
  117. #define __NR_osf_old_vtrace 115 /* not implemented */
  118. #define __NR_osf_gettimeofday 116
  119. #define __NR_osf_getrusage 117
  120. #define __NR_getsockopt 118
  121. #define __NR_readv 120
  122. #define __NR_writev 121
  123. #define __NR_osf_settimeofday 122
  124. #define __NR_fchown 123
  125. #define __NR_fchmod 124
  126. #define __NR_recvfrom 125
  127. #define __NR_setreuid 126
  128. #define __NR_setregid 127
  129. #define __NR_rename 128
  130. #define __NR_truncate 129
  131. #define __NR_ftruncate 130
  132. #define __NR_flock 131
  133. #define __NR_setgid 132
  134. #define __NR_sendto 133
  135. #define __NR_shutdown 134
  136. #define __NR_socketpair 135
  137. #define __NR_mkdir 136
  138. #define __NR_rmdir 137
  139. #define __NR_osf_utimes 138
  140. #define __NR_osf_old_sigreturn 139 /* not implemented */
  141. #define __NR_osf_adjtime 140 /* not implemented */
  142. #define __NR_getpeername 141
  143. #define __NR_osf_gethostid 142 /* not implemented */
  144. #define __NR_osf_sethostid 143 /* not implemented */
  145. #define __NR_getrlimit 144
  146. #define __NR_setrlimit 145
  147. #define __NR_osf_old_killpg 146 /* not implemented */
  148. #define __NR_setsid 147
  149. #define __NR_quotactl 148
  150. #define __NR_osf_oldquota 149 /* not implemented */
  151. #define __NR_getsockname 150
  152. #define __NR_osf_pid_block 153 /* not implemented */
  153. #define __NR_osf_pid_unblock 154 /* not implemented */
  154. #define __NR_sigaction 156
  155. #define __NR_osf_sigwaitprim 157 /* not implemented */
  156. #define __NR_osf_nfssvc 158 /* not implemented */
  157. #define __NR_osf_getdirentries 159
  158. #define __NR_osf_statfs 160
  159. #define __NR_osf_fstatfs 161
  160. #define __NR_osf_asynch_daemon 163 /* not implemented */
  161. #define __NR_osf_getfh 164 /* not implemented */
  162. #define __NR_osf_getdomainname 165
  163. #define __NR_setdomainname 166
  164. #define __NR_osf_exportfs 169 /* not implemented */
  165. #define __NR_osf_alt_plock 181 /* not implemented */
  166. #define __NR_osf_getmnt 184 /* not implemented */
  167. #define __NR_osf_alt_sigpending 187 /* not implemented */
  168. #define __NR_osf_alt_setsid 188 /* not implemented */
  169. #define __NR_osf_swapon 199
  170. #define __NR_msgctl 200
  171. #define __NR_msgget 201
  172. #define __NR_msgrcv 202
  173. #define __NR_msgsnd 203
  174. #define __NR_semctl 204
  175. #define __NR_semget 205
  176. #define __NR_semop 206
  177. #define __NR_osf_utsname 207
  178. #define __NR_lchown 208
  179. #define __NR_osf_shmat 209
  180. #define __NR_shmctl 210
  181. #define __NR_shmdt 211
  182. #define __NR_shmget 212
  183. #define __NR_osf_mvalid 213 /* not implemented */
  184. #define __NR_osf_getaddressconf 214 /* not implemented */
  185. #define __NR_osf_msleep 215 /* not implemented */
  186. #define __NR_osf_mwakeup 216 /* not implemented */
  187. #define __NR_msync 217
  188. #define __NR_osf_signal 218 /* not implemented */
  189. #define __NR_osf_utc_gettime 219 /* not implemented */
  190. #define __NR_osf_utc_adjtime 220 /* not implemented */
  191. #define __NR_osf_security 222 /* not implemented */
  192. #define __NR_osf_kloadcall 223 /* not implemented */
  193. #define __NR_getpgid 233
  194. #define __NR_getsid 234
  195. #define __NR_sigaltstack 235
  196. #define __NR_osf_waitid 236 /* not implemented */
  197. #define __NR_osf_priocntlset 237 /* not implemented */
  198. #define __NR_osf_sigsendset 238 /* not implemented */
  199. #define __NR_osf_set_speculative 239 /* not implemented */
  200. #define __NR_osf_msfs_syscall 240 /* not implemented */
  201. #define __NR_osf_sysinfo 241
  202. #define __NR_osf_uadmin 242 /* not implemented */
  203. #define __NR_osf_fuser 243 /* not implemented */
  204. #define __NR_osf_proplist_syscall    244
  205. #define __NR_osf_ntp_adjtime 245 /* not implemented */
  206. #define __NR_osf_ntp_gettime 246 /* not implemented */
  207. #define __NR_osf_pathconf 247 /* not implemented */
  208. #define __NR_osf_fpathconf 248 /* not implemented */
  209. #define __NR_osf_uswitch 250 /* not implemented */
  210. #define __NR_osf_usleep_thread 251
  211. #define __NR_osf_audcntl 252 /* not implemented */
  212. #define __NR_osf_audgen 253 /* not implemented */
  213. #define __NR_sysfs 254
  214. #define __NR_osf_subsys_info 255 /* not implemented */
  215. #define __NR_osf_getsysinfo 256
  216. #define __NR_osf_setsysinfo 257
  217. #define __NR_osf_afs_syscall 258 /* not implemented */
  218. #define __NR_osf_swapctl 259 /* not implemented */
  219. #define __NR_osf_memcntl 260 /* not implemented */
  220. #define __NR_osf_fdatasync 261 /* not implemented */
  221. /*
  222.  * Linux-specific system calls begin at 300
  223.  */
  224. #define __NR_bdflush 300
  225. #define __NR_sethae 301
  226. #define __NR_mount 302
  227. #define __NR_old_adjtimex 303
  228. #define __NR_swapoff 304
  229. #define __NR_getdents 305
  230. #define __NR_create_module 306
  231. #define __NR_init_module 307
  232. #define __NR_delete_module 308
  233. #define __NR_get_kernel_syms 309
  234. #define __NR_syslog 310
  235. #define __NR_reboot 311
  236. #define __NR_clone 312
  237. #define __NR_uselib 313
  238. #define __NR_mlock 314
  239. #define __NR_munlock 315
  240. #define __NR_mlockall 316
  241. #define __NR_munlockall 317
  242. #define __NR_sysinfo 318
  243. #define __NR__sysctl 319
  244. /* 320 was sys_idle.  */
  245. #define __NR_oldumount 321
  246. #define __NR_swapon 322
  247. #define __NR_times 323
  248. #define __NR_personality 324
  249. #define __NR_setfsuid 325
  250. #define __NR_setfsgid 326
  251. #define __NR_ustat 327
  252. #define __NR_statfs 328
  253. #define __NR_fstatfs 329
  254. #define __NR_sched_setparam 330
  255. #define __NR_sched_getparam 331
  256. #define __NR_sched_setscheduler 332
  257. #define __NR_sched_getscheduler 333
  258. #define __NR_sched_yield 334
  259. #define __NR_sched_get_priority_max 335
  260. #define __NR_sched_get_priority_min 336
  261. #define __NR_sched_rr_get_interval 337
  262. #define __NR_afs_syscall 338
  263. #define __NR_uname 339
  264. #define __NR_nanosleep 340
  265. #define __NR_mremap 341
  266. #define __NR_nfsservctl 342
  267. #define __NR_setresuid 343
  268. #define __NR_getresuid 344
  269. #define __NR_pciconfig_read 345
  270. #define __NR_pciconfig_write 346
  271. #define __NR_query_module 347
  272. #define __NR_prctl 348
  273. #define __NR_pread 349
  274. #define __NR_pwrite 350
  275. #define __NR_rt_sigreturn 351
  276. #define __NR_rt_sigaction 352
  277. #define __NR_rt_sigprocmask 353
  278. #define __NR_rt_sigpending 354
  279. #define __NR_rt_sigtimedwait 355
  280. #define __NR_rt_sigqueueinfo 356
  281. #define __NR_rt_sigsuspend 357
  282. #define __NR_select 358
  283. #define __NR_gettimeofday 359
  284. #define __NR_settimeofday 360
  285. #define __NR_getitimer 361
  286. #define __NR_setitimer 362
  287. #define __NR_utimes 363
  288. #define __NR_getrusage 364
  289. #define __NR_wait4 365
  290. #define __NR_adjtimex 366
  291. #define __NR_getcwd 367
  292. #define __NR_capget 368
  293. #define __NR_capset 369
  294. #define __NR_sendfile 370
  295. #define __NR_setresgid 371
  296. #define __NR_getresgid 372
  297. #define __NR_dipc 373
  298. #define __NR_pivot_root 374
  299. #define __NR_mincore 375
  300. #define __NR_pciconfig_iobase 376
  301. #define __NR_getdents64 377
  302. #define __NR_gettid 378
  303. #define __NR_readahead 379
  304. #define __NR_security 380 /* syscall for security modules */
  305. #if defined(__GNUC__)
  306. #define _syscall_return(type)
  307. return (_sc_err ? errno = _sc_ret, _sc_ret = -1L : 0), (type) _sc_ret
  308. #define _syscall_clobbers
  309. "$1", "$2", "$3", "$4", "$5", "$6", "$7", "$8",
  310. "$22", "$23", "$24", "$25", "$27", "$28" 
  311. #define _syscall0(type, name)
  312. type name(void)
  313. {
  314. long _sc_ret, _sc_err;
  315. {
  316. register long _sc_0 __asm__("$0");
  317. register long _sc_19 __asm__("$19");
  318. _sc_0 = __NR_##name;
  319. __asm__("callsys # %0 %1 %2"
  320. : "=r"(_sc_0), "=r"(_sc_19)
  321. : "0"(_sc_0)
  322. : _syscall_clobbers);
  323. _sc_ret = _sc_0, _sc_err = _sc_19;
  324. }
  325. _syscall_return(type);
  326. }
  327. #define _syscall1(type,name,type1,arg1)
  328. type name(type1 arg1)
  329. {
  330. long _sc_ret, _sc_err;
  331. {
  332. register long _sc_0 __asm__("$0");
  333. register long _sc_16 __asm__("$16");
  334. register long _sc_19 __asm__("$19");
  335. _sc_0 = __NR_##name;
  336. _sc_16 = (long) (arg1);
  337. __asm__("callsys # %0 %1 %2 %3"
  338. : "=r"(_sc_0), "=r"(_sc_19)
  339. : "0"(_sc_0), "r"(_sc_16)
  340. : _syscall_clobbers);
  341. _sc_ret = _sc_0, _sc_err = _sc_19;
  342. }
  343. _syscall_return(type);
  344. }
  345. #define _syscall2(type,name,type1,arg1,type2,arg2)
  346. type name(type1 arg1,type2 arg2)
  347. {
  348. long _sc_ret, _sc_err;
  349. {
  350. register long _sc_0 __asm__("$0");
  351. register long _sc_16 __asm__("$16");
  352. register long _sc_17 __asm__("$17");
  353. register long _sc_19 __asm__("$19");
  354. _sc_0 = __NR_##name;
  355. _sc_16 = (long) (arg1);
  356. _sc_17 = (long) (arg2);
  357. __asm__("callsys # %0 %1 %2 %3 %4"
  358. : "=r"(_sc_0), "=r"(_sc_19)
  359. : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17)
  360. : _syscall_clobbers);
  361. _sc_ret = _sc_0, _sc_err = _sc_19;
  362. }
  363. _syscall_return(type);
  364. }
  365. #define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3)
  366. type name(type1 arg1,type2 arg2,type3 arg3)
  367. {
  368. long _sc_ret, _sc_err;
  369. {
  370. register long _sc_0 __asm__("$0");
  371. register long _sc_16 __asm__("$16");
  372. register long _sc_17 __asm__("$17");
  373. register long _sc_18 __asm__("$18");
  374. register long _sc_19 __asm__("$19");
  375. _sc_0 = __NR_##name;
  376. _sc_16 = (long) (arg1);
  377. _sc_17 = (long) (arg2);
  378. _sc_18 = (long) (arg3);
  379. __asm__("callsys # %0 %1 %2 %3 %4 %5"
  380. : "=r"(_sc_0), "=r"(_sc_19)
  381. : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17),
  382.   "r"(_sc_18)
  383. : _syscall_clobbers);
  384. _sc_ret = _sc_0, _sc_err = _sc_19;
  385. }
  386. _syscall_return(type);
  387. }
  388. #define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) 
  389. type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4)  
  390. {  
  391. long _sc_ret, _sc_err;
  392. {
  393. register long _sc_0 __asm__("$0");
  394. register long _sc_16 __asm__("$16");
  395. register long _sc_17 __asm__("$17");
  396. register long _sc_18 __asm__("$18");
  397. register long _sc_19 __asm__("$19");
  398. _sc_0 = __NR_##name;
  399. _sc_16 = (long) (arg1);
  400. _sc_17 = (long) (arg2);
  401. _sc_18 = (long) (arg3);
  402. _sc_19 = (long) (arg4);
  403. __asm__("callsys # %0 %1 %2 %3 %4 %5 %6"
  404. : "=r"(_sc_0), "=r"(_sc_19)
  405. : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17),
  406.   "r"(_sc_18), "1"(_sc_19)
  407. : _syscall_clobbers);
  408. _sc_ret = _sc_0, _sc_err = _sc_19;
  409. }
  410. _syscall_return(type);
  411. #define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, 
  412.   type5,arg5)  
  413. type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5)
  414. {
  415. long _sc_ret, _sc_err;
  416. {
  417. register long _sc_0 __asm__("$0");
  418. register long _sc_16 __asm__("$16");
  419. register long _sc_17 __asm__("$17");
  420. register long _sc_18 __asm__("$18");
  421. register long _sc_19 __asm__("$19");
  422. register long _sc_20 __asm__("$20");
  423. _sc_0 = __NR_##name;
  424. _sc_16 = (long) (arg1);
  425. _sc_17 = (long) (arg2);
  426. _sc_18 = (long) (arg3);
  427. _sc_19 = (long) (arg4);
  428. _sc_20 = (long) (arg5);
  429. __asm__("callsys # %0 %1 %2 %3 %4 %5 %6 %7"
  430. : "=r"(_sc_0), "=r"(_sc_19)
  431. : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17),
  432.   "r"(_sc_18), "1"(_sc_19), "r"(_sc_20)
  433. : _syscall_clobbers);
  434. _sc_ret = _sc_0, _sc_err = _sc_19;
  435. }
  436. _syscall_return(type);
  437. }
  438. #define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, 
  439.   type5,arg5,type6,arg6)  
  440. type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5, type6 arg6)
  441. {
  442. long _sc_ret, _sc_err;
  443. {
  444. register long _sc_0 __asm__("$0");
  445. register long _sc_16 __asm__("$16");
  446. register long _sc_17 __asm__("$17");
  447. register long _sc_18 __asm__("$18");
  448. register long _sc_19 __asm__("$19");
  449. register long _sc_20 __asm__("$20");
  450. register long _sc_21 __asm__("$21");
  451. _sc_0 = __NR_##name;
  452. _sc_16 = (long) (arg1);
  453. _sc_17 = (long) (arg2);
  454. _sc_18 = (long) (arg3);
  455. _sc_19 = (long) (arg4);
  456. _sc_20 = (long) (arg5);
  457. _sc_21 = (long) (arg6);
  458. __asm__("callsys # %0 %1 %2 %3 %4 %5 %6 %7 %8"
  459. : "=r"(_sc_0), "=r"(_sc_19)
  460. : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17),
  461.   "r"(_sc_18), "1"(_sc_19), "r"(_sc_20), "r"(_sc_21) 
  462. : _syscall_clobbers);
  463. _sc_ret = _sc_0, _sc_err = _sc_19;
  464. }
  465. _syscall_return(type);
  466. }
  467. #endif /* __LIBRARY__ && __GNUC__ */
  468. #ifdef __KERNEL_SYSCALLS__
  469. #include <linux/string.h>
  470. #include <linux/signal.h>
  471. extern void sys_idle(void);
  472. static inline void idle(void)
  473. {
  474. sys_idle();
  475. }
  476. extern long sys_open(const char *, int, int);
  477. static inline long open(const char * name, int mode, int flags)
  478. {
  479. return sys_open(name, mode, flags);
  480. }
  481. extern long sys_dup(int);
  482. static inline long dup(int fd)
  483. {
  484. return sys_dup(fd);
  485. }
  486. static inline long close(int fd)
  487. {
  488. return sys_close(fd);
  489. }
  490. extern off_t sys_lseek(int, off_t, int);
  491. static inline off_t lseek(int fd, off_t off, int whense)
  492. {
  493. return sys_lseek(fd, off, whense);
  494. }
  495. extern long sys_exit(int);
  496. static inline long _exit(int value)
  497. {
  498. return sys_exit(value);
  499. }
  500. #define exit(x) _exit(x)
  501. extern long sys_write(int, const char *, int);
  502. static inline long write(int fd, const char * buf, int nr)
  503. {
  504. return sys_write(fd, buf, nr);
  505. }
  506. extern long sys_read(int, char *, int);
  507. static inline long read(int fd, char * buf, int nr)
  508. {
  509. return sys_read(fd, buf, nr);
  510. }
  511. extern int __kernel_execve(char *, char **, char **, struct pt_regs *);
  512. static inline long execve(char * file, char ** argvp, char ** envp)
  513. {
  514. struct pt_regs regs;
  515. memset(&regs, 0, sizeof(regs));
  516. return __kernel_execve(file, argvp, envp, &regs);
  517. }
  518. extern long sys_setsid(void);
  519. static inline long setsid(void)
  520. {
  521. return sys_setsid();
  522. }
  523. extern long sys_sync(void);
  524. static inline long sync(void)
  525. {
  526. return sys_sync();
  527. }
  528. static inline pid_t waitpid(int pid, int * wait_stat, int flags)
  529. {
  530. return sys_wait4(pid, wait_stat, flags, NULL);
  531. }
  532. static inline pid_t wait(int * wait_stat)
  533. {
  534. return waitpid(-1,wait_stat,0);
  535. }
  536. extern long sys_delete_module(const char *name);
  537. static inline long delete_module(const char *name)
  538. {
  539. return sys_delete_module(name);
  540. }
  541. #endif
  542. #endif /* _ALPHA_UNISTD_H */