/*
  Copyright (C) 2001, 2002 Thomas M. Ogrisegg

  This is free software. You can redistribute and
  modify it under the terms of the GNU General Public
  Public License.

  This file is part of the hppa-Port of the dietlibc

  syscalls.h
    Header file including the systemcall index-
    and implementation macros
*/

#define __NR_restart_syscall	0
#define __NR_exit	1
#define __NR_fork	2
#define __NR_read	3
#define __NR_write	4
#define __NR_open	5
#define __NR_close	6
#define __NR_waitpid	7
#define __NR_creat	8
#define __NR_link	9
#define __NR_unlink	10
#define __NR_execve	11
#define __NR_chdir	12
#define __NR_time	13
#define __NR_mknod	14
#define __NR_chmod	15
#define __NR_lchown	16
#define __NR_socket	17
#define __NR_stat	18
#define __NR_lseek	19
#define __NR_getpid	20
#define __NR_mount	21
#define __NR_bind	22
#define __NR_setuid	23
#define __NR_getuid	24
#define __NR_stime	25
#define __NR_ptrace	26
#define __NR_alarm	27
#define __NR_fstat	28
#define __NR_pause	29
#define __NR_utime	30
#define __NR_connect	31
#define __NR_listen	32
#define __NR_access	33
#define __NR_nice	34
#define __NR_accept	35
#define __NR_sync	36
#define __NR_kill	37
#define __NR_rename	38
#define __NR_mkdir	39
#define __NR_rmdir	40
#define __NR_dup	41
#define __NR_pipe	42
#define __NR_times	43
#define __NR_getsockname	44
#define __NR_brk	45
#define __NR_setgid	46
#define __NR_getgid	47
#define __NR_signal	48
#define __NR_geteuid	49
#define __NR_getegid	50
#define __NR_acct	51
#define __NR_umount2	52
#define __NR_getpeername	53
#define __NR_ioctl	54
#define __NR_fcntl	55
#define __NR_socketpair	56
#define __NR_setpgid	57
#define __NR_send	58
#define __NR_uname	59
#define __NR_umask	60
#define __NR_chroot	61
#define __NR_ustat	62
#define __NR_dup2	63
#define __NR_getppid	64
#define __NR_getpgrp	65
#define __NR_setsid	66
#define __NR_pivot_root	67
#define __NR_sgetmask	68
#define __NR_ssetmask	69
#define __NR_setreuid	70
#define __NR_setregid	71
#define __NR_mincore	72
#define __NR_sigpending	73
#define __NR_sethostname	74
#define __NR_setrlimit	75
#define __NR_getrlimit	76
#define __NR_getrusage	77
#define __NR_gettimeofday	78
#define __NR_settimeofday	79
#define __NR_getgroups	80
#define __NR_setgroups	81
#define __NR_sendto	82
#define __NR_symlink	83
#define __NR_lstat	84
#define __NR_readlink	85
#define __NR_uselib	86
#define __NR_swapon	87
#define __NR_reboot	88
#define __NR_mmap2	89
#define __NR_mmap	90
#define __NR_munmap	91
#define __NR_truncate	92
#define __NR_ftruncate	93
#define __NR_fchmod	94
#define __NR_fchown	95
#define __NR_getpriority	96
#define __NR_setpriority	97
#define __NR_recv	98
#define __NR_statfs	99
#define __NR_fstatfs	100
#define __NR_stat64	101
#define __NR_syslog	103
#define __NR_setitimer	104
#define __NR_getitimer	105
#define __NR_capget	106
#define __NR_capset	107
#define __NR_pread64	108
#define __NR_pwrite64	109
#define __NR_getcwd	110
#define __NR_vhangup	111
#define __NR_fstat64	112
#define __NR_vfork	113
#define __NR_wait4	114
#define __NR_swapoff	115
#define __NR_sysinfo	116
#define __NR_shutdown	117
#define __NR_fsync	118
#define __NR_madvise	119
#define __NR_clone	120
#define __NR_setdomainname	121
#define __NR_sendfile	122
#define __NR_recvfrom	123
#define __NR_adjtimex	124
#define __NR_mprotect	125
#define __NR_sigprocmask	126
#define __NR_init_module	128
#define __NR_delete_module	129
#define __NR_quotactl	131
#define __NR_getpgid	132
#define __NR_fchdir	133
#define __NR_bdflush	134
#define __NR_sysfs	135
#define __NR_personality	136
#define __NR_setfsuid	138
#define __NR_setfsgid	139
#define __NR__llseek	140
#define __NR_getdents	141
#define __NR__newselect	142
#define __NR_flock	143
#define __NR_msync	144
#define __NR_readv	145
#define __NR_writev	146
#define __NR_getsid	147
#define __NR_fdatasync	148
#define __NR__sysctl	149
#define __NR_mlock	150
#define __NR_munlock	151
#define __NR_mlockall	152
#define __NR_munlockall	153
#define __NR_sched_setparam	154
#define __NR_sched_getparam	155
#define __NR_sched_setscheduler	156
#define __NR_sched_getscheduler	157
#define __NR_sched_yield	158
#define __NR_sched_get_priority_max	159
#define __NR_sched_get_priority_min	160
#define __NR_sched_rr_get_interval	161
#define __NR_nanosleep	162
#define __NR_mremap	163
#define __NR_setresuid	164
#define __NR_getresuid	165
#define __NR_sigaltstack	166
#define __NR_poll	168
#define __NR_setresgid	170
#define __NR_getresgid	171
#define __NR_prctl	172
#define __NR_rt_sigreturn	173
#define __NR_rt_sigaction	174
#define __NR_rt_sigprocmask	175
#define __NR_rt_sigpending	176
#define __NR_rt_sigtimedwait	177
#define __NR_rt_sigqueueinfo	178
#define __NR_rt_sigsuspend	179
#define __NR_chown	180
#define __NR_setsockopt	181
#define __NR_getsockopt	182
#define __NR_sendmsg	183
#define __NR_recvmsg	184
#define __NR_semop	185
#define __NR_semget	186
#define __NR_semctl	187
#define __NR_msgsnd	188
#define __NR_msgrcv	189
#define __NR_msgget	190
#define __NR_msgctl	191
#define __NR_shmat	192
#define __NR_shmdt	193
#define __NR_shmget	194
#define __NR_shmctl	195
#define __NR_lstat64	198
#define __NR_truncate64	199
#define __NR_ftruncate64	200
#define __NR_getdents64	201
#define __NR_fcntl64	202
#define __NR_gettid	206
#define __NR_readahead	207
#define __NR_tkill	208
#define __NR_sendfile64	209
#define __NR_futex	210
#define __NR_sched_setaffinity	211
#define __NR_sched_getaffinity	212
#define __NR_io_setup	215
#define __NR_io_destroy	216
#define __NR_io_getevents	217
#define __NR_io_submit	218
#define __NR_io_cancel	219
#define __NR_exit_group	222
#define __NR_lookup_dcookie	223
#define __NR_epoll_create	224
#define __NR_epoll_ctl	225
#define __NR_epoll_wait	226
#define __NR_remap_file_pages	227
#define __NR_semtimedop	228
#define __NR_mq_open	229
#define __NR_mq_unlink	230
#define __NR_mq_timedsend	231
#define __NR_mq_timedreceive	232
#define __NR_mq_notify	233
#define __NR_mq_getsetattr	234
#define __NR_waitid	235
#define __NR_fadvise64_64	236
#define __NR_set_tid_address	237
#define __NR_setxattr	238
#define __NR_lsetxattr	239
#define __NR_fsetxattr	240
#define __NR_getxattr	241
#define __NR_lgetxattr	242
#define __NR_fgetxattr	243
#define __NR_listxattr	244
#define __NR_llistxattr	245
#define __NR_flistxattr	246
#define __NR_removexattr	247
#define __NR_lremovexattr	248
#define __NR_fremovexattr	249
#define __NR_timer_create	250
#define __NR_timer_settime	251
#define __NR_timer_gettime	252
#define __NR_timer_getoverrun	253
#define __NR_timer_delete	254
#define __NR_clock_settime	255
#define __NR_clock_gettime	256
#define __NR_clock_getres	257
#define __NR_clock_nanosleep	258
#define __NR_tgkill	259
#define __NR_mbind	260
#define __NR_get_mempolicy	261
#define __NR_set_mempolicy	262
#define __NR_add_key	264
#define __NR_request_key	265
#define __NR_keyctl	266
#define __NR_ioprio_set	267
#define __NR_ioprio_get	268
#define __NR_inotify_init	269
#define __NR_inotify_add_watch	270
#define __NR_inotify_rm_watch	271
#define __NR_migrate_pages	272
#define __NR_pselect6	273
#define __NR_ppoll	274
#define __NR_openat	275
#define __NR_mkdirat	276
#define __NR_mknodat	277
#define __NR_fchownat	278
#define __NR_futimesat	279
#define __NR_fstatat64	280
#define __NR_unlinkat	281
#define __NR_renameat	282
#define __NR_linkat	283
#define __NR_symlinkat	284
#define __NR_readlinkat	285
#define __NR_fchmodat	286
#define __NR_faccessat	287
#define __NR_unshare	288
#define __NR_set_robust_list	289
#define __NR_get_robust_list	290
#define __NR_splice	291
#define __NR_sync_file_range	292
#define __NR_tee	293
#define __NR_vmsplice	294
#define __NR_move_pages	295
#define __NR_getcpu	296
#define __NR_epoll_pwait	297
#define __NR_statfs64	298
#define __NR_fstatfs64	299
#define __NR_kexec_load	300
#define __NR_utimensat	301
#define __NR_signalfd	302
#define __NR_eventfd	304
#define __NR_fallocate	305
#define __NR_timerfd_create	306
#define __NR_timerfd_settime	307
#define __NR_timerfd_gettime	308
#define __NR_signalfd4	309
#define __NR_eventfd2	310
#define __NR_epoll_create1	311
#define __NR_dup3	312
#define __NR_pipe2	313
#define __NR_inotify_init1	314
#define __NR_preadv	315
#define __NR_pwritev	316
#define __NR_rt_tgsigqueueinfo	317
#define __NR_perf_event_open	318
#define __NR_recvmmsg	319
#define __NR_accept4	320
#define __NR_prlimit64	321
#define __NR_fanotify_init	322
#define __NR_fanotify_mark	323
#define __NR_clock_adjtime	324
#define __NR_name_to_handle_at	325
#define __NR_open_by_handle_at	326
#define __NR_syncfs	327
#define __NR_setns	328
#define __NR_sendmmsg	329
#define __NR_process_vm_readv	330
#define __NR_process_vm_writev	331
#define __NR_kcmp	332
#define __NR_finit_module	333
#define __NR_sched_setattr	334
#define __NR_sched_getattr	335
#define __NR_utimes	336
#define __NR_renameat2	337
#define __NR_seccomp	338
#define __NR_getrandom	339
#define __NR_memfd_create	340
#define __NR_bpf	341
#define __NR_execveat	342
#define __NR_membarrier	343
#define __NR_userfaultfd	344
#define __NR_mlock2	345
#define __NR_copy_file_range	346
#define __NR_preadv2	347
#define __NR_pwritev2	348
#define __NR_statx	349
#define __NR_io_pgetevents	350
#define __NR_pkey_mprotect	351
#define __NR_pkey_alloc	352
#define __NR_pkey_free	353
#define __NR_rseq	354
#define __NR_kexec_file_load	355
#define __NR_clock_gettime64	403
#define __NR_clock_settime64	404
#define __NR_clock_adjtime64	405
#define __NR_clock_getres_time64	406
#define __NR_clock_nanosleep_time64	407
#define __NR_timer_gettime64	408
#define __NR_timer_settime64	409
#define __NR_timerfd_gettime64	410
#define __NR_timerfd_settime64	411
#define __NR_utimensat_time64	412
#define __NR_pselect6_time64	413
#define __NR_ppoll_time64	414
#define __NR_io_pgetevents_time64	416
#define __NR_recvmmsg_time64	417
#define __NR_mq_timedsend_time64	418
#define __NR_mq_timedreceive_time64	419
#define __NR_semtimedop_time64	420
#define __NR_rt_sigtimedwait_time64	421
#define __NR_futex_time64	422
#define __NR_sched_rr_get_interval_time64	423
#define __NR_pidfd_send_signal	424
#define __NR_io_uring_setup	425
#define __NR_io_uring_enter	426
#define __NR_io_uring_register	427
#define __NR_open_tree	428
#define __NR_move_mount	429
#define __NR_fsopen	430
#define __NR_fsconfig	431
#define __NR_fsmount	432
#define __NR_fspick	433
#define __NR_pidfd_open	434
#define __NR_clone3	435
#define __NR_openat2	437
#define __NR_pidfd_getfd	438

#define LINUX_GATEWAY_ADDR      0x100

#define syscall_weak(name, sym, wsym) 	\
.text!					\
.type wsym, @function!			\
.weak wsym!				\
wsym:	!				\
.type sym, @function!			\
.globl sym!				\
sym:					\
	b __unified_syscall!		\
	ldi __NR_##name, %r20!		\

#define __syscall(name, sym, imp)  	\
.text!					\
.type sym,@function!			\
.globl sym!				\
.export sym!				\
sym:					\
	b imp!				\
	ldi __NR_##name, %r20!

#define syscall(name, sym)	__syscall(name, sym, __unified_syscall)
#define syscall5(name, sym)	__syscall(name, sym, __unified_syscall5)
#define syscall6(name, sym)	__syscall(name, sym, __unified_syscall6)

