All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Vivier <laurent@vivier.eu>
To: qemu-devel@nongnu.org
Cc: Cornelia Huck <cohuck@redhat.com>,
	Riku Voipio <riku.voipio@iki.fi>,
	Laurent Vivier <laurent@vivier.eu>,
	qemu-s390x@nongnu.org,
	Aleksandar Markovic <amarkovic@wavecomp.com>,
	Aleksandar Rikalo <aleksandar.rikalo@rt-rk.com>,
	Aurelien Jarno <aurelien@aurel32.net>
Subject: [PATCH v2 15/20] linux-user, mips: add syscall table generation support
Date: Wed, 19 Feb 2020 23:03:28 +0100	[thread overview]
Message-ID: <20200219220333.1411905-16-laurent@vivier.eu> (raw)
In-Reply-To: <20200219220333.1411905-1-laurent@vivier.eu>

Copy syscall.tbl and syscallhdr.sh from linux/arch/mips/kernel/syscalls/syscall_o32.tbl v5.5
Update syscallhdr.sh to generate QEMU syscall_nr.h
Move the offset (4000) from the file to the Makefile.objs to be passed
to syscallhdr.sh
Rename on the fly fadvise64 to fadvise64_64.

Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---

Notes:
    v2: fix a typo (double comma) in $(call quiet-command)
    
        remove  dependencies to syscall_nr.h in source directory

 configure                       |   3 +-
 linux-user/Makefile.objs        |   1 +
 linux-user/mips/Makefile.objs   |   5 +
 linux-user/mips/syscall_nr.h    | 425 --------------------------------
 linux-user/mips/syscall_o32.tbl | 425 ++++++++++++++++++++++++++++++++
 linux-user/mips/syscallhdr.sh   |  36 +++
 6 files changed, 469 insertions(+), 426 deletions(-)
 create mode 100644 linux-user/mips/Makefile.objs
 delete mode 100644 linux-user/mips/syscall_nr.h
 create mode 100644 linux-user/mips/syscall_o32.tbl
 create mode 100644 linux-user/mips/syscallhdr.sh

diff --git a/configure b/configure
index 38fe8c91eff8..2da7504ddd51 100755
--- a/configure
+++ b/configure
@@ -1858,7 +1858,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 arm ppc s390x sparc sparc64 \
-    i386 x86_64 ; do
+    i386 x86_64 mips ; 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
@@ -7735,6 +7735,7 @@ case "$target_name" in
     mttcg="yes"
     TARGET_ARCH=mips
     echo "TARGET_ABI_MIPSO32=y" >> $config_target_mak
+    TARGET_SYSTBL_ABI=o32
   ;;
   mipsn32|mipsn32el)
     mttcg="yes"
diff --git a/linux-user/Makefile.objs b/linux-user/Makefile.objs
index 1791bc48cd17..0a0715e9e192 100644
--- a/linux-user/Makefile.objs
+++ b/linux-user/Makefile.objs
@@ -13,6 +13,7 @@ obj-$(TARGET_HPPA) += hppa/
 obj-$(TARGET_I386) += i386/
 obj-$(TARGET_M68K) += m68k/
 obj-$(TARGET_MICROBLAZE) += microblaze/
+obj-$(TARGET_MIPS) += mips/
 obj-$(TARGET_PPC) += ppc/
 obj-$(TARGET_PPC64) += ppc/
 obj-$(TARGET_S390X) += s390x/
diff --git a/linux-user/mips/Makefile.objs b/linux-user/mips/Makefile.objs
new file mode 100644
index 000000000000..9be4de07d99a
--- /dev/null
+++ b/linux-user/mips/Makefile.objs
@@ -0,0 +1,5 @@
+generated-files-y += linux-user/mips/syscall_nr.h
+
+syshdr := $(SRC_PATH)/linux-user/mips/syscallhdr.sh
+%/syscall_nr.h: $(SRC_PATH)/linux-user/mips/syscall_o32.tbl $(syshdr)
+	$(call quiet-command, sh $(syshdr) $< $@ $(TARGET_SYSTBL_ABI) "" 4000,"GEN","$@")
diff --git a/linux-user/mips/syscall_nr.h b/linux-user/mips/syscall_nr.h
deleted file mode 100644
index 0be3af1c8455..000000000000
--- a/linux-user/mips/syscall_nr.h
+++ /dev/null
@@ -1,425 +0,0 @@
-/*
- * Linux o32 style syscalls are in the range from 4000 to 4999.
- */
-
-#ifndef LINUX_USER_MIPS_SYSCALL_NR_H
-#define LINUX_USER_MIPS_SYSCALL_NR_H
-
-#define TARGET_NR_Linux			4000
-#define TARGET_NR_syscall		(TARGET_NR_Linux +   0)
-#define TARGET_NR_exit			(TARGET_NR_Linux +   1)
-#define TARGET_NR_fork			(TARGET_NR_Linux +   2)
-#define TARGET_NR_read			(TARGET_NR_Linux +   3)
-#define TARGET_NR_write			(TARGET_NR_Linux +   4)
-#define TARGET_NR_open			(TARGET_NR_Linux +   5)
-#define TARGET_NR_close			(TARGET_NR_Linux +   6)
-#define TARGET_NR_waitpid		(TARGET_NR_Linux +   7)
-#define TARGET_NR_creat			(TARGET_NR_Linux +   8)
-#define TARGET_NR_link			(TARGET_NR_Linux +   9)
-#define TARGET_NR_unlink		(TARGET_NR_Linux +  10)
-#define TARGET_NR_execve		(TARGET_NR_Linux +  11)
-#define TARGET_NR_chdir			(TARGET_NR_Linux +  12)
-#define TARGET_NR_time			(TARGET_NR_Linux +  13)
-#define TARGET_NR_mknod			(TARGET_NR_Linux +  14)
-#define TARGET_NR_chmod			(TARGET_NR_Linux +  15)
-#define TARGET_NR_lchown		(TARGET_NR_Linux +  16)
-#define TARGET_NR_break			(TARGET_NR_Linux +  17)
-#define TARGET_NR_unused18		(TARGET_NR_Linux +  18)
-#define TARGET_NR_lseek			(TARGET_NR_Linux +  19)
-#define TARGET_NR_getpid		(TARGET_NR_Linux +  20)
-#define TARGET_NR_mount			(TARGET_NR_Linux +  21)
-#define TARGET_NR_umount		(TARGET_NR_Linux +  22)
-#define TARGET_NR_setuid		(TARGET_NR_Linux +  23)
-#define TARGET_NR_getuid		(TARGET_NR_Linux +  24)
-#define TARGET_NR_stime			(TARGET_NR_Linux +  25)
-#define TARGET_NR_ptrace		(TARGET_NR_Linux +  26)
-#define TARGET_NR_alarm			(TARGET_NR_Linux +  27)
-#define TARGET_NR_unused28		(TARGET_NR_Linux +  28)
-#define TARGET_NR_pause			(TARGET_NR_Linux +  29)
-#define TARGET_NR_utime			(TARGET_NR_Linux +  30)
-#define TARGET_NR_stty			(TARGET_NR_Linux +  31)
-#define TARGET_NR_gtty			(TARGET_NR_Linux +  32)
-#define TARGET_NR_access		(TARGET_NR_Linux +  33)
-#define TARGET_NR_nice			(TARGET_NR_Linux +  34)
-#define TARGET_NR_ftime			(TARGET_NR_Linux +  35)
-#define TARGET_NR_sync			(TARGET_NR_Linux +  36)
-#define TARGET_NR_kill			(TARGET_NR_Linux +  37)
-#define TARGET_NR_rename		(TARGET_NR_Linux +  38)
-#define TARGET_NR_mkdir			(TARGET_NR_Linux +  39)
-#define TARGET_NR_rmdir			(TARGET_NR_Linux +  40)
-#define TARGET_NR_dup			(TARGET_NR_Linux +  41)
-#define TARGET_NR_pipe			(TARGET_NR_Linux +  42)
-#define TARGET_NR_times			(TARGET_NR_Linux +  43)
-#define TARGET_NR_prof			(TARGET_NR_Linux +  44)
-#define TARGET_NR_brk			(TARGET_NR_Linux +  45)
-#define TARGET_NR_setgid		(TARGET_NR_Linux +  46)
-#define TARGET_NR_getgid		(TARGET_NR_Linux +  47)
-#define TARGET_NR_signal		(TARGET_NR_Linux +  48)
-#define TARGET_NR_geteuid		(TARGET_NR_Linux +  49)
-#define TARGET_NR_getegid		(TARGET_NR_Linux +  50)
-#define TARGET_NR_acct			(TARGET_NR_Linux +  51)
-#define TARGET_NR_umount2		(TARGET_NR_Linux +  52)
-#define TARGET_NR_lock			(TARGET_NR_Linux +  53)
-#define TARGET_NR_ioctl			(TARGET_NR_Linux +  54)
-#define TARGET_NR_fcntl			(TARGET_NR_Linux +  55)
-#define TARGET_NR_mpx			(TARGET_NR_Linux +  56)
-#define TARGET_NR_setpgid		(TARGET_NR_Linux +  57)
-#define TARGET_NR_ulimit		(TARGET_NR_Linux +  58)
-#define TARGET_NR_unused59		(TARGET_NR_Linux +  59)
-#define TARGET_NR_umask			(TARGET_NR_Linux +  60)
-#define TARGET_NR_chroot		(TARGET_NR_Linux +  61)
-#define TARGET_NR_ustat			(TARGET_NR_Linux +  62)
-#define TARGET_NR_dup2			(TARGET_NR_Linux +  63)
-#define TARGET_NR_getppid		(TARGET_NR_Linux +  64)
-#define TARGET_NR_getpgrp		(TARGET_NR_Linux +  65)
-#define TARGET_NR_setsid		(TARGET_NR_Linux +  66)
-#define TARGET_NR_sigaction		(TARGET_NR_Linux +  67)
-#define TARGET_NR_sgetmask		(TARGET_NR_Linux +  68)
-#define TARGET_NR_ssetmask		(TARGET_NR_Linux +  69)
-#define TARGET_NR_setreuid		(TARGET_NR_Linux +  70)
-#define TARGET_NR_setregid		(TARGET_NR_Linux +  71)
-#define TARGET_NR_sigsuspend		(TARGET_NR_Linux +  72)
-#define TARGET_NR_sigpending		(TARGET_NR_Linux +  73)
-#define TARGET_NR_sethostname		(TARGET_NR_Linux +  74)
-#define TARGET_NR_setrlimit		(TARGET_NR_Linux +  75)
-#define TARGET_NR_getrlimit		(TARGET_NR_Linux +  76)
-#define TARGET_NR_getrusage		(TARGET_NR_Linux +  77)
-#define TARGET_NR_gettimeofday		(TARGET_NR_Linux +  78)
-#define TARGET_NR_settimeofday		(TARGET_NR_Linux +  79)
-#define TARGET_NR_getgroups		(TARGET_NR_Linux +  80)
-#define TARGET_NR_setgroups		(TARGET_NR_Linux +  81)
-#define TARGET_NR_reserved82		(TARGET_NR_Linux +  82)
-#define TARGET_NR_symlink		(TARGET_NR_Linux +  83)
-#define TARGET_NR_unused84		(TARGET_NR_Linux +  84)
-#define TARGET_NR_readlink		(TARGET_NR_Linux +  85)
-#define TARGET_NR_uselib		(TARGET_NR_Linux +  86)
-#define TARGET_NR_swapon		(TARGET_NR_Linux +  87)
-#define TARGET_NR_reboot		(TARGET_NR_Linux +  88)
-#define TARGET_NR_readdir		(TARGET_NR_Linux +  89)
-#define TARGET_NR_mmap			(TARGET_NR_Linux +  90)
-#define TARGET_NR_munmap		(TARGET_NR_Linux +  91)
-#define TARGET_NR_truncate		(TARGET_NR_Linux +  92)
-#define TARGET_NR_ftruncate		(TARGET_NR_Linux +  93)
-#define TARGET_NR_fchmod		(TARGET_NR_Linux +  94)
-#define TARGET_NR_fchown		(TARGET_NR_Linux +  95)
-#define TARGET_NR_getpriority		(TARGET_NR_Linux +  96)
-#define TARGET_NR_setpriority		(TARGET_NR_Linux +  97)
-#define TARGET_NR_profil		(TARGET_NR_Linux +  98)
-#define TARGET_NR_statfs		(TARGET_NR_Linux +  99)
-#define TARGET_NR_fstatfs		(TARGET_NR_Linux + 100)
-#define TARGET_NR_ioperm		(TARGET_NR_Linux + 101)
-#define TARGET_NR_socketcall		(TARGET_NR_Linux + 102)
-#define TARGET_NR_syslog		(TARGET_NR_Linux + 103)
-#define TARGET_NR_setitimer		(TARGET_NR_Linux + 104)
-#define TARGET_NR_getitimer		(TARGET_NR_Linux + 105)
-#define TARGET_NR_stat			(TARGET_NR_Linux + 106)
-#define TARGET_NR_lstat			(TARGET_NR_Linux + 107)
-#define TARGET_NR_fstat			(TARGET_NR_Linux + 108)
-#define TARGET_NR_unused109		(TARGET_NR_Linux + 109)
-#define TARGET_NR_iopl			(TARGET_NR_Linux + 110)
-#define TARGET_NR_vhangup		(TARGET_NR_Linux + 111)
-#define TARGET_NR_idle			(TARGET_NR_Linux + 112)
-#define TARGET_NR_vm86			(TARGET_NR_Linux + 113)
-#define TARGET_NR_wait4			(TARGET_NR_Linux + 114)
-#define TARGET_NR_swapoff		(TARGET_NR_Linux + 115)
-#define TARGET_NR_sysinfo		(TARGET_NR_Linux + 116)
-#define TARGET_NR_ipc			(TARGET_NR_Linux + 117)
-#define TARGET_NR_fsync			(TARGET_NR_Linux + 118)
-#define TARGET_NR_sigreturn		(TARGET_NR_Linux + 119)
-#define TARGET_NR_clone			(TARGET_NR_Linux + 120)
-#define TARGET_NR_setdomainname		(TARGET_NR_Linux + 121)
-#define TARGET_NR_uname			(TARGET_NR_Linux + 122)
-#define TARGET_NR_modify_ldt		(TARGET_NR_Linux + 123)
-#define TARGET_NR_adjtimex		(TARGET_NR_Linux + 124)
-#define TARGET_NR_mprotect		(TARGET_NR_Linux + 125)
-#define TARGET_NR_sigprocmask		(TARGET_NR_Linux + 126)
-#define TARGET_NR_create_module		(TARGET_NR_Linux + 127)
-#define TARGET_NR_init_module		(TARGET_NR_Linux + 128)
-#define TARGET_NR_delete_module		(TARGET_NR_Linux + 129)
-#define TARGET_NR_get_kernel_syms	(TARGET_NR_Linux + 130)
-#define TARGET_NR_quotactl		(TARGET_NR_Linux + 131)
-#define TARGET_NR_getpgid		(TARGET_NR_Linux + 132)
-#define TARGET_NR_fchdir		(TARGET_NR_Linux + 133)
-#define TARGET_NR_bdflush		(TARGET_NR_Linux + 134)
-#define TARGET_NR_sysfs			(TARGET_NR_Linux + 135)
-#define TARGET_NR_personality		(TARGET_NR_Linux + 136)
-#define TARGET_NR_afs_syscall		(TARGET_NR_Linux + 137) /* Syscall for Andrew File System */
-#define TARGET_NR_setfsuid		(TARGET_NR_Linux + 138)
-#define TARGET_NR_setfsgid		(TARGET_NR_Linux + 139)
-#define TARGET_NR__llseek		(TARGET_NR_Linux + 140)
-#define TARGET_NR_getdents		(TARGET_NR_Linux + 141)
-#define TARGET_NR__newselect		(TARGET_NR_Linux + 142)
-#define TARGET_NR_flock			(TARGET_NR_Linux + 143)
-#define TARGET_NR_msync			(TARGET_NR_Linux + 144)
-#define TARGET_NR_readv			(TARGET_NR_Linux + 145)
-#define TARGET_NR_writev		(TARGET_NR_Linux + 146)
-#define TARGET_NR_cacheflush		(TARGET_NR_Linux + 147)
-#define TARGET_NR_cachectl		(TARGET_NR_Linux + 148)
-#define TARGET_NR_sysmips		(TARGET_NR_Linux + 149)
-#define TARGET_NR_unused150		(TARGET_NR_Linux + 150)
-#define TARGET_NR_getsid		(TARGET_NR_Linux + 151)
-#define TARGET_NR_fdatasync		(TARGET_NR_Linux + 152)
-#define TARGET_NR__sysctl		(TARGET_NR_Linux + 153)
-#define TARGET_NR_mlock			(TARGET_NR_Linux + 154)
-#define TARGET_NR_munlock		(TARGET_NR_Linux + 155)
-#define TARGET_NR_mlockall		(TARGET_NR_Linux + 156)
-#define TARGET_NR_munlockall		(TARGET_NR_Linux + 157)
-#define TARGET_NR_sched_setparam	(TARGET_NR_Linux + 158)
-#define TARGET_NR_sched_getparam	(TARGET_NR_Linux + 159)
-#define TARGET_NR_sched_setscheduler	(TARGET_NR_Linux + 160)
-#define TARGET_NR_sched_getscheduler	(TARGET_NR_Linux + 161)
-#define TARGET_NR_sched_yield		(TARGET_NR_Linux + 162)
-#define TARGET_NR_sched_get_priority_max	(TARGET_NR_Linux + 163)
-#define TARGET_NR_sched_get_priority_min	(TARGET_NR_Linux + 164)
-#define TARGET_NR_sched_rr_get_interval	(TARGET_NR_Linux + 165)
-#define TARGET_NR_nanosleep		(TARGET_NR_Linux + 166)
-#define TARGET_NR_mremap		(TARGET_NR_Linux + 167)
-#define TARGET_NR_accept		(TARGET_NR_Linux + 168)
-#define TARGET_NR_bind			(TARGET_NR_Linux + 169)
-#define TARGET_NR_connect		(TARGET_NR_Linux + 170)
-#define TARGET_NR_getpeername		(TARGET_NR_Linux + 171)
-#define TARGET_NR_getsockname		(TARGET_NR_Linux + 172)
-#define TARGET_NR_getsockopt		(TARGET_NR_Linux + 173)
-#define TARGET_NR_listen		(TARGET_NR_Linux + 174)
-#define TARGET_NR_recv			(TARGET_NR_Linux + 175)
-#define TARGET_NR_recvfrom		(TARGET_NR_Linux + 176)
-#define TARGET_NR_recvmsg		(TARGET_NR_Linux + 177)
-#define TARGET_NR_send			(TARGET_NR_Linux + 178)
-#define TARGET_NR_sendmsg		(TARGET_NR_Linux + 179)
-#define TARGET_NR_sendto		(TARGET_NR_Linux + 180)
-#define TARGET_NR_setsockopt		(TARGET_NR_Linux + 181)
-#define TARGET_NR_shutdown		(TARGET_NR_Linux + 182)
-#define TARGET_NR_socket		(TARGET_NR_Linux + 183)
-#define TARGET_NR_socketpair		(TARGET_NR_Linux + 184)
-#define TARGET_NR_setresuid		(TARGET_NR_Linux + 185)
-#define TARGET_NR_getresuid		(TARGET_NR_Linux + 186)
-#define TARGET_NR_query_module		(TARGET_NR_Linux + 187)
-#define TARGET_NR_poll			(TARGET_NR_Linux + 188)
-#define TARGET_NR_nfsservctl		(TARGET_NR_Linux + 189)
-#define TARGET_NR_setresgid		(TARGET_NR_Linux + 190)
-#define TARGET_NR_getresgid		(TARGET_NR_Linux + 191)
-#define TARGET_NR_prctl			(TARGET_NR_Linux + 192)
-#define TARGET_NR_rt_sigreturn		(TARGET_NR_Linux + 193)
-#define TARGET_NR_rt_sigaction		(TARGET_NR_Linux + 194)
-#define TARGET_NR_rt_sigprocmask	(TARGET_NR_Linux + 195)
-#define TARGET_NR_rt_sigpending		(TARGET_NR_Linux + 196)
-#define TARGET_NR_rt_sigtimedwait	(TARGET_NR_Linux + 197)
-#define TARGET_NR_rt_sigqueueinfo	(TARGET_NR_Linux + 198)
-#define TARGET_NR_rt_sigsuspend		(TARGET_NR_Linux + 199)
-#define TARGET_NR_pread64		(TARGET_NR_Linux + 200)
-#define TARGET_NR_pwrite64		(TARGET_NR_Linux + 201)
-#define TARGET_NR_chown 		(TARGET_NR_Linux + 202)
-#define TARGET_NR_getcwd		(TARGET_NR_Linux + 203)
-#define TARGET_NR_capget		(TARGET_NR_Linux + 204)
-#define TARGET_NR_capset		(TARGET_NR_Linux + 205)
-#define TARGET_NR_sigaltstack		(TARGET_NR_Linux + 206)
-#define TARGET_NR_sendfile		(TARGET_NR_Linux + 207)
-#define TARGET_NR_getpmsg		(TARGET_NR_Linux + 208)
-#define TARGET_NR_putpmsg		(TARGET_NR_Linux + 209)
-#define TARGET_NR_mmap2			(TARGET_NR_Linux + 210)
-#define TARGET_NR_truncate64		(TARGET_NR_Linux + 211)
-#define TARGET_NR_ftruncate64		(TARGET_NR_Linux + 212)
-#define TARGET_NR_stat64		(TARGET_NR_Linux + 213)
-#define TARGET_NR_lstat64		(TARGET_NR_Linux + 214)
-#define TARGET_NR_fstat64		(TARGET_NR_Linux + 215)
-#define TARGET_NR_pivot_root		(TARGET_NR_Linux + 216)
-#define TARGET_NR_mincore		(TARGET_NR_Linux + 217)
-#define TARGET_NR_madvise		(TARGET_NR_Linux + 218)
-#define TARGET_NR_getdents64		(TARGET_NR_Linux + 219)
-#define TARGET_NR_fcntl64		(TARGET_NR_Linux + 220)
-#define TARGET_NR_reserved221		(TARGET_NR_Linux + 221)
-#define TARGET_NR_gettid		(TARGET_NR_Linux + 222)
-#define TARGET_NR_readahead		(TARGET_NR_Linux + 223)
-#define TARGET_NR_setxattr		(TARGET_NR_Linux + 224)
-#define TARGET_NR_lsetxattr		(TARGET_NR_Linux + 225)
-#define TARGET_NR_fsetxattr		(TARGET_NR_Linux + 226)
-#define TARGET_NR_getxattr		(TARGET_NR_Linux + 227)
-#define TARGET_NR_lgetxattr		(TARGET_NR_Linux + 228)
-#define TARGET_NR_fgetxattr		(TARGET_NR_Linux + 229)
-#define TARGET_NR_listxattr		(TARGET_NR_Linux + 230)
-#define TARGET_NR_llistxattr		(TARGET_NR_Linux + 231)
-#define TARGET_NR_flistxattr		(TARGET_NR_Linux + 232)
-#define TARGET_NR_removexattr		(TARGET_NR_Linux + 233)
-#define TARGET_NR_lremovexattr		(TARGET_NR_Linux + 234)
-#define TARGET_NR_fremovexattr		(TARGET_NR_Linux + 235)
-#define TARGET_NR_tkill			(TARGET_NR_Linux + 236)
-#define TARGET_NR_sendfile64		(TARGET_NR_Linux + 237)
-#define TARGET_NR_futex			(TARGET_NR_Linux + 238)
-#define TARGET_NR_sched_setaffinity	(TARGET_NR_Linux + 239)
-#define TARGET_NR_sched_getaffinity	(TARGET_NR_Linux + 240)
-#define TARGET_NR_io_setup		(TARGET_NR_Linux + 241)
-#define TARGET_NR_io_destroy		(TARGET_NR_Linux + 242)
-#define TARGET_NR_io_getevents		(TARGET_NR_Linux + 243)
-#define TARGET_NR_io_submit		(TARGET_NR_Linux + 244)
-#define TARGET_NR_io_cancel		(TARGET_NR_Linux + 245)
-#define TARGET_NR_exit_group		(TARGET_NR_Linux + 246)
-#define TARGET_NR_lookup_dcookie	(TARGET_NR_Linux + 247)
-#define TARGET_NR_epoll_create		(TARGET_NR_Linux + 248)
-#define TARGET_NR_epoll_ctl		(TARGET_NR_Linux + 249)
-#define TARGET_NR_epoll_wait		(TARGET_NR_Linux + 250)
-#define TARGET_NR_remap_file_pages	(TARGET_NR_Linux + 251)
-#define TARGET_NR_set_tid_address	(TARGET_NR_Linux + 252)
-#define TARGET_NR_restart_syscall	(TARGET_NR_Linux + 253)
-#define TARGET_NR_fadvise64_64          (TARGET_NR_Linux + 254)
-#define TARGET_NR_statfs64		(TARGET_NR_Linux + 255)
-#define TARGET_NR_fstatfs64		(TARGET_NR_Linux + 256)
-#define TARGET_NR_timer_create		(TARGET_NR_Linux + 257)
-#define TARGET_NR_timer_settime		(TARGET_NR_Linux + 258)
-#define TARGET_NR_timer_gettime		(TARGET_NR_Linux + 259)
-#define TARGET_NR_timer_getoverrun	(TARGET_NR_Linux + 260)
-#define TARGET_NR_timer_delete		(TARGET_NR_Linux + 261)
-#define TARGET_NR_clock_settime		(TARGET_NR_Linux + 262)
-#define TARGET_NR_clock_gettime		(TARGET_NR_Linux + 263)
-#define TARGET_NR_clock_getres		(TARGET_NR_Linux + 264)
-#define TARGET_NR_clock_nanosleep	(TARGET_NR_Linux + 265)
-#define TARGET_NR_tgkill		(TARGET_NR_Linux + 266)
-#define TARGET_NR_utimes		(TARGET_NR_Linux + 267)
-#define TARGET_NR_mbind			(TARGET_NR_Linux + 268)
-#define TARGET_NR_get_mempolicy		(TARGET_NR_Linux + 269)
-#define TARGET_NR_set_mempolicy		(TARGET_NR_Linux + 270)
-#define TARGET_NR_mq_open		(TARGET_NR_Linux + 271)
-#define TARGET_NR_mq_unlink		(TARGET_NR_Linux + 272)
-#define TARGET_NR_mq_timedsend		(TARGET_NR_Linux + 273)
-#define TARGET_NR_mq_timedreceive	(TARGET_NR_Linux + 274)
-#define TARGET_NR_mq_notify		(TARGET_NR_Linux + 275)
-#define TARGET_NR_mq_getsetattr		(TARGET_NR_Linux + 276)
-#define TARGET_NR_vserver		(TARGET_NR_Linux + 277)
-#define TARGET_NR_waitid		(TARGET_NR_Linux + 278)
-/* #define TARGET_NR_sys_setaltroot	(TARGET_NR_Linux + 279) */
-#define TARGET_NR_add_key		(TARGET_NR_Linux + 280)
-#define TARGET_NR_request_key		(TARGET_NR_Linux + 281)
-#define TARGET_NR_keyctl		(TARGET_NR_Linux + 282)
-#define TARGET_NR_set_thread_area	(TARGET_NR_Linux + 283)
-#define TARGET_NR_inotify_init		(TARGET_NR_Linux + 284)
-#define TARGET_NR_inotify_add_watch	(TARGET_NR_Linux + 285)
-#define TARGET_NR_inotify_rm_watch	(TARGET_NR_Linux + 286)
-#define TARGET_NR_migrate_pages		(TARGET_NR_Linux + 287)
-#define TARGET_NR_openat		(TARGET_NR_Linux + 288)
-#define TARGET_NR_mkdirat		(TARGET_NR_Linux + 289)
-#define TARGET_NR_mknodat		(TARGET_NR_Linux + 290)
-#define TARGET_NR_fchownat		(TARGET_NR_Linux + 291)
-#define TARGET_NR_futimesat		(TARGET_NR_Linux + 292)
-#define TARGET_NR_fstatat64		(TARGET_NR_Linux + 293)
-#define TARGET_NR_unlinkat		(TARGET_NR_Linux + 294)
-#define TARGET_NR_renameat		(TARGET_NR_Linux + 295)
-#define TARGET_NR_linkat		(TARGET_NR_Linux + 296)
-#define TARGET_NR_symlinkat		(TARGET_NR_Linux + 297)
-#define TARGET_NR_readlinkat		(TARGET_NR_Linux + 298)
-#define TARGET_NR_fchmodat		(TARGET_NR_Linux + 299)
-#define TARGET_NR_faccessat		(TARGET_NR_Linux + 300)
-#define TARGET_NR_pselect6		(TARGET_NR_Linux + 301)
-#define TARGET_NR_ppoll			(TARGET_NR_Linux + 302)
-#define TARGET_NR_unshare		(TARGET_NR_Linux + 303)
-#define TARGET_NR_splice		(TARGET_NR_Linux + 304)
-#define TARGET_NR_sync_file_range	(TARGET_NR_Linux + 305)
-#define TARGET_NR_tee			(TARGET_NR_Linux + 306)
-#define TARGET_NR_vmsplice		(TARGET_NR_Linux + 307)
-#define TARGET_NR_move_pages		(TARGET_NR_Linux + 308)
-#define TARGET_NR_set_robust_list	(TARGET_NR_Linux + 309)
-#define TARGET_NR_get_robust_list	(TARGET_NR_Linux + 310)
-#define TARGET_NR_kexec_load		(TARGET_NR_Linux + 311)
-#define TARGET_NR_getcpu		(TARGET_NR_Linux + 312)
-#define TARGET_NR_epoll_pwait		(TARGET_NR_Linux + 313)
-#define TARGET_NR_ioprio_set		(TARGET_NR_Linux + 314)
-#define TARGET_NR_ioprio_get		(TARGET_NR_Linux + 315)
-#define TARGET_NR_utimensat		(TARGET_NR_Linux + 316)
-#define TARGET_NR_signalfd		(TARGET_NR_Linux + 317)
-#define TARGET_NR_timerfd		(TARGET_NR_Linux + 318)
-#define TARGET_NR_eventfd		(TARGET_NR_Linux + 319)
-#define TARGET_NR_fallocate		(TARGET_NR_Linux + 320)
-#define TARGET_NR_timerfd_create	(TARGET_NR_Linux + 321)
-#define TARGET_NR_timerfd_gettime	(TARGET_NR_Linux + 322)
-#define TARGET_NR_timerfd_settime	(TARGET_NR_Linux + 323)
-#define TARGET_NR_signalfd4		(TARGET_NR_Linux + 324)
-#define TARGET_NR_eventfd2		(TARGET_NR_Linux + 325)
-#define TARGET_NR_epoll_create1	(TARGET_NR_Linux + 326)
-#define TARGET_NR_dup3			(TARGET_NR_Linux + 327)
-#define TARGET_NR_pipe2		(TARGET_NR_Linux + 328)
-#define TARGET_NR_inotify_init1	(TARGET_NR_Linux + 329)
-#define TARGET_NR_preadv                (TARGET_NR_Linux + 330)
-#define TARGET_NR_pwritev               (TARGET_NR_Linux + 331)
-#define TARGET_NR_rt_tgsigqueueinfo     (TARGET_NR_Linux + 332)
-#define TARGET_NR_perf_event_open       (TARGET_NR_Linux + 333)
-#define TARGET_NR_accept4               (TARGET_NR_Linux + 334)
-#define TARGET_NR_recvmmsg              (TARGET_NR_Linux + 335)
-#define TARGET_NR_fanotify_init         (TARGET_NR_Linux + 336)
-#define TARGET_NR_fanotify_mark         (TARGET_NR_Linux + 337)
-#define TARGET_NR_prlimit64             (TARGET_NR_Linux + 338)
-#define TARGET_NR_name_to_handle_at     (TARGET_NR_Linux + 339)
-#define TARGET_NR_open_by_handle_at     (TARGET_NR_Linux + 340)
-#define TARGET_NR_clock_adjtime         (TARGET_NR_Linux + 341)
-#define TARGET_NR_syncfs                (TARGET_NR_Linux + 342)
-#define TARGET_NR_sendmmsg              (TARGET_NR_Linux + 343)
-#define TARGET_NR_setns                 (TARGET_NR_Linux + 344)
-#define TARGET_NR_process_vm_readv      (TARGET_NR_Linux + 345)
-#define TARGET_NR_process_vm_writev     (TARGET_NR_Linux + 346)
-#define TARGET_NR_kcmp                  (TARGET_NR_Linux + 347)
-#define TARGET_NR_finit_module          (TARGET_NR_Linux + 348)
-
-#define TARGET_NR_sched_setattr         (TARGET_NR_Linux + 349)
-#define TARGET_NR_sched_getattr         (TARGET_NR_Linux + 350)
-#define TARGET_NR_renameat2             (TARGET_NR_Linux + 351)
-#define TARGET_NR_seccomp               (TARGET_NR_Linux + 352)
-#define TARGET_NR_getrandom             (TARGET_NR_Linux + 353)
-#define TARGET_NR_memfd_create          (TARGET_NR_Linux + 354)
-#define TARGET_NR_bpf                   (TARGET_NR_Linux + 355)
-#define TARGET_NR_execveat              (TARGET_NR_Linux + 356)
-#define TARGET_NR_userfaultfd           (TARGET_NR_Linux + 357)
-#define TARGET_NR_membarrier            (TARGET_NR_Linux + 358)
-#define TARGET_NR_mlock2                (TARGET_NR_Linux + 359)
-#define TARGET_NR_copy_file_range       (TARGET_NR_Linux + 360)
-#define TARGET_NR_preadv2               (TARGET_NR_Linux + 361)
-#define TARGET_NR_pwritev2              (TARGET_NR_Linux + 362)
-#define TARGET_NR_pkey_mprotect         (TARGET_NR_Linux + 363)
-#define TARGET_NR_pkey_alloc            (TARGET_NR_Linux + 364)
-#define TARGET_NR_pkey_free             (TARGET_NR_Linux + 365)
-#define TARGET_NR_statx                 (TARGET_NR_Linux + 366)
-#define TARGET_NR_rseq                  (TARGET_NR_Linux + 367)
-#define TARGET_NR_io_pgetevents         (TARGET_NR_Linux + 368)
-/* room for arch specific calls */
-#define TARGET_NR_semget                (TARGET_NR_Linux + 393)
-#define TARGET_NR_semctl                (TARGET_NR_Linux + 394)
-#define TARGET_NR_shmget                (TARGET_NR_Linux + 395)
-#define TARGET_NR_shmctl                (TARGET_NR_Linux + 396)
-#define TARGET_NR_shmat                 (TARGET_NR_Linux + 397)
-#define TARGET_NR_shmdt                 (TARGET_NR_Linux + 398)
-#define TARGET_NR_msgget                (TARGET_NR_Linux + 399)
-#define TARGET_NR_msgsnd                (TARGET_NR_Linux + 400)
-#define TARGET_NR_msgrcv                (TARGET_NR_Linux + 401)
-#define TARGET_NR_msgctl                (TARGET_NR_Linux + 402)
-/* 403-423 common for 32-bit archs */
-#define TARGET_NR_clock_gettime64              (TARGET_NR_Linux + 403)
-#define TARGET_NR_clock_settime64              (TARGET_NR_Linux + 404)
-#define TARGET_NR_clock_adjtime64              (TARGET_NR_Linux + 405)
-#define TARGET_NR_clock_getres_time64          (TARGET_NR_Linux + 406)
-#define TARGET_NR_clock_nanosleep_time64       (TARGET_NR_Linux + 407)
-#define TARGET_NR_timer_gettime64              (TARGET_NR_Linux + 408)
-#define TARGET_NR_timer_settime64              (TARGET_NR_Linux + 409)
-#define TARGET_NR_timerfd_gettime64            (TARGET_NR_Linux + 410)
-#define TARGET_NR_timerfd_settime64            (TARGET_NR_Linux + 411)
-#define TARGET_NR_utimensat_time64             (TARGET_NR_Linux + 412)
-#define TARGET_NR_pselect6_time64              (TARGET_NR_Linux + 413)
-#define TARGET_NR_ppoll_time64                 (TARGET_NR_Linux + 414)
-#define TARGET_NR_io_pgetevents_time64         (TARGET_NR_Linux + 416)
-#define TARGET_NR_recvmmsg_time64              (TARGET_NR_Linux + 417)
-#define TARGET_NR_mq_timedsend_time64          (TARGET_NR_Linux + 418)
-#define TARGET_NR_mq_timedreceive_time64       (TARGET_NR_Linux + 419)
-#define TARGET_NR_semtimedop_time64            (TARGET_NR_Linux + 420)
-#define TARGET_NR_rt_sigtimedwait_time64       (TARGET_NR_Linux + 421)
-#define TARGET_NR_futex_time64                 (TARGET_NR_Linux + 422)
-#define TARGET_NR_sched_rr_get_interval_time64 (TARGET_NR_Linux + 423)
-/* 424 onwards common for all archs */
-#define TARGET_NR_pidfd_send_signal            (TARGET_NR_Linux + 424)
-#define TARGET_NR_io_uring_setup               (TARGET_NR_Linux + 425)
-#define TARGET_NR_io_uring_enter               (TARGET_NR_Linux + 426)
-#define TARGET_NR_io_uring_register            (TARGET_NR_Linux + 427)
-#define TARGET_NR_open_tree                    (TARGET_NR_Linux + 428)
-#define TARGET_NR_move_mount                   (TARGET_NR_Linux + 429)
-#define TARGET_NR_fsopen                       (TARGET_NR_Linux + 430)
-#define TARGET_NR_fsconfig                     (TARGET_NR_Linux + 431)
-#define TARGET_NR_fsmount                      (TARGET_NR_Linux + 432)
-#define TARGET_NR_fspick                       (TARGET_NR_Linux + 433)
-#define TARGET_NR_pidfd_open                   (TARGET_NR_Linux + 434)
-#define TARGET_NR_clone3                       (TARGET_NR_Linux + 435)
-
-#endif
diff --git a/linux-user/mips/syscall_o32.tbl b/linux-user/mips/syscall_o32.tbl
new file mode 100644
index 000000000000..353539ea4140
--- /dev/null
+++ b/linux-user/mips/syscall_o32.tbl
@@ -0,0 +1,425 @@
+# SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
+#
+# system call numbers and entry vectors for mips
+#
+# The format is:
+# <number> <abi> <name> <entry point> <compat entry point>
+#
+# The <abi> is always "o32" for this file.
+#
+0	o32	syscall				sys_syscall			sys32_syscall
+1	o32	exit				sys_exit
+2	o32	fork				__sys_fork
+3	o32	read				sys_read
+4	o32	write				sys_write
+5	o32	open				sys_open			compat_sys_open
+6	o32	close				sys_close
+7	o32	waitpid				sys_waitpid
+8	o32	creat				sys_creat
+9	o32	link				sys_link
+10	o32	unlink				sys_unlink
+11	o32	execve				sys_execve			compat_sys_execve
+12	o32	chdir				sys_chdir
+13	o32	time				sys_time32
+14	o32	mknod				sys_mknod
+15	o32	chmod				sys_chmod
+16	o32	lchown				sys_lchown
+17	o32	break				sys_ni_syscall
+# 18 was sys_stat
+18	o32	unused18			sys_ni_syscall
+19	o32	lseek				sys_lseek
+20	o32	getpid				sys_getpid
+21	o32	mount				sys_mount			compat_sys_mount
+22	o32	umount				sys_oldumount
+23	o32	setuid				sys_setuid
+24	o32	getuid				sys_getuid
+25	o32	stime				sys_stime32
+26	o32	ptrace				sys_ptrace			compat_sys_ptrace
+27	o32	alarm				sys_alarm
+# 28 was sys_fstat
+28	o32	unused28			sys_ni_syscall
+29	o32	pause				sys_pause
+30	o32	utime				sys_utime32
+31	o32	stty				sys_ni_syscall
+32	o32	gtty				sys_ni_syscall
+33	o32	access				sys_access
+34	o32	nice				sys_nice
+35	o32	ftime				sys_ni_syscall
+36	o32	sync				sys_sync
+37	o32	kill				sys_kill
+38	o32	rename				sys_rename
+39	o32	mkdir				sys_mkdir
+40	o32	rmdir				sys_rmdir
+41	o32	dup				sys_dup
+42	o32	pipe				sysm_pipe
+43	o32	times				sys_times			compat_sys_times
+44	o32	prof				sys_ni_syscall
+45	o32	brk				sys_brk
+46	o32	setgid				sys_setgid
+47	o32	getgid				sys_getgid
+48	o32	signal				sys_ni_syscall
+49	o32	geteuid				sys_geteuid
+50	o32	getegid				sys_getegid
+51	o32	acct				sys_acct
+52	o32	umount2				sys_umount
+53	o32	lock				sys_ni_syscall
+54	o32	ioctl				sys_ioctl			compat_sys_ioctl
+55	o32	fcntl				sys_fcntl			compat_sys_fcntl
+56	o32	mpx				sys_ni_syscall
+57	o32	setpgid				sys_setpgid
+58	o32	ulimit				sys_ni_syscall
+59	o32	unused59			sys_olduname
+60	o32	umask				sys_umask
+61	o32	chroot				sys_chroot
+62	o32	ustat				sys_ustat			compat_sys_ustat
+63	o32	dup2				sys_dup2
+64	o32	getppid				sys_getppid
+65	o32	getpgrp				sys_getpgrp
+66	o32	setsid				sys_setsid
+67	o32	sigaction			sys_sigaction			sys_32_sigaction
+68	o32	sgetmask			sys_sgetmask
+69	o32	ssetmask			sys_ssetmask
+70	o32	setreuid			sys_setreuid
+71	o32	setregid			sys_setregid
+72	o32	sigsuspend			sys_sigsuspend			sys32_sigsuspend
+73	o32	sigpending			sys_sigpending			compat_sys_sigpending
+74	o32	sethostname			sys_sethostname
+75	o32	setrlimit			sys_setrlimit			compat_sys_setrlimit
+76	o32	getrlimit			sys_getrlimit			compat_sys_getrlimit
+77	o32	getrusage			sys_getrusage			compat_sys_getrusage
+78	o32	gettimeofday			sys_gettimeofday		compat_sys_gettimeofday
+79	o32	settimeofday			sys_settimeofday		compat_sys_settimeofday
+80	o32	getgroups			sys_getgroups
+81	o32	setgroups			sys_setgroups
+# 82 was old_select
+82	o32	reserved82			sys_ni_syscall
+83	o32	symlink				sys_symlink
+# 84 was sys_lstat
+84	o32	unused84			sys_ni_syscall
+85	o32	readlink			sys_readlink
+86	o32	uselib				sys_uselib
+87	o32	swapon				sys_swapon
+88	o32	reboot				sys_reboot
+89	o32	readdir				sys_old_readdir			compat_sys_old_readdir
+90	o32	mmap				sys_mips_mmap
+91	o32	munmap				sys_munmap
+92	o32	truncate			sys_truncate			compat_sys_truncate
+93	o32	ftruncate			sys_ftruncate			compat_sys_ftruncate
+94	o32	fchmod				sys_fchmod
+95	o32	fchown				sys_fchown
+96	o32	getpriority			sys_getpriority
+97	o32	setpriority			sys_setpriority
+98	o32	profil				sys_ni_syscall
+99	o32	statfs				sys_statfs			compat_sys_statfs
+100	o32	fstatfs				sys_fstatfs			compat_sys_fstatfs
+101	o32	ioperm				sys_ni_syscall
+102	o32	socketcall			sys_socketcall			compat_sys_socketcall
+103	o32	syslog				sys_syslog
+104	o32	setitimer			sys_setitimer			compat_sys_setitimer
+105	o32	getitimer			sys_getitimer			compat_sys_getitimer
+106	o32	stat				sys_newstat			compat_sys_newstat
+107	o32	lstat				sys_newlstat			compat_sys_newlstat
+108	o32	fstat				sys_newfstat			compat_sys_newfstat
+109	o32	unused109			sys_uname
+110	o32	iopl				sys_ni_syscall
+111	o32	vhangup				sys_vhangup
+112	o32	idle				sys_ni_syscall
+113	o32	vm86				sys_ni_syscall
+114	o32	wait4				sys_wait4			compat_sys_wait4
+115	o32	swapoff				sys_swapoff
+116	o32	sysinfo				sys_sysinfo			compat_sys_sysinfo
+117	o32	ipc				sys_ipc				compat_sys_ipc
+118	o32	fsync				sys_fsync
+119	o32	sigreturn			sys_sigreturn			sys32_sigreturn
+120	o32	clone				__sys_clone
+121	o32	setdomainname			sys_setdomainname
+122	o32	uname				sys_newuname
+123	o32	modify_ldt			sys_ni_syscall
+124	o32	adjtimex			sys_adjtimex_time32
+125	o32	mprotect			sys_mprotect
+126	o32	sigprocmask			sys_sigprocmask			compat_sys_sigprocmask
+127	o32	create_module			sys_ni_syscall
+128	o32	init_module			sys_init_module
+129	o32	delete_module			sys_delete_module
+130	o32	get_kernel_syms			sys_ni_syscall
+131	o32	quotactl			sys_quotactl
+132	o32	getpgid				sys_getpgid
+133	o32	fchdir				sys_fchdir
+134	o32	bdflush				sys_bdflush
+135	o32	sysfs				sys_sysfs
+136	o32	personality			sys_personality			sys_32_personality
+137	o32	afs_syscall			sys_ni_syscall
+138	o32	setfsuid			sys_setfsuid
+139	o32	setfsgid			sys_setfsgid
+140	o32	_llseek				sys_llseek			sys_32_llseek
+141	o32	getdents			sys_getdents			compat_sys_getdents
+142	o32	_newselect			sys_select			compat_sys_select
+143	o32	flock				sys_flock
+144	o32	msync				sys_msync
+145	o32	readv				sys_readv			compat_sys_readv
+146	o32	writev				sys_writev			compat_sys_writev
+147	o32	cacheflush			sys_cacheflush
+148	o32	cachectl			sys_cachectl
+149	o32	sysmips				__sys_sysmips
+150	o32	unused150			sys_ni_syscall
+151	o32	getsid				sys_getsid
+152	o32	fdatasync			sys_fdatasync
+153	o32	_sysctl				sys_sysctl			compat_sys_sysctl
+154	o32	mlock				sys_mlock
+155	o32	munlock				sys_munlock
+156	o32	mlockall			sys_mlockall
+157	o32	munlockall			sys_munlockall
+158	o32	sched_setparam			sys_sched_setparam
+159	o32	sched_getparam			sys_sched_getparam
+160	o32	sched_setscheduler		sys_sched_setscheduler
+161	o32	sched_getscheduler		sys_sched_getscheduler
+162	o32	sched_yield			sys_sched_yield
+163	o32	sched_get_priority_max		sys_sched_get_priority_max
+164	o32	sched_get_priority_min		sys_sched_get_priority_min
+165	o32	sched_rr_get_interval		sys_sched_rr_get_interval_time32
+166	o32	nanosleep			sys_nanosleep_time32
+167	o32	mremap				sys_mremap
+168	o32	accept				sys_accept
+169	o32	bind				sys_bind
+170	o32	connect				sys_connect
+171	o32	getpeername			sys_getpeername
+172	o32	getsockname			sys_getsockname
+173	o32	getsockopt			sys_getsockopt			compat_sys_getsockopt
+174	o32	listen				sys_listen
+175	o32	recv				sys_recv			compat_sys_recv
+176	o32	recvfrom			sys_recvfrom			compat_sys_recvfrom
+177	o32	recvmsg				sys_recvmsg			compat_sys_recvmsg
+178	o32	send				sys_send
+179	o32	sendmsg				sys_sendmsg			compat_sys_sendmsg
+180	o32	sendto				sys_sendto
+181	o32	setsockopt			sys_setsockopt			compat_sys_setsockopt
+182	o32	shutdown			sys_shutdown
+183	o32	socket				sys_socket
+184	o32	socketpair			sys_socketpair
+185	o32	setresuid			sys_setresuid
+186	o32	getresuid			sys_getresuid
+187	o32	query_module			sys_ni_syscall
+188	o32	poll				sys_poll
+189	o32	nfsservctl			sys_ni_syscall
+190	o32	setresgid			sys_setresgid
+191	o32	getresgid			sys_getresgid
+192	o32	prctl				sys_prctl
+193	o32	rt_sigreturn			sys_rt_sigreturn		sys32_rt_sigreturn
+194	o32	rt_sigaction			sys_rt_sigaction		compat_sys_rt_sigaction
+195	o32	rt_sigprocmask			sys_rt_sigprocmask		compat_sys_rt_sigprocmask
+196	o32	rt_sigpending			sys_rt_sigpending		compat_sys_rt_sigpending
+197	o32	rt_sigtimedwait			sys_rt_sigtimedwait_time32	compat_sys_rt_sigtimedwait_time32
+198	o32	rt_sigqueueinfo			sys_rt_sigqueueinfo		compat_sys_rt_sigqueueinfo
+199	o32	rt_sigsuspend			sys_rt_sigsuspend		compat_sys_rt_sigsuspend
+200	o32	pread64				sys_pread64			sys_32_pread
+201	o32	pwrite64			sys_pwrite64			sys_32_pwrite
+202	o32	chown				sys_chown
+203	o32	getcwd				sys_getcwd
+204	o32	capget				sys_capget
+205	o32	capset				sys_capset
+206	o32	sigaltstack			sys_sigaltstack			compat_sys_sigaltstack
+207	o32	sendfile			sys_sendfile			compat_sys_sendfile
+208	o32	getpmsg				sys_ni_syscall
+209	o32	putpmsg				sys_ni_syscall
+210	o32	mmap2				sys_mips_mmap2
+211	o32	truncate64			sys_truncate64			sys_32_truncate64
+212	o32	ftruncate64			sys_ftruncate64			sys_32_ftruncate64
+213	o32	stat64				sys_stat64			sys_newstat
+214	o32	lstat64				sys_lstat64			sys_newlstat
+215	o32	fstat64				sys_fstat64			sys_newfstat
+216	o32	pivot_root			sys_pivot_root
+217	o32	mincore				sys_mincore
+218	o32	madvise				sys_madvise
+219	o32	getdents64			sys_getdents64
+220	o32	fcntl64				sys_fcntl64			compat_sys_fcntl64
+221	o32	reserved221			sys_ni_syscall
+222	o32	gettid				sys_gettid
+223	o32	readahead			sys_readahead			sys32_readahead
+224	o32	setxattr			sys_setxattr
+225	o32	lsetxattr			sys_lsetxattr
+226	o32	fsetxattr			sys_fsetxattr
+227	o32	getxattr			sys_getxattr
+228	o32	lgetxattr			sys_lgetxattr
+229	o32	fgetxattr			sys_fgetxattr
+230	o32	listxattr			sys_listxattr
+231	o32	llistxattr			sys_llistxattr
+232	o32	flistxattr			sys_flistxattr
+233	o32	removexattr			sys_removexattr
+234	o32	lremovexattr			sys_lremovexattr
+235	o32	fremovexattr			sys_fremovexattr
+236	o32	tkill				sys_tkill
+237	o32	sendfile64			sys_sendfile64
+238	o32	futex				sys_futex_time32
+239	o32	sched_setaffinity		sys_sched_setaffinity		compat_sys_sched_setaffinity
+240	o32	sched_getaffinity		sys_sched_getaffinity		compat_sys_sched_getaffinity
+241	o32	io_setup			sys_io_setup			compat_sys_io_setup
+242	o32	io_destroy			sys_io_destroy
+243	o32	io_getevents			sys_io_getevents_time32
+244	o32	io_submit			sys_io_submit			compat_sys_io_submit
+245	o32	io_cancel			sys_io_cancel
+246	o32	exit_group			sys_exit_group
+247	o32	lookup_dcookie			sys_lookup_dcookie		compat_sys_lookup_dcookie
+248	o32	epoll_create			sys_epoll_create
+249	o32	epoll_ctl			sys_epoll_ctl
+250	o32	epoll_wait			sys_epoll_wait
+251	o32	remap_file_pages		sys_remap_file_pages
+252	o32	set_tid_address			sys_set_tid_address
+253	o32	restart_syscall			sys_restart_syscall
+254	o32	fadvise64			sys_fadvise64_64		sys32_fadvise64_64
+255	o32	statfs64			sys_statfs64			compat_sys_statfs64
+256	o32	fstatfs64			sys_fstatfs64			compat_sys_fstatfs64
+257	o32	timer_create			sys_timer_create		compat_sys_timer_create
+258	o32	timer_settime			sys_timer_settime32
+259	o32	timer_gettime			sys_timer_gettime32
+260	o32	timer_getoverrun		sys_timer_getoverrun
+261	o32	timer_delete			sys_timer_delete
+262	o32	clock_settime			sys_clock_settime32
+263	o32	clock_gettime			sys_clock_gettime32
+264	o32	clock_getres			sys_clock_getres_time32
+265	o32	clock_nanosleep			sys_clock_nanosleep_time32
+266	o32	tgkill				sys_tgkill
+267	o32	utimes				sys_utimes_time32
+268	o32	mbind				sys_mbind			compat_sys_mbind
+269	o32	get_mempolicy			sys_get_mempolicy		compat_sys_get_mempolicy
+270	o32	set_mempolicy			sys_set_mempolicy		compat_sys_set_mempolicy
+271	o32	mq_open				sys_mq_open			compat_sys_mq_open
+272	o32	mq_unlink			sys_mq_unlink
+273	o32	mq_timedsend			sys_mq_timedsend_time32
+274	o32	mq_timedreceive			sys_mq_timedreceive_time32
+275	o32	mq_notify			sys_mq_notify			compat_sys_mq_notify
+276	o32	mq_getsetattr			sys_mq_getsetattr		compat_sys_mq_getsetattr
+277	o32	vserver				sys_ni_syscall
+278	o32	waitid				sys_waitid			compat_sys_waitid
+# 279 was sys_setaltroot
+280	o32	add_key				sys_add_key
+281	o32	request_key			sys_request_key
+282	o32	keyctl				sys_keyctl			compat_sys_keyctl
+283	o32	set_thread_area			sys_set_thread_area
+284	o32	inotify_init			sys_inotify_init
+285	o32	inotify_add_watch		sys_inotify_add_watch
+286	o32	inotify_rm_watch		sys_inotify_rm_watch
+287	o32	migrate_pages			sys_migrate_pages		compat_sys_migrate_pages
+288	o32	openat				sys_openat			compat_sys_openat
+289	o32	mkdirat				sys_mkdirat
+290	o32	mknodat				sys_mknodat
+291	o32	fchownat			sys_fchownat
+292	o32	futimesat			sys_futimesat_time32
+293	o32	fstatat64			sys_fstatat64			sys_newfstatat
+294	o32	unlinkat			sys_unlinkat
+295	o32	renameat			sys_renameat
+296	o32	linkat				sys_linkat
+297	o32	symlinkat			sys_symlinkat
+298	o32	readlinkat			sys_readlinkat
+299	o32	fchmodat			sys_fchmodat
+300	o32	faccessat			sys_faccessat
+301	o32	pselect6			sys_pselect6_time32		compat_sys_pselect6_time32
+302	o32	ppoll				sys_ppoll_time32		compat_sys_ppoll_time32
+303	o32	unshare				sys_unshare
+304	o32	splice				sys_splice
+305	o32	sync_file_range			sys_sync_file_range		sys32_sync_file_range
+306	o32	tee				sys_tee
+307	o32	vmsplice			sys_vmsplice			compat_sys_vmsplice
+308	o32	move_pages			sys_move_pages			compat_sys_move_pages
+309	o32	set_robust_list			sys_set_robust_list		compat_sys_set_robust_list
+310	o32	get_robust_list			sys_get_robust_list		compat_sys_get_robust_list
+311	o32	kexec_load			sys_kexec_load			compat_sys_kexec_load
+312	o32	getcpu				sys_getcpu
+313	o32	epoll_pwait			sys_epoll_pwait			compat_sys_epoll_pwait
+314	o32	ioprio_set			sys_ioprio_set
+315	o32	ioprio_get			sys_ioprio_get
+316	o32	utimensat			sys_utimensat_time32
+317	o32	signalfd			sys_signalfd			compat_sys_signalfd
+318	o32	timerfd				sys_ni_syscall
+319	o32	eventfd				sys_eventfd
+320	o32	fallocate			sys_fallocate			sys32_fallocate
+321	o32	timerfd_create			sys_timerfd_create
+322	o32	timerfd_gettime			sys_timerfd_gettime32
+323	o32	timerfd_settime			sys_timerfd_settime32
+324	o32	signalfd4			sys_signalfd4			compat_sys_signalfd4
+325	o32	eventfd2			sys_eventfd2
+326	o32	epoll_create1			sys_epoll_create1
+327	o32	dup3				sys_dup3
+328	o32	pipe2				sys_pipe2
+329	o32	inotify_init1			sys_inotify_init1
+330	o32	preadv				sys_preadv			compat_sys_preadv
+331	o32	pwritev				sys_pwritev			compat_sys_pwritev
+332	o32	rt_tgsigqueueinfo		sys_rt_tgsigqueueinfo		compat_sys_rt_tgsigqueueinfo
+333	o32	perf_event_open			sys_perf_event_open
+334	o32	accept4				sys_accept4
+335	o32	recvmmsg			sys_recvmmsg_time32		compat_sys_recvmmsg_time32
+336	o32	fanotify_init			sys_fanotify_init
+337	o32	fanotify_mark			sys_fanotify_mark		compat_sys_fanotify_mark
+338	o32	prlimit64			sys_prlimit64
+339	o32	name_to_handle_at		sys_name_to_handle_at
+340	o32	open_by_handle_at		sys_open_by_handle_at		compat_sys_open_by_handle_at
+341	o32	clock_adjtime			sys_clock_adjtime32
+342	o32	syncfs				sys_syncfs
+343	o32	sendmmsg			sys_sendmmsg			compat_sys_sendmmsg
+344	o32	setns				sys_setns
+345	o32	process_vm_readv		sys_process_vm_readv		compat_sys_process_vm_readv
+346	o32	process_vm_writev		sys_process_vm_writev		compat_sys_process_vm_writev
+347	o32	kcmp				sys_kcmp
+348	o32	finit_module			sys_finit_module
+349	o32	sched_setattr			sys_sched_setattr
+350	o32	sched_getattr			sys_sched_getattr
+351	o32	renameat2			sys_renameat2
+352	o32	seccomp				sys_seccomp
+353	o32	getrandom			sys_getrandom
+354	o32	memfd_create			sys_memfd_create
+355	o32	bpf				sys_bpf
+356	o32	execveat			sys_execveat			compat_sys_execveat
+357	o32	userfaultfd			sys_userfaultfd
+358	o32	membarrier			sys_membarrier
+359	o32	mlock2				sys_mlock2
+360	o32	copy_file_range			sys_copy_file_range
+361	o32	preadv2				sys_preadv2			compat_sys_preadv2
+362	o32	pwritev2			sys_pwritev2			compat_sys_pwritev2
+363	o32	pkey_mprotect			sys_pkey_mprotect
+364	o32	pkey_alloc			sys_pkey_alloc
+365	o32	pkey_free			sys_pkey_free
+366	o32	statx				sys_statx
+367	o32	rseq				sys_rseq
+368	o32	io_pgetevents			sys_io_pgetevents_time32	compat_sys_io_pgetevents
+# room for arch specific calls
+393	o32	semget				sys_semget
+394	o32	semctl				sys_semctl			compat_sys_semctl
+395	o32	shmget				sys_shmget
+396	o32	shmctl				sys_shmctl			compat_sys_shmctl
+397	o32	shmat				sys_shmat			compat_sys_shmat
+398	o32	shmdt				sys_shmdt
+399	o32	msgget				sys_msgget
+400	o32	msgsnd				sys_msgsnd			compat_sys_msgsnd
+401	o32	msgrcv				sys_msgrcv			compat_sys_msgrcv
+402	o32	msgctl				sys_msgctl			compat_sys_msgctl
+403	o32	clock_gettime64			sys_clock_gettime		sys_clock_gettime
+404	o32	clock_settime64			sys_clock_settime		sys_clock_settime
+405	o32	clock_adjtime64			sys_clock_adjtime		sys_clock_adjtime
+406	o32	clock_getres_time64		sys_clock_getres		sys_clock_getres
+407	o32	clock_nanosleep_time64		sys_clock_nanosleep		sys_clock_nanosleep
+408	o32	timer_gettime64			sys_timer_gettime		sys_timer_gettime
+409	o32	timer_settime64			sys_timer_settime		sys_timer_settime
+410	o32	timerfd_gettime64		sys_timerfd_gettime		sys_timerfd_gettime
+411	o32	timerfd_settime64		sys_timerfd_settime		sys_timerfd_settime
+412	o32	utimensat_time64		sys_utimensat			sys_utimensat
+413	o32	pselect6_time64			sys_pselect6			compat_sys_pselect6_time64
+414	o32	ppoll_time64			sys_ppoll			compat_sys_ppoll_time64
+416	o32	io_pgetevents_time64		sys_io_pgetevents		sys_io_pgetevents
+417	o32	recvmmsg_time64			sys_recvmmsg			compat_sys_recvmmsg_time64
+418	o32	mq_timedsend_time64		sys_mq_timedsend		sys_mq_timedsend
+419	o32	mq_timedreceive_time64		sys_mq_timedreceive		sys_mq_timedreceive
+420	o32	semtimedop_time64		sys_semtimedop			sys_semtimedop
+421	o32	rt_sigtimedwait_time64		sys_rt_sigtimedwait		compat_sys_rt_sigtimedwait_time64
+422	o32	futex_time64			sys_futex			sys_futex
+423	o32	sched_rr_get_interval_time64	sys_sched_rr_get_interval	sys_sched_rr_get_interval
+424	o32	pidfd_send_signal		sys_pidfd_send_signal
+425	o32	io_uring_setup			sys_io_uring_setup
+426	o32	io_uring_enter			sys_io_uring_enter
+427	o32	io_uring_register		sys_io_uring_register
+428	o32	open_tree			sys_open_tree
+429	o32	move_mount			sys_move_mount
+430	o32	fsopen				sys_fsopen
+431	o32	fsconfig			sys_fsconfig
+432	o32	fsmount				sys_fsmount
+433	o32	fspick				sys_fspick
+434	o32	pidfd_open			sys_pidfd_open
+435	o32	clone3				__sys_clone3
diff --git a/linux-user/mips/syscallhdr.sh b/linux-user/mips/syscallhdr.sh
new file mode 100644
index 000000000000..761e3e47dda2
--- /dev/null
+++ b/linux-user/mips/syscallhdr.sh
@@ -0,0 +1,36 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+
+in="$1"
+out="$2"
+my_abis=`echo "($3)" | tr ',' '|'`
+prefix="$4"
+offset="$5"
+
+fileguard=LINUX_USER_MIPS_`basename "$out" | sed \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \
+    -e 's/[^A-Z0-9_]/_/g' -e 's/__/_/g'`
+grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
+    printf "#ifndef %s\n" "${fileguard}"
+    printf "#define %s\n" "${fileguard}"
+    printf "\n"
+
+    nxt=0
+    while read nr abi name entry compat ; do
+        if [ "$name" = "fadvise64" ] ; then
+            name="fadvise64_64"
+        fi
+        if [ -z "$offset" ]; then
+            printf "#define TARGET_NR_%s%s\t%s\n" \
+                "${prefix}" "${name}" "${nr}"
+        else
+            printf "#define TARGET_NR_%s%s\t(%s + %s)\n" \
+                "${prefix}" "${name}" "${offset}" "${nr}"
+        fi
+        nxt=$((nr+1))
+    done
+
+    printf "\n"
+    printf "#endif /* %s */" "${fileguard}"
+    printf "\n"
+) > "$out"
-- 
2.24.1



  parent reply	other threads:[~2020-02-19 22:12 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-19 22:03 [PATCH v2 00/20] linux-user: generate syscall_nr.sh Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 01/20] linux-user: introduce parameters to generate syscall_nr.h Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 02/20] linux-user, alpha: add syscall table generation support Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 03/20] linux-user, hppa: " Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 04/20] linux-user, m68k: " Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 05/20] linux-user, xtensa: " Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 06/20] linux-user, sh4: " Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 07/20] linux-user, microblaze: " Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 08/20] linux-user, arm: " Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 09/20] linux-user, ppc: " Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 10/20] linux-user, s390x: remove syscall definitions for !TARGET_S390X Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 11/20] linux-user, s390x: add syscall table generation support Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 12/20] linux-user, sparc, sparc64: " Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 13/20] linux-user, i386: " Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 14/20] linux-user, x86_64: " Laurent Vivier
2020-02-19 22:03 ` Laurent Vivier [this message]
2020-02-19 22:03 ` [PATCH v2 16/20] linux-user, mips64: " Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 17/20] linux-user, scripts: add a script to update syscall.tbl Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 18/20] linux-user: update syscall.tbl from linux 0bf999f9c5e7 Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 19/20] linux-user,mips: move content of mips_syscall_args Laurent Vivier
2020-02-19 22:03 ` [PATCH v2 20/20] linux-user,mips: update syscall-args-o32.c.inc Laurent Vivier
2020-02-21 13:45 ` [PATCH v2 00/20] linux-user: generate syscall_nr.sh Peter Maydell
2020-02-21 13:56   ` Peter Maydell
2020-02-21 14:37     ` Laurent Vivier
2020-02-21 14:29   ` Laurent Vivier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200219220333.1411905-16-laurent@vivier.eu \
    --to=laurent@vivier.eu \
    --cc=aleksandar.rikalo@rt-rk.com \
    --cc=amarkovic@wavecomp.com \
    --cc=aurelien@aurel32.net \
    --cc=cohuck@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    --cc=riku.voipio@iki.fi \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.