On 17/02/2020 23:35, Laurent Vivier wrote: > Copy syscall.tbl and syscallhdr.sh from linux/arch/arm/tools/syscalls v5.5 > Update syscallhdr.sh to generate QEMU syscall_nr.h > > Signed-off-by: Laurent Vivier <laur...@vivier.eu> > --- > configure | 1 + > linux-user/Makefile.objs | 3 +- > linux-user/arm/Makefile.objs | 8 + > linux-user/arm/syscall.tbl | 451 +++++++++++++++++++++++++++++++++++ > linux-user/arm/syscall_nr.h | 447 ---------------------------------- > linux-user/arm/syscallhdr.sh | 31 +++ > 6 files changed, 492 insertions(+), 449 deletions(-) > create mode 100644 linux-user/arm/Makefile.objs > create mode 100644 linux-user/arm/syscall.tbl > delete mode 100644 linux-user/arm/syscall_nr.h > create mode 100644 linux-user/arm/syscallhdr.sh
I've found a regression on arm because TARGET_NR_arm_sync_file_range was mapped to TARGET_NR_sync_file_range2 and this is not generated anymore. I will add something like: --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -11682,8 +11682,13 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1, #endif return ret; #endif +#if defined(TARGET_NR_sync_file_range2) || defined(TARGET_NR_arm_sync_file_range) +#if defined(TARGET_NR_arm_sync_file_range) + case TARGET_NR_arm_sync_file_range: +#endif #if defined(TARGET_NR_sync_file_range2) case TARGET_NR_sync_file_range2: +#endif /* This is like sync_file_range but the arguments are reordered */ #if TARGET_ABI_BITS == 32 ret = get_errno(sync_file_range(arg1, target_offset64(arg3, arg4), Thanks, Laurent > > diff --git a/configure b/configure > index 7873e059e8c4..6db6a658b355 100755 > --- a/configure > +++ b/configure > @@ -7686,6 +7686,7 @@ case "$target_name" in > ;; > arm|armeb) > TARGET_ARCH=arm > + TARGET_SYSTBL_ABI=common,oabi > bflt="yes" > mttcg="yes" > gdb_xml_files="arm-core.xml arm-vfp.xml arm-vfp3.xml arm-neon.xml" > diff --git a/linux-user/Makefile.objs b/linux-user/Makefile.objs > index 5a26281e8867..bc12e38291bc 100644 > --- a/linux-user/Makefile.objs > +++ b/linux-user/Makefile.objs > @@ -5,11 +5,10 @@ obj-y = main.o syscall.o strace.o mmap.o signal.o \ > > obj-$(TARGET_HAS_BFLT) += flatload.o > obj-$(TARGET_I386) += vm86.o > -obj-$(TARGET_ARM) += arm/nwfpe/ > -obj-$(TARGET_ARM) += arm/semihost.o > obj-$(TARGET_AARCH64) += arm/semihost.o > > obj-$(TARGET_ALPHA) += alpha/ > +obj-$(TARGET_ARM) += arm/ > obj-$(TARGET_HPPA) += hppa/ > obj-$(TARGET_M68K) += m68k/ > obj-$(TARGET_MICROBLAZE) += microblaze/ > diff --git a/linux-user/arm/Makefile.objs b/linux-user/arm/Makefile.objs > new file mode 100644 > index 000000000000..bb763838bf5c > --- /dev/null > +++ b/linux-user/arm/Makefile.objs > @@ -0,0 +1,8 @@ > +obj-$(TARGET_ARM) += nwfpe/ > +obj-$(TARGET_ARM) += semihost.o > + > +generated-files-y += linux-user/arm/syscall_nr.h > + > +syshdr := $(SRC_PATH)/linux-user/arm/syscallhdr.sh > +%/syscall_nr.h: $(SRC_PATH)/linux-user/arm/syscall.tbl $(syshdr) > + $(call quiet-command, sh $(syshdr) $< $@ > $(TARGET_SYSTBL_ABI),,"GEN","$@") > diff --git a/linux-user/arm/syscall.tbl b/linux-user/arm/syscall.tbl > new file mode 100644 > index 000000000000..6da7dc4d79cc > --- /dev/null > +++ b/linux-user/arm/syscall.tbl > @@ -0,0 +1,451 @@ > +# > +# Linux system call numbers and entry vectors > +# > +# The format is: > +# <num> <abi> <name> [<entry point> > [<oabi compat entry point>]] > +# > +# Where abi is: > +# common - for system calls shared between oabi and eabi (may have compat) > +# oabi - for oabi-only system calls (may have compat) > +# eabi - for eabi-only system calls > +# > +# For each syscall number, "common" is mutually exclusive with oabi and eabi > +# > +0 common restart_syscall sys_restart_syscall > +1 common exit sys_exit > +2 common fork sys_fork > +3 common read sys_read > +4 common write sys_write > +5 common open sys_open > +6 common close sys_close > +# 7 was sys_waitpid > +8 common creat sys_creat > +9 common link sys_link > +10 common unlink sys_unlink > +11 common execve sys_execve > +12 common chdir sys_chdir > +13 oabi time sys_time32 > +14 common mknod sys_mknod > +15 common chmod sys_chmod > +16 common lchown sys_lchown16 > +# 17 was sys_break > +# 18 was sys_stat > +19 common lseek sys_lseek > +20 common getpid sys_getpid > +21 common mount sys_mount > +22 oabi umount sys_oldumount > +23 common setuid sys_setuid16 > +24 common getuid sys_getuid16 > +25 oabi stime sys_stime32 > +26 common ptrace sys_ptrace > +27 oabi alarm sys_alarm > +# 28 was sys_fstat > +29 common pause sys_pause > +30 oabi utime sys_utime32 > +# 31 was sys_stty > +# 32 was sys_gtty > +33 common access sys_access > +34 common nice sys_nice > +# 35 was sys_ftime > +36 common sync sys_sync > +37 common kill sys_kill > +38 common rename sys_rename > +39 common mkdir sys_mkdir > +40 common rmdir sys_rmdir > +41 common dup sys_dup > +42 common pipe sys_pipe > +43 common times sys_times > +# 44 was sys_prof > +45 common brk sys_brk > +46 common setgid sys_setgid16 > +47 common getgid sys_getgid16 > +# 48 was sys_signal > +49 common geteuid sys_geteuid16 > +50 common getegid sys_getegid16 > +51 common acct sys_acct > +52 common umount2 sys_umount > +# 53 was sys_lock > +54 common ioctl sys_ioctl > +55 common fcntl sys_fcntl > +# 56 was sys_mpx > +57 common setpgid sys_setpgid > +# 58 was sys_ulimit > +# 59 was sys_olduname > +60 common umask sys_umask > +61 common chroot sys_chroot > +62 common ustat sys_ustat > +63 common dup2 sys_dup2 > +64 common getppid sys_getppid > +65 common getpgrp sys_getpgrp > +66 common setsid sys_setsid > +67 common sigaction sys_sigaction > +# 68 was sys_sgetmask > +# 69 was sys_ssetmask > +70 common setreuid sys_setreuid16 > +71 common setregid sys_setregid16 > +72 common sigsuspend sys_sigsuspend > +73 common sigpending sys_sigpending > +74 common sethostname sys_sethostname > +75 common setrlimit sys_setrlimit > +# Back compat 2GB limited rlimit > +76 oabi getrlimit sys_old_getrlimit > +77 common getrusage sys_getrusage > +78 common gettimeofday sys_gettimeofday > +79 common settimeofday sys_settimeofday > +80 common getgroups sys_getgroups16 > +81 common setgroups sys_setgroups16 > +82 oabi select sys_old_select > +83 common symlink sys_symlink > +# 84 was sys_lstat > +85 common readlink sys_readlink > +86 common uselib sys_uselib > +87 common swapon sys_swapon > +88 common reboot sys_reboot > +89 oabi readdir sys_old_readdir > +90 oabi mmap sys_old_mmap > +91 common munmap sys_munmap > +92 common truncate sys_truncate > +93 common ftruncate sys_ftruncate > +94 common fchmod sys_fchmod > +95 common fchown sys_fchown16 > +96 common getpriority sys_getpriority > +97 common setpriority sys_setpriority > +# 98 was sys_profil > +99 common statfs sys_statfs > +100 common fstatfs sys_fstatfs > +# 101 was sys_ioperm > +102 oabi socketcall sys_socketcall > sys_oabi_socketcall > +103 common syslog sys_syslog > +104 common setitimer sys_setitimer > +105 common getitimer sys_getitimer > +106 common stat sys_newstat > +107 common lstat sys_newlstat > +108 common fstat sys_newfstat > +# 109 was sys_uname > +# 110 was sys_iopl > +111 common vhangup sys_vhangup > +# 112 was sys_idle > +# syscall to call a syscall! > +113 oabi syscall sys_syscall > +114 common wait4 sys_wait4 > +115 common swapoff sys_swapoff > +116 common sysinfo sys_sysinfo > +117 oabi ipc sys_ipc sys_oabi_ipc > +118 common fsync sys_fsync > +119 common sigreturn sys_sigreturn_wrapper > +120 common clone sys_clone > +121 common setdomainname sys_setdomainname > +122 common uname sys_newuname > +# 123 was sys_modify_ldt > +124 common adjtimex sys_adjtimex_time32 > +125 common mprotect sys_mprotect > +126 common sigprocmask sys_sigprocmask > +# 127 was sys_create_module > +128 common init_module sys_init_module > +129 common delete_module sys_delete_module > +# 130 was sys_get_kernel_syms > +131 common quotactl sys_quotactl > +132 common getpgid sys_getpgid > +133 common fchdir sys_fchdir > +134 common bdflush sys_bdflush > +135 common sysfs sys_sysfs > +136 common personality sys_personality > +# 137 was sys_afs_syscall > +138 common setfsuid sys_setfsuid16 > +139 common setfsgid sys_setfsgid16 > +140 common _llseek sys_llseek > +141 common getdents sys_getdents > +142 common _newselect sys_select > +143 common flock sys_flock > +144 common msync sys_msync > +145 common readv sys_readv > +146 common writev sys_writev > +147 common getsid sys_getsid > +148 common fdatasync sys_fdatasync > +149 common _sysctl sys_sysctl > +150 common mlock sys_mlock > +151 common munlock sys_munlock > +152 common mlockall sys_mlockall > +153 common munlockall sys_munlockall > +154 common sched_setparam sys_sched_setparam > +155 common sched_getparam sys_sched_getparam > +156 common sched_setscheduler sys_sched_setscheduler > +157 common sched_getscheduler sys_sched_getscheduler > +158 common sched_yield sys_sched_yield > +159 common sched_get_priority_max sys_sched_get_priority_max > +160 common sched_get_priority_min sys_sched_get_priority_min > +161 common sched_rr_get_interval sys_sched_rr_get_interval_time32 > +162 common nanosleep sys_nanosleep_time32 > +163 common mremap sys_mremap > +164 common setresuid sys_setresuid16 > +165 common getresuid sys_getresuid16 > +# 166 was sys_vm86 > +# 167 was sys_query_module > +168 common poll sys_poll > +169 common nfsservctl > +170 common setresgid sys_setresgid16 > +171 common getresgid sys_getresgid16 > +172 common prctl sys_prctl > +173 common rt_sigreturn sys_rt_sigreturn_wrapper > +174 common rt_sigaction sys_rt_sigaction > +175 common rt_sigprocmask sys_rt_sigprocmask > +176 common rt_sigpending sys_rt_sigpending > +177 common rt_sigtimedwait sys_rt_sigtimedwait_time32 > +178 common rt_sigqueueinfo sys_rt_sigqueueinfo > +179 common rt_sigsuspend sys_rt_sigsuspend > +180 common pread64 sys_pread64 sys_oabi_pread64 > +181 common pwrite64 sys_pwrite64 > sys_oabi_pwrite64 > +182 common chown sys_chown16 > +183 common getcwd sys_getcwd > +184 common capget sys_capget > +185 common capset sys_capset > +186 common sigaltstack sys_sigaltstack > +187 common sendfile sys_sendfile > +# 188 reserved > +# 189 reserved > +190 common vfork sys_vfork > +# SuS compliant getrlimit > +191 common ugetrlimit sys_getrlimit > +192 common mmap2 sys_mmap2 > +193 common truncate64 sys_truncate64 > sys_oabi_truncate64 > +194 common ftruncate64 sys_ftruncate64 > sys_oabi_ftruncate64 > +195 common stat64 sys_stat64 sys_oabi_stat64 > +196 common lstat64 sys_lstat64 sys_oabi_lstat64 > +197 common fstat64 sys_fstat64 sys_oabi_fstat64 > +198 common lchown32 sys_lchown > +199 common getuid32 sys_getuid > +200 common getgid32 sys_getgid > +201 common geteuid32 sys_geteuid > +202 common getegid32 sys_getegid > +203 common setreuid32 sys_setreuid > +204 common setregid32 sys_setregid > +205 common getgroups32 sys_getgroups > +206 common setgroups32 sys_setgroups > +207 common fchown32 sys_fchown > +208 common setresuid32 sys_setresuid > +209 common getresuid32 sys_getresuid > +210 common setresgid32 sys_setresgid > +211 common getresgid32 sys_getresgid > +212 common chown32 sys_chown > +213 common setuid32 sys_setuid > +214 common setgid32 sys_setgid > +215 common setfsuid32 sys_setfsuid > +216 common setfsgid32 sys_setfsgid > +217 common getdents64 sys_getdents64 > +218 common pivot_root sys_pivot_root > +219 common mincore sys_mincore > +220 common madvise sys_madvise > +221 common fcntl64 sys_fcntl64 sys_oabi_fcntl64 > +# 222 for tux > +# 223 is unused > +224 common gettid sys_gettid > +225 common readahead sys_readahead > sys_oabi_readahead > +226 common setxattr sys_setxattr > +227 common lsetxattr sys_lsetxattr > +228 common fsetxattr sys_fsetxattr > +229 common getxattr sys_getxattr > +230 common lgetxattr sys_lgetxattr > +231 common fgetxattr sys_fgetxattr > +232 common listxattr sys_listxattr > +233 common llistxattr sys_llistxattr > +234 common flistxattr sys_flistxattr > +235 common removexattr sys_removexattr > +236 common lremovexattr sys_lremovexattr > +237 common fremovexattr sys_fremovexattr > +238 common tkill sys_tkill > +239 common sendfile64 sys_sendfile64 > +240 common futex sys_futex_time32 > +241 common sched_setaffinity sys_sched_setaffinity > +242 common sched_getaffinity sys_sched_getaffinity > +243 common io_setup sys_io_setup > +244 common io_destroy sys_io_destroy > +245 common io_getevents sys_io_getevents_time32 > +246 common io_submit sys_io_submit > +247 common io_cancel sys_io_cancel > +248 common exit_group sys_exit_group > +249 common lookup_dcookie sys_lookup_dcookie > +250 common epoll_create sys_epoll_create > +251 common epoll_ctl sys_epoll_ctl > sys_oabi_epoll_ctl > +252 common epoll_wait sys_epoll_wait > sys_oabi_epoll_wait > +253 common remap_file_pages sys_remap_file_pages > +# 254 for set_thread_area > +# 255 for get_thread_area > +256 common set_tid_address sys_set_tid_address > +257 common timer_create sys_timer_create > +258 common timer_settime sys_timer_settime32 > +259 common timer_gettime sys_timer_gettime32 > +260 common timer_getoverrun sys_timer_getoverrun > +261 common timer_delete sys_timer_delete > +262 common clock_settime sys_clock_settime32 > +263 common clock_gettime sys_clock_gettime32 > +264 common clock_getres sys_clock_getres_time32 > +265 common clock_nanosleep sys_clock_nanosleep_time32 > +266 common statfs64 sys_statfs64_wrapper > +267 common fstatfs64 sys_fstatfs64_wrapper > +268 common tgkill sys_tgkill > +269 common utimes sys_utimes_time32 > +270 common arm_fadvise64_64 sys_arm_fadvise64_64 > +271 common pciconfig_iobase sys_pciconfig_iobase > +272 common pciconfig_read sys_pciconfig_read > +273 common pciconfig_write sys_pciconfig_write > +274 common mq_open sys_mq_open > +275 common mq_unlink sys_mq_unlink > +276 common mq_timedsend sys_mq_timedsend_time32 > +277 common mq_timedreceive sys_mq_timedreceive_time32 > +278 common mq_notify sys_mq_notify > +279 common mq_getsetattr sys_mq_getsetattr > +280 common waitid sys_waitid > +281 common socket sys_socket > +282 common bind sys_bind sys_oabi_bind > +283 common connect sys_connect sys_oabi_connect > +284 common listen sys_listen > +285 common accept sys_accept > +286 common getsockname sys_getsockname > +287 common getpeername sys_getpeername > +288 common socketpair sys_socketpair > +289 common send sys_send > +290 common sendto sys_sendto sys_oabi_sendto > +291 common recv sys_recv > +292 common recvfrom sys_recvfrom > +293 common shutdown sys_shutdown > +294 common setsockopt sys_setsockopt > +295 common getsockopt sys_getsockopt > +296 common sendmsg sys_sendmsg sys_oabi_sendmsg > +297 common recvmsg sys_recvmsg > +298 common semop sys_semop sys_oabi_semop > +299 common semget sys_semget > +300 common semctl sys_old_semctl > +301 common msgsnd sys_msgsnd > +302 common msgrcv sys_msgrcv > +303 common msgget sys_msgget > +304 common msgctl sys_old_msgctl > +305 common shmat sys_shmat > +306 common shmdt sys_shmdt > +307 common shmget sys_shmget > +308 common shmctl sys_old_shmctl > +309 common add_key sys_add_key > +310 common request_key sys_request_key > +311 common keyctl sys_keyctl > +312 common semtimedop sys_semtimedop_time32 > sys_oabi_semtimedop > +313 common vserver > +314 common ioprio_set sys_ioprio_set > +315 common ioprio_get sys_ioprio_get > +316 common inotify_init sys_inotify_init > +317 common inotify_add_watch sys_inotify_add_watch > +318 common inotify_rm_watch sys_inotify_rm_watch > +319 common mbind sys_mbind > +320 common get_mempolicy sys_get_mempolicy > +321 common set_mempolicy sys_set_mempolicy > +322 common openat sys_openat > +323 common mkdirat sys_mkdirat > +324 common mknodat sys_mknodat > +325 common fchownat sys_fchownat > +326 common futimesat sys_futimesat_time32 > +327 common fstatat64 sys_fstatat64 > sys_oabi_fstatat64 > +328 common unlinkat sys_unlinkat > +329 common renameat sys_renameat > +330 common linkat sys_linkat > +331 common symlinkat sys_symlinkat > +332 common readlinkat sys_readlinkat > +333 common fchmodat sys_fchmodat > +334 common faccessat sys_faccessat > +335 common pselect6 sys_pselect6_time32 > +336 common ppoll sys_ppoll_time32 > +337 common unshare sys_unshare > +338 common set_robust_list sys_set_robust_list > +339 common get_robust_list sys_get_robust_list > +340 common splice sys_splice > +341 common arm_sync_file_range sys_sync_file_range2 > +342 common tee sys_tee > +343 common vmsplice sys_vmsplice > +344 common move_pages sys_move_pages > +345 common getcpu sys_getcpu > +346 common epoll_pwait sys_epoll_pwait > +347 common kexec_load sys_kexec_load > +348 common utimensat sys_utimensat_time32 > +349 common signalfd sys_signalfd > +350 common timerfd_create sys_timerfd_create > +351 common eventfd sys_eventfd > +352 common fallocate sys_fallocate > +353 common timerfd_settime sys_timerfd_settime32 > +354 common timerfd_gettime sys_timerfd_gettime32 > +355 common signalfd4 sys_signalfd4 > +356 common eventfd2 sys_eventfd2 > +357 common epoll_create1 sys_epoll_create1 > +358 common dup3 sys_dup3 > +359 common pipe2 sys_pipe2 > +360 common inotify_init1 sys_inotify_init1 > +361 common preadv sys_preadv > +362 common pwritev sys_pwritev > +363 common rt_tgsigqueueinfo sys_rt_tgsigqueueinfo > +364 common perf_event_open sys_perf_event_open > +365 common recvmmsg sys_recvmmsg_time32 > +366 common accept4 sys_accept4 > +367 common fanotify_init sys_fanotify_init > +368 common fanotify_mark sys_fanotify_mark > +369 common prlimit64 sys_prlimit64 > +370 common name_to_handle_at sys_name_to_handle_at > +371 common open_by_handle_at sys_open_by_handle_at > +372 common clock_adjtime sys_clock_adjtime32 > +373 common syncfs sys_syncfs > +374 common sendmmsg sys_sendmmsg > +375 common setns sys_setns > +376 common process_vm_readv sys_process_vm_readv > +377 common process_vm_writev sys_process_vm_writev > +378 common kcmp sys_kcmp > +379 common finit_module sys_finit_module > +380 common sched_setattr sys_sched_setattr > +381 common sched_getattr sys_sched_getattr > +382 common renameat2 sys_renameat2 > +383 common seccomp sys_seccomp > +384 common getrandom sys_getrandom > +385 common memfd_create sys_memfd_create > +386 common bpf sys_bpf > +387 common execveat sys_execveat > +388 common userfaultfd sys_userfaultfd > +389 common membarrier sys_membarrier > +390 common mlock2 sys_mlock2 > +391 common copy_file_range sys_copy_file_range > +392 common preadv2 sys_preadv2 > +393 common pwritev2 sys_pwritev2 > +394 common pkey_mprotect sys_pkey_mprotect > +395 common pkey_alloc sys_pkey_alloc > +396 common pkey_free sys_pkey_free > +397 common statx sys_statx > +398 common rseq sys_rseq > +399 common io_pgetevents sys_io_pgetevents_time32 > +400 common migrate_pages sys_migrate_pages > +401 common kexec_file_load sys_kexec_file_load > +# 402 is unused > +403 common clock_gettime64 sys_clock_gettime > +404 common clock_settime64 sys_clock_settime > +405 common clock_adjtime64 sys_clock_adjtime > +406 common clock_getres_time64 sys_clock_getres > +407 common clock_nanosleep_time64 sys_clock_nanosleep > +408 common timer_gettime64 sys_timer_gettime > +409 common timer_settime64 sys_timer_settime > +410 common timerfd_gettime64 sys_timerfd_gettime > +411 common timerfd_settime64 sys_timerfd_settime > +412 common utimensat_time64 sys_utimensat > +413 common pselect6_time64 sys_pselect6 > +414 common ppoll_time64 sys_ppoll > +416 common io_pgetevents_time64 sys_io_pgetevents > +417 common recvmmsg_time64 sys_recvmmsg > +418 common mq_timedsend_time64 sys_mq_timedsend > +419 common mq_timedreceive_time64 sys_mq_timedreceive > +420 common semtimedop_time64 sys_semtimedop > +421 common rt_sigtimedwait_time64 sys_rt_sigtimedwait > +422 common futex_time64 sys_futex > +423 common sched_rr_get_interval_time64 sys_sched_rr_get_interval > +424 common pidfd_send_signal sys_pidfd_send_signal > +425 common io_uring_setup sys_io_uring_setup > +426 common io_uring_enter sys_io_uring_enter > +427 common io_uring_register sys_io_uring_register > +428 common open_tree sys_open_tree > +429 common move_mount sys_move_mount > +430 common fsopen sys_fsopen > +431 common fsconfig sys_fsconfig > +432 common fsmount sys_fsmount > +433 common fspick sys_fspick > +434 common pidfd_open sys_pidfd_open > +435 common clone3 sys_clone3 > diff --git a/linux-user/arm/syscall_nr.h b/linux-user/arm/syscall_nr.h > deleted file mode 100644 > index 6db9235f2bfd..000000000000 > --- a/linux-user/arm/syscall_nr.h > +++ /dev/null > @@ -1,447 +0,0 @@ > -/* > - * This file contains the system call numbers. > - */ > - > -#ifndef LINUX_USER_ARM_SYSCALL_NR_H > -#define LINUX_USER_ARM_SYSCALL_NR_H > - > -#define TARGET_NR_restart_syscall ( 0) > -#define TARGET_NR_exit ( 1) > -#define TARGET_NR_fork ( 2) > -#define TARGET_NR_read ( 3) > -#define TARGET_NR_write ( 4) > -#define TARGET_NR_open ( 5) > -#define TARGET_NR_close ( 6) > -#define TARGET_NR_waitpid ( 7) /* removed */ > -#define TARGET_NR_creat ( 8) > -#define TARGET_NR_link ( 9) > -#define TARGET_NR_unlink ( 10) > -#define TARGET_NR_execve ( 11) > -#define TARGET_NR_chdir ( 12) > -#define TARGET_NR_time ( 13) > -#define TARGET_NR_mknod ( 14) > -#define TARGET_NR_chmod ( 15) > -#define TARGET_NR_lchown ( 16) > -#define TARGET_NR_break ( 17) /* removed */ > - /* 18 was sys_stat */ > -#define TARGET_NR_lseek ( 19) > -#define TARGET_NR_getpid ( 20) > -#define TARGET_NR_mount ( 21) > -#define TARGET_NR_umount ( 22) > -#define TARGET_NR_setuid ( 23) > -#define TARGET_NR_getuid ( 24) > -#define TARGET_NR_stime ( 25) > -#define TARGET_NR_ptrace ( 26) > -#define TARGET_NR_alarm ( 27) > - > -#define TARGET_NR_pause ( 29) > -#define TARGET_NR_utime ( 30) > -#define TARGET_NR_stty ( 31) /* removed */ > -#define TARGET_NR_gtty ( 32) /* removed */ > -#define TARGET_NR_access ( 33) > -#define TARGET_NR_nice ( 34) > -#define TARGET_NR_ftime ( 35) /* removed */ > -#define TARGET_NR_sync ( 36) > -#define TARGET_NR_kill ( 37) > -#define TARGET_NR_rename ( 38) > -#define TARGET_NR_mkdir ( 39) > -#define TARGET_NR_rmdir ( 40) > -#define TARGET_NR_dup ( 41) > -#define TARGET_NR_pipe ( 42) > -#define TARGET_NR_times ( 43) > -#define TARGET_NR_prof ( 44) /* removed */ > -#define TARGET_NR_brk ( 45) > -#define TARGET_NR_setgid ( 46) > -#define TARGET_NR_getgid ( 47) > -#define TARGET_NR_signal ( 48) /* removed */ > -#define TARGET_NR_geteuid ( 49) > -#define TARGET_NR_getegid ( 50) > -#define TARGET_NR_acct ( 51) > -#define TARGET_NR_umount2 ( 52) > -#define TARGET_NR_lock ( 53) /* removed */ > -#define TARGET_NR_ioctl ( 54) > -#define TARGET_NR_fcntl ( 55) > -#define TARGET_NR_mpx ( 56) /* removed */ > -#define TARGET_NR_setpgid ( 57) > -#define TARGET_NR_ulimit ( 58) /* removed */ > - /* 59 was sys_olduname */ > -#define TARGET_NR_umask ( 60) > -#define TARGET_NR_chroot ( 61) > -#define TARGET_NR_ustat ( 62) > -#define TARGET_NR_dup2 ( 63) > -#define TARGET_NR_getppid ( 64) > -#define TARGET_NR_getpgrp ( 65) > -#define TARGET_NR_setsid ( 66) > -#define TARGET_NR_sigaction ( 67) > -#define TARGET_NR_sgetmask ( 68) /* removed */ > -#define TARGET_NR_ssetmask ( 69) /* removed */ > -#define TARGET_NR_setreuid ( 70) > -#define TARGET_NR_setregid ( 71) > -#define TARGET_NR_sigsuspend ( 72) > -#define TARGET_NR_sigpending ( 73) > -#define TARGET_NR_sethostname ( 74) > -#define TARGET_NR_setrlimit ( 75) > -#define TARGET_NR_getrlimit ( 76) /* Back compat 2GB > limited rlimit */ > -#define TARGET_NR_getrusage ( 77) > -#define TARGET_NR_gettimeofday ( 78) > -#define TARGET_NR_settimeofday ( 79) > -#define TARGET_NR_getgroups ( 80) > -#define TARGET_NR_setgroups ( 81) > -#define TARGET_NR_select ( 82) > -#define TARGET_NR_symlink ( 83) > - /* 84 was sys_lstat */ > -#define TARGET_NR_readlink ( 85) > -#define TARGET_NR_uselib ( 86) > -#define TARGET_NR_swapon ( 87) > -#define TARGET_NR_reboot ( 88) > -#define TARGET_NR_readdir ( 89) > -#define TARGET_NR_mmap ( 90) > -#define TARGET_NR_munmap ( 91) > -#define TARGET_NR_truncate ( 92) > -#define TARGET_NR_ftruncate ( 93) > -#define TARGET_NR_fchmod ( 94) > -#define TARGET_NR_fchown ( 95) > -#define TARGET_NR_getpriority ( 96) > -#define TARGET_NR_setpriority ( 97) > -#define TARGET_NR_profil ( 98) /* removed */ > -#define TARGET_NR_statfs ( 99) > -#define TARGET_NR_fstatfs (100) > -#define TARGET_NR_ioperm (101) > -#define TARGET_NR_socketcall (102) > -#define TARGET_NR_syslog (103) > -#define TARGET_NR_setitimer (104) > -#define TARGET_NR_getitimer (105) > -#define TARGET_NR_stat (106) > -#define TARGET_NR_lstat (107) > -#define TARGET_NR_fstat (108) > - /* 109 was sys_uname */ > - /* 110 was sys_iopl */ > -#define TARGET_NR_vhangup (111) > -#define TARGET_NR_idle (112) > -#define TARGET_NR_syscall (113) /* syscall to call a > syscall! */ > -#define TARGET_NR_wait4 (114) > -#define TARGET_NR_swapoff (115) > -#define TARGET_NR_sysinfo (116) > -#define TARGET_NR_ipc (117) > -#define TARGET_NR_fsync (118) > -#define TARGET_NR_sigreturn (119) > -#define TARGET_NR_clone (120) > -#define TARGET_NR_setdomainname (121) > -#define TARGET_NR_uname (122) > -#define TARGET_NR_modify_ldt (123) > -#define TARGET_NR_adjtimex (124) > -#define TARGET_NR_mprotect (125) > -#define TARGET_NR_sigprocmask (126) > -#define TARGET_NR_create_module (127) /* removed */ > -#define TARGET_NR_init_module (128) > -#define TARGET_NR_delete_module (129) > -#define TARGET_NR_get_kernel_syms (130) /* removed */ > -#define TARGET_NR_quotactl (131) > -#define TARGET_NR_getpgid (132) > -#define TARGET_NR_fchdir (133) > -#define TARGET_NR_bdflush (134) > -#define TARGET_NR_sysfs (135) > -#define TARGET_NR_personality (136) > -#define TARGET_NR_afs_syscall (137) /* Syscall for Andrew > File System */ > -#define TARGET_NR_setfsuid (138) > -#define TARGET_NR_setfsgid (139) > -#define TARGET_NR__llseek (140) > -#define TARGET_NR_getdents (141) > -#define TARGET_NR__newselect (142) > -#define TARGET_NR_flock (143) > -#define TARGET_NR_msync (144) > -#define TARGET_NR_readv (145) > -#define TARGET_NR_writev (146) > -#define TARGET_NR_getsid (147) > -#define TARGET_NR_fdatasync (148) > -#define TARGET_NR__sysctl (149) > -#define TARGET_NR_mlock (150) > -#define TARGET_NR_munlock (151) > -#define TARGET_NR_mlockall (152) > -#define TARGET_NR_munlockall (153) > -#define TARGET_NR_sched_setparam (154) > -#define TARGET_NR_sched_getparam (155) > -#define TARGET_NR_sched_setscheduler (156) > -#define TARGET_NR_sched_getscheduler (157) > -#define TARGET_NR_sched_yield (158) > -#define TARGET_NR_sched_get_priority_max (159) > -#define TARGET_NR_sched_get_priority_min (160) > -#define TARGET_NR_sched_rr_get_interval (161) > -#define TARGET_NR_nanosleep (162) > -#define TARGET_NR_mremap (163) > -#define TARGET_NR_setresuid (164) > -#define TARGET_NR_getresuid (165) > -#define TARGET_NR_vm86 (166) /* removed */ > -#define TARGET_NR_query_module (167) /* removed */ > -#define TARGET_NR_poll (168) > -#define TARGET_NR_nfsservctl (169) > -#define TARGET_NR_setresgid (170) > -#define TARGET_NR_getresgid (171) > -#define TARGET_NR_prctl (172) > -#define TARGET_NR_rt_sigreturn (173) > -#define TARGET_NR_rt_sigaction (174) > -#define TARGET_NR_rt_sigprocmask (175) > -#define TARGET_NR_rt_sigpending (176) > -#define TARGET_NR_rt_sigtimedwait (177) > -#define TARGET_NR_rt_sigqueueinfo (178) > -#define TARGET_NR_rt_sigsuspend (179) > -#define TARGET_NR_pread64 (180) > -#define TARGET_NR_pwrite64 (181) > -#define TARGET_NR_chown (182) > -#define TARGET_NR_getcwd (183) > -#define TARGET_NR_capget (184) > -#define TARGET_NR_capset (185) > -#define TARGET_NR_sigaltstack (186) > -#define TARGET_NR_sendfile (187) > - /* 188 reserved */ > - /* 189 reserved */ > -#define TARGET_NR_vfork (190) > -#define TARGET_NR_ugetrlimit (191) /* SuS compliant > getrlimit */ > -#define TARGET_NR_mmap2 (192) > -#define TARGET_NR_truncate64 (193) > -#define TARGET_NR_ftruncate64 (194) > -#define TARGET_NR_stat64 (195) > -#define TARGET_NR_lstat64 (196) > -#define TARGET_NR_fstat64 (197) > -#define TARGET_NR_lchown32 (198) > -#define TARGET_NR_getuid32 (199) > -#define TARGET_NR_getgid32 (200) > -#define TARGET_NR_geteuid32 (201) > -#define TARGET_NR_getegid32 (202) > -#define TARGET_NR_setreuid32 (203) > -#define TARGET_NR_setregid32 (204) > -#define TARGET_NR_getgroups32 (205) > -#define TARGET_NR_setgroups32 (206) > -#define TARGET_NR_fchown32 (207) > -#define TARGET_NR_setresuid32 (208) > -#define TARGET_NR_getresuid32 (209) > -#define TARGET_NR_setresgid32 (210) > -#define TARGET_NR_getresgid32 (211) > -#define TARGET_NR_chown32 (212) > -#define TARGET_NR_setuid32 (213) > -#define TARGET_NR_setgid32 (214) > -#define TARGET_NR_setfsuid32 (215) > -#define TARGET_NR_setfsgid32 (216) > -#define TARGET_NR_getdents64 (217) > -#define TARGET_NR_pivot_root (218) > -#define TARGET_NR_mincore (219) > -#define TARGET_NR_madvise (220) > -#define TARGET_NR_fcntl64 (221) > - /* 222 for tux */ > - /* 223 is unused */ > -#define TARGET_NR_gettid (224) > -#define TARGET_NR_readahead (225) > -#define TARGET_NR_setxattr (226) > -#define TARGET_NR_lsetxattr (227) > -#define TARGET_NR_fsetxattr (228) > -#define TARGET_NR_getxattr (229) > -#define TARGET_NR_lgetxattr (230) > -#define TARGET_NR_fgetxattr (231) > -#define TARGET_NR_listxattr (232) > -#define TARGET_NR_llistxattr (233) > -#define TARGET_NR_flistxattr (234) > -#define TARGET_NR_removexattr (235) > -#define TARGET_NR_lremovexattr (236) > -#define TARGET_NR_fremovexattr (237) > -#define TARGET_NR_tkill (238) > -#define TARGET_NR_sendfile64 (239) > -#define TARGET_NR_futex (240) > -#define TARGET_NR_sched_setaffinity (241) > -#define TARGET_NR_sched_getaffinity (242) > -#define TARGET_NR_io_setup (243) > -#define TARGET_NR_io_destroy (244) > -#define TARGET_NR_io_getevents (245) > -#define TARGET_NR_io_submit (246) > -#define TARGET_NR_io_cancel (247) > -#define TARGET_NR_exit_group (248) > -#define TARGET_NR_lookup_dcookie (249) > -#define TARGET_NR_epoll_create (250) > -#define TARGET_NR_epoll_ctl (251) > -#define TARGET_NR_epoll_wait (252) > -#define TARGET_NR_remap_file_pages (253) > - /* 254 for set_thread_area */ > - /* 255 for get_thread_area */ > - /* 256 for set_tid_address */ > -#define TARGET_NR_set_tid_address 256 > -#define TARGET_NR_timer_create 257 > -#define TARGET_NR_timer_settime 258 > -#define TARGET_NR_timer_gettime 259 > -#define TARGET_NR_timer_getoverrun 260 > -#define TARGET_NR_timer_delete 261 > -#define TARGET_NR_clock_settime 262 > -#define TARGET_NR_clock_gettime 263 > -#define TARGET_NR_clock_getres 264 > -#define TARGET_NR_clock_nanosleep 265 > -#define TARGET_NR_statfs64 266 > -#define TARGET_NR_fstatfs64 267 > -#define TARGET_NR_tgkill 268 > -#define TARGET_NR_utimes 269 > -#define TARGET_NR_arm_fadvise64_64 270 > -#define TARGET_NR_pciconfig_iobase 271 > -#define TARGET_NR_pciconfig_read 272 > -#define TARGET_NR_pciconfig_write 273 > -#define TARGET_NR_mq_open 274 > -#define TARGET_NR_mq_unlink 275 > -#define TARGET_NR_mq_timedsend 276 > -#define TARGET_NR_mq_timedreceive 277 > -#define TARGET_NR_mq_notify 278 > -#define TARGET_NR_mq_getsetattr 279 > -#define TARGET_NR_waitid 280 > -#define TARGET_NR_socket 281 > -#define TARGET_NR_bind 282 > -#define TARGET_NR_connect 283 > -#define TARGET_NR_listen 284 > -#define TARGET_NR_accept 285 > -#define TARGET_NR_getsockname 286 > -#define TARGET_NR_getpeername 287 > -#define TARGET_NR_socketpair 288 > -#define TARGET_NR_send 289 > -#define TARGET_NR_sendto 290 > -#define TARGET_NR_recv 291 > -#define TARGET_NR_recvfrom 292 > -#define TARGET_NR_shutdown 293 > -#define TARGET_NR_setsockopt 294 > -#define TARGET_NR_getsockopt 295 > -#define TARGET_NR_sendmsg 296 > -#define TARGET_NR_recvmsg 297 > -#define TARGET_NR_semop 298 > -#define TARGET_NR_semget 299 > -#define TARGET_NR_semctl 300 > -#define TARGET_NR_msgsnd 301 > -#define TARGET_NR_msgrcv 302 > -#define TARGET_NR_msgget 303 > -#define TARGET_NR_msgctl 304 > -#define TARGET_NR_shmat 305 > -#define TARGET_NR_shmdt 306 > -#define TARGET_NR_shmget 307 > -#define TARGET_NR_shmctl 308 > -#define TARGET_NR_add_key 309 > -#define TARGET_NR_request_key 310 > -#define TARGET_NR_keyctl 311 > -#define TARGET_NR_semtimedop 312 > -#define TARGET_NR_vserver 313 > -#define TARGET_NR_ioprio_set 314 > -#define TARGET_NR_ioprio_get 315 > -#define TARGET_NR_inotify_init 316 > -#define TARGET_NR_inotify_add_watch 317 > -#define TARGET_NR_inotify_rm_watch 318 > -#define TARGET_NR_mbind 319 > -#define TARGET_NR_get_mempolicy 320 > -#define TARGET_NR_set_mempolicy 321 > -#define TARGET_NR_openat (322) > -#define TARGET_NR_mkdirat (323) > -#define TARGET_NR_mknodat (324) > -#define TARGET_NR_fchownat (325) > -#define TARGET_NR_futimesat (326) > -#define TARGET_NR_fstatat64 (327) > -#define TARGET_NR_unlinkat (328) > -#define TARGET_NR_renameat (329) > -#define TARGET_NR_linkat (330) > -#define TARGET_NR_symlinkat (331) > -#define TARGET_NR_readlinkat (332) > -#define TARGET_NR_fchmodat (333) > -#define TARGET_NR_faccessat (334) > -#define TARGET_NR_pselect6 (335) > -#define TARGET_NR_ppoll (336) > -#define TARGET_NR_unshare (337) > -#define TARGET_NR_set_robust_list (338) > -#define TARGET_NR_get_robust_list (339) > -#define TARGET_NR_splice (340) > -#define TARGET_NR_arm_sync_file_range (341) > -#define TARGET_NR_sync_file_range2 TARGET_NR_arm_sync_file_range > -#define TARGET_NR_tee (342) > -#define TARGET_NR_vmsplice (343) > -#define TARGET_NR_move_pages (344) > -#define TARGET_NR_getcpu (345) > -#define TARGET_NR_epoll_pwait (346) > -#define TARGET_NR_kexec_load (347) > -#define TARGET_NR_utimensat (348) > -#define TARGET_NR_signalfd (349) > -#define TARGET_NR_timerfd_create (350) > -#define TARGET_NR_eventfd (351) > -#define TARGET_NR_fallocate (352) > -#define TARGET_NR_timerfd_settime (353) > -#define TARGET_NR_timerfd_gettime (354) > -#define TARGET_NR_signalfd4 (355) > -#define TARGET_NR_eventfd2 (356) > -#define TARGET_NR_epoll_create1 (357) > -#define TARGET_NR_dup3 (358) > -#define TARGET_NR_pipe2 (359) > -#define TARGET_NR_inotify_init1 (360) > -#define TARGET_NR_preadv (361) > -#define TARGET_NR_pwritev (362) > -#define TARGET_NR_rt_tgsigqueueinfo (363) > -#define TARGET_NR_perf_event_open (364) > -#define TARGET_NR_recvmmsg (365) > -#define TARGET_NR_accept4 (366) > -#define TARGET_NR_fanotify_init (367) > -#define TARGET_NR_fanotify_mark (368) > -#define TARGET_NR_prlimit64 (369) > -#define TARGET_NR_name_to_handle_at (370) > -#define TARGET_NR_open_by_handle_at (371) > -#define TARGET_NR_clock_adjtime (372) > -#define TARGET_NR_syncfs (373) > -#define TARGET_NR_sendmmsg (374) > -#define TARGET_NR_setns (375) > -#define TARGET_NR_process_vm_readv (376) > -#define TARGET_NR_process_vm_writev (377) > -#define TARGET_NR_kcmp (378) > -#define TARGET_NR_finit_module (379) > - > -#define TARGET_NR_sched_setattr (380) > -#define TARGET_NR_sched_getattr (381) > -#define TARGET_NR_renameat2 (382) > -#define TARGET_NR_seccomp (383) > -#define TARGET_NR_getrandom (384) > -#define TARGET_NR_memfd_create (385) > -#define TARGET_NR_bpf (386) > -#define TARGET_NR_execveat (387) > -#define TARGET_NR_userfaultfd (388) > -#define TARGET_NR_membarrier (389) > -#define TARGET_NR_mlock2 (390) > -#define TARGET_NR_copy_file_range (391) > -#define TARGET_NR_preadv2 (392) > -#define TARGET_NR_pwritev2 (393) > -#define TARGET_NR_pkey_mprotect (394) > -#define TARGET_NR_pkey_alloc (395) > -#define TARGET_NR_pkey_free (396) > -#define TARGET_NR_statx (397) > -#define TARGET_NR_rseq (398) > -#define TARGET_NR_io_pgetevents (399) > -#define TARGET_NR_migrate_pages (400) > -#define TARGET_NR_kexec_file_load (401) > -/* 402 is unused */ > -#define TARGET_NR_clock_gettime64 (403) > -#define TARGET_NR_clock_settime64 (404) > -#define TARGET_NR_clock_adjtime64 (405) > -#define TARGET_NR_clock_getres_time64 (406) > -#define TARGET_NR_clock_nanosleep_time64 (407) > -#define TARGET_NR_timer_gettime64 (408) > -#define TARGET_NR_timer_settime64 (409) > -#define TARGET_NR_timerfd_gettime64 (410) > -#define TARGET_NR_timerfd_settime64 (411) > -#define TARGET_NR_utimensat_time64 (412) > -#define TARGET_NR_pselect6_time64 (413) > -#define TARGET_NR_ppoll_time64 (414) > -#define TARGET_NR_io_pgetevents_time64 (416) > -#define TARGET_NR_recvmmsg_time64 (417) > -#define TARGET_NR_mq_timedsend_time64 (418) > -#define TARGET_NR_mq_timedreceive_time64 (419) > -#define TARGET_NR_semtimedop_time64 (420) > -#define TARGET_NR_rt_sigtimedwait_time64 (421) > -#define TARGET_NR_futex_time64 (422) > -#define TARGET_NR_sched_rr_get_interval_time64 (423) > -#define TARGET_NR_pidfd_send_signal (424) > -#define TARGET_NR_io_uring_setup (425) > -#define TARGET_NR_io_uring_enter (426) > -#define TARGET_NR_io_uring_register (427) > -#define TARGET_NR_open_tree (428) > -#define TARGET_NR_move_mount (429) > -#define TARGET_NR_fsopen (430) > -#define TARGET_NR_fsconfig (431) > -#define TARGET_NR_fsmount (432) > -#define TARGET_NR_fspick (433) > -#define TARGET_NR_pidfd_open (434) > -#define TARGET_NR_clone3 (435) > - > -#endif > diff --git a/linux-user/arm/syscallhdr.sh b/linux-user/arm/syscallhdr.sh > new file mode 100644 > index 000000000000..4c952b2cfb20 > --- /dev/null > +++ b/linux-user/arm/syscallhdr.sh > @@ -0,0 +1,31 @@ > +#!/bin/sh > +# SPDX-License-Identifier: GPL-2.0 > + > +in="$1" > +out="$2" > +my_abis=`echo "($3)" | tr ',' '|'` > +prefix="$4" > +offset="$5" > + > +fileguard=LINUX_USER_ARM_`basename "$out" | sed \ > + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ > + -e 's/[^A-Z0-9_]/_/g' -e 's/__/_/g'` > +if echo $out | grep -q uapi; then > + fileguard="_UAPI$fileguard" > +fi > +grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | ( > + echo "#ifndef ${fileguard}" > + echo "#define ${fileguard} 1" > + echo "" > + > + while read nr abi name entry ; do > + if [ -z "$offset" ]; then > + echo "#define TARGET_NR_${prefix}${name} $nr" > + else > + echo "#define TARGET_NR_${prefix}${name} ($offset + $nr)" > + fi > + done > + > + echo "" > + echo "#endif /* ${fileguard} */" > +) > "$out" >