home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-alpha / unistd.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  19.9 KB  |  666 lines

  1. #ifndef _ALPHA_UNISTD_H
  2. #define _ALPHA_UNISTD_H
  3.  
  4. #define __NR_osf_syscall      0    /* not implemented */
  5. #define __NR_exit          1
  6. #define __NR_fork          2
  7. #define __NR_read          3
  8. #define __NR_write          4
  9. #define __NR_osf_old_open      5    /* not implemented */
  10. #define __NR_close          6
  11. #define __NR_osf_wait4          7
  12. #define __NR_osf_old_creat      8    /* not implemented */
  13. #define __NR_link          9
  14. #define __NR_unlink         10
  15. #define __NR_osf_execve         11    /* not implemented */
  16. #define __NR_chdir         12
  17. #define __NR_fchdir         13
  18. #define __NR_mknod         14
  19. #define __NR_chmod         15
  20. #define __NR_chown         16
  21. #define __NR_brk         17
  22. #define __NR_osf_getfsstat     18    /* not implemented */
  23. #define __NR_lseek         19
  24. #define __NR_getxpid         20
  25. #define __NR_osf_mount         21
  26. #define __NR_umount         22
  27. #define __NR_setuid         23
  28. #define __NR_getxuid         24
  29. #define __NR_exec_with_loader     25    /* not implemented */
  30. #define __NR_ptrace         26
  31. #define __NR_osf_nrecvmsg     27    /* not implemented */
  32. #define __NR_osf_nsendmsg     28    /* not implemented */
  33. #define __NR_osf_nrecvfrom     29    /* not implemented */
  34. #define __NR_osf_naccept     30    /* not implemented */
  35. #define __NR_osf_ngetpeername     31    /* not implemented */
  36. #define __NR_osf_ngetsockname     32    /* not implemented */
  37. #define __NR_access         33
  38. #define __NR_osf_chflags     34    /* not implemented */
  39. #define __NR_osf_fchflags     35    /* not implemented */
  40. #define __NR_sync         36
  41. #define __NR_kill         37
  42. #define __NR_osf_old_stat     38    /* not implemented */
  43. #define __NR_setpgid         39
  44. #define __NR_osf_old_lstat     40    /* not implemented */
  45. #define __NR_dup         41
  46. #define __NR_pipe         42
  47. #define __NR_osf_set_program_attributes    43
  48. #define __NR_osf_profil         44    /* not implemented */
  49. #define __NR_open         45
  50. #define __NR_osf_old_sigaction     46    /* not implemented */
  51. #define __NR_getxgid         47
  52. #define __NR_osf_sigprocmask     48
  53. #define __NR_osf_getlogin     49    /* not implemented */
  54. #define __NR_osf_setlogin     50    /* not implemented */
  55. #define __NR_acct         51
  56. #define __NR_sigpending         52
  57.  
  58. #define __NR_ioctl         54
  59. #define __NR_osf_reboot         55    /* not implemented */
  60. #define __NR_osf_revoke         56    /* not implemented */
  61. #define __NR_symlink         57
  62. #define __NR_readlink         58
  63. #define __NR_execve         59
  64. #define __NR_umask         60
  65. #define __NR_chroot         61
  66. #define __NR_osf_old_fstat     62    /* not implemented */
  67. #define __NR_getpgrp         63
  68. #define __NR_getpagesize     64
  69. #define __NR_osf_mremap         65    /* not implemented */
  70. #define __NR_vfork         66
  71. #define __NR_stat         67
  72. #define __NR_lstat         68
  73. #define __NR_osf_sbrk         69    /* not implemented */
  74. #define __NR_osf_sstk         70    /* not implemented */
  75. #define __NR_mmap         71    /* OSF/1 mmap is superset of Linux */
  76. #define __NR_osf_old_vadvise     72    /* not implemented */
  77. #define __NR_munmap         73
  78. #define __NR_mprotect         74
  79. #define __NR_madvise         75
  80. #define __NR_vhangup         76
  81. #define __NR_osf_kmodcall     77    /* not implemented */
  82. #define __NR_osf_mincore     78    /* not implemented */
  83. #define __NR_getgroups         79
  84. #define __NR_setgroups         80
  85. #define __NR_osf_old_getpgrp     81    /* not implemented */
  86. #define __NR_setpgrp         82    /* BSD alias for setpgid */
  87. #define __NR_osf_setitimer     83
  88. #define __NR_osf_old_wait     84    /* not implemented */
  89. #define __NR_osf_table         85    /* not implemented */
  90. #define __NR_osf_getitimer     86
  91. #define __NR_gethostname     87
  92. #define __NR_sethostname     88
  93. #define __NR_getdtablesize     89
  94. #define __NR_dup2         90
  95. #define __NR_fstat         91
  96. #define __NR_fcntl         92
  97. #define __NR_osf_select         93
  98. #define __NR_poll         94
  99. #define __NR_fsync         95
  100. #define __NR_setpriority     96
  101. #define __NR_socket         97
  102. #define __NR_connect         98
  103. #define __NR_accept         99
  104. #define __NR_getpriority    100
  105. #define __NR_send        101
  106. #define __NR_recv        102
  107. #define __NR_sigreturn        103
  108. #define __NR_bind        104
  109. #define __NR_setsockopt        105
  110. #define __NR_listen        106
  111. #define __NR_osf_plock        107    /* not implemented */
  112. #define __NR_osf_old_sigvec    108    /* not implemented */
  113. #define __NR_osf_old_sigblock    109    /* not implemented */
  114. #define __NR_osf_old_sigsetmask    110    /* not implemented */
  115. #define __NR_sigsuspend        111
  116. #define __NR_osf_sigstack    112
  117. #define __NR_recvmsg        113
  118. #define __NR_sendmsg        114
  119. #define __NR_osf_old_vtrace    115    /* not implemented */
  120. #define __NR_osf_gettimeofday    116
  121. #define __NR_osf_getrusage    117
  122. #define __NR_getsockopt        118
  123.  
  124. #define __NR_readv        120
  125. #define __NR_writev        121
  126. #define __NR_osf_settimeofday    122
  127. #define __NR_fchown        123
  128. #define __NR_fchmod        124
  129. #define __NR_recvfrom        125
  130. #define __NR_setreuid        126
  131. #define __NR_setregid        127
  132. #define __NR_rename        128
  133. #define __NR_truncate        129
  134. #define __NR_ftruncate        130
  135. #define __NR_flock        131
  136. #define __NR_setgid        132
  137. #define __NR_sendto        133
  138. #define __NR_shutdown        134
  139. #define __NR_socketpair        135
  140. #define __NR_mkdir        136
  141. #define __NR_rmdir        137
  142. #define __NR_osf_utimes        138
  143. #define __NR_osf_old_sigreturn    139    /* not implemented */
  144. #define __NR_osf_adjtime    140    /* not implemented */
  145. #define __NR_getpeername    141
  146. #define __NR_osf_gethostid    142    /* not implemented */
  147. #define __NR_osf_sethostid    143    /* not implemented */
  148. #define __NR_getrlimit        144
  149. #define __NR_setrlimit        145
  150. #define __NR_osf_old_killpg    146    /* not implemented */
  151. #define __NR_setsid        147
  152. #define __NR_quotactl        148
  153. #define __NR_osf_oldquota    149    /* not implemented */
  154. #define __NR_getsockname    150
  155.  
  156. #define __NR_osf_pid_block    153    /* not implemented */
  157. #define __NR_osf_pid_unblock    154    /* not implemented */
  158.  
  159. #define __NR_sigaction        156
  160. #define __NR_osf_sigwaitprim    157    /* not implemented */
  161. #define __NR_osf_nfssvc        158    /* not implemented */
  162. #define __NR_osf_getdirentries    159
  163. #define __NR_osf_statfs        160
  164. #define __NR_osf_fstatfs    161
  165.  
  166. #define __NR_osf_asynch_daemon    163    /* not implemented */
  167. #define __NR_osf_getfh        164    /* not implemented */    
  168. #define __NR_osf_getdomainname    165
  169. #define __NR_setdomainname    166
  170.  
  171. #define __NR_osf_exportfs    169    /* not implemented */
  172.  
  173. #define __NR_osf_alt_plock    181    /* not implemented */
  174.  
  175. #define __NR_osf_getmnt        184    /* not implemented */
  176.  
  177. #define __NR_osf_alt_sigpending    187    /* not implemented */
  178. #define __NR_osf_alt_setsid    188    /* not implemented */
  179.  
  180. #define __NR_osf_swapon        199
  181. #define __NR_msgctl        200
  182. #define __NR_msgget        201
  183. #define __NR_msgrcv        202
  184. #define __NR_msgsnd        203
  185. #define __NR_semctl        204
  186. #define __NR_semget        205
  187. #define __NR_semop        206
  188. #define __NR_osf_utsname    207
  189. #define __NR_lchown        208
  190. #define __NR_osf_shmat        209
  191. #define __NR_shmctl        210
  192. #define __NR_shmdt        211
  193. #define __NR_shmget        212
  194. #define __NR_osf_mvalid        213    /* not implemented */
  195. #define __NR_osf_getaddressconf    214    /* not implemented */
  196. #define __NR_osf_msleep        215    /* not implemented */
  197. #define __NR_osf_mwakeup    216    /* not implemented */
  198. #define __NR_msync        217
  199. #define __NR_osf_signal        218    /* not implemented */
  200. #define __NR_osf_utc_gettime    219    /* not implemented */
  201. #define __NR_osf_utc_adjtime    220    /* not implemented */
  202.  
  203. #define __NR_osf_security    222    /* not implemented */
  204. #define __NR_osf_kloadcall    223    /* not implemented */
  205.  
  206. #define __NR_getpgid        233
  207. #define __NR_getsid        234
  208. #define __NR_sigaltstack    235
  209. #define __NR_osf_waitid        236    /* not implemented */
  210. #define __NR_osf_priocntlset    237    /* not implemented */
  211. #define __NR_osf_sigsendset    238    /* not implemented */
  212. #define __NR_osf_set_speculative    239    /* not implemented */
  213. #define __NR_osf_msfs_syscall    240    /* not implemented */
  214. #define __NR_osf_sysinfo    241
  215. #define __NR_osf_uadmin        242    /* not implemented */
  216. #define __NR_osf_fuser        243    /* not implemented */
  217. #define __NR_osf_proplist_syscall    244
  218. #define __NR_osf_ntp_adjtime    245    /* not implemented */
  219. #define __NR_osf_ntp_gettime    246    /* not implemented */
  220. #define __NR_osf_pathconf    247    /* not implemented */
  221. #define __NR_osf_fpathconf    248    /* not implemented */
  222.  
  223. #define __NR_osf_uswitch    250    /* not implemented */
  224. #define __NR_osf_usleep_thread    251
  225. #define __NR_osf_audcntl    252    /* not implemented */
  226. #define __NR_osf_audgen        253    /* not implemented */
  227. #define __NR_sysfs        254
  228. #define __NR_osf_subsys_info    255    /* not implemented */
  229. #define __NR_osf_getsysinfo    256
  230. #define __NR_osf_setsysinfo    257
  231. #define __NR_osf_afs_syscall    258    /* not implemented */
  232. #define __NR_osf_swapctl    259    /* not implemented */
  233. #define __NR_osf_memcntl    260    /* not implemented */
  234. #define __NR_osf_fdatasync    261    /* not implemented */
  235.  
  236.  
  237. /*
  238.  * Linux-specific system calls begin at 300
  239.  */
  240. #define __NR_bdflush        300
  241. #define __NR_sethae        301
  242. #define __NR_mount        302
  243. #define __NR_old_adjtimex    303
  244. #define __NR_swapoff        304
  245. #define __NR_getdents        305
  246. #define __NR_create_module    306
  247. #define __NR_init_module    307
  248. #define __NR_delete_module    308
  249. #define __NR_get_kernel_syms    309
  250. #define __NR_syslog        310
  251. #define __NR_reboot        311
  252. #define __NR_clone        312
  253. #define __NR_uselib        313
  254. #define __NR_mlock        314
  255. #define __NR_munlock        315
  256. #define __NR_mlockall        316
  257. #define __NR_munlockall        317
  258. #define __NR_sysinfo        318
  259. #define __NR__sysctl        319
  260. /* 320 was sys_idle.  */
  261. #define __NR_oldumount        321
  262. #define __NR_swapon        322
  263. #define __NR_times        323
  264. #define __NR_personality    324
  265. #define __NR_setfsuid        325
  266. #define __NR_setfsgid        326
  267. #define __NR_ustat        327
  268. #define __NR_statfs        328
  269. #define __NR_fstatfs        329
  270. #define __NR_sched_setparam        330
  271. #define __NR_sched_getparam        331
  272. #define __NR_sched_setscheduler        332
  273. #define __NR_sched_getscheduler        333
  274. #define __NR_sched_yield        334
  275. #define __NR_sched_get_priority_max    335
  276. #define __NR_sched_get_priority_min    336
  277. #define __NR_sched_rr_get_interval    337
  278. #define __NR_afs_syscall        338
  279. #define __NR_uname            339
  280. #define __NR_nanosleep            340
  281. #define __NR_mremap            341
  282. #define __NR_nfsservctl            342
  283. #define __NR_setresuid            343
  284. #define __NR_getresuid            344
  285. #define __NR_pciconfig_read        345
  286. #define __NR_pciconfig_write        346
  287. #define __NR_query_module        347
  288. #define __NR_prctl            348
  289. #define __NR_pread64            349
  290. #define __NR_pwrite64            350
  291. #define __NR_rt_sigreturn        351
  292. #define __NR_rt_sigaction        352
  293. #define __NR_rt_sigprocmask        353
  294. #define __NR_rt_sigpending        354
  295. #define __NR_rt_sigtimedwait        355
  296. #define __NR_rt_sigqueueinfo        356
  297. #define __NR_rt_sigsuspend        357
  298. #define __NR_select            358
  299. #define __NR_gettimeofday        359
  300. #define __NR_settimeofday        360
  301. #define __NR_getitimer            361
  302. #define __NR_setitimer            362
  303. #define __NR_utimes            363
  304. #define __NR_getrusage            364
  305. #define __NR_wait4            365
  306. #define __NR_adjtimex            366
  307. #define __NR_getcwd            367
  308. #define __NR_capget            368
  309. #define __NR_capset            369
  310. #define __NR_sendfile            370
  311. #define __NR_setresgid            371
  312. #define __NR_getresgid            372
  313. #define __NR_dipc            373
  314. #define __NR_pivot_root            374
  315. #define __NR_mincore            375
  316. #define __NR_pciconfig_iobase        376
  317. #define __NR_getdents64            377
  318. #define __NR_gettid            378
  319. #define __NR_readahead            379
  320. /* 380 is unused */
  321. #define __NR_tkill            381
  322. #define __NR_setxattr            382
  323. #define __NR_lsetxattr            383
  324. #define __NR_fsetxattr            384
  325. #define __NR_getxattr            385
  326. #define __NR_lgetxattr            386
  327. #define __NR_fgetxattr            387
  328. #define __NR_listxattr            388
  329. #define __NR_llistxattr            389
  330. #define __NR_flistxattr            390
  331. #define __NR_removexattr        391
  332. #define __NR_lremovexattr        392
  333. #define __NR_fremovexattr        393
  334. #define __NR_futex            394
  335. #define __NR_sched_setaffinity        395     
  336. #define __NR_sched_getaffinity        396
  337. #define __NR_tuxcall            397
  338. #define __NR_io_setup            398
  339. #define __NR_io_destroy            399
  340. #define __NR_io_getevents        400
  341. #define __NR_io_submit            401
  342. #define __NR_io_cancel            402
  343. #define __NR_exit_group            405
  344. #define __NR_lookup_dcookie        406
  345. #define __NR_sys_epoll_create        407
  346. #define __NR_sys_epoll_ctl        408
  347. #define __NR_sys_epoll_wait        409
  348. #define __NR_remap_file_pages        410
  349. #define __NR_set_tid_address        411
  350. #define __NR_restart_syscall        412
  351. #define __NR_fadvise64            413
  352. #define __NR_timer_create        414
  353. #define __NR_timer_settime        415
  354. #define __NR_timer_gettime        416
  355. #define __NR_timer_getoverrun        417
  356. #define __NR_timer_delete        418
  357. #define __NR_clock_settime        419
  358. #define __NR_clock_gettime        420
  359. #define __NR_clock_getres        421
  360. #define __NR_clock_nanosleep        422
  361. #define __NR_semtimedop            423
  362. #define __NR_tgkill            424
  363. #define __NR_stat64            425
  364. #define __NR_lstat64            426
  365. #define __NR_fstat64            427
  366. #define __NR_vserver            428
  367. #define __NR_mbind            429
  368. #define __NR_get_mempolicy        430
  369. #define __NR_set_mempolicy        431
  370. #define __NR_mq_open            432
  371. #define __NR_mq_unlink            433
  372. #define __NR_mq_timedsend        434
  373. #define __NR_mq_timedreceive        435
  374. #define __NR_mq_notify            436
  375. #define __NR_mq_getsetattr        437
  376. #define __NR_waitid            438
  377. #define __NR_add_key            439
  378. #define __NR_request_key        440
  379. #define __NR_keyctl            441
  380. #define __NR_ioprio_set            442
  381. #define __NR_ioprio_get            443
  382. #define __NR_inotify_init        444
  383. #define __NR_inotify_add_watch        445
  384. #define __NR_inotify_rm_watch        446
  385.  
  386. #ifdef __KERNEL__
  387.  
  388. #define NR_SYSCALLS            447
  389.  
  390. #if defined(__GNUC__)
  391.  
  392. #define _syscall_return(type)                        \
  393.     return (_sc_err ? errno = _sc_ret, _sc_ret = -1L : 0), (type) _sc_ret
  394.  
  395. #define _syscall_clobbers                        \
  396.     "$1", "$2", "$3", "$4", "$5", "$6", "$7", "$8",            \
  397.     "$22", "$23", "$24", "$25", "$27", "$28"             \
  398.  
  399. #define _syscall0(type, name)                        \
  400. type name(void)                                \
  401. {                                    \
  402.     long _sc_ret, _sc_err;                        \
  403.     {                                \
  404.         register long _sc_0 __asm__("$0");            \
  405.         register long _sc_19 __asm__("$19");            \
  406.                                     \
  407.         _sc_0 = __NR_##name;                    \
  408.         __asm__("callsys # %0 %1 %2"                \
  409.             : "=r"(_sc_0), "=r"(_sc_19)            \
  410.             : "0"(_sc_0)                    \
  411.             : _syscall_clobbers);                \
  412.         _sc_ret = _sc_0, _sc_err = _sc_19;            \
  413.     }                                \
  414.     _syscall_return(type);                        \
  415. }
  416.  
  417. #define _syscall1(type,name,type1,arg1)                    \
  418. type name(type1 arg1)                            \
  419. {                                    \
  420.     long _sc_ret, _sc_err;                        \
  421.     {                                \
  422.         register long _sc_0 __asm__("$0");            \
  423.         register long _sc_16 __asm__("$16");            \
  424.         register long _sc_19 __asm__("$19");            \
  425.                                     \
  426.         _sc_0 = __NR_##name;                    \
  427.         _sc_16 = (long) (arg1);                    \
  428.         __asm__("callsys # %0 %1 %2 %3"                \
  429.             : "=r"(_sc_0), "=r"(_sc_19)            \
  430.             : "0"(_sc_0), "r"(_sc_16)            \
  431.             : _syscall_clobbers);                \
  432.         _sc_ret = _sc_0, _sc_err = _sc_19;            \
  433.     }                                \
  434.     _syscall_return(type);                        \
  435. }
  436.  
  437. #define _syscall2(type,name,type1,arg1,type2,arg2)            \
  438. type name(type1 arg1,type2 arg2)                    \
  439. {                                    \
  440.     long _sc_ret, _sc_err;                        \
  441.     {                                \
  442.         register long _sc_0 __asm__("$0");            \
  443.         register long _sc_16 __asm__("$16");            \
  444.         register long _sc_17 __asm__("$17");            \
  445.         register long _sc_19 __asm__("$19");            \
  446.                                     \
  447.         _sc_0 = __NR_##name;                    \
  448.         _sc_16 = (long) (arg1);                    \
  449.         _sc_17 = (long) (arg2);                    \
  450.         __asm__("callsys # %0 %1 %2 %3 %4"            \
  451.             : "=r"(_sc_0), "=r"(_sc_19)            \
  452.             : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17)        \
  453.             : _syscall_clobbers);                \
  454.         _sc_ret = _sc_0, _sc_err = _sc_19;            \
  455.     }                                \
  456.     _syscall_return(type);                        \
  457. }
  458.  
  459. #define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3)        \
  460. type name(type1 arg1,type2 arg2,type3 arg3)                \
  461. {                                    \
  462.     long _sc_ret, _sc_err;                        \
  463.     {                                \
  464.         register long _sc_0 __asm__("$0");            \
  465.         register long _sc_16 __asm__("$16");            \
  466.         register long _sc_17 __asm__("$17");            \
  467.         register long _sc_18 __asm__("$18");            \
  468.         register long _sc_19 __asm__("$19");            \
  469.                                     \
  470.         _sc_0 = __NR_##name;                    \
  471.         _sc_16 = (long) (arg1);                    \
  472.         _sc_17 = (long) (arg2);                    \
  473.         _sc_18 = (long) (arg3);                    \
  474.         __asm__("callsys # %0 %1 %2 %3 %4 %5"            \
  475.             : "=r"(_sc_0), "=r"(_sc_19)            \
  476.             : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17),        \
  477.               "r"(_sc_18)                    \
  478.             : _syscall_clobbers);                \
  479.         _sc_ret = _sc_0, _sc_err = _sc_19;            \
  480.     }                                \
  481.     _syscall_return(type);                        \
  482. }
  483.  
  484. #define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
  485. type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4)         \
  486. {                                     \
  487.     long _sc_ret, _sc_err;                        \
  488.     {                                \
  489.         register long _sc_0 __asm__("$0");            \
  490.         register long _sc_16 __asm__("$16");            \
  491.         register long _sc_17 __asm__("$17");            \
  492.         register long _sc_18 __asm__("$18");            \
  493.         register long _sc_19 __asm__("$19");            \
  494.                                     \
  495.         _sc_0 = __NR_##name;                    \
  496.         _sc_16 = (long) (arg1);                    \
  497.         _sc_17 = (long) (arg2);                    \
  498.         _sc_18 = (long) (arg3);                    \
  499.         _sc_19 = (long) (arg4);                    \
  500.         __asm__("callsys # %0 %1 %2 %3 %4 %5 %6"        \
  501.             : "=r"(_sc_0), "=r"(_sc_19)            \
  502.             : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17),        \
  503.               "r"(_sc_18), "1"(_sc_19)            \
  504.             : _syscall_clobbers);                \
  505.         _sc_ret = _sc_0, _sc_err = _sc_19;            \
  506.     }                                \
  507.     _syscall_return(type);                        \
  508.  
  509. #define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
  510.       type5,arg5)                             \
  511. type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5)    \
  512. {                                    \
  513.     long _sc_ret, _sc_err;                        \
  514.     {                                \
  515.         register long _sc_0 __asm__("$0");            \
  516.         register long _sc_16 __asm__("$16");            \
  517.         register long _sc_17 __asm__("$17");            \
  518.         register long _sc_18 __asm__("$18");            \
  519.         register long _sc_19 __asm__("$19");            \
  520.         register long _sc_20 __asm__("$20");            \
  521.                                     \
  522.         _sc_0 = __NR_##name;                    \
  523.         _sc_16 = (long) (arg1);                    \
  524.         _sc_17 = (long) (arg2);                    \
  525.         _sc_18 = (long) (arg3);                    \
  526.         _sc_19 = (long) (arg4);                    \
  527.         _sc_20 = (long) (arg5);                    \
  528.         __asm__("callsys # %0 %1 %2 %3 %4 %5 %6 %7"        \
  529.             : "=r"(_sc_0), "=r"(_sc_19)            \
  530.             : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17),        \
  531.               "r"(_sc_18), "1"(_sc_19), "r"(_sc_20)        \
  532.             : _syscall_clobbers);                \
  533.         _sc_ret = _sc_0, _sc_err = _sc_19;            \
  534.     }                                \
  535.     _syscall_return(type);                        \
  536. }
  537.  
  538. #define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
  539.       type5,arg5,type6,arg6)                     \
  540. type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5, type6 arg6)\
  541. {                                    \
  542.     long _sc_ret, _sc_err;                        \
  543.     {                                \
  544.         register long _sc_0 __asm__("$0");            \
  545.         register long _sc_16 __asm__("$16");            \
  546.         register long _sc_17 __asm__("$17");            \
  547.         register long _sc_18 __asm__("$18");            \
  548.         register long _sc_19 __asm__("$19");            \
  549.         register long _sc_20 __asm__("$20");            \
  550.         register long _sc_21 __asm__("$21");            \
  551.                                     \
  552.         _sc_0 = __NR_##name;                    \
  553.         _sc_16 = (long) (arg1);                    \
  554.         _sc_17 = (long) (arg2);                    \
  555.         _sc_18 = (long) (arg3);                    \
  556.         _sc_19 = (long) (arg4);                    \
  557.         _sc_20 = (long) (arg5);                    \
  558.         _sc_21 = (long) (arg6);                    \
  559.         __asm__("callsys # %0 %1 %2 %3 %4 %5 %6 %7 %8"        \
  560.             : "=r"(_sc_0), "=r"(_sc_19)            \
  561.             : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17),        \
  562.               "r"(_sc_18), "1"(_sc_19), "r"(_sc_20), "r"(_sc_21) \
  563.             : _syscall_clobbers);                \
  564.         _sc_ret = _sc_0, _sc_err = _sc_19;            \
  565.     }                                \
  566.     _syscall_return(type);                        \
  567. }
  568.  
  569. #endif /* __GNUC__ */
  570.  
  571. #define __ARCH_WANT_IPC_PARSE_VERSION
  572. #define __ARCH_WANT_OLD_READDIR
  573. #define __ARCH_WANT_STAT64
  574. #define __ARCH_WANT_SYS_GETHOSTNAME
  575. #define __ARCH_WANT_SYS_SOCKETCALL
  576. #define __ARCH_WANT_SYS_FADVISE64
  577. #define __ARCH_WANT_SYS_GETPGRP
  578. #define __ARCH_WANT_SYS_OLD_GETRLIMIT
  579. #define __ARCH_WANT_SYS_OLDUMOUNT
  580. #define __ARCH_WANT_SYS_SIGPENDING
  581.  
  582. #ifdef __KERNEL_SYSCALLS__
  583.  
  584. #include <linux/compiler.h>
  585. #include <linux/types.h>
  586. #include <linux/string.h>
  587. #include <linux/signal.h>
  588. #include <linux/syscalls.h>
  589. #include <asm/ptrace.h>
  590.  
  591. static inline long open(const char * name, int mode, int flags)
  592. {
  593.     return sys_open(name, mode, flags);
  594. }
  595.  
  596. static inline long dup(int fd)
  597. {
  598.     return sys_dup(fd);
  599. }
  600.  
  601. static inline long close(int fd)
  602. {
  603.     return sys_close(fd);
  604. }
  605.  
  606. static inline off_t lseek(int fd, off_t off, int whence)
  607. {
  608.     return sys_lseek(fd, off, whence);
  609. }
  610.  
  611. static inline void _exit(int value)
  612. {
  613.     sys_exit(value);
  614. }
  615.  
  616. #define exit(x) _exit(x)
  617.  
  618. static inline long write(int fd, const char * buf, size_t nr)
  619. {
  620.     return sys_write(fd, buf, nr);
  621. }
  622.  
  623. static inline long read(int fd, char * buf, size_t nr)
  624. {
  625.     return sys_read(fd, buf, nr);
  626. }
  627.  
  628. extern int execve(char *, char **, char **);
  629.  
  630. static inline long setsid(void)
  631. {
  632.     return sys_setsid();
  633. }
  634.  
  635. static inline pid_t waitpid(int pid, int * wait_stat, int flags)
  636. {
  637.     return sys_wait4(pid, wait_stat, flags, NULL);
  638. }
  639.  
  640. asmlinkage int sys_execve(char *ufilename, char **argv, char **envp,
  641.             unsigned long a3, unsigned long a4, unsigned long a5,
  642.             struct pt_regs regs);
  643. asmlinkage long sys_rt_sigaction(int sig,
  644.                 const struct sigaction __user *act,
  645.                 struct sigaction __user *oact,
  646.                 size_t sigsetsize,
  647.                 void *restorer);
  648.  
  649. #endif /* __KERNEL_SYSCALLS__ */
  650.  
  651. /* "Conditional" syscalls.  What we want is
  652.  
  653.     __attribute__((weak,alias("sys_ni_syscall")))
  654.  
  655.    but that raises the problem of what type to give the symbol.  If we use
  656.    a prototype, it'll conflict with the definition given in this file and
  657.    others.  If we use __typeof, we discover that not all symbols actually
  658.    have declarations.  If we use no prototype, then we get warnings from
  659.    -Wstrict-prototypes.  Ho hum.  */
  660.  
  661. #define cond_syscall(x)  asm(".weak\t" #x "\n" #x " = sys_ni_syscall")
  662.  
  663. #endif /* __KERNEL__ */
  664. #endif /* _ALPHA_UNISTD_H */
  665.