1004 строки
42 KiB
C
1004 строки
42 KiB
C
#ifndef _ASM_PARISC_UNISTD_H_
|
|
#define _ASM_PARISC_UNISTD_H_
|
|
|
|
/*
|
|
* This file contains the system call numbers.
|
|
*/
|
|
|
|
/*
|
|
* HP-UX system calls get their native numbers for binary compatibility.
|
|
*/
|
|
|
|
#define __NR_HPUX_exit 1
|
|
#define __NR_HPUX_fork 2
|
|
#define __NR_HPUX_read 3
|
|
#define __NR_HPUX_write 4
|
|
#define __NR_HPUX_open 5
|
|
#define __NR_HPUX_close 6
|
|
#define __NR_HPUX_wait 7
|
|
#define __NR_HPUX_creat 8
|
|
#define __NR_HPUX_link 9
|
|
#define __NR_HPUX_unlink 10
|
|
#define __NR_HPUX_execv 11
|
|
#define __NR_HPUX_chdir 12
|
|
#define __NR_HPUX_time 13
|
|
#define __NR_HPUX_mknod 14
|
|
#define __NR_HPUX_chmod 15
|
|
#define __NR_HPUX_chown 16
|
|
#define __NR_HPUX_break 17
|
|
#define __NR_HPUX_lchmod 18
|
|
#define __NR_HPUX_lseek 19
|
|
#define __NR_HPUX_getpid 20
|
|
#define __NR_HPUX_mount 21
|
|
#define __NR_HPUX_umount 22
|
|
#define __NR_HPUX_setuid 23
|
|
#define __NR_HPUX_getuid 24
|
|
#define __NR_HPUX_stime 25
|
|
#define __NR_HPUX_ptrace 26
|
|
#define __NR_HPUX_alarm 27
|
|
#define __NR_HPUX_oldfstat 28
|
|
#define __NR_HPUX_pause 29
|
|
#define __NR_HPUX_utime 30
|
|
#define __NR_HPUX_stty 31
|
|
#define __NR_HPUX_gtty 32
|
|
#define __NR_HPUX_access 33
|
|
#define __NR_HPUX_nice 34
|
|
#define __NR_HPUX_ftime 35
|
|
#define __NR_HPUX_sync 36
|
|
#define __NR_HPUX_kill 37
|
|
#define __NR_HPUX_stat 38
|
|
#define __NR_HPUX_setpgrp3 39
|
|
#define __NR_HPUX_lstat 40
|
|
#define __NR_HPUX_dup 41
|
|
#define __NR_HPUX_pipe 42
|
|
#define __NR_HPUX_times 43
|
|
#define __NR_HPUX_profil 44
|
|
#define __NR_HPUX_ki_call 45
|
|
#define __NR_HPUX_setgid 46
|
|
#define __NR_HPUX_getgid 47
|
|
#define __NR_HPUX_sigsys 48
|
|
#define __NR_HPUX_reserved1 49
|
|
#define __NR_HPUX_reserved2 50
|
|
#define __NR_HPUX_acct 51
|
|
#define __NR_HPUX_set_userthreadid 52
|
|
#define __NR_HPUX_oldlock 53
|
|
#define __NR_HPUX_ioctl 54
|
|
#define __NR_HPUX_reboot 55
|
|
#define __NR_HPUX_symlink 56
|
|
#define __NR_HPUX_utssys 57
|
|
#define __NR_HPUX_readlink 58
|
|
#define __NR_HPUX_execve 59
|
|
#define __NR_HPUX_umask 60
|
|
#define __NR_HPUX_chroot 61
|
|
#define __NR_HPUX_fcntl 62
|
|
#define __NR_HPUX_ulimit 63
|
|
#define __NR_HPUX_getpagesize 64
|
|
#define __NR_HPUX_mremap 65
|
|
#define __NR_HPUX_vfork 66
|
|
#define __NR_HPUX_vread 67
|
|
#define __NR_HPUX_vwrite 68
|
|
#define __NR_HPUX_sbrk 69
|
|
#define __NR_HPUX_sstk 70
|
|
#define __NR_HPUX_mmap 71
|
|
#define __NR_HPUX_vadvise 72
|
|
#define __NR_HPUX_munmap 73
|
|
#define __NR_HPUX_mprotect 74
|
|
#define __NR_HPUX_madvise 75
|
|
#define __NR_HPUX_vhangup 76
|
|
#define __NR_HPUX_swapoff 77
|
|
#define __NR_HPUX_mincore 78
|
|
#define __NR_HPUX_getgroups 79
|
|
#define __NR_HPUX_setgroups 80
|
|
#define __NR_HPUX_getpgrp2 81
|
|
#define __NR_HPUX_setpgrp2 82
|
|
#define __NR_HPUX_setitimer 83
|
|
#define __NR_HPUX_wait3 84
|
|
#define __NR_HPUX_swapon 85
|
|
#define __NR_HPUX_getitimer 86
|
|
#define __NR_HPUX_gethostname42 87
|
|
#define __NR_HPUX_sethostname42 88
|
|
#define __NR_HPUX_getdtablesize 89
|
|
#define __NR_HPUX_dup2 90
|
|
#define __NR_HPUX_getdopt 91
|
|
#define __NR_HPUX_fstat 92
|
|
#define __NR_HPUX_select 93
|
|
#define __NR_HPUX_setdopt 94
|
|
#define __NR_HPUX_fsync 95
|
|
#define __NR_HPUX_setpriority 96
|
|
#define __NR_HPUX_socket_old 97
|
|
#define __NR_HPUX_connect_old 98
|
|
#define __NR_HPUX_accept_old 99
|
|
#define __NR_HPUX_getpriority 100
|
|
#define __NR_HPUX_send_old 101
|
|
#define __NR_HPUX_recv_old 102
|
|
#define __NR_HPUX_socketaddr_old 103
|
|
#define __NR_HPUX_bind_old 104
|
|
#define __NR_HPUX_setsockopt_old 105
|
|
#define __NR_HPUX_listen_old 106
|
|
#define __NR_HPUX_vtimes_old 107
|
|
#define __NR_HPUX_sigvector 108
|
|
#define __NR_HPUX_sigblock 109
|
|
#define __NR_HPUX_siggetmask 110
|
|
#define __NR_HPUX_sigpause 111
|
|
#define __NR_HPUX_sigstack 112
|
|
#define __NR_HPUX_recvmsg_old 113
|
|
#define __NR_HPUX_sendmsg_old 114
|
|
#define __NR_HPUX_vtrace_old 115
|
|
#define __NR_HPUX_gettimeofday 116
|
|
#define __NR_HPUX_getrusage 117
|
|
#define __NR_HPUX_getsockopt_old 118
|
|
#define __NR_HPUX_resuba_old 119
|
|
#define __NR_HPUX_readv 120
|
|
#define __NR_HPUX_writev 121
|
|
#define __NR_HPUX_settimeofday 122
|
|
#define __NR_HPUX_fchown 123
|
|
#define __NR_HPUX_fchmod 124
|
|
#define __NR_HPUX_recvfrom_old 125
|
|
#define __NR_HPUX_setresuid 126
|
|
#define __NR_HPUX_setresgid 127
|
|
#define __NR_HPUX_rename 128
|
|
#define __NR_HPUX_truncate 129
|
|
#define __NR_HPUX_ftruncate 130
|
|
#define __NR_HPUX_flock_old 131
|
|
#define __NR_HPUX_sysconf 132
|
|
#define __NR_HPUX_sendto_old 133
|
|
#define __NR_HPUX_shutdown_old 134
|
|
#define __NR_HPUX_socketpair_old 135
|
|
#define __NR_HPUX_mkdir 136
|
|
#define __NR_HPUX_rmdir 137
|
|
#define __NR_HPUX_utimes_old 138
|
|
#define __NR_HPUX_sigcleanup_old 139
|
|
#define __NR_HPUX_setcore 140
|
|
#define __NR_HPUX_getpeername_old 141
|
|
#define __NR_HPUX_gethostid 142
|
|
#define __NR_HPUX_sethostid 143
|
|
#define __NR_HPUX_getrlimit 144
|
|
#define __NR_HPUX_setrlimit 145
|
|
#define __NR_HPUX_killpg_old 146
|
|
#define __NR_HPUX_cachectl 147
|
|
#define __NR_HPUX_quotactl 148
|
|
#define __NR_HPUX_get_sysinfo 149
|
|
#define __NR_HPUX_getsockname_old 150
|
|
#define __NR_HPUX_privgrp 151
|
|
#define __NR_HPUX_rtprio 152
|
|
#define __NR_HPUX_plock 153
|
|
#define __NR_HPUX_reserved3 154
|
|
#define __NR_HPUX_lockf 155
|
|
#define __NR_HPUX_semget 156
|
|
#define __NR_HPUX_osemctl 157
|
|
#define __NR_HPUX_semop 158
|
|
#define __NR_HPUX_msgget 159
|
|
#define __NR_HPUX_omsgctl 160
|
|
#define __NR_HPUX_msgsnd 161
|
|
#define __NR_HPUX_msgrecv 162
|
|
#define __NR_HPUX_shmget 163
|
|
#define __NR_HPUX_oshmctl 164
|
|
#define __NR_HPUX_shmat 165
|
|
#define __NR_HPUX_shmdt 166
|
|
#define __NR_HPUX_m68020_advise 167
|
|
/* [168,189] are for Discless/DUX */
|
|
#define __NR_HPUX_csp 168
|
|
#define __NR_HPUX_cluster 169
|
|
#define __NR_HPUX_mkrnod 170
|
|
#define __NR_HPUX_test 171
|
|
#define __NR_HPUX_unsp_open 172
|
|
#define __NR_HPUX_reserved4 173
|
|
#define __NR_HPUX_getcontext_old 174
|
|
#define __NR_HPUX_osetcontext 175
|
|
#define __NR_HPUX_bigio 176
|
|
#define __NR_HPUX_pipenode 177
|
|
#define __NR_HPUX_lsync 178
|
|
#define __NR_HPUX_getmachineid 179
|
|
#define __NR_HPUX_cnodeid 180
|
|
#define __NR_HPUX_cnodes 181
|
|
#define __NR_HPUX_swapclients 182
|
|
#define __NR_HPUX_rmt_process 183
|
|
#define __NR_HPUX_dskless_stats 184
|
|
#define __NR_HPUX_sigprocmask 185
|
|
#define __NR_HPUX_sigpending 186
|
|
#define __NR_HPUX_sigsuspend 187
|
|
#define __NR_HPUX_sigaction 188
|
|
#define __NR_HPUX_reserved5 189
|
|
#define __NR_HPUX_nfssvc 190
|
|
#define __NR_HPUX_getfh 191
|
|
#define __NR_HPUX_getdomainname 192
|
|
#define __NR_HPUX_setdomainname 193
|
|
#define __NR_HPUX_async_daemon 194
|
|
#define __NR_HPUX_getdirentries 195
|
|
#define __NR_HPUX_statfs 196
|
|
#define __NR_HPUX_fstatfs 197
|
|
#define __NR_HPUX_vfsmount 198
|
|
#define __NR_HPUX_reserved6 199
|
|
#define __NR_HPUX_waitpid 200
|
|
/* 201 - 223 missing */
|
|
#define __NR_HPUX_sigsetreturn 224
|
|
#define __NR_HPUX_sigsetstatemask 225
|
|
/* 226 missing */
|
|
#define __NR_HPUX_cs 227
|
|
#define __NR_HPUX_cds 228
|
|
#define __NR_HPUX_set_no_trunc 229
|
|
#define __NR_HPUX_pathconf 230
|
|
#define __NR_HPUX_fpathconf 231
|
|
/* 232, 233 missing */
|
|
#define __NR_HPUX_nfs_fcntl 234
|
|
#define __NR_HPUX_ogetacl 235
|
|
#define __NR_HPUX_ofgetacl 236
|
|
#define __NR_HPUX_osetacl 237
|
|
#define __NR_HPUX_ofsetacl 238
|
|
#define __NR_HPUX_pstat 239
|
|
#define __NR_HPUX_getaudid 240
|
|
#define __NR_HPUX_setaudid 241
|
|
#define __NR_HPUX_getaudproc 242
|
|
#define __NR_HPUX_setaudproc 243
|
|
#define __NR_HPUX_getevent 244
|
|
#define __NR_HPUX_setevent 245
|
|
#define __NR_HPUX_audwrite 246
|
|
#define __NR_HPUX_audswitch 247
|
|
#define __NR_HPUX_audctl 248
|
|
#define __NR_HPUX_ogetaccess 249
|
|
#define __NR_HPUX_fsctl 250
|
|
/* 251 - 258 missing */
|
|
#define __NR_HPUX_swapfs 259
|
|
#define __NR_HPUX_fss 260
|
|
/* 261 - 266 missing */
|
|
#define __NR_HPUX_tsync 267
|
|
#define __NR_HPUX_getnumfds 268
|
|
#define __NR_HPUX_poll 269
|
|
#define __NR_HPUX_getmsg 270
|
|
#define __NR_HPUX_putmsg 271
|
|
#define __NR_HPUX_fchdir 272
|
|
#define __NR_HPUX_getmount_cnt 273
|
|
#define __NR_HPUX_getmount_entry 274
|
|
#define __NR_HPUX_accept 275
|
|
#define __NR_HPUX_bind 276
|
|
#define __NR_HPUX_connect 277
|
|
#define __NR_HPUX_getpeername 278
|
|
#define __NR_HPUX_getsockname 279
|
|
#define __NR_HPUX_getsockopt 280
|
|
#define __NR_HPUX_listen 281
|
|
#define __NR_HPUX_recv 282
|
|
#define __NR_HPUX_recvfrom 283
|
|
#define __NR_HPUX_recvmsg 284
|
|
#define __NR_HPUX_send 285
|
|
#define __NR_HPUX_sendmsg 286
|
|
#define __NR_HPUX_sendto 287
|
|
#define __NR_HPUX_setsockopt 288
|
|
#define __NR_HPUX_shutdown 289
|
|
#define __NR_HPUX_socket 290
|
|
#define __NR_HPUX_socketpair 291
|
|
#define __NR_HPUX_proc_open 292
|
|
#define __NR_HPUX_proc_close 293
|
|
#define __NR_HPUX_proc_send 294
|
|
#define __NR_HPUX_proc_recv 295
|
|
#define __NR_HPUX_proc_sendrecv 296
|
|
#define __NR_HPUX_proc_syscall 297
|
|
/* 298 - 311 missing */
|
|
#define __NR_HPUX_semctl 312
|
|
#define __NR_HPUX_msgctl 313
|
|
#define __NR_HPUX_shmctl 314
|
|
#define __NR_HPUX_mpctl 315
|
|
#define __NR_HPUX_exportfs 316
|
|
#define __NR_HPUX_getpmsg 317
|
|
#define __NR_HPUX_putpmsg 318
|
|
/* 319 missing */
|
|
#define __NR_HPUX_msync 320
|
|
#define __NR_HPUX_msleep 321
|
|
#define __NR_HPUX_mwakeup 322
|
|
#define __NR_HPUX_msem_init 323
|
|
#define __NR_HPUX_msem_remove 324
|
|
#define __NR_HPUX_adjtime 325
|
|
#define __NR_HPUX_kload 326
|
|
#define __NR_HPUX_fattach 327
|
|
#define __NR_HPUX_fdetach 328
|
|
#define __NR_HPUX_serialize 329
|
|
#define __NR_HPUX_statvfs 330
|
|
#define __NR_HPUX_fstatvfs 331
|
|
#define __NR_HPUX_lchown 332
|
|
#define __NR_HPUX_getsid 333
|
|
#define __NR_HPUX_sysfs 334
|
|
/* 335, 336 missing */
|
|
#define __NR_HPUX_sched_setparam 337
|
|
#define __NR_HPUX_sched_getparam 338
|
|
#define __NR_HPUX_sched_setscheduler 339
|
|
#define __NR_HPUX_sched_getscheduler 340
|
|
#define __NR_HPUX_sched_yield 341
|
|
#define __NR_HPUX_sched_get_priority_max 342
|
|
#define __NR_HPUX_sched_get_priority_min 343
|
|
#define __NR_HPUX_sched_rr_get_interval 344
|
|
#define __NR_HPUX_clock_settime 345
|
|
#define __NR_HPUX_clock_gettime 346
|
|
#define __NR_HPUX_clock_getres 347
|
|
#define __NR_HPUX_timer_create 348
|
|
#define __NR_HPUX_timer_delete 349
|
|
#define __NR_HPUX_timer_settime 350
|
|
#define __NR_HPUX_timer_gettime 351
|
|
#define __NR_HPUX_timer_getoverrun 352
|
|
#define __NR_HPUX_nanosleep 353
|
|
#define __NR_HPUX_toolbox 354
|
|
/* 355 missing */
|
|
#define __NR_HPUX_getdents 356
|
|
#define __NR_HPUX_getcontext 357
|
|
#define __NR_HPUX_sysinfo 358
|
|
#define __NR_HPUX_fcntl64 359
|
|
#define __NR_HPUX_ftruncate64 360
|
|
#define __NR_HPUX_fstat64 361
|
|
#define __NR_HPUX_getdirentries64 362
|
|
#define __NR_HPUX_getrlimit64 363
|
|
#define __NR_HPUX_lockf64 364
|
|
#define __NR_HPUX_lseek64 365
|
|
#define __NR_HPUX_lstat64 366
|
|
#define __NR_HPUX_mmap64 367
|
|
#define __NR_HPUX_setrlimit64 368
|
|
#define __NR_HPUX_stat64 369
|
|
#define __NR_HPUX_truncate64 370
|
|
#define __NR_HPUX_ulimit64 371
|
|
#define __NR_HPUX_pread 372
|
|
#define __NR_HPUX_preadv 373
|
|
#define __NR_HPUX_pwrite 374
|
|
#define __NR_HPUX_pwritev 375
|
|
#define __NR_HPUX_pread64 376
|
|
#define __NR_HPUX_preadv64 377
|
|
#define __NR_HPUX_pwrite64 378
|
|
#define __NR_HPUX_pwritev64 379
|
|
#define __NR_HPUX_setcontext 380
|
|
#define __NR_HPUX_sigaltstack 381
|
|
#define __NR_HPUX_waitid 382
|
|
#define __NR_HPUX_setpgrp 383
|
|
#define __NR_HPUX_recvmsg2 384
|
|
#define __NR_HPUX_sendmsg2 385
|
|
#define __NR_HPUX_socket2 386
|
|
#define __NR_HPUX_socketpair2 387
|
|
#define __NR_HPUX_setregid 388
|
|
#define __NR_HPUX_lwp_create 389
|
|
#define __NR_HPUX_lwp_terminate 390
|
|
#define __NR_HPUX_lwp_wait 391
|
|
#define __NR_HPUX_lwp_suspend 392
|
|
#define __NR_HPUX_lwp_resume 393
|
|
/* 394 missing */
|
|
#define __NR_HPUX_lwp_abort_syscall 395
|
|
#define __NR_HPUX_lwp_info 396
|
|
#define __NR_HPUX_lwp_kill 397
|
|
#define __NR_HPUX_ksleep 398
|
|
#define __NR_HPUX_kwakeup 399
|
|
/* 400 missing */
|
|
#define __NR_HPUX_pstat_getlwp 401
|
|
#define __NR_HPUX_lwp_exit 402
|
|
#define __NR_HPUX_lwp_continue 403
|
|
#define __NR_HPUX_getacl 404
|
|
#define __NR_HPUX_fgetacl 405
|
|
#define __NR_HPUX_setacl 406
|
|
#define __NR_HPUX_fsetacl 407
|
|
#define __NR_HPUX_getaccess 408
|
|
#define __NR_HPUX_lwp_mutex_init 409
|
|
#define __NR_HPUX_lwp_mutex_lock_sys 410
|
|
#define __NR_HPUX_lwp_mutex_unlock 411
|
|
#define __NR_HPUX_lwp_cond_init 412
|
|
#define __NR_HPUX_lwp_cond_signal 413
|
|
#define __NR_HPUX_lwp_cond_broadcast 414
|
|
#define __NR_HPUX_lwp_cond_wait_sys 415
|
|
#define __NR_HPUX_lwp_getscheduler 416
|
|
#define __NR_HPUX_lwp_setscheduler 417
|
|
#define __NR_HPUX_lwp_getstate 418
|
|
#define __NR_HPUX_lwp_setstate 419
|
|
#define __NR_HPUX_lwp_detach 420
|
|
#define __NR_HPUX_mlock 421
|
|
#define __NR_HPUX_munlock 422
|
|
#define __NR_HPUX_mlockall 423
|
|
#define __NR_HPUX_munlockall 424
|
|
#define __NR_HPUX_shm_open 425
|
|
#define __NR_HPUX_shm_unlink 426
|
|
#define __NR_HPUX_sigqueue 427
|
|
#define __NR_HPUX_sigwaitinfo 428
|
|
#define __NR_HPUX_sigtimedwait 429
|
|
#define __NR_HPUX_sigwait 430
|
|
#define __NR_HPUX_aio_read 431
|
|
#define __NR_HPUX_aio_write 432
|
|
#define __NR_HPUX_lio_listio 433
|
|
#define __NR_HPUX_aio_error 434
|
|
#define __NR_HPUX_aio_return 435
|
|
#define __NR_HPUX_aio_cancel 436
|
|
#define __NR_HPUX_aio_suspend 437
|
|
#define __NR_HPUX_aio_fsync 438
|
|
#define __NR_HPUX_mq_open 439
|
|
#define __NR_HPUX_mq_close 440
|
|
#define __NR_HPUX_mq_unlink 441
|
|
#define __NR_HPUX_mq_send 442
|
|
#define __NR_HPUX_mq_receive 443
|
|
#define __NR_HPUX_mq_notify 444
|
|
#define __NR_HPUX_mq_setattr 445
|
|
#define __NR_HPUX_mq_getattr 446
|
|
#define __NR_HPUX_ksem_open 447
|
|
#define __NR_HPUX_ksem_unlink 448
|
|
#define __NR_HPUX_ksem_close 449
|
|
#define __NR_HPUX_ksem_post 450
|
|
#define __NR_HPUX_ksem_wait 451
|
|
#define __NR_HPUX_ksem_read 452
|
|
#define __NR_HPUX_ksem_trywait 453
|
|
#define __NR_HPUX_lwp_rwlock_init 454
|
|
#define __NR_HPUX_lwp_rwlock_destroy 455
|
|
#define __NR_HPUX_lwp_rwlock_rdlock_sys 456
|
|
#define __NR_HPUX_lwp_rwlock_wrlock_sys 457
|
|
#define __NR_HPUX_lwp_rwlock_tryrdlock 458
|
|
#define __NR_HPUX_lwp_rwlock_trywrlock 459
|
|
#define __NR_HPUX_lwp_rwlock_unlock 460
|
|
#define __NR_HPUX_ttrace 461
|
|
#define __NR_HPUX_ttrace_wait 462
|
|
#define __NR_HPUX_lf_wire_mem 463
|
|
#define __NR_HPUX_lf_unwire_mem 464
|
|
#define __NR_HPUX_lf_send_pin_map 465
|
|
#define __NR_HPUX_lf_free_buf 466
|
|
#define __NR_HPUX_lf_wait_nq 467
|
|
#define __NR_HPUX_lf_wakeup_conn_q 468
|
|
#define __NR_HPUX_lf_unused 469
|
|
#define __NR_HPUX_lwp_sema_init 470
|
|
#define __NR_HPUX_lwp_sema_post 471
|
|
#define __NR_HPUX_lwp_sema_wait 472
|
|
#define __NR_HPUX_lwp_sema_trywait 473
|
|
#define __NR_HPUX_lwp_sema_destroy 474
|
|
#define __NR_HPUX_statvfs64 475
|
|
#define __NR_HPUX_fstatvfs64 476
|
|
#define __NR_HPUX_msh_register 477
|
|
#define __NR_HPUX_ptrace64 478
|
|
#define __NR_HPUX_sendfile 479
|
|
#define __NR_HPUX_sendpath 480
|
|
#define __NR_HPUX_sendfile64 481
|
|
#define __NR_HPUX_sendpath64 482
|
|
#define __NR_HPUX_modload 483
|
|
#define __NR_HPUX_moduload 484
|
|
#define __NR_HPUX_modpath 485
|
|
#define __NR_HPUX_getksym 486
|
|
#define __NR_HPUX_modadm 487
|
|
#define __NR_HPUX_modstat 488
|
|
#define __NR_HPUX_lwp_detached_exit 489
|
|
#define __NR_HPUX_crashconf 490
|
|
#define __NR_HPUX_siginhibit 491
|
|
#define __NR_HPUX_sigenable 492
|
|
#define __NR_HPUX_spuctl 493
|
|
#define __NR_HPUX_zerokernelsum 494
|
|
#define __NR_HPUX_nfs_kstat 495
|
|
#define __NR_HPUX_aio_read64 496
|
|
#define __NR_HPUX_aio_write64 497
|
|
#define __NR_HPUX_aio_error64 498
|
|
#define __NR_HPUX_aio_return64 499
|
|
#define __NR_HPUX_aio_cancel64 500
|
|
#define __NR_HPUX_aio_suspend64 501
|
|
#define __NR_HPUX_aio_fsync64 502
|
|
#define __NR_HPUX_lio_listio64 503
|
|
#define __NR_HPUX_recv2 504
|
|
#define __NR_HPUX_recvfrom2 505
|
|
#define __NR_HPUX_send2 506
|
|
#define __NR_HPUX_sendto2 507
|
|
#define __NR_HPUX_acl 508
|
|
#define __NR_HPUX___cnx_p2p_ctl 509
|
|
#define __NR_HPUX___cnx_gsched_ctl 510
|
|
#define __NR_HPUX___cnx_pmon_ctl 511
|
|
|
|
#define __NR_HPUX_syscalls 512
|
|
|
|
/*
|
|
* Linux system call numbers.
|
|
*
|
|
* Cary Coutant says that we should just use another syscall gateway
|
|
* page to avoid clashing with the HPUX space, and I think he's right:
|
|
* it will would keep a branch out of our syscall entry path, at the
|
|
* very least. If we decide to change it later, we can ``just'' tweak
|
|
* the LINUX_GATEWAY_ADDR define at the bottom and make __NR_Linux be
|
|
* 1024 or something. Oh, and recompile libc. =)
|
|
*
|
|
* 64-bit HPUX binaries get the syscall gateway address passed in a register
|
|
* from the kernel at startup, which seems a sane strategy.
|
|
*/
|
|
|
|
#define __NR_Linux 0
|
|
#define __NR_restart_syscall (__NR_Linux + 0)
|
|
#define __NR_exit (__NR_Linux + 1)
|
|
#define __NR_fork (__NR_Linux + 2)
|
|
#define __NR_read (__NR_Linux + 3)
|
|
#define __NR_write (__NR_Linux + 4)
|
|
#define __NR_open (__NR_Linux + 5)
|
|
#define __NR_close (__NR_Linux + 6)
|
|
#define __NR_waitpid (__NR_Linux + 7)
|
|
#define __NR_creat (__NR_Linux + 8)
|
|
#define __NR_link (__NR_Linux + 9)
|
|
#define __NR_unlink (__NR_Linux + 10)
|
|
#define __NR_execve (__NR_Linux + 11)
|
|
#define __NR_chdir (__NR_Linux + 12)
|
|
#define __NR_time (__NR_Linux + 13)
|
|
#define __NR_mknod (__NR_Linux + 14)
|
|
#define __NR_chmod (__NR_Linux + 15)
|
|
#define __NR_lchown (__NR_Linux + 16)
|
|
#define __NR_socket (__NR_Linux + 17)
|
|
#define __NR_stat (__NR_Linux + 18)
|
|
#define __NR_lseek (__NR_Linux + 19)
|
|
#define __NR_getpid (__NR_Linux + 20)
|
|
#define __NR_mount (__NR_Linux + 21)
|
|
#define __NR_bind (__NR_Linux + 22)
|
|
#define __NR_setuid (__NR_Linux + 23)
|
|
#define __NR_getuid (__NR_Linux + 24)
|
|
#define __NR_stime (__NR_Linux + 25)
|
|
#define __NR_ptrace (__NR_Linux + 26)
|
|
#define __NR_alarm (__NR_Linux + 27)
|
|
#define __NR_fstat (__NR_Linux + 28)
|
|
#define __NR_pause (__NR_Linux + 29)
|
|
#define __NR_utime (__NR_Linux + 30)
|
|
#define __NR_connect (__NR_Linux + 31)
|
|
#define __NR_listen (__NR_Linux + 32)
|
|
#define __NR_access (__NR_Linux + 33)
|
|
#define __NR_nice (__NR_Linux + 34)
|
|
#define __NR_accept (__NR_Linux + 35)
|
|
#define __NR_sync (__NR_Linux + 36)
|
|
#define __NR_kill (__NR_Linux + 37)
|
|
#define __NR_rename (__NR_Linux + 38)
|
|
#define __NR_mkdir (__NR_Linux + 39)
|
|
#define __NR_rmdir (__NR_Linux + 40)
|
|
#define __NR_dup (__NR_Linux + 41)
|
|
#define __NR_pipe (__NR_Linux + 42)
|
|
#define __NR_times (__NR_Linux + 43)
|
|
#define __NR_getsockname (__NR_Linux + 44)
|
|
#define __NR_brk (__NR_Linux + 45)
|
|
#define __NR_setgid (__NR_Linux + 46)
|
|
#define __NR_getgid (__NR_Linux + 47)
|
|
#define __NR_signal (__NR_Linux + 48)
|
|
#define __NR_geteuid (__NR_Linux + 49)
|
|
#define __NR_getegid (__NR_Linux + 50)
|
|
#define __NR_acct (__NR_Linux + 51)
|
|
#define __NR_umount2 (__NR_Linux + 52)
|
|
#define __NR_getpeername (__NR_Linux + 53)
|
|
#define __NR_ioctl (__NR_Linux + 54)
|
|
#define __NR_fcntl (__NR_Linux + 55)
|
|
#define __NR_socketpair (__NR_Linux + 56)
|
|
#define __NR_setpgid (__NR_Linux + 57)
|
|
#define __NR_send (__NR_Linux + 58)
|
|
#define __NR_uname (__NR_Linux + 59)
|
|
#define __NR_umask (__NR_Linux + 60)
|
|
#define __NR_chroot (__NR_Linux + 61)
|
|
#define __NR_ustat (__NR_Linux + 62)
|
|
#define __NR_dup2 (__NR_Linux + 63)
|
|
#define __NR_getppid (__NR_Linux + 64)
|
|
#define __NR_getpgrp (__NR_Linux + 65)
|
|
#define __NR_setsid (__NR_Linux + 66)
|
|
#define __NR_pivot_root (__NR_Linux + 67)
|
|
#define __NR_sgetmask (__NR_Linux + 68)
|
|
#define __NR_ssetmask (__NR_Linux + 69)
|
|
#define __NR_setreuid (__NR_Linux + 70)
|
|
#define __NR_setregid (__NR_Linux + 71)
|
|
#define __NR_mincore (__NR_Linux + 72)
|
|
#define __NR_sigpending (__NR_Linux + 73)
|
|
#define __NR_sethostname (__NR_Linux + 74)
|
|
#define __NR_setrlimit (__NR_Linux + 75)
|
|
#define __NR_getrlimit (__NR_Linux + 76)
|
|
#define __NR_getrusage (__NR_Linux + 77)
|
|
#define __NR_gettimeofday (__NR_Linux + 78)
|
|
#define __NR_settimeofday (__NR_Linux + 79)
|
|
#define __NR_getgroups (__NR_Linux + 80)
|
|
#define __NR_setgroups (__NR_Linux + 81)
|
|
#define __NR_sendto (__NR_Linux + 82)
|
|
#define __NR_symlink (__NR_Linux + 83)
|
|
#define __NR_lstat (__NR_Linux + 84)
|
|
#define __NR_readlink (__NR_Linux + 85)
|
|
#define __NR_uselib (__NR_Linux + 86)
|
|
#define __NR_swapon (__NR_Linux + 87)
|
|
#define __NR_reboot (__NR_Linux + 88)
|
|
#define __NR_mmap2 (__NR_Linux + 89)
|
|
#define __NR_mmap (__NR_Linux + 90)
|
|
#define __NR_munmap (__NR_Linux + 91)
|
|
#define __NR_truncate (__NR_Linux + 92)
|
|
#define __NR_ftruncate (__NR_Linux + 93)
|
|
#define __NR_fchmod (__NR_Linux + 94)
|
|
#define __NR_fchown (__NR_Linux + 95)
|
|
#define __NR_getpriority (__NR_Linux + 96)
|
|
#define __NR_setpriority (__NR_Linux + 97)
|
|
#define __NR_recv (__NR_Linux + 98)
|
|
#define __NR_statfs (__NR_Linux + 99)
|
|
#define __NR_fstatfs (__NR_Linux + 100)
|
|
#define __NR_stat64 (__NR_Linux + 101)
|
|
/* #define __NR_socketcall (__NR_Linux + 102) */
|
|
#define __NR_syslog (__NR_Linux + 103)
|
|
#define __NR_setitimer (__NR_Linux + 104)
|
|
#define __NR_getitimer (__NR_Linux + 105)
|
|
#define __NR_capget (__NR_Linux + 106)
|
|
#define __NR_capset (__NR_Linux + 107)
|
|
#define __NR_pread64 (__NR_Linux + 108)
|
|
#define __NR_pwrite64 (__NR_Linux + 109)
|
|
#define __NR_getcwd (__NR_Linux + 110)
|
|
#define __NR_vhangup (__NR_Linux + 111)
|
|
#define __NR_fstat64 (__NR_Linux + 112)
|
|
#define __NR_vfork (__NR_Linux + 113)
|
|
#define __NR_wait4 (__NR_Linux + 114)
|
|
#define __NR_swapoff (__NR_Linux + 115)
|
|
#define __NR_sysinfo (__NR_Linux + 116)
|
|
#define __NR_shutdown (__NR_Linux + 117)
|
|
#define __NR_fsync (__NR_Linux + 118)
|
|
#define __NR_madvise (__NR_Linux + 119)
|
|
#define __NR_clone (__NR_Linux + 120)
|
|
#define __NR_setdomainname (__NR_Linux + 121)
|
|
#define __NR_sendfile (__NR_Linux + 122)
|
|
#define __NR_recvfrom (__NR_Linux + 123)
|
|
#define __NR_adjtimex (__NR_Linux + 124)
|
|
#define __NR_mprotect (__NR_Linux + 125)
|
|
#define __NR_sigprocmask (__NR_Linux + 126)
|
|
#define __NR_create_module (__NR_Linux + 127)
|
|
#define __NR_init_module (__NR_Linux + 128)
|
|
#define __NR_delete_module (__NR_Linux + 129)
|
|
#define __NR_get_kernel_syms (__NR_Linux + 130)
|
|
#define __NR_quotactl (__NR_Linux + 131)
|
|
#define __NR_getpgid (__NR_Linux + 132)
|
|
#define __NR_fchdir (__NR_Linux + 133)
|
|
#define __NR_bdflush (__NR_Linux + 134)
|
|
#define __NR_sysfs (__NR_Linux + 135)
|
|
#define __NR_personality (__NR_Linux + 136)
|
|
#define __NR_afs_syscall (__NR_Linux + 137) /* Syscall for Andrew File System */
|
|
#define __NR_setfsuid (__NR_Linux + 138)
|
|
#define __NR_setfsgid (__NR_Linux + 139)
|
|
#define __NR__llseek (__NR_Linux + 140)
|
|
#define __NR_getdents (__NR_Linux + 141)
|
|
#define __NR__newselect (__NR_Linux + 142)
|
|
#define __NR_flock (__NR_Linux + 143)
|
|
#define __NR_msync (__NR_Linux + 144)
|
|
#define __NR_readv (__NR_Linux + 145)
|
|
#define __NR_writev (__NR_Linux + 146)
|
|
#define __NR_getsid (__NR_Linux + 147)
|
|
#define __NR_fdatasync (__NR_Linux + 148)
|
|
#define __NR__sysctl (__NR_Linux + 149)
|
|
#define __NR_mlock (__NR_Linux + 150)
|
|
#define __NR_munlock (__NR_Linux + 151)
|
|
#define __NR_mlockall (__NR_Linux + 152)
|
|
#define __NR_munlockall (__NR_Linux + 153)
|
|
#define __NR_sched_setparam (__NR_Linux + 154)
|
|
#define __NR_sched_getparam (__NR_Linux + 155)
|
|
#define __NR_sched_setscheduler (__NR_Linux + 156)
|
|
#define __NR_sched_getscheduler (__NR_Linux + 157)
|
|
#define __NR_sched_yield (__NR_Linux + 158)
|
|
#define __NR_sched_get_priority_max (__NR_Linux + 159)
|
|
#define __NR_sched_get_priority_min (__NR_Linux + 160)
|
|
#define __NR_sched_rr_get_interval (__NR_Linux + 161)
|
|
#define __NR_nanosleep (__NR_Linux + 162)
|
|
#define __NR_mremap (__NR_Linux + 163)
|
|
#define __NR_setresuid (__NR_Linux + 164)
|
|
#define __NR_getresuid (__NR_Linux + 165)
|
|
#define __NR_sigaltstack (__NR_Linux + 166)
|
|
#define __NR_query_module (__NR_Linux + 167)
|
|
#define __NR_poll (__NR_Linux + 168)
|
|
#define __NR_nfsservctl (__NR_Linux + 169)
|
|
#define __NR_setresgid (__NR_Linux + 170)
|
|
#define __NR_getresgid (__NR_Linux + 171)
|
|
#define __NR_prctl (__NR_Linux + 172)
|
|
#define __NR_rt_sigreturn (__NR_Linux + 173)
|
|
#define __NR_rt_sigaction (__NR_Linux + 174)
|
|
#define __NR_rt_sigprocmask (__NR_Linux + 175)
|
|
#define __NR_rt_sigpending (__NR_Linux + 176)
|
|
#define __NR_rt_sigtimedwait (__NR_Linux + 177)
|
|
#define __NR_rt_sigqueueinfo (__NR_Linux + 178)
|
|
#define __NR_rt_sigsuspend (__NR_Linux + 179)
|
|
#define __NR_chown (__NR_Linux + 180)
|
|
#define __NR_setsockopt (__NR_Linux + 181)
|
|
#define __NR_getsockopt (__NR_Linux + 182)
|
|
#define __NR_sendmsg (__NR_Linux + 183)
|
|
#define __NR_recvmsg (__NR_Linux + 184)
|
|
#define __NR_semop (__NR_Linux + 185)
|
|
#define __NR_semget (__NR_Linux + 186)
|
|
#define __NR_semctl (__NR_Linux + 187)
|
|
#define __NR_msgsnd (__NR_Linux + 188)
|
|
#define __NR_msgrcv (__NR_Linux + 189)
|
|
#define __NR_msgget (__NR_Linux + 190)
|
|
#define __NR_msgctl (__NR_Linux + 191)
|
|
#define __NR_shmat (__NR_Linux + 192)
|
|
#define __NR_shmdt (__NR_Linux + 193)
|
|
#define __NR_shmget (__NR_Linux + 194)
|
|
#define __NR_shmctl (__NR_Linux + 195)
|
|
|
|
#define __NR_getpmsg (__NR_Linux + 196) /* Somebody *wants* streams? */
|
|
#define __NR_putpmsg (__NR_Linux + 197)
|
|
|
|
#define __NR_lstat64 (__NR_Linux + 198)
|
|
#define __NR_truncate64 (__NR_Linux + 199)
|
|
#define __NR_ftruncate64 (__NR_Linux + 200)
|
|
#define __NR_getdents64 (__NR_Linux + 201)
|
|
#define __NR_fcntl64 (__NR_Linux + 202)
|
|
#define __NR_attrctl (__NR_Linux + 203)
|
|
#define __NR_acl_get (__NR_Linux + 204)
|
|
#define __NR_acl_set (__NR_Linux + 205)
|
|
#define __NR_gettid (__NR_Linux + 206)
|
|
#define __NR_readahead (__NR_Linux + 207)
|
|
#define __NR_tkill (__NR_Linux + 208)
|
|
#define __NR_sendfile64 (__NR_Linux + 209)
|
|
#define __NR_futex (__NR_Linux + 210)
|
|
#define __NR_sched_setaffinity (__NR_Linux + 211)
|
|
#define __NR_sched_getaffinity (__NR_Linux + 212)
|
|
#define __NR_set_thread_area (__NR_Linux + 213)
|
|
#define __NR_get_thread_area (__NR_Linux + 214)
|
|
#define __NR_io_setup (__NR_Linux + 215)
|
|
#define __NR_io_destroy (__NR_Linux + 216)
|
|
#define __NR_io_getevents (__NR_Linux + 217)
|
|
#define __NR_io_submit (__NR_Linux + 218)
|
|
#define __NR_io_cancel (__NR_Linux + 219)
|
|
#define __NR_alloc_hugepages (__NR_Linux + 220)
|
|
#define __NR_free_hugepages (__NR_Linux + 221)
|
|
#define __NR_exit_group (__NR_Linux + 222)
|
|
#define __NR_lookup_dcookie (__NR_Linux + 223)
|
|
#define __NR_epoll_create (__NR_Linux + 224)
|
|
#define __NR_epoll_ctl (__NR_Linux + 225)
|
|
#define __NR_epoll_wait (__NR_Linux + 226)
|
|
#define __NR_remap_file_pages (__NR_Linux + 227)
|
|
#define __NR_semtimedop (__NR_Linux + 228)
|
|
#define __NR_mq_open (__NR_Linux + 229)
|
|
#define __NR_mq_unlink (__NR_Linux + 230)
|
|
#define __NR_mq_timedsend (__NR_Linux + 231)
|
|
#define __NR_mq_timedreceive (__NR_Linux + 232)
|
|
#define __NR_mq_notify (__NR_Linux + 233)
|
|
#define __NR_mq_getsetattr (__NR_Linux + 234)
|
|
#define __NR_waitid (__NR_Linux + 235)
|
|
#define __NR_fadvise64_64 (__NR_Linux + 236)
|
|
#define __NR_set_tid_address (__NR_Linux + 237)
|
|
#define __NR_setxattr (__NR_Linux + 238)
|
|
#define __NR_lsetxattr (__NR_Linux + 239)
|
|
#define __NR_fsetxattr (__NR_Linux + 240)
|
|
#define __NR_getxattr (__NR_Linux + 241)
|
|
#define __NR_lgetxattr (__NR_Linux + 242)
|
|
#define __NR_fgetxattr (__NR_Linux + 243)
|
|
#define __NR_listxattr (__NR_Linux + 244)
|
|
#define __NR_llistxattr (__NR_Linux + 245)
|
|
#define __NR_flistxattr (__NR_Linux + 246)
|
|
#define __NR_removexattr (__NR_Linux + 247)
|
|
#define __NR_lremovexattr (__NR_Linux + 248)
|
|
#define __NR_fremovexattr (__NR_Linux + 249)
|
|
#define __NR_timer_create (__NR_Linux + 250)
|
|
#define __NR_timer_settime (__NR_Linux + 251)
|
|
#define __NR_timer_gettime (__NR_Linux + 252)
|
|
#define __NR_timer_getoverrun (__NR_Linux + 253)
|
|
#define __NR_timer_delete (__NR_Linux + 254)
|
|
#define __NR_clock_settime (__NR_Linux + 255)
|
|
#define __NR_clock_gettime (__NR_Linux + 256)
|
|
#define __NR_clock_getres (__NR_Linux + 257)
|
|
#define __NR_clock_nanosleep (__NR_Linux + 258)
|
|
#define __NR_tgkill (__NR_Linux + 259)
|
|
#define __NR_mbind (__NR_Linux + 260)
|
|
#define __NR_get_mempolicy (__NR_Linux + 261)
|
|
#define __NR_set_mempolicy (__NR_Linux + 262)
|
|
#define __NR_vserver (__NR_Linux + 263)
|
|
#define __NR_add_key (__NR_Linux + 264)
|
|
#define __NR_request_key (__NR_Linux + 265)
|
|
#define __NR_keyctl (__NR_Linux + 266)
|
|
#define __NR_ioprio_set (__NR_Linux + 267)
|
|
#define __NR_ioprio_get (__NR_Linux + 268)
|
|
#define __NR_inotify_init (__NR_Linux + 269)
|
|
#define __NR_inotify_add_watch (__NR_Linux + 270)
|
|
#define __NR_inotify_rm_watch (__NR_Linux + 271)
|
|
#define __NR_migrate_pages (__NR_Linux + 272)
|
|
#define __NR_pselect6 (__NR_Linux + 273)
|
|
#define __NR_ppoll (__NR_Linux + 274)
|
|
#define __NR_openat (__NR_Linux + 275)
|
|
#define __NR_mkdirat (__NR_Linux + 276)
|
|
#define __NR_mknodat (__NR_Linux + 277)
|
|
#define __NR_fchownat (__NR_Linux + 278)
|
|
#define __NR_futimesat (__NR_Linux + 279)
|
|
#define __NR_fstatat64 (__NR_Linux + 280)
|
|
#define __NR_unlinkat (__NR_Linux + 281)
|
|
#define __NR_renameat (__NR_Linux + 282)
|
|
#define __NR_linkat (__NR_Linux + 283)
|
|
#define __NR_symlinkat (__NR_Linux + 284)
|
|
#define __NR_readlinkat (__NR_Linux + 285)
|
|
#define __NR_fchmodat (__NR_Linux + 286)
|
|
#define __NR_faccessat (__NR_Linux + 287)
|
|
#define __NR_unshare (__NR_Linux + 288)
|
|
#define __NR_set_robust_list (__NR_Linux + 289)
|
|
#define __NR_get_robust_list (__NR_Linux + 290)
|
|
#define __NR_splice (__NR_Linux + 291)
|
|
#define __NR_sync_file_range (__NR_Linux + 292)
|
|
#define __NR_tee (__NR_Linux + 293)
|
|
#define __NR_vmsplice (__NR_Linux + 294)
|
|
#define __NR_move_pages (__NR_Linux + 295)
|
|
#define __NR_getcpu (__NR_Linux + 296)
|
|
#define __NR_epoll_pwait (__NR_Linux + 297)
|
|
#define __NR_statfs64 (__NR_Linux + 298)
|
|
#define __NR_fstatfs64 (__NR_Linux + 299)
|
|
#define __NR_kexec_load (__NR_Linux + 300)
|
|
#define __NR_utimensat (__NR_Linux + 301)
|
|
#define __NR_signalfd (__NR_Linux + 302)
|
|
#define __NR_timerfd (__NR_Linux + 303)
|
|
#define __NR_eventfd (__NR_Linux + 304)
|
|
#define __NR_fallocate (__NR_Linux + 305)
|
|
#define __NR_timerfd_create (__NR_Linux + 306)
|
|
#define __NR_timerfd_settime (__NR_Linux + 307)
|
|
#define __NR_timerfd_gettime (__NR_Linux + 308)
|
|
#define __NR_signalfd4 (__NR_Linux + 309)
|
|
#define __NR_eventfd2 (__NR_Linux + 310)
|
|
#define __NR_epoll_create1 (__NR_Linux + 311)
|
|
#define __NR_dup3 (__NR_Linux + 312)
|
|
#define __NR_pipe2 (__NR_Linux + 313)
|
|
#define __NR_inotify_init1 (__NR_Linux + 314)
|
|
#define __NR_preadv (__NR_Linux + 315)
|
|
#define __NR_pwritev (__NR_Linux + 316)
|
|
#define __NR_rt_tgsigqueueinfo (__NR_Linux + 317)
|
|
#define __NR_perf_event_open (__NR_Linux + 318)
|
|
#define __NR_recvmmsg (__NR_Linux + 319)
|
|
#define __NR_accept4 (__NR_Linux + 320)
|
|
|
|
#define __NR_Linux_syscalls (__NR_accept4 + 1)
|
|
|
|
|
|
#define __IGNORE_select /* newselect */
|
|
#define __IGNORE_fadvise64 /* fadvise64_64 */
|
|
#define __IGNORE_utimes /* utime */
|
|
|
|
|
|
#define HPUX_GATEWAY_ADDR 0xC0000004
|
|
#define LINUX_GATEWAY_ADDR 0x100
|
|
|
|
#ifdef __KERNEL__
|
|
#ifndef __ASSEMBLY__
|
|
|
|
#define SYS_ify(syscall_name) __NR_##syscall_name
|
|
|
|
#ifndef ASM_LINE_SEP
|
|
# define ASM_LINE_SEP ;
|
|
#endif
|
|
|
|
/* Definition taken from glibc 2.3.3
|
|
* sysdeps/unix/sysv/linux/hppa/sysdep.h
|
|
*/
|
|
|
|
#ifdef PIC
|
|
/* WARNING: CANNOT BE USED IN A NOP! */
|
|
# define K_STW_ASM_PIC " copy %%r19, %%r4\n"
|
|
# define K_LDW_ASM_PIC " copy %%r4, %%r19\n"
|
|
# define K_USING_GR4 "%r4",
|
|
#else
|
|
# define K_STW_ASM_PIC " \n"
|
|
# define K_LDW_ASM_PIC " \n"
|
|
# define K_USING_GR4
|
|
#endif
|
|
|
|
/* GCC has to be warned that a syscall may clobber all the ABI
|
|
registers listed as "caller-saves", see page 8, Table 2
|
|
in section 2.2.6 of the PA-RISC RUN-TIME architecture
|
|
document. However! r28 is the result and will conflict with
|
|
the clobber list so it is left out. Also the input arguments
|
|
registers r20 -> r26 will conflict with the list so they
|
|
are treated specially. Although r19 is clobbered by the syscall
|
|
we cannot say this because it would violate ABI, thus we say
|
|
r4 is clobbered and use that register to save/restore r19
|
|
across the syscall. */
|
|
|
|
#define K_CALL_CLOB_REGS "%r1", "%r2", K_USING_GR4 \
|
|
"%r20", "%r29", "%r31"
|
|
|
|
#undef K_INLINE_SYSCALL
|
|
#define K_INLINE_SYSCALL(name, nr, args...) ({ \
|
|
long __sys_res; \
|
|
{ \
|
|
register unsigned long __res __asm__("r28"); \
|
|
K_LOAD_ARGS_##nr(args) \
|
|
/* FIXME: HACK stw/ldw r19 around syscall */ \
|
|
__asm__ volatile( \
|
|
K_STW_ASM_PIC \
|
|
" ble 0x100(%%sr2, %%r0)\n" \
|
|
" ldi %1, %%r20\n" \
|
|
K_LDW_ASM_PIC \
|
|
: "=r" (__res) \
|
|
: "i" (SYS_ify(name)) K_ASM_ARGS_##nr \
|
|
: "memory", K_CALL_CLOB_REGS K_CLOB_ARGS_##nr \
|
|
); \
|
|
__sys_res = (long)__res; \
|
|
} \
|
|
if ( (unsigned long)__sys_res >= (unsigned long)-4095 ){ \
|
|
errno = -__sys_res; \
|
|
__sys_res = -1; \
|
|
} \
|
|
__sys_res; \
|
|
})
|
|
|
|
#define K_LOAD_ARGS_0()
|
|
#define K_LOAD_ARGS_1(r26) \
|
|
register unsigned long __r26 __asm__("r26") = (unsigned long)(r26); \
|
|
K_LOAD_ARGS_0()
|
|
#define K_LOAD_ARGS_2(r26,r25) \
|
|
register unsigned long __r25 __asm__("r25") = (unsigned long)(r25); \
|
|
K_LOAD_ARGS_1(r26)
|
|
#define K_LOAD_ARGS_3(r26,r25,r24) \
|
|
register unsigned long __r24 __asm__("r24") = (unsigned long)(r24); \
|
|
K_LOAD_ARGS_2(r26,r25)
|
|
#define K_LOAD_ARGS_4(r26,r25,r24,r23) \
|
|
register unsigned long __r23 __asm__("r23") = (unsigned long)(r23); \
|
|
K_LOAD_ARGS_3(r26,r25,r24)
|
|
#define K_LOAD_ARGS_5(r26,r25,r24,r23,r22) \
|
|
register unsigned long __r22 __asm__("r22") = (unsigned long)(r22); \
|
|
K_LOAD_ARGS_4(r26,r25,r24,r23)
|
|
#define K_LOAD_ARGS_6(r26,r25,r24,r23,r22,r21) \
|
|
register unsigned long __r21 __asm__("r21") = (unsigned long)(r21); \
|
|
K_LOAD_ARGS_5(r26,r25,r24,r23,r22)
|
|
|
|
/* Even with zero args we use r20 for the syscall number */
|
|
#define K_ASM_ARGS_0
|
|
#define K_ASM_ARGS_1 K_ASM_ARGS_0, "r" (__r26)
|
|
#define K_ASM_ARGS_2 K_ASM_ARGS_1, "r" (__r25)
|
|
#define K_ASM_ARGS_3 K_ASM_ARGS_2, "r" (__r24)
|
|
#define K_ASM_ARGS_4 K_ASM_ARGS_3, "r" (__r23)
|
|
#define K_ASM_ARGS_5 K_ASM_ARGS_4, "r" (__r22)
|
|
#define K_ASM_ARGS_6 K_ASM_ARGS_5, "r" (__r21)
|
|
|
|
/* The registers not listed as inputs but clobbered */
|
|
#define K_CLOB_ARGS_6
|
|
#define K_CLOB_ARGS_5 K_CLOB_ARGS_6, "%r21"
|
|
#define K_CLOB_ARGS_4 K_CLOB_ARGS_5, "%r22"
|
|
#define K_CLOB_ARGS_3 K_CLOB_ARGS_4, "%r23"
|
|
#define K_CLOB_ARGS_2 K_CLOB_ARGS_3, "%r24"
|
|
#define K_CLOB_ARGS_1 K_CLOB_ARGS_2, "%r25"
|
|
#define K_CLOB_ARGS_0 K_CLOB_ARGS_1, "%r26"
|
|
|
|
#define _syscall0(type,name) \
|
|
type name(void) \
|
|
{ \
|
|
return K_INLINE_SYSCALL(name, 0); \
|
|
}
|
|
|
|
#define _syscall1(type,name,type1,arg1) \
|
|
type name(type1 arg1) \
|
|
{ \
|
|
return K_INLINE_SYSCALL(name, 1, arg1); \
|
|
}
|
|
|
|
#define _syscall2(type,name,type1,arg1,type2,arg2) \
|
|
type name(type1 arg1, type2 arg2) \
|
|
{ \
|
|
return K_INLINE_SYSCALL(name, 2, arg1, arg2); \
|
|
}
|
|
|
|
#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
|
|
type name(type1 arg1, type2 arg2, type3 arg3) \
|
|
{ \
|
|
return K_INLINE_SYSCALL(name, 3, arg1, arg2, arg3); \
|
|
}
|
|
|
|
#define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
|
|
type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
|
|
{ \
|
|
return K_INLINE_SYSCALL(name, 4, arg1, arg2, arg3, arg4); \
|
|
}
|
|
|
|
/* select takes 5 arguments */
|
|
#define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5) \
|
|
type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \
|
|
{ \
|
|
return K_INLINE_SYSCALL(name, 5, arg1, arg2, arg3, arg4, arg5); \
|
|
}
|
|
|
|
#define __ARCH_WANT_OLD_READDIR
|
|
#define __ARCH_WANT_STAT64
|
|
#define __ARCH_WANT_SYS_ALARM
|
|
#define __ARCH_WANT_SYS_GETHOSTNAME
|
|
#define __ARCH_WANT_SYS_PAUSE
|
|
#define __ARCH_WANT_SYS_SGETMASK
|
|
#define __ARCH_WANT_SYS_SIGNAL
|
|
#define __ARCH_WANT_SYS_TIME
|
|
#define __ARCH_WANT_COMPAT_SYS_TIME
|
|
#define __ARCH_WANT_SYS_UTIME
|
|
#define __ARCH_WANT_SYS_WAITPID
|
|
#define __ARCH_WANT_SYS_SOCKETCALL
|
|
#define __ARCH_WANT_SYS_FADVISE64
|
|
#define __ARCH_WANT_SYS_GETPGRP
|
|
#define __ARCH_WANT_SYS_LLSEEK
|
|
#define __ARCH_WANT_SYS_NICE
|
|
#define __ARCH_WANT_SYS_OLD_GETRLIMIT
|
|
#define __ARCH_WANT_SYS_OLDUMOUNT
|
|
#define __ARCH_WANT_SYS_SIGPENDING
|
|
#define __ARCH_WANT_SYS_SIGPROCMASK
|
|
#define __ARCH_WANT_SYS_RT_SIGACTION
|
|
#define __ARCH_WANT_SYS_RT_SIGSUSPEND
|
|
#define __ARCH_WANT_COMPAT_SYS_RT_SIGSUSPEND
|
|
|
|
#endif /* __ASSEMBLY__ */
|
|
|
|
#undef STR
|
|
|
|
/*
|
|
* "Conditional" syscalls
|
|
*
|
|
* What we want is __attribute__((weak,alias("sys_ni_syscall"))),
|
|
* but it doesn't work on all toolchains, so we just do it by hand
|
|
*/
|
|
#define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall")
|
|
|
|
#endif /* __KERNEL__ */
|
|
#endif /* _ASM_PARISC_UNISTD_H_ */
|