qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v4 08/21] linux-user, arm: add syscall table generation support


From: Laurent Vivier
Subject: [PATCH v4 08/21] linux-user, arm: add syscall table generation support
Date: Tue, 10 Mar 2020 11:33:50 +0100

Copy syscall.tbl and syscallhdr.sh from linux/arch/arm/tools/syscalls v5.5
Update syscallhdr.sh to generate QEMU syscall_nr.h

Update syscall.c to manage TARGET_NR_arm_sync_file_range as it has
replaced TARGET_NR_sync_file_range2

Move existing stuff from linux-user/Makefile.objs to
linux-user/arm/Makefile.objs

Signed-off-by: Laurent Vivier <address@hidden>
Reviewed-by: Taylor Simpson <address@hidden>
---
 configure                    |   3 +-
 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 +++
 linux-user/syscall.c         |   6 +
 7 files changed, 499 insertions(+), 450 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

diff --git a/configure b/configure
index 720bb5a96c62..5ed5e37df897 100755
--- a/configure
+++ b/configure
@@ -1889,7 +1889,7 @@ rm -f */config-devices.mak.d
 
 # Remove syscall_nr.h to be sure they will be regenerated in the build
 # directory, not in the source directory
-for arch in alpha hppa m68k xtensa sh4 microblaze ; do
+for arch in alpha hppa m68k xtensa sh4 microblaze arm ; do
     # remove the file if it has been generated in the source directory
     rm -f "${source_path}/linux-user/${arch}/syscall_nr.h"
     # remove the dependency files
@@ -7799,6 +7799,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..c7eb94dcba8e
--- /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"
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 8d27d1080752..f50a16070815 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -11727,8 +11727,14 @@ 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_sync_file_range2)
     case TARGET_NR_sync_file_range2:
+#endif
+#if defined(TARGET_NR_arm_sync_file_range)
+    case TARGET_NR_arm_sync_file_range:
+#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),
-- 
2.24.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]