vserver 1.9.3
[linux-2.6.git] / 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 #define __NR_vserver            273
237
238 /*
239  * Linux-specific system calls begin at 300
240  */
241 #define __NR_bdflush            300
242 #define __NR_sethae             301
243 #define __NR_mount              302
244 #define __NR_old_adjtimex       303
245 #define __NR_swapoff            304
246 #define __NR_getdents           305
247 #define __NR_create_module      306
248 #define __NR_init_module        307
249 #define __NR_delete_module      308
250 #define __NR_get_kernel_syms    309
251 #define __NR_syslog             310
252 #define __NR_reboot             311
253 #define __NR_clone              312
254 #define __NR_uselib             313
255 #define __NR_mlock              314
256 #define __NR_munlock            315
257 #define __NR_mlockall           316
258 #define __NR_munlockall         317
259 #define __NR_sysinfo            318
260 #define __NR__sysctl            319
261 /* 320 was sys_idle.  */
262 #define __NR_oldumount          321
263 #define __NR_swapon             322
264 #define __NR_times              323
265 #define __NR_personality        324
266 #define __NR_setfsuid           325
267 #define __NR_setfsgid           326
268 #define __NR_ustat              327
269 #define __NR_statfs             328
270 #define __NR_fstatfs            329
271 #define __NR_sched_setparam             330
272 #define __NR_sched_getparam             331
273 #define __NR_sched_setscheduler         332
274 #define __NR_sched_getscheduler         333
275 #define __NR_sched_yield                334
276 #define __NR_sched_get_priority_max     335
277 #define __NR_sched_get_priority_min     336
278 #define __NR_sched_rr_get_interval      337
279 #define __NR_afs_syscall                338
280 #define __NR_uname                      339
281 #define __NR_nanosleep                  340
282 #define __NR_mremap                     341
283 #define __NR_nfsservctl                 342
284 #define __NR_setresuid                  343
285 #define __NR_getresuid                  344
286 #define __NR_pciconfig_read             345
287 #define __NR_pciconfig_write            346
288 #define __NR_query_module               347
289 #define __NR_prctl                      348
290 #define __NR_pread64                    349
291 #define __NR_pwrite64                   350
292 #define __NR_rt_sigreturn               351
293 #define __NR_rt_sigaction               352
294 #define __NR_rt_sigprocmask             353
295 #define __NR_rt_sigpending              354
296 #define __NR_rt_sigtimedwait            355
297 #define __NR_rt_sigqueueinfo            356
298 #define __NR_rt_sigsuspend              357
299 #define __NR_select                     358
300 #define __NR_gettimeofday               359
301 #define __NR_settimeofday               360
302 #define __NR_getitimer                  361
303 #define __NR_setitimer                  362
304 #define __NR_utimes                     363
305 #define __NR_getrusage                  364
306 #define __NR_wait4                      365
307 #define __NR_adjtimex                   366
308 #define __NR_getcwd                     367
309 #define __NR_capget                     368
310 #define __NR_capset                     369
311 #define __NR_sendfile                   370
312 #define __NR_setresgid                  371
313 #define __NR_getresgid                  372
314 #define __NR_dipc                       373
315 #define __NR_pivot_root                 374
316 #define __NR_mincore                    375
317 #define __NR_pciconfig_iobase           376
318 #define __NR_getdents64                 377
319 #define __NR_gettid                     378
320 #define __NR_readahead                  379
321 /* 380 is unused */
322 #define __NR_tkill                      381
323 #define __NR_setxattr                   382
324 #define __NR_lsetxattr                  383
325 #define __NR_fsetxattr                  384
326 #define __NR_getxattr                   385
327 #define __NR_lgetxattr                  386
328 #define __NR_fgetxattr                  387
329 #define __NR_listxattr                  388
330 #define __NR_llistxattr                 389
331 #define __NR_flistxattr                 390
332 #define __NR_removexattr                391
333 #define __NR_lremovexattr               392
334 #define __NR_fremovexattr               393
335 #define __NR_futex                      394
336 #define __NR_sched_setaffinity          395     
337 #define __NR_sched_getaffinity          396
338 #define __NR_tuxcall                    397
339 #define __NR_io_setup                   398
340 #define __NR_io_destroy                 399
341 #define __NR_io_getevents               400
342 #define __NR_io_submit                  401
343 #define __NR_io_cancel                  402
344 #define __NR_exit_group                 405
345 #define __NR_lookup_dcookie             406
346 #define __NR_sys_epoll_create           407
347 #define __NR_sys_epoll_ctl              408
348 #define __NR_sys_epoll_wait             409
349 #define __NR_remap_file_pages           410
350 #define __NR_set_tid_address            411
351 #define __NR_restart_syscall            412
352 #define __NR_fadvise64                  413
353 #define __NR_timer_create               414
354 #define __NR_timer_settime              415
355 #define __NR_timer_gettime              416
356 #define __NR_timer_getoverrun           417
357 #define __NR_timer_delete               418
358 #define __NR_clock_settime              419
359 #define __NR_clock_gettime              420
360 #define __NR_clock_getres               421
361 #define __NR_clock_nanosleep            422
362 #define __NR_semtimedop                 423
363 #define __NR_tgkill                     424
364 #define __NR_stat64                     425
365 #define __NR_lstat64                    426
366 #define __NR_fstat64                    427
367 #define __NR_vserver                    428
368 #define __NR_mbind                      429
369 #define __NR_get_mempolicy              430
370 #define __NR_set_mempolicy              431
371 #define __NR_mq_open                    432
372 #define __NR_mq_unlink                  433
373 #define __NR_mq_timedsend               434
374 #define __NR_mq_timedreceive            435
375 #define __NR_mq_notify                  436
376 #define __NR_mq_getsetattr              437
377 #define __NR_waitid                     438
378
379 #define NR_SYSCALLS                     439
380
381 #if defined(__GNUC__)
382
383 #define _syscall_return(type)                                           \
384         return (_sc_err ? errno = _sc_ret, _sc_ret = -1L : 0), (type) _sc_ret
385
386 #define _syscall_clobbers                                               \
387         "$1", "$2", "$3", "$4", "$5", "$6", "$7", "$8",                 \
388         "$22", "$23", "$24", "$25", "$27", "$28"                        \
389
390 #define _syscall0(type, name)                                           \
391 type name(void)                                                         \
392 {                                                                       \
393         long _sc_ret, _sc_err;                                          \
394         {                                                               \
395                 register long _sc_0 __asm__("$0");                      \
396                 register long _sc_19 __asm__("$19");                    \
397                                                                         \
398                 _sc_0 = __NR_##name;                                    \
399                 __asm__("callsys # %0 %1 %2"                            \
400                         : "=r"(_sc_0), "=r"(_sc_19)                     \
401                         : "0"(_sc_0)                                    \
402                         : _syscall_clobbers);                           \
403                 _sc_ret = _sc_0, _sc_err = _sc_19;                      \
404         }                                                               \
405         _syscall_return(type);                                          \
406 }
407
408 #define _syscall1(type,name,type1,arg1)                                 \
409 type name(type1 arg1)                                                   \
410 {                                                                       \
411         long _sc_ret, _sc_err;                                          \
412         {                                                               \
413                 register long _sc_0 __asm__("$0");                      \
414                 register long _sc_16 __asm__("$16");                    \
415                 register long _sc_19 __asm__("$19");                    \
416                                                                         \
417                 _sc_0 = __NR_##name;                                    \
418                 _sc_16 = (long) (arg1);                                 \
419                 __asm__("callsys # %0 %1 %2 %3"                         \
420                         : "=r"(_sc_0), "=r"(_sc_19)                     \
421                         : "0"(_sc_0), "r"(_sc_16)                       \
422                         : _syscall_clobbers);                           \
423                 _sc_ret = _sc_0, _sc_err = _sc_19;                      \
424         }                                                               \
425         _syscall_return(type);                                          \
426 }
427
428 #define _syscall2(type,name,type1,arg1,type2,arg2)                      \
429 type name(type1 arg1,type2 arg2)                                        \
430 {                                                                       \
431         long _sc_ret, _sc_err;                                          \
432         {                                                               \
433                 register long _sc_0 __asm__("$0");                      \
434                 register long _sc_16 __asm__("$16");                    \
435                 register long _sc_17 __asm__("$17");                    \
436                 register long _sc_19 __asm__("$19");                    \
437                                                                         \
438                 _sc_0 = __NR_##name;                                    \
439                 _sc_16 = (long) (arg1);                                 \
440                 _sc_17 = (long) (arg2);                                 \
441                 __asm__("callsys # %0 %1 %2 %3 %4"                      \
442                         : "=r"(_sc_0), "=r"(_sc_19)                     \
443                         : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17)          \
444                         : _syscall_clobbers);                           \
445                 _sc_ret = _sc_0, _sc_err = _sc_19;                      \
446         }                                                               \
447         _syscall_return(type);                                          \
448 }
449
450 #define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3)           \
451 type name(type1 arg1,type2 arg2,type3 arg3)                             \
452 {                                                                       \
453         long _sc_ret, _sc_err;                                          \
454         {                                                               \
455                 register long _sc_0 __asm__("$0");                      \
456                 register long _sc_16 __asm__("$16");                    \
457                 register long _sc_17 __asm__("$17");                    \
458                 register long _sc_18 __asm__("$18");                    \
459                 register long _sc_19 __asm__("$19");                    \
460                                                                         \
461                 _sc_0 = __NR_##name;                                    \
462                 _sc_16 = (long) (arg1);                                 \
463                 _sc_17 = (long) (arg2);                                 \
464                 _sc_18 = (long) (arg3);                                 \
465                 __asm__("callsys # %0 %1 %2 %3 %4 %5"                   \
466                         : "=r"(_sc_0), "=r"(_sc_19)                     \
467                         : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17),         \
468                           "r"(_sc_18)                                   \
469                         : _syscall_clobbers);                           \
470                 _sc_ret = _sc_0, _sc_err = _sc_19;                      \
471         }                                                               \
472         _syscall_return(type);                                          \
473 }
474
475 #define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
476 type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4)               \
477 {                                                                        \
478         long _sc_ret, _sc_err;                                          \
479         {                                                               \
480                 register long _sc_0 __asm__("$0");                      \
481                 register long _sc_16 __asm__("$16");                    \
482                 register long _sc_17 __asm__("$17");                    \
483                 register long _sc_18 __asm__("$18");                    \
484                 register long _sc_19 __asm__("$19");                    \
485                                                                         \
486                 _sc_0 = __NR_##name;                                    \
487                 _sc_16 = (long) (arg1);                                 \
488                 _sc_17 = (long) (arg2);                                 \
489                 _sc_18 = (long) (arg3);                                 \
490                 _sc_19 = (long) (arg4);                                 \
491                 __asm__("callsys # %0 %1 %2 %3 %4 %5 %6"                \
492                         : "=r"(_sc_0), "=r"(_sc_19)                     \
493                         : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17),         \
494                           "r"(_sc_18), "1"(_sc_19)                      \
495                         : _syscall_clobbers);                           \
496                 _sc_ret = _sc_0, _sc_err = _sc_19;                      \
497         }                                                               \
498         _syscall_return(type);                                          \
499
500
501 #define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
502           type5,arg5)                                                    \
503 type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5)      \
504 {                                                                       \
505         long _sc_ret, _sc_err;                                          \
506         {                                                               \
507                 register long _sc_0 __asm__("$0");                      \
508                 register long _sc_16 __asm__("$16");                    \
509                 register long _sc_17 __asm__("$17");                    \
510                 register long _sc_18 __asm__("$18");                    \
511                 register long _sc_19 __asm__("$19");                    \
512                 register long _sc_20 __asm__("$20");                    \
513                                                                         \
514                 _sc_0 = __NR_##name;                                    \
515                 _sc_16 = (long) (arg1);                                 \
516                 _sc_17 = (long) (arg2);                                 \
517                 _sc_18 = (long) (arg3);                                 \
518                 _sc_19 = (long) (arg4);                                 \
519                 _sc_20 = (long) (arg5);                                 \
520                 __asm__("callsys # %0 %1 %2 %3 %4 %5 %6 %7"             \
521                         : "=r"(_sc_0), "=r"(_sc_19)                     \
522                         : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17),         \
523                           "r"(_sc_18), "1"(_sc_19), "r"(_sc_20)         \
524                         : _syscall_clobbers);                           \
525                 _sc_ret = _sc_0, _sc_err = _sc_19;                      \
526         }                                                               \
527         _syscall_return(type);                                          \
528 }
529
530 #define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
531           type5,arg5,type6,arg6)                                         \
532 type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5, type6 arg6)\
533 {                                                                       \
534         long _sc_ret, _sc_err;                                          \
535         {                                                               \
536                 register long _sc_0 __asm__("$0");                      \
537                 register long _sc_16 __asm__("$16");                    \
538                 register long _sc_17 __asm__("$17");                    \
539                 register long _sc_18 __asm__("$18");                    \
540                 register long _sc_19 __asm__("$19");                    \
541                 register long _sc_20 __asm__("$20");                    \
542                 register long _sc_21 __asm__("$21");                    \
543                                                                         \
544                 _sc_0 = __NR_##name;                                    \
545                 _sc_16 = (long) (arg1);                                 \
546                 _sc_17 = (long) (arg2);                                 \
547                 _sc_18 = (long) (arg3);                                 \
548                 _sc_19 = (long) (arg4);                                 \
549                 _sc_20 = (long) (arg5);                                 \
550                 _sc_21 = (long) (arg6);                                 \
551                 __asm__("callsys # %0 %1 %2 %3 %4 %5 %6 %7 %8"          \
552                         : "=r"(_sc_0), "=r"(_sc_19)                     \
553                         : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17),         \
554                           "r"(_sc_18), "1"(_sc_19), "r"(_sc_20), "r"(_sc_21) \
555                         : _syscall_clobbers);                           \
556                 _sc_ret = _sc_0, _sc_err = _sc_19;                      \
557         }                                                               \
558         _syscall_return(type);                                          \
559 }
560
561 #endif /* __LIBRARY__ && __GNUC__ */
562
563 #ifdef __KERNEL__
564 #define __ARCH_WANT_IPC_PARSE_VERSION
565 #define __ARCH_WANT_OLD_READDIR
566 #define __ARCH_WANT_STAT64
567 #define __ARCH_WANT_SYS_GETHOSTNAME
568 #define __ARCH_WANT_SYS_SOCKETCALL
569 #define __ARCH_WANT_SYS_FADVISE64
570 #define __ARCH_WANT_SYS_GETPGRP
571 #define __ARCH_WANT_SYS_OLD_GETRLIMIT
572 #define __ARCH_WANT_SYS_OLDUMOUNT
573 #define __ARCH_WANT_SYS_SIGPENDING
574 #endif
575
576 #ifdef __KERNEL_SYSCALLS__
577
578 #include <linux/compiler.h>
579 #include <linux/types.h>
580 #include <linux/string.h>
581 #include <linux/signal.h>
582 #include <linux/syscalls.h>
583 #include <asm/ptrace.h>
584
585 static inline long open(const char * name, int mode, int flags)
586 {
587         return sys_open(name, mode, flags);
588 }
589
590 static inline long dup(int fd)
591 {
592         return sys_dup(fd);
593 }
594
595 static inline long close(int fd)
596 {
597         return sys_close(fd);
598 }
599
600 static inline off_t lseek(int fd, off_t off, int whence)
601 {
602         return sys_lseek(fd, off, whence);
603 }
604
605 static inline void _exit(int value)
606 {
607         sys_exit(value);
608 }
609
610 #define exit(x) _exit(x)
611
612 static inline long write(int fd, const char * buf, size_t nr)
613 {
614         return sys_write(fd, buf, nr);
615 }
616
617 static inline long read(int fd, char * buf, size_t nr)
618 {
619         return sys_read(fd, buf, nr);
620 }
621
622 extern int execve(char *, char **, char **);
623
624 static inline long setsid(void)
625 {
626         return sys_setsid();
627 }
628
629 static inline pid_t waitpid(int pid, int * wait_stat, int flags)
630 {
631         return sys_wait4(pid, wait_stat, flags, NULL);
632 }
633
634 asmlinkage int sys_execve(char *ufilename, char **argv, char **envp,
635                         unsigned long a3, unsigned long a4, unsigned long a5,
636                         struct pt_regs regs);
637 asmlinkage long sys_rt_sigaction(int sig,
638                                 const struct sigaction __user *act,
639                                 struct sigaction __user *oact,
640                                 size_t sigsetsize,
641                                 void *restorer);
642
643 #endif /* __KERNEL_SYSCALLS__ */
644
645 /* "Conditional" syscalls.  What we want is
646
647         __attribute__((weak,alias("sys_ni_syscall")))
648
649    but that raises the problem of what type to give the symbol.  If we use
650    a prototype, it'll conflict with the definition given in this file and
651    others.  If we use __typeof, we discover that not all symbols actually
652    have declarations.  If we use no prototype, then we get warnings from
653    -Wstrict-prototypes.  Ho hum.  */
654
655 #define cond_syscall(x)  asm(".weak\t" #x "\n" #x " = sys_ni_syscall");
656
657 #endif /* _ALPHA_UNISTD_H */