[PATCH] Introduce FMODE_EXEC file flag
[linux-2.6] / include / asm-alpha / unistd.h
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 #define NR_SYSCALLS                     447
387
388 #if defined(__GNUC__)
389
390 #define _syscall_return(type)                                           \
391         return (_sc_err ? errno = _sc_ret, _sc_ret = -1L : 0), (type) _sc_ret
392
393 #define _syscall_clobbers                                               \
394         "$1", "$2", "$3", "$4", "$5", "$6", "$7", "$8",                 \
395         "$22", "$23", "$24", "$25", "$27", "$28"                        \
396
397 #define _syscall0(type, name)                                           \
398 type name(void)                                                         \
399 {                                                                       \
400         long _sc_ret, _sc_err;                                          \
401         {                                                               \
402                 register long _sc_0 __asm__("$0");                      \
403                 register long _sc_19 __asm__("$19");                    \
404                                                                         \
405                 _sc_0 = __NR_##name;                                    \
406                 __asm__("callsys # %0 %1 %2"                            \
407                         : "=r"(_sc_0), "=r"(_sc_19)                     \
408                         : "0"(_sc_0)                                    \
409                         : _syscall_clobbers);                           \
410                 _sc_ret = _sc_0, _sc_err = _sc_19;                      \
411         }                                                               \
412         _syscall_return(type);                                          \
413 }
414
415 #define _syscall1(type,name,type1,arg1)                                 \
416 type name(type1 arg1)                                                   \
417 {                                                                       \
418         long _sc_ret, _sc_err;                                          \
419         {                                                               \
420                 register long _sc_0 __asm__("$0");                      \
421                 register long _sc_16 __asm__("$16");                    \
422                 register long _sc_19 __asm__("$19");                    \
423                                                                         \
424                 _sc_0 = __NR_##name;                                    \
425                 _sc_16 = (long) (arg1);                                 \
426                 __asm__("callsys # %0 %1 %2 %3"                         \
427                         : "=r"(_sc_0), "=r"(_sc_19)                     \
428                         : "0"(_sc_0), "r"(_sc_16)                       \
429                         : _syscall_clobbers);                           \
430                 _sc_ret = _sc_0, _sc_err = _sc_19;                      \
431         }                                                               \
432         _syscall_return(type);                                          \
433 }
434
435 #define _syscall2(type,name,type1,arg1,type2,arg2)                      \
436 type name(type1 arg1,type2 arg2)                                        \
437 {                                                                       \
438         long _sc_ret, _sc_err;                                          \
439         {                                                               \
440                 register long _sc_0 __asm__("$0");                      \
441                 register long _sc_16 __asm__("$16");                    \
442                 register long _sc_17 __asm__("$17");                    \
443                 register long _sc_19 __asm__("$19");                    \
444                                                                         \
445                 _sc_0 = __NR_##name;                                    \
446                 _sc_16 = (long) (arg1);                                 \
447                 _sc_17 = (long) (arg2);                                 \
448                 __asm__("callsys # %0 %1 %2 %3 %4"                      \
449                         : "=r"(_sc_0), "=r"(_sc_19)                     \
450                         : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17)          \
451                         : _syscall_clobbers);                           \
452                 _sc_ret = _sc_0, _sc_err = _sc_19;                      \
453         }                                                               \
454         _syscall_return(type);                                          \
455 }
456
457 #define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3)           \
458 type name(type1 arg1,type2 arg2,type3 arg3)                             \
459 {                                                                       \
460         long _sc_ret, _sc_err;                                          \
461         {                                                               \
462                 register long _sc_0 __asm__("$0");                      \
463                 register long _sc_16 __asm__("$16");                    \
464                 register long _sc_17 __asm__("$17");                    \
465                 register long _sc_18 __asm__("$18");                    \
466                 register long _sc_19 __asm__("$19");                    \
467                                                                         \
468                 _sc_0 = __NR_##name;                                    \
469                 _sc_16 = (long) (arg1);                                 \
470                 _sc_17 = (long) (arg2);                                 \
471                 _sc_18 = (long) (arg3);                                 \
472                 __asm__("callsys # %0 %1 %2 %3 %4 %5"                   \
473                         : "=r"(_sc_0), "=r"(_sc_19)                     \
474                         : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17),         \
475                           "r"(_sc_18)                                   \
476                         : _syscall_clobbers);                           \
477                 _sc_ret = _sc_0, _sc_err = _sc_19;                      \
478         }                                                               \
479         _syscall_return(type);                                          \
480 }
481
482 #define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
483 type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4)               \
484 {                                                                        \
485         long _sc_ret, _sc_err;                                          \
486         {                                                               \
487                 register long _sc_0 __asm__("$0");                      \
488                 register long _sc_16 __asm__("$16");                    \
489                 register long _sc_17 __asm__("$17");                    \
490                 register long _sc_18 __asm__("$18");                    \
491                 register long _sc_19 __asm__("$19");                    \
492                                                                         \
493                 _sc_0 = __NR_##name;                                    \
494                 _sc_16 = (long) (arg1);                                 \
495                 _sc_17 = (long) (arg2);                                 \
496                 _sc_18 = (long) (arg3);                                 \
497                 _sc_19 = (long) (arg4);                                 \
498                 __asm__("callsys # %0 %1 %2 %3 %4 %5 %6"                \
499                         : "=r"(_sc_0), "=r"(_sc_19)                     \
500                         : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17),         \
501                           "r"(_sc_18), "1"(_sc_19)                      \
502                         : _syscall_clobbers);                           \
503                 _sc_ret = _sc_0, _sc_err = _sc_19;                      \
504         }                                                               \
505         _syscall_return(type);                                          \
506
507
508 #define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
509           type5,arg5)                                                    \
510 type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5)      \
511 {                                                                       \
512         long _sc_ret, _sc_err;                                          \
513         {                                                               \
514                 register long _sc_0 __asm__("$0");                      \
515                 register long _sc_16 __asm__("$16");                    \
516                 register long _sc_17 __asm__("$17");                    \
517                 register long _sc_18 __asm__("$18");                    \
518                 register long _sc_19 __asm__("$19");                    \
519                 register long _sc_20 __asm__("$20");                    \
520                                                                         \
521                 _sc_0 = __NR_##name;                                    \
522                 _sc_16 = (long) (arg1);                                 \
523                 _sc_17 = (long) (arg2);                                 \
524                 _sc_18 = (long) (arg3);                                 \
525                 _sc_19 = (long) (arg4);                                 \
526                 _sc_20 = (long) (arg5);                                 \
527                 __asm__("callsys # %0 %1 %2 %3 %4 %5 %6 %7"             \
528                         : "=r"(_sc_0), "=r"(_sc_19)                     \
529                         : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17),         \
530                           "r"(_sc_18), "1"(_sc_19), "r"(_sc_20)         \
531                         : _syscall_clobbers);                           \
532                 _sc_ret = _sc_0, _sc_err = _sc_19;                      \
533         }                                                               \
534         _syscall_return(type);                                          \
535 }
536
537 #define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
538           type5,arg5,type6,arg6)                                         \
539 type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5, type6 arg6)\
540 {                                                                       \
541         long _sc_ret, _sc_err;                                          \
542         {                                                               \
543                 register long _sc_0 __asm__("$0");                      \
544                 register long _sc_16 __asm__("$16");                    \
545                 register long _sc_17 __asm__("$17");                    \
546                 register long _sc_18 __asm__("$18");                    \
547                 register long _sc_19 __asm__("$19");                    \
548                 register long _sc_20 __asm__("$20");                    \
549                 register long _sc_21 __asm__("$21");                    \
550                                                                         \
551                 _sc_0 = __NR_##name;                                    \
552                 _sc_16 = (long) (arg1);                                 \
553                 _sc_17 = (long) (arg2);                                 \
554                 _sc_18 = (long) (arg3);                                 \
555                 _sc_19 = (long) (arg4);                                 \
556                 _sc_20 = (long) (arg5);                                 \
557                 _sc_21 = (long) (arg6);                                 \
558                 __asm__("callsys # %0 %1 %2 %3 %4 %5 %6 %7 %8"          \
559                         : "=r"(_sc_0), "=r"(_sc_19)                     \
560                         : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17),         \
561                           "r"(_sc_18), "1"(_sc_19), "r"(_sc_20), "r"(_sc_21) \
562                         : _syscall_clobbers);                           \
563                 _sc_ret = _sc_0, _sc_err = _sc_19;                      \
564         }                                                               \
565         _syscall_return(type);                                          \
566 }
567
568 #endif /* __LIBRARY__ && __GNUC__ */
569
570 #ifdef __KERNEL__
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 #endif
582
583 #ifdef __KERNEL_SYSCALLS__
584
585 #include <linux/compiler.h>
586 #include <linux/types.h>
587 #include <linux/string.h>
588 #include <linux/signal.h>
589 #include <linux/syscalls.h>
590 #include <asm/ptrace.h>
591
592 static inline long open(const char * name, int mode, int flags)
593 {
594         return sys_open(name, mode, flags);
595 }
596
597 static inline long dup(int fd)
598 {
599         return sys_dup(fd);
600 }
601
602 static inline long close(int fd)
603 {
604         return sys_close(fd);
605 }
606
607 static inline off_t lseek(int fd, off_t off, int whence)
608 {
609         return sys_lseek(fd, off, whence);
610 }
611
612 static inline void _exit(int value)
613 {
614         sys_exit(value);
615 }
616
617 #define exit(x) _exit(x)
618
619 static inline long write(int fd, const char * buf, size_t nr)
620 {
621         return sys_write(fd, buf, nr);
622 }
623
624 static inline long read(int fd, char * buf, size_t nr)
625 {
626         return sys_read(fd, buf, nr);
627 }
628
629 extern int execve(char *, char **, char **);
630
631 static inline long setsid(void)
632 {
633         return sys_setsid();
634 }
635
636 static inline pid_t waitpid(int pid, int * wait_stat, int flags)
637 {
638         return sys_wait4(pid, wait_stat, flags, NULL);
639 }
640
641 asmlinkage int sys_execve(char *ufilename, char **argv, char **envp,
642                         unsigned long a3, unsigned long a4, unsigned long a5,
643                         struct pt_regs regs);
644 asmlinkage long sys_rt_sigaction(int sig,
645                                 const struct sigaction __user *act,
646                                 struct sigaction __user *oact,
647                                 size_t sigsetsize,
648                                 void *restorer);
649
650 #endif /* __KERNEL_SYSCALLS__ */
651
652 /* "Conditional" syscalls.  What we want is
653
654         __attribute__((weak,alias("sys_ni_syscall")))
655
656    but that raises the problem of what type to give the symbol.  If we use
657    a prototype, it'll conflict with the definition given in this file and
658    others.  If we use __typeof, we discover that not all symbols actually
659    have declarations.  If we use no prototype, then we get warnings from
660    -Wstrict-prototypes.  Ho hum.  */
661
662 #define cond_syscall(x)  asm(".weak\t" #x "\n" #x " = sys_ni_syscall")
663
664 #endif /* _ALPHA_UNISTD_H */