1 #ifndef _ASM_PARISC_UNISTD_H_
2 #define _ASM_PARISC_UNISTD_H_
3
4 /*
5 * This file contains the system call numbers.
6 */
7
8 /*
9 * HP-UX system calls get their native numbers for binary compatibility.
10 */
11
12 #define __NR_HPUX_exit 1
13 #define __NR_HPUX_fork 2
14 #define __NR_HPUX_read 3
15 #define __NR_HPUX_write 4
16 #define __NR_HPUX_open 5
17 #define __NR_HPUX_close 6
18 #define __NR_HPUX_wait 7
19 #define __NR_HPUX_creat 8
20 #define __NR_HPUX_link 9
21 #define __NR_HPUX_unlink 10
22 #define __NR_HPUX_execv 11
23 #define __NR_HPUX_chdir 12
24 #define __NR_HPUX_time 13
25 #define __NR_HPUX_mknod 14
26 #define __NR_HPUX_chmod 15
27 #define __NR_HPUX_chown 16
28 #define __NR_HPUX_break 17
29 #define __NR_HPUX_lchmod 18
30 #define __NR_HPUX_lseek 19
31 #define __NR_HPUX_getpid 20
32 #define __NR_HPUX_mount 21
33 #define __NR_HPUX_umount 22
34 #define __NR_HPUX_setuid 23
35 #define __NR_HPUX_getuid 24
36 #define __NR_HPUX_stime 25
37 #define __NR_HPUX_ptrace 26
38 #define __NR_HPUX_alarm 27
39 #define __NR_HPUX_oldfstat 28
40 #define __NR_HPUX_pause 29
41 #define __NR_HPUX_utime 30
42 #define __NR_HPUX_stty 31
43 #define __NR_HPUX_gtty 32
44 #define __NR_HPUX_access 33
45 #define __NR_HPUX_nice 34
46 #define __NR_HPUX_ftime 35
47 #define __NR_HPUX_sync 36
48 #define __NR_HPUX_kill 37
49 #define __NR_HPUX_stat 38
50 #define __NR_HPUX_setpgrp3 39
51 #define __NR_HPUX_lstat 40
52 #define __NR_HPUX_dup 41
53 #define __NR_HPUX_pipe 42
54 #define __NR_HPUX_times 43
55 #define __NR_HPUX_profil 44
56 #define __NR_HPUX_ki_call 45
57 #define __NR_HPUX_setgid 46
58 #define __NR_HPUX_getgid 47
59 #define __NR_HPUX_sigsys 48
60 #define __NR_HPUX_reserved1 49
61 #define __NR_HPUX_reserved2 50
62 #define __NR_HPUX_acct 51
63 #define __NR_HPUX_set_userthreadid 52
64 #define __NR_HPUX_oldlock 53
65 #define __NR_HPUX_ioctl 54
66 #define __NR_HPUX_reboot 55
67 #define __NR_HPUX_symlink 56
68 #define __NR_HPUX_utssys 57
69 #define __NR_HPUX_readlink 58
70 #define __NR_HPUX_execve 59
71 #define __NR_HPUX_umask 60
72 #define __NR_HPUX_chroot 61
73 #define __NR_HPUX_fcntl 62
74 #define __NR_HPUX_ulimit 63
75 #define __NR_HPUX_getpagesize 64
76 #define __NR_HPUX_mremap 65
77 #define __NR_HPUX_vfork 66
78 #define __NR_HPUX_vread 67
79 #define __NR_HPUX_vwrite 68
80 #define __NR_HPUX_sbrk 69
81 #define __NR_HPUX_sstk 70
82 #define __NR_HPUX_mmap 71
83 #define __NR_HPUX_vadvise 72
84 #define __NR_HPUX_munmap 73
85 #define __NR_HPUX_mprotect 74
86 #define __NR_HPUX_madvise 75
87 #define __NR_HPUX_vhangup 76
88 #define __NR_HPUX_swapoff 77
89 #define __NR_HPUX_mincore 78
90 #define __NR_HPUX_getgroups 79
91 #define __NR_HPUX_setgroups 80
92 #define __NR_HPUX_getpgrp2 81
93 #define __NR_HPUX_setpgrp2 82
94 #define __NR_HPUX_setitimer 83
95 #define __NR_HPUX_wait3 84
96 #define __NR_HPUX_swapon 85
97 #define __NR_HPUX_getitimer 86
98 #define __NR_HPUX_gethostname42 87
99 #define __NR_HPUX_sethostname42 88
100 #define __NR_HPUX_getdtablesize 89
101 #define __NR_HPUX_dup2 90
102 #define __NR_HPUX_getdopt 91
103 #define __NR_HPUX_fstat 92
104 #define __NR_HPUX_select 93
105 #define __NR_HPUX_setdopt 94
106 #define __NR_HPUX_fsync 95
107 #define __NR_HPUX_setpriority 96
108 #define __NR_HPUX_socket_old 97
109 #define __NR_HPUX_connect_old 98
110 #define __NR_HPUX_accept_old 99
111 #define __NR_HPUX_getpriority 100
112 #define __NR_HPUX_send_old 101
113 #define __NR_HPUX_recv_old 102
114 #define __NR_HPUX_socketaddr_old 103
115 #define __NR_HPUX_bind_old 104
116 #define __NR_HPUX_setsockopt_old 105
117 #define __NR_HPUX_listen_old 106
118 #define __NR_HPUX_vtimes_old 107
119 #define __NR_HPUX_sigvector 108
120 #define __NR_HPUX_sigblock 109
121 #define __NR_HPUX_siggetmask 110
122 #define __NR_HPUX_sigpause 111
123 #define __NR_HPUX_sigstack 112
124 #define __NR_HPUX_recvmsg_old 113
125 #define __NR_HPUX_sendmsg_old 114
126 #define __NR_HPUX_vtrace_old 115
127 #define __NR_HPUX_gettimeofday 116
128 #define __NR_HPUX_getrusage 117
129 #define __NR_HPUX_getsockopt_old 118
130 #define __NR_HPUX_resuba_old 119
131 #define __NR_HPUX_readv 120
132 #define __NR_HPUX_writev 121
133 #define __NR_HPUX_settimeofday 122
134 #define __NR_HPUX_fchown 123
135 #define __NR_HPUX_fchmod 124
136 #define __NR_HPUX_recvfrom_old 125
137 #define __NR_HPUX_setresuid 126
138 #define __NR_HPUX_setresgid 127
139 #define __NR_HPUX_rename 128
140 #define __NR_HPUX_truncate 129
141 #define __NR_HPUX_ftruncate 130
142 #define __NR_HPUX_flock_old 131
143 #define __NR_HPUX_sysconf 132
144 #define __NR_HPUX_sendto_old 133
145 #define __NR_HPUX_shutdown_old 134
146 #define __NR_HPUX_socketpair_old 135
147 #define __NR_HPUX_mkdir 136
148 #define __NR_HPUX_rmdir 137
149 #define __NR_HPUX_utimes_old 138
150 #define __NR_HPUX_sigcleanup_old 139
151 #define __NR_HPUX_setcore 140
152 #define __NR_HPUX_getpeername_old 141
153 #define __NR_HPUX_gethostid 142
154 #define __NR_HPUX_sethostid 143
155 #define __NR_HPUX_getrlimit 144
156 #define __NR_HPUX_setrlimit 145
157 #define __NR_HPUX_killpg_old 146
158 #define __NR_HPUX_cachectl 147
159 #define __NR_HPUX_quotactl 148
160 #define __NR_HPUX_get_sysinfo 149
161 #define __NR_HPUX_getsockname_old 150
162 #define __NR_HPUX_privgrp 151
163 #define __NR_HPUX_rtprio 152
164 #define __NR_HPUX_plock 153
165 #define __NR_HPUX_reserved3 154
166 #define __NR_HPUX_lockf 155
167 #define __NR_HPUX_semget 156
168 #define __NR_HPUX_osemctl 157
169 #define __NR_HPUX_semop 158
170 #define __NR_HPUX_msgget 159
171 #define __NR_HPUX_omsgctl 160
172 #define __NR_HPUX_msgsnd 161
173 #define __NR_HPUX_msgrecv 162
174 #define __NR_HPUX_shmget 163
175 #define __NR_HPUX_oshmctl 164
176 #define __NR_HPUX_shmat 165
177 #define __NR_HPUX_shmdt 166
178 #define __NR_HPUX_m68020_advise 167
179 /* [168,189] are for Discless/DUX */
180 #define __NR_HPUX_csp 168
181 #define __NR_HPUX_cluster 169
182 #define __NR_HPUX_mkrnod 170
183 #define __NR_HPUX_test 171
184 #define __NR_HPUX_unsp_open 172
185 #define __NR_HPUX_reserved4 173
186 #define __NR_HPUX_getcontext_old 174
187 #define __NR_HPUX_osetcontext 175
188 #define __NR_HPUX_bigio 176
189 #define __NR_HPUX_pipenode 177
190 #define __NR_HPUX_lsync 178
191 #define __NR_HPUX_getmachineid 179
192 #define __NR_HPUX_cnodeid 180
193 #define __NR_HPUX_cnodes 181
194 #define __NR_HPUX_swapclients 182
195 #define __NR_HPUX_rmt_process 183
196 #define __NR_HPUX_dskless_stats 184
197 #define __NR_HPUX_sigprocmask 185
198 #define __NR_HPUX_sigpending 186
199 #define __NR_HPUX_sigsuspend 187
200 #define __NR_HPUX_sigaction 188
201 #define __NR_HPUX_reserved5 189
202 #define __NR_HPUX_nfssvc 190
203 #define __NR_HPUX_getfh 191
204 #define __NR_HPUX_getdomainname 192
205 #define __NR_HPUX_setdomainname 193
206 #define __NR_HPUX_async_daemon 194
207 #define __NR_HPUX_getdirentries 195
208 #define __NR_HPUX_statfs 196
209 #define __NR_HPUX_fstatfs 197
210 #define __NR_HPUX_vfsmount 198
211 #define __NR_HPUX_reserved6 199
212 #define __NR_HPUX_waitpid 200
213 /* 201 - 223 missing */
214 #define __NR_HPUX_sigsetreturn 224
215 #define __NR_HPUX_sigsetstatemask 225
216 /* 226 missing */
217 #define __NR_HPUX_cs 227
218 #define __NR_HPUX_cds 228
219 #define __NR_HPUX_set_no_trunc 229
220 #define __NR_HPUX_pathconf 230
221 #define __NR_HPUX_fpathconf 231
222 /* 232, 233 missing */
223 #define __NR_HPUX_nfs_fcntl 234
224 #define __NR_HPUX_ogetacl 235
225 #define __NR_HPUX_ofgetacl 236
226 #define __NR_HPUX_osetacl 237
227 #define __NR_HPUX_ofsetacl 238
228 #define __NR_HPUX_pstat 239
229 #define __NR_HPUX_getaudid 240
230 #define __NR_HPUX_setaudid 241
231 #define __NR_HPUX_getaudproc 242
232 #define __NR_HPUX_setaudproc 243
233 #define __NR_HPUX_getevent 244
234 #define __NR_HPUX_setevent 245
235 #define __NR_HPUX_audwrite 246
236 #define __NR_HPUX_audswitch 247
237 #define __NR_HPUX_audctl 248
238 #define __NR_HPUX_ogetaccess 249
239 #define __NR_HPUX_fsctl 250
240 /* 251 - 258 missing */
241 #define __NR_HPUX_swapfs 259
242 #define __NR_HPUX_fss 260
243 /* 261 - 266 missing */
244 #define __NR_HPUX_tsync 267
245 #define __NR_HPUX_getnumfds 268
246 #define __NR_HPUX_poll 269
247 #define __NR_HPUX_getmsg 270
248 #define __NR_HPUX_putmsg 271
249 #define __NR_HPUX_fchdir 272
250 #define __NR_HPUX_getmount_cnt 273
251 #define __NR_HPUX_getmount_entry 274
252 #define __NR_HPUX_accept 275
253 #define __NR_HPUX_bind 276
254 #define __NR_HPUX_connect 277
255 #define __NR_HPUX_getpeername 278
256 #define __NR_HPUX_getsockname 279
257 #define __NR_HPUX_getsockopt 280
258 #define __NR_HPUX_listen 281
259 #define __NR_HPUX_recv 282
260 #define __NR_HPUX_recvfrom 283
261 #define __NR_HPUX_recvmsg 284
262 #define __NR_HPUX_send 285
263 #define __NR_HPUX_sendmsg 286
264 #define __NR_HPUX_sendto 287
265 #define __NR_HPUX_setsockopt 288
266 #define __NR_HPUX_shutdown 289
267 #define __NR_HPUX_socket 290
268 #define __NR_HPUX_socketpair 291
269 #define __NR_HPUX_proc_open 292
270 #define __NR_HPUX_proc_close 293
271 #define __NR_HPUX_proc_send 294
272 #define __NR_HPUX_proc_recv 295
273 #define __NR_HPUX_proc_sendrecv 296
274 #define __NR_HPUX_proc_syscall 297
275 /* 298 - 311 missing */
276 #define __NR_HPUX_semctl 312
277 #define __NR_HPUX_msgctl 313
278 #define __NR_HPUX_shmctl 314
279 #define __NR_HPUX_mpctl 315
280 #define __NR_HPUX_exportfs 316
281 #define __NR_HPUX_getpmsg 317
282 #define __NR_HPUX_putpmsg 318
283 /* 319 missing */
284 #define __NR_HPUX_msync 320
285 #define __NR_HPUX_msleep 321
286 #define __NR_HPUX_mwakeup 322
287 #define __NR_HPUX_msem_init 323
288 #define __NR_HPUX_msem_remove 324
289 #define __NR_HPUX_adjtime 325
290 #define __NR_HPUX_kload 326
291 #define __NR_HPUX_fattach 327
292 #define __NR_HPUX_fdetach 328
293 #define __NR_HPUX_serialize 329
294 #define __NR_HPUX_statvfs 330
295 #define __NR_HPUX_fstatvfs 331
296 #define __NR_HPUX_lchown 332
297 #define __NR_HPUX_getsid 333
298 #define __NR_HPUX_sysfs 334
299 /* 335, 336 missing */
300 #define __NR_HPUX_sched_setparam 337
301 #define __NR_HPUX_sched_getparam 338
302 #define __NR_HPUX_sched_setscheduler 339
303 #define __NR_HPUX_sched_getscheduler 340
304 #define __NR_HPUX_sched_yield 341
305 #define __NR_HPUX_sched_get_priority_max 342
306 #define __NR_HPUX_sched_get_priority_min 343
307 #define __NR_HPUX_sched_rr_get_interval 344
308 #define __NR_HPUX_clock_settime 345
309 #define __NR_HPUX_clock_gettime 346
310 #define __NR_HPUX_clock_getres 347
311 #define __NR_HPUX_timer_create 348
312 #define __NR_HPUX_timer_delete 349
313 #define __NR_HPUX_timer_settime 350
314 #define __NR_HPUX_timer_gettime 351
315 #define __NR_HPUX_timer_getoverrun 352
316 #define __NR_HPUX_nanosleep 353
317 #define __NR_HPUX_toolbox 354
318 /* 355 missing */
319 #define __NR_HPUX_getdents 356
320 #define __NR_HPUX_getcontext 357
321 #define __NR_HPUX_sysinfo 358
322 #define __NR_HPUX_fcntl64 359
323 #define __NR_HPUX_ftruncate64 360
324 #define __NR_HPUX_fstat64 361
325 #define __NR_HPUX_getdirentries64 362
326 #define __NR_HPUX_getrlimit64 363
327 #define __NR_HPUX_lockf64 364
328 #define __NR_HPUX_lseek64 365
329 #define __NR_HPUX_lstat64 366
330 #define __NR_HPUX_mmap64 367
331 #define __NR_HPUX_setrlimit64 368
332 #define __NR_HPUX_stat64 369
333 #define __NR_HPUX_truncate64 370
334 #define __NR_HPUX_ulimit64 371
335 #define __NR_HPUX_pread 372
336 #define __NR_HPUX_preadv 373
337 #define __NR_HPUX_pwrite 374
338 #define __NR_HPUX_pwritev 375
339 #define __NR_HPUX_pread64 376
340 #define __NR_HPUX_preadv64 377
341 #define __NR_HPUX_pwrite64 378
342 #define __NR_HPUX_pwritev64 379
343 #define __NR_HPUX_setcontext 380
344 #define __NR_HPUX_sigaltstack 381
345 #define __NR_HPUX_waitid 382
346 #define __NR_HPUX_setpgrp 383
347 #define __NR_HPUX_recvmsg2 384
348 #define __NR_HPUX_sendmsg2 385
349 #define __NR_HPUX_socket2 386
350 #define __NR_HPUX_socketpair2 387
351 #define __NR_HPUX_setregid 388
352 #define __NR_HPUX_lwp_create 389
353 #define __NR_HPUX_lwp_terminate 390
354 #define __NR_HPUX_lwp_wait 391
355 #define __NR_HPUX_lwp_suspend 392
356 #define __NR_HPUX_lwp_resume 393
357 /* 394 missing */
358 #define __NR_HPUX_lwp_abort_syscall 395
359 #define __NR_HPUX_lwp_info 396
360 #define __NR_HPUX_lwp_kill 397
361 #define __NR_HPUX_ksleep 398
362 #define __NR_HPUX_kwakeup 399
363 /* 400 missing */
364 #define __NR_HPUX_pstat_getlwp 401
365 #define __NR_HPUX_lwp_exit 402
366 #define __NR_HPUX_lwp_continue 403
367 #define __NR_HPUX_getacl 404
368 #define __NR_HPUX_fgetacl 405
369 #define __NR_HPUX_setacl 406
370 #define __NR_HPUX_fsetacl 407
371 #define __NR_HPUX_getaccess 408
372 #define __NR_HPUX_lwp_mutex_init 409
373 #define __NR_HPUX_lwp_mutex_lock_sys 410
374 #define __NR_HPUX_lwp_mutex_unlock 411
375 #define __NR_HPUX_lwp_cond_init 412
376 #define __NR_HPUX_lwp_cond_signal 413
377 #define __NR_HPUX_lwp_cond_broadcast 414
378 #define __NR_HPUX_lwp_cond_wait_sys 415
379 #define __NR_HPUX_lwp_getscheduler 416
380 #define __NR_HPUX_lwp_setscheduler 417
381 #define __NR_HPUX_lwp_getstate 418
382 #define __NR_HPUX_lwp_setstate 419
383 #define __NR_HPUX_lwp_detach 420
384 #define __NR_HPUX_mlock 421
385 #define __NR_HPUX_munlock 422
386 #define __NR_HPUX_mlockall 423
387 #define __NR_HPUX_munlockall 424
388 #define __NR_HPUX_shm_open 425
389 #define __NR_HPUX_shm_unlink 426
390 #define __NR_HPUX_sigqueue 427
391 #define __NR_HPUX_sigwaitinfo 428
392 #define __NR_HPUX_sigtimedwait 429
393 #define __NR_HPUX_sigwait 430
394 #define __NR_HPUX_aio_read 431
395 #define __NR_HPUX_aio_write 432
396 #define __NR_HPUX_lio_listio 433
397 #define __NR_HPUX_aio_error 434
398 #define __NR_HPUX_aio_return 435
399 #define __NR_HPUX_aio_cancel 436
400 #define __NR_HPUX_aio_suspend 437
401 #define __NR_HPUX_aio_fsync 438
402 #define __NR_HPUX_mq_open 439
403 #define __NR_HPUX_mq_close 440
404 #define __NR_HPUX_mq_unlink 441
405 #define __NR_HPUX_mq_send 442
406 #define __NR_HPUX_mq_receive 443
407 #define __NR_HPUX_mq_notify 444
408 #define __NR_HPUX_mq_setattr 445
409 #define __NR_HPUX_mq_getattr 446
410 #define __NR_HPUX_ksem_open 447
411 #define __NR_HPUX_ksem_unlink 448
412 #define __NR_HPUX_ksem_close 449
413 #define __NR_HPUX_ksem_post 450
414 #define __NR_HPUX_ksem_wait 451
415 #define __NR_HPUX_ksem_read 452
416 #define __NR_HPUX_ksem_trywait 453
417 #define __NR_HPUX_lwp_rwlock_init 454
418 #define __NR_HPUX_lwp_rwlock_destroy 455
419 #define __NR_HPUX_lwp_rwlock_rdlock_sys 456
420 #define __NR_HPUX_lwp_rwlock_wrlock_sys 457
421 #define __NR_HPUX_lwp_rwlock_tryrdlock 458
422 #define __NR_HPUX_lwp_rwlock_trywrlock 459
423 #define __NR_HPUX_lwp_rwlock_unlock 460
424 #define __NR_HPUX_ttrace 461
425 #define __NR_HPUX_ttrace_wait 462
426 #define __NR_HPUX_lf_wire_mem 463
427 #define __NR_HPUX_lf_unwire_mem 464
428 #define __NR_HPUX_lf_send_pin_map 465
429 #define __NR_HPUX_lf_free_buf 466
430 #define __NR_HPUX_lf_wait_nq 467
431 #define __NR_HPUX_lf_wakeup_conn_q 468
432 #define __NR_HPUX_lf_unused 469
433 #define __NR_HPUX_lwp_sema_init 470
434 #define __NR_HPUX_lwp_sema_post 471
435 #define __NR_HPUX_lwp_sema_wait 472
436 #define __NR_HPUX_lwp_sema_trywait 473
437 #define __NR_HPUX_lwp_sema_destroy 474
438 #define __NR_HPUX_statvfs64 475
439 #define __NR_HPUX_fstatvfs64 476
440 #define __NR_HPUX_msh_register 477
441 #define __NR_HPUX_ptrace64 478
442 #define __NR_HPUX_sendfile 479
443 #define __NR_HPUX_sendpath 480
444 #define __NR_HPUX_sendfile64 481
445 #define __NR_HPUX_sendpath64 482
446 #define __NR_HPUX_modload 483
447 #define __NR_HPUX_moduload 484
448 #define __NR_HPUX_modpath 485
449 #define __NR_HPUX_getksym 486
450 #define __NR_HPUX_modadm 487
451 #define __NR_HPUX_modstat 488
452 #define __NR_HPUX_lwp_detached_exit 489
453 #define __NR_HPUX_crashconf 490
454 #define __NR_HPUX_siginhibit 491
455 #define __NR_HPUX_sigenable 492
456 #define __NR_HPUX_spuctl 493
457 #define __NR_HPUX_zerokernelsum 494
458 #define __NR_HPUX_nfs_kstat 495
459 #define __NR_HPUX_aio_read64 496
460 #define __NR_HPUX_aio_write64 497
461 #define __NR_HPUX_aio_error64 498
462 #define __NR_HPUX_aio_return64 499
463 #define __NR_HPUX_aio_cancel64 500
464 #define __NR_HPUX_aio_suspend64 501
465 #define __NR_HPUX_aio_fsync64 502
466 #define __NR_HPUX_lio_listio64 503
467 #define __NR_HPUX_recv2 504
468 #define __NR_HPUX_recvfrom2 505
469 #define __NR_HPUX_send2 506
470 #define __NR_HPUX_sendto2 507
471 #define __NR_HPUX_acl 508
472 #define __NR_HPUX___cnx_p2p_ctl 509
473 #define __NR_HPUX___cnx_gsched_ctl 510
474 #define __NR_HPUX___cnx_pmon_ctl 511
475
476 #define __NR_HPUX_syscalls 512
477
478 /*
479 * Linux system call numbers.
480 *
481 * Cary Coutant says that we should just use another syscall gateway
482 * page to avoid clashing with the HPUX space, and I think he's right:
483 * it will would keep a branch out of our syscall entry path, at the
484 * very least. If we decide to change it later, we can ``just'' tweak
485 * the LINUX_GATEWAY_ADDR define at the bottom and make __NR_Linux be
486 * 1024 or something. Oh, and recompile libc. =)
487 *
488 * 64-bit HPUX binaries get the syscall gateway address passed in a register
489 * from the kernel at startup, which seems a sane strategy.
490 */
491
492 #define __NR_Linux 0
493 #define __NR_syscall (__NR_Linux + 0)
494 #define __NR_exit (__NR_Linux + 1)
495 #define __NR_fork (__NR_Linux + 2)
496 #define __NR_read (__NR_Linux + 3)
497 #define __NR_write (__NR_Linux + 4)
498 #define __NR_open (__NR_Linux + 5)
499 #define __NR_close (__NR_Linux + 6)
500 #define __NR_waitpid (__NR_Linux + 7)
501 #define __NR_creat (__NR_Linux + 8)
502 #define __NR_link (__NR_Linux + 9)
503 #define __NR_unlink (__NR_Linux + 10)
504 #define __NR_execve (__NR_Linux + 11)
505 #define __NR_chdir (__NR_Linux + 12)
506 #define __NR_time (__NR_Linux + 13)
507 #define __NR_mknod (__NR_Linux + 14)
508 #define __NR_chmod (__NR_Linux + 15)
509 #define __NR_lchown (__NR_Linux + 16)
510 #define __NR_socket (__NR_Linux + 17)
511 #define __NR_stat (__NR_Linux + 18)
512 #define __NR_lseek (__NR_Linux + 19)
513 #define __NR_getpid (__NR_Linux + 20)
514 #define __NR_mount (__NR_Linux + 21)
515 #define __NR_bind (__NR_Linux + 22)
516 #define __NR_setuid (__NR_Linux + 23)
517 #define __NR_getuid (__NR_Linux + 24)
518 #define __NR_stime (__NR_Linux + 25)
519 #define __NR_ptrace (__NR_Linux + 26)
520 #define __NR_alarm (__NR_Linux + 27)
521 #define __NR_fstat (__NR_Linux + 28)
522 #define __NR_pause (__NR_Linux + 29)
523 #define __NR_utime (__NR_Linux + 30)
524 #define __NR_connect (__NR_Linux + 31)
525 #define __NR_listen (__NR_Linux + 32)
526 #define __NR_access (__NR_Linux + 33)
527 #define __NR_nice (__NR_Linux + 34)
528 #define __NR_accept (__NR_Linux + 35)
529 #define __NR_sync (__NR_Linux + 36)
530 #define __NR_kill (__NR_Linux + 37)
531 #define __NR_rename (__NR_Linux + 38)
532 #define __NR_mkdir (__NR_Linux + 39)
533 #define __NR_rmdir (__NR_Linux + 40)
534 #define __NR_dup (__NR_Linux + 41)
535 #define __NR_pipe (__NR_Linux + 42)
536 #define __NR_times (__NR_Linux + 43)
537 #define __NR_getsockname (__NR_Linux + 44)
538 #define __NR_brk (__NR_Linux + 45)
539 #define __NR_setgid (__NR_Linux + 46)
540 #define __NR_getgid (__NR_Linux + 47)
541 #define __NR_signal (__NR_Linux + 48)
542 #define __NR_geteuid (__NR_Linux + 49)
543 #define __NR_getegid (__NR_Linux + 50)
544 #define __NR_acct (__NR_Linux + 51)
545 #define __NR_umount2 (__NR_Linux + 52)
546 #define __NR_getpeername (__NR_Linux + 53)
547 #define __NR_ioctl (__NR_Linux + 54)
548 #define __NR_fcntl (__NR_Linux + 55)
549 #define __NR_socketpair (__NR_Linux + 56)
550 #define __NR_setpgid (__NR_Linux + 57)
551 #define __NR_send (__NR_Linux + 58)
552 #define __NR_uname (__NR_Linux + 59)
553 #define __NR_umask (__NR_Linux + 60)
554 #define __NR_chroot (__NR_Linux + 61)
555 #define __NR_ustat (__NR_Linux + 62)
556 #define __NR_dup2 (__NR_Linux + 63)
557 #define __NR_getppid (__NR_Linux + 64)
558 #define __NR_getpgrp (__NR_Linux + 65)
559 #define __NR_setsid (__NR_Linux + 66)
560 #define __NR_pivot_root (__NR_Linux + 67)
561 #define __NR_sgetmask (__NR_Linux + 68)
562 #define __NR_ssetmask (__NR_Linux + 69)
563 #define __NR_setreuid (__NR_Linux + 70)
564 #define __NR_setregid (__NR_Linux + 71)
565 #define __NR_mincore (__NR_Linux + 72)
566 #define __NR_sigpending (__NR_Linux + 73)
567 #define __NR_sethostname (__NR_Linux + 74)
568 #define __NR_setrlimit (__NR_Linux + 75)
569 #define __NR_getrlimit (__NR_Linux + 76)
570 #define __NR_getrusage (__NR_Linux + 77)
571 #define __NR_gettimeofday (__NR_Linux + 78)
572 #define __NR_settimeofday (__NR_Linux + 79)
573 #define __NR_getgroups (__NR_Linux + 80)
574 #define __NR_setgroups (__NR_Linux + 81)
575 #define __NR_sendto (__NR_Linux + 82)
576 #define __NR_symlink (__NR_Linux + 83)
577 #define __NR_lstat (__NR_Linux + 84)
578 #define __NR_readlink (__NR_Linux + 85)
579 #define __NR_uselib (__NR_Linux + 86)
580 #define __NR_swapon (__NR_Linux + 87)
581 #define __NR_reboot (__NR_Linux + 88)
582 #define __NR_mmap2 (__NR_Linux + 89)
583 #define __NR_mmap (__NR_Linux + 90)
584 #define __NR_munmap (__NR_Linux + 91)
585 #define __NR_truncate (__NR_Linux + 92)
586 #define __NR_ftruncate (__NR_Linux + 93)
587 #define __NR_fchmod (__NR_Linux + 94)
588 #define __NR_fchown (__NR_Linux + 95)
589 #define __NR_getpriority (__NR_Linux + 96)
590 #define __NR_setpriority (__NR_Linux + 97)
591 #define __NR_recv (__NR_Linux + 98)
592 #define __NR_statfs (__NR_Linux + 99)
593 #define __NR_fstatfs (__NR_Linux + 100)
594 #define __NR_stat64 (__NR_Linux + 101)
595 /* #define __NR_socketcall (__NR_Linux + 102) */
596 #define __NR_syslog (__NR_Linux + 103)
597 #define __NR_setitimer (__NR_Linux + 104)
598 #define __NR_getitimer (__NR_Linux + 105)
599 #define __NR_capget (__NR_Linux + 106)
600 #define __NR_capset (__NR_Linux + 107)
601 #define __NR_pread (__NR_Linux + 108)
602 #define __NR_pwrite (__NR_Linux + 109)
603 #define __NR_getcwd (__NR_Linux + 110)
604 #define __NR_vhangup (__NR_Linux + 111)
605 #define __NR_fstat64 (__NR_Linux + 112)
606 #define __NR_vfork (__NR_Linux + 113)
607 #define __NR_wait4 (__NR_Linux + 114)
608 #define __NR_swapoff (__NR_Linux + 115)
609 #define __NR_sysinfo (__NR_Linux + 116)
610 #define __NR_shutdown (__NR_Linux + 117)
611 #define __NR_fsync (__NR_Linux + 118)
612 #define __NR_madvise (__NR_Linux + 119)
613 #define __NR_clone (__NR_Linux + 120)
614 #define __NR_setdomainname (__NR_Linux + 121)
615 #define __NR_sendfile (__NR_Linux + 122)
616 #define __NR_recvfrom (__NR_Linux + 123)
617 #define __NR_adjtimex (__NR_Linux + 124)
618 #define __NR_mprotect (__NR_Linux + 125)
619 #define __NR_sigprocmask (__NR_Linux + 126)
620 #define __NR_create_module (__NR_Linux + 127)
621 #define __NR_init_module (__NR_Linux + 128)
622 #define __NR_delete_module (__NR_Linux + 129)
623 #define __NR_get_kernel_syms (__NR_Linux + 130)
624 #define __NR_quotactl (__NR_Linux + 131)
625 #define __NR_getpgid (__NR_Linux + 132)
626 #define __NR_fchdir (__NR_Linux + 133)
627 #define __NR_bdflush (__NR_Linux + 134)
628 #define __NR_sysfs (__NR_Linux + 135)
629 #define __NR_personality (__NR_Linux + 136)
630 #define __NR_afs_syscall (__NR_Linux + 137) /* Syscall for Andrew File System */
631 #define __NR_setfsuid (__NR_Linux + 138)
632 #define __NR_setfsgid (__NR_Linux + 139)
633 #define __NR__llseek (__NR_Linux + 140)
634 #define __NR_getdents (__NR_Linux + 141)
635 #define __NR__newselect (__NR_Linux + 142)
636 #define __NR_flock (__NR_Linux + 143)
637 #define __NR_msync (__NR_Linux + 144)
638 #define __NR_readv (__NR_Linux + 145)
639 #define __NR_writev (__NR_Linux + 146)
640 #define __NR_getsid (__NR_Linux + 147)
641 #define __NR_fdatasync (__NR_Linux + 148)
642 #define __NR__sysctl (__NR_Linux + 149)
643 #define __NR_mlock (__NR_Linux + 150)
644 #define __NR_munlock (__NR_Linux + 151)
645 #define __NR_mlockall (__NR_Linux + 152)
646 #define __NR_munlockall (__NR_Linux + 153)
647 #define __NR_sched_setparam (__NR_Linux + 154)
648 #define __NR_sched_getparam (__NR_Linux + 155)
649 #define __NR_sched_setscheduler (__NR_Linux + 156)
650 #define __NR_sched_getscheduler (__NR_Linux + 157)
651 #define __NR_sched_yield (__NR_Linux + 158)
652 #define __NR_sched_get_priority_max (__NR_Linux + 159)
653 #define __NR_sched_get_priority_min (__NR_Linux + 160)
654 #define __NR_sched_rr_get_interval (__NR_Linux + 161)
655 #define __NR_nanosleep (__NR_Linux + 162)
656 #define __NR_mremap (__NR_Linux + 163)
657 #define __NR_setresuid (__NR_Linux + 164)
658 #define __NR_getresuid (__NR_Linux + 165)
659 #define __NR_sigaltstack (__NR_Linux + 166)
660 #define __NR_query_module (__NR_Linux + 167)
661 #define __NR_poll (__NR_Linux + 168)
662 #define __NR_nfsservctl (__NR_Linux + 169)
663 #define __NR_setresgid (__NR_Linux + 170)
664 #define __NR_getresgid (__NR_Linux + 171)
665 #define __NR_prctl (__NR_Linux + 172)
666 #define __NR_rt_sigreturn (__NR_Linux + 173)
667 #define __NR_rt_sigaction (__NR_Linux + 174)
668 #define __NR_rt_sigprocmask (__NR_Linux + 175)
669 #define __NR_rt_sigpending (__NR_Linux + 176)
670 #define __NR_rt_sigtimedwait (__NR_Linux + 177)
671 #define __NR_rt_sigqueueinfo (__NR_Linux + 178)
672 #define __NR_rt_sigsuspend (__NR_Linux + 179)
673 #define __NR_chown (__NR_Linux + 180)
674 #define __NR_setsockopt (__NR_Linux + 181)
675 #define __NR_getsockopt (__NR_Linux + 182)
676 #define __NR_sendmsg (__NR_Linux + 183)
677 #define __NR_recvmsg (__NR_Linux + 184)
678 #define __NR_semop (__NR_Linux + 185)
679 #define __NR_semget (__NR_Linux + 186)
680 #define __NR_semctl (__NR_Linux + 187)
681 #define __NR_msgsnd (__NR_Linux + 188)
682 #define __NR_msgrcv (__NR_Linux + 189)
683 #define __NR_msgget (__NR_Linux + 190)
684 #define __NR_msgctl (__NR_Linux + 191)
685 #define __NR_shmat (__NR_Linux + 192)
686 #define __NR_shmdt (__NR_Linux + 193)
687 #define __NR_shmget (__NR_Linux + 194)
688 #define __NR_shmctl (__NR_Linux + 195)
689
690 #define __NR_getpmsg (__NR_Linux + 196) /* some people actually want streams */
691 #define __NR_putpmsg (__NR_Linux + 197) /* some people actually want streams */
692
693 #define __NR_lstat64 (__NR_Linux + 198)
694 #define __NR_truncate64 (__NR_Linux + 199)
695 #define __NR_ftruncate64 (__NR_Linux + 200)
696 #define __NR_getdents64 (__NR_Linux + 201)
697 #define __NR_fcntl64 (__NR_Linux + 202)
698 #define __NR_attrctl (__NR_Linux + 203)
699 #define __NR_acl_get (__NR_Linux + 204)
700 #define __NR_acl_set (__NR_Linux + 205)
701 #define __NR_gettid (__NR_Linux + 206)
702 #define __NR_readahead (__NR_Linux + 207)
703 #define __NR_tkill (__NR_Linux + 208)
704
705 #define __NR_Linux_syscalls 208
706
707 #define HPUX_GATEWAY_ADDR 0xC0000004
708 #define LINUX_GATEWAY_ADDR 0x100
709
710 #ifndef __ASSEMBLY__
711
712 /* The old syscall code here didn't work, and it looks like it's only used
713 * by applications such as fdisk which for some reason need to produce
714 * their own syscall instead of using same from libc. The code below
715 * is leveraged from glibc/sysdeps/unix/sysv/linux/hppa/sysdep.h where
716 * it is essentially duplicated -- which sucks. -PB
717 */
718
719 #define SYS_ify(syscall_name) __NR_##syscall_name
720
721 /* The system call number MUST ALWAYS be loaded in the delay slot of
722 the ble instruction, or restarting system calls WILL NOT WORK. See
723 arch/parisc/kernel/signal.c - dhd, 2000-07-26 */
724 #define K_INLINE_SYSCALL(name, nr, args...) ({ \
725 unsigned long __sys_res; \
726 { \
727 register unsigned long __res asm("r28"); \
728 K_LOAD_ARGS_##nr(args) \
729 asm volatile( \
730 "ble 0x100(%%sr2, %%r0)\n\t" \
731 " ldi %1, %%r20" \
732 : "=r" (__res) \
733 : "i" (SYS_ify(name)) K_ASM_ARGS_##nr \
734 ); \
735 __sys_res = __res; \
736 } \
737 if (__sys_res >= (unsigned long)-4095) { \
738 errno = -__sys_res; \
739 __sys_res = (unsigned long)-1; \
740 } \
741 __sys_res; \
742 })
743
744 #define K_LOAD_ARGS_0()
745 #define K_LOAD_ARGS_1(r26) \
746 register unsigned long __r26 __asm__("r26") = (unsigned long)r26; \
747 K_LOAD_ARGS_0()
748 #define K_LOAD_ARGS_2(r26,r25) \
749 register unsigned long __r25 __asm__("r25") = (unsigned long)r25; \
750 K_LOAD_ARGS_1(r26)
751 #define K_LOAD_ARGS_3(r26,r25,r24) \
752 register unsigned long __r24 __asm__("r24") = (unsigned long)r24; \
753 K_LOAD_ARGS_2(r26,r25)
754 #define K_LOAD_ARGS_4(r26,r25,r24,r23) \
755 register unsigned long __r23 __asm__("r23") = (unsigned long)r23; \
756 K_LOAD_ARGS_3(r26,r25,r24)
757 #define K_LOAD_ARGS_5(r26,r25,r24,r23,r22) \
758 register unsigned long __r22 __asm__("r22") = (unsigned long)r22; \
759 K_LOAD_ARGS_4(r26,r25,r24,r23)
760 #define K_LOAD_ARGS_6(r26,r25,r24,r23,r22,r21) \
761 register unsigned long __r21 __asm__("r21") = (unsigned long)r21; \
762 K_LOAD_ARGS_5(r26,r25,r24,r23,r22)
763
764 #define K_ASM_ARGS_0
765 #define K_ASM_ARGS_1 , "r" (__r26)
766 #define K_ASM_ARGS_2 , "r" (__r26), "r" (__r25)
767 #define K_ASM_ARGS_3 , "r" (__r26), "r" (__r25), "r" (__r24)
768 #define K_ASM_ARGS_4 , "r" (__r26), "r" (__r25), "r" (__r24), "r" (__r23)
769 #define K_ASM_ARGS_5 , "r" (__r26), "r" (__r25), "r" (__r24), "r" (__r23), "r" (__r22)
770 #define K_ASM_ARGS_6 , "r" (__r26), "r" (__r25), "r" (__r24), "r" (__r23), "r" (__r22), "r" (__r21)
771
772 #define _syscall0(type,name) \
773 type name(void) \
774 { \
775 return K_INLINE_SYSCALL(name, 0); \
776 }
777
778 #define _syscall1(type,name,type1,arg1) \
779 type name(type1 arg1) \
780 { \
781 return K_INLINE_SYSCALL(name, 1, arg1); \
782 }
783
784 #define _syscall2(type,name,type1,arg1,type2,arg2) \
785 type name(type1 arg1, type2 arg2) \
786 { \
787 return K_INLINE_SYSCALL(name, 2, arg1, arg2); \
788 }
789
790 #define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
791 type name(type1 arg1, type2 arg2, type3 arg3) \
792 { \
793 return K_INLINE_SYSCALL(name, 3, arg1, arg2, arg3); \
794 }
795
796 #define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
797 type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
798 { \
799 return K_INLINE_SYSCALL(name, 4, arg1, arg2, arg3, arg4); \
800 }
801
802 /* select takes 5 arguments */
803 #define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5) \
804 type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \
805 { \
806 return K_INLINE_SYSCALL(name, 5, arg1, arg2, arg3, arg4, arg5); \
807 }
808
809
810 /* mmap & mmap2 take 6 arguments */
811
812 #define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5,type6,arg6) \
813 type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5, type6 arg6) \
814 { \
815 return K_INLINE_SYSCALL(name, 6, arg1, arg2, arg3, arg4, arg5, arg6); \
816 }
817
818
819 #ifdef __KERNEL_SYSCALLS__
820
pause(void)821 static inline int pause(void)
822 {
823 extern int sys_pause(void);
824 return sys_pause();
825 }
826
sync(void)827 static inline int sync(void)
828 {
829 extern int sys_sync(void);
830 return sys_sync();
831 }
832
setsid(void)833 static inline pid_t setsid(void)
834 {
835 extern int sys_setsid(void);
836 return sys_setsid();
837 }
838
write(int fd,const char * buf,off_t count)839 static inline int write(int fd, const char *buf, off_t count)
840 {
841 extern int sys_write(int, const char *, int);
842 return sys_write(fd, buf, count);
843 }
844
read(int fd,char * buf,off_t count)845 static inline int read(int fd, char *buf, off_t count)
846 {
847 extern int sys_read(int, char *, int);
848 return sys_read(fd, buf, count);
849 }
850
lseek(int fd,off_t offset,int count)851 static inline off_t lseek(int fd, off_t offset, int count)
852 {
853 extern off_t sys_lseek(int, off_t, int);
854 return sys_lseek(fd, offset, count);
855 }
856
dup(int fd)857 static inline int dup(int fd)
858 {
859 extern int sys_dup(int);
860 return sys_dup(fd);
861 }
862
execve(char * filename,char * argv[],char * envp[])863 static inline int execve(char *filename, char * argv [],
864 char * envp[])
865 {
866 extern int __execve(char *, char **, char **, struct task_struct *);
867 return __execve(filename, argv, envp, current);
868 }
869
open(const char * file,int flag,int mode)870 static inline int open(const char *file, int flag, int mode)
871 {
872 extern long sys_open(const char *, int, int);
873 return sys_open(file, flag, mode);
874 }
875
close(int fd)876 static inline int close(int fd)
877 {
878 return sys_close(fd);
879 }
880
_exit(int exitcode)881 static inline int _exit(int exitcode)
882 {
883 extern int sys_exit(int) __attribute__((noreturn));
884 return sys_exit(exitcode);
885 }
886
waitpid(pid_t pid,int * wait_stat,int options)887 static inline pid_t waitpid(pid_t pid, int *wait_stat, int options)
888 {
889 return sys_wait4((int)pid, wait_stat, options, NULL);
890 }
891
delete_module(const char * name)892 static inline int delete_module(const char *name)
893 {
894 extern int sys_delete_module(const char *name);
895 return sys_delete_module(name);
896 }
897
wait(int * wait_stat)898 static inline pid_t wait(int * wait_stat)
899 {
900 return sys_wait4(-1, wait_stat, 0, NULL);
901 }
902
903 #endif /* __KERNEL_SYSCALLS__ */
904
905 #endif /* __ASSEMBLY__ */
906
907 #undef STR
908
909 #endif /* _ASM_PARISC_UNISTD_H_ */
910