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 05/20] linux-user, xtensa: add syscall table generation support
Date: Wed, 19 Feb 2020 23:03:18 +0100	[thread overview]
Message-ID: <20200219220333.1411905-6-laurent@vivier.eu> (raw)
In-Reply-To: <20200219220333.1411905-1-laurent@vivier.eu>

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

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/xtensa/Makefile.objs |   5 +
 linux-user/xtensa/syscall.tbl   | 408 +++++++++++++++++++++++++++
 linux-user/xtensa/syscall_nr.h  | 469 --------------------------------
 linux-user/xtensa/syscallhdr.sh |  32 +++
 6 files changed, 448 insertions(+), 470 deletions(-)
 create mode 100644 linux-user/xtensa/Makefile.objs
 create mode 100644 linux-user/xtensa/syscall.tbl
 delete mode 100644 linux-user/xtensa/syscall_nr.h
 create mode 100644 linux-user/xtensa/syscallhdr.sh

diff --git a/configure b/configure
index 7f1af37f552a..deb112b06f36 100755
--- a/configure
+++ b/configure
@@ -1857,7 +1857,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 ; do
+for arch in alpha hppa m68k xtensa ; 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
@@ -7814,6 +7814,7 @@ case "$target_name" in
   ;;
   xtensa|xtensaeb)
     TARGET_ARCH=xtensa
+    TARGET_SYSTBL_ABI=common
     bflt="yes"
     mttcg="yes"
   ;;
diff --git a/linux-user/Makefile.objs b/linux-user/Makefile.objs
index ac74b23683cf..13b821baf752 100644
--- a/linux-user/Makefile.objs
+++ b/linux-user/Makefile.objs
@@ -12,3 +12,4 @@ obj-$(TARGET_AARCH64) += arm/semihost.o
 obj-$(TARGET_ALPHA) += alpha/
 obj-$(TARGET_HPPA) += hppa/
 obj-$(TARGET_M68K) += m68k/
+obj-$(TARGET_XTENSA) += xtensa/
diff --git a/linux-user/xtensa/Makefile.objs b/linux-user/xtensa/Makefile.objs
new file mode 100644
index 000000000000..d4be1b745544
--- /dev/null
+++ b/linux-user/xtensa/Makefile.objs
@@ -0,0 +1,5 @@
+generated-files-y += linux-user/xtensa/syscall_nr.h
+
+syshdr := $(SRC_PATH)/linux-user/xtensa/syscallhdr.sh
+%/syscall_nr.h: $(SRC_PATH)/linux-user/xtensa/syscall.tbl $(syshdr)
+	$(call quiet-command, sh $(syshdr) $< $@ $(TARGET_SYSTBL_ABI),"GEN","$@")
diff --git a/linux-user/xtensa/syscall.tbl b/linux-user/xtensa/syscall.tbl
new file mode 100644
index 000000000000..25f4de729a6d
--- /dev/null
+++ b/linux-user/xtensa/syscall.tbl
@@ -0,0 +1,408 @@
+# SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
+#
+# system call numbers and entry vectors for xtensa
+#
+# The format is:
+# <number> <abi> <name> <entry point>
+#
+# The <abi> is always "common" for this file
+#
+0	common	spill				sys_ni_syscall
+1	common	xtensa				sys_ni_syscall
+2	common	available4			sys_ni_syscall
+3	common	available5			sys_ni_syscall
+4	common	available6			sys_ni_syscall
+5	common	available7			sys_ni_syscall
+6	common	available8			sys_ni_syscall
+7	common	available9			sys_ni_syscall
+# File Operations
+8	common	open				sys_open
+9	common	close				sys_close
+10	common	dup				sys_dup
+11	common	dup2				sys_dup2
+12	common	read				sys_read
+13	common	write				sys_write
+14	common	select				sys_select
+15	common	lseek				sys_lseek
+16	common	poll				sys_poll
+17	common	_llseek				sys_llseek
+18	common	epoll_wait			sys_epoll_wait
+19	common	epoll_ctl			sys_epoll_ctl
+20	common	epoll_create			sys_epoll_create
+21	common	creat				sys_creat
+22	common	truncate			sys_truncate
+23	common	ftruncate			sys_ftruncate
+24	common	readv				sys_readv
+25	common	writev				sys_writev
+26	common	fsync				sys_fsync
+27	common	fdatasync			sys_fdatasync
+28	common	truncate64			sys_truncate64
+29	common	ftruncate64			sys_ftruncate64
+30	common	pread64				sys_pread64
+31	common	pwrite64			sys_pwrite64
+32	common	link				sys_link
+33	common	rename				sys_rename
+34	common	symlink				sys_symlink
+35	common	readlink			sys_readlink
+36	common	mknod				sys_mknod
+37	common	pipe				sys_pipe
+38	common	unlink				sys_unlink
+39	common	rmdir				sys_rmdir
+40	common	mkdir				sys_mkdir
+41	common	chdir				sys_chdir
+42	common	fchdir				sys_fchdir
+43	common	getcwd				sys_getcwd
+44	common	chmod				sys_chmod
+45	common	chown				sys_chown
+46	common	stat				sys_newstat
+47	common	stat64				sys_stat64
+48	common	lchown				sys_lchown
+49	common	lstat				sys_newlstat
+50	common	lstat64				sys_lstat64
+51	common	available51			sys_ni_syscall
+52	common	fchmod				sys_fchmod
+53	common	fchown				sys_fchown
+54	common	fstat				sys_newfstat
+55	common	fstat64				sys_fstat64
+56	common	flock				sys_flock
+57	common	access				sys_access
+58	common	umask				sys_umask
+59	common	getdents			sys_getdents
+60	common	getdents64			sys_getdents64
+61	common	fcntl64				sys_fcntl64
+62	common	fallocate			sys_fallocate
+63	common	fadvise64_64			xtensa_fadvise64_64
+64	common	utime				sys_utime32
+65	common	utimes				sys_utimes_time32
+66	common	ioctl				sys_ioctl
+67	common	fcntl				sys_fcntl
+68	common	setxattr			sys_setxattr
+69	common	getxattr			sys_getxattr
+70	common	listxattr			sys_listxattr
+71	common	removexattr			sys_removexattr
+72	common	lsetxattr			sys_lsetxattr
+73	common	lgetxattr			sys_lgetxattr
+74	common	llistxattr			sys_llistxattr
+75	common	lremovexattr			sys_lremovexattr
+76	common	fsetxattr			sys_fsetxattr
+77	common	fgetxattr			sys_fgetxattr
+78	common	flistxattr			sys_flistxattr
+79	common	fremovexattr			sys_fremovexattr
+# File Map / Shared Memory Operations
+80	common	mmap2				sys_mmap_pgoff
+81	common	munmap				sys_munmap
+82	common	mprotect			sys_mprotect
+83	common	brk				sys_brk
+84	common	mlock				sys_mlock
+85	common	munlock				sys_munlock
+86	common	mlockall			sys_mlockall
+87	common	munlockall			sys_munlockall
+88	common	mremap				sys_mremap
+89	common	msync				sys_msync
+90	common	mincore				sys_mincore
+91	common	madvise				sys_madvise
+92	common	shmget				sys_shmget
+93	common	shmat				xtensa_shmat
+94	common	shmctl				sys_old_shmctl
+95	common	shmdt				sys_shmdt
+# Socket Operations
+96	common	socket				sys_socket
+97	common	setsockopt			sys_setsockopt
+98	common	getsockopt			sys_getsockopt
+99	common	shutdown			sys_shutdown
+100	common	bind				sys_bind
+101	common	connect				sys_connect
+102	common	listen				sys_listen
+103	common	accept				sys_accept
+104	common	getsockname			sys_getsockname
+105	common	getpeername			sys_getpeername
+106	common	sendmsg				sys_sendmsg
+107	common	recvmsg				sys_recvmsg
+108	common	send				sys_send
+109	common	recv				sys_recv
+110	common	sendto				sys_sendto
+111	common	recvfrom			sys_recvfrom
+112	common	socketpair			sys_socketpair
+113	common	sendfile			sys_sendfile
+114	common	sendfile64			sys_sendfile64
+115	common	sendmmsg			sys_sendmmsg
+# Process Operations
+116	common	clone				sys_clone
+117	common	execve				sys_execve
+118	common	exit				sys_exit
+119	common	exit_group			sys_exit_group
+120	common	getpid				sys_getpid
+121	common	wait4				sys_wait4
+122	common	waitid				sys_waitid
+123	common	kill				sys_kill
+124	common	tkill				sys_tkill
+125	common	tgkill				sys_tgkill
+126	common	set_tid_address			sys_set_tid_address
+127	common	gettid				sys_gettid
+128	common	setsid				sys_setsid
+129	common	getsid				sys_getsid
+130	common	prctl				sys_prctl
+131	common	personality			sys_personality
+132	common	getpriority			sys_getpriority
+133	common	setpriority			sys_setpriority
+134	common	setitimer			sys_setitimer
+135	common	getitimer			sys_getitimer
+136	common	setuid				sys_setuid
+137	common	getuid				sys_getuid
+138	common	setgid				sys_setgid
+139	common	getgid				sys_getgid
+140	common	geteuid				sys_geteuid
+141	common	getegid				sys_getegid
+142	common	setreuid			sys_setreuid
+143	common	setregid			sys_setregid
+144	common	setresuid			sys_setresuid
+145	common	getresuid			sys_getresuid
+146	common	setresgid			sys_setresgid
+147	common	getresgid			sys_getresgid
+148	common	setpgid				sys_setpgid
+149	common	getpgid				sys_getpgid
+150	common	getppid				sys_getppid
+151	common	getpgrp				sys_getpgrp
+# 152 was set_thread_area
+152	common	reserved152			sys_ni_syscall
+# 153 was get_thread_area
+153	common	reserved153			sys_ni_syscall
+154	common	times				sys_times
+155	common	acct				sys_acct
+156	common	sched_setaffinity		sys_sched_setaffinity
+157	common	sched_getaffinity		sys_sched_getaffinity
+158	common	capget				sys_capget
+159	common	capset				sys_capset
+160	common	ptrace				sys_ptrace
+161	common	semtimedop			sys_semtimedop_time32
+162	common	semget				sys_semget
+163	common	semop				sys_semop
+164	common	semctl				sys_old_semctl
+165	common	available165			sys_ni_syscall
+166	common	msgget				sys_msgget
+167	common	msgsnd				sys_msgsnd
+168	common	msgrcv				sys_msgrcv
+169	common	msgctl				sys_old_msgctl
+170	common	available170			sys_ni_syscall
+# File System
+171	common	umount2				sys_umount
+172	common	mount				sys_mount
+173	common	swapon				sys_swapon
+174	common	chroot				sys_chroot
+175	common	pivot_root			sys_pivot_root
+176	common	umount				sys_oldumount
+177	common	swapoff				sys_swapoff
+178	common	sync				sys_sync
+179	common	syncfs				sys_syncfs
+180	common	setfsuid			sys_setfsuid
+181	common	setfsgid			sys_setfsgid
+182	common	sysfs				sys_sysfs
+183	common	ustat				sys_ustat
+184	common	statfs				sys_statfs
+185	common	fstatfs				sys_fstatfs
+186	common	statfs64			sys_statfs64
+187	common	fstatfs64			sys_fstatfs64
+# System
+188	common	setrlimit			sys_setrlimit
+189	common	getrlimit			sys_getrlimit
+190	common	getrusage			sys_getrusage
+191	common	futex				sys_futex_time32
+192	common	gettimeofday			sys_gettimeofday
+193	common	settimeofday			sys_settimeofday
+194	common	adjtimex			sys_adjtimex_time32
+195	common	nanosleep			sys_nanosleep_time32
+196	common	getgroups			sys_getgroups
+197	common	setgroups			sys_setgroups
+198	common	sethostname			sys_sethostname
+199	common	setdomainname			sys_setdomainname
+200	common	syslog				sys_syslog
+201	common	vhangup				sys_vhangup
+202	common	uselib				sys_uselib
+203	common	reboot				sys_reboot
+204	common	quotactl			sys_quotactl
+# 205 was old nfsservctl
+205	common	nfsservctl			sys_ni_syscall
+206	common	_sysctl				sys_sysctl
+207	common	bdflush				sys_bdflush
+208	common	uname				sys_newuname
+209	common	sysinfo				sys_sysinfo
+210	common	init_module			sys_init_module
+211	common	delete_module			sys_delete_module
+212	common	sched_setparam			sys_sched_setparam
+213	common	sched_getparam			sys_sched_getparam
+214	common	sched_setscheduler		sys_sched_setscheduler
+215	common	sched_getscheduler		sys_sched_getscheduler
+216	common	sched_get_priority_max		sys_sched_get_priority_max
+217	common	sched_get_priority_min		sys_sched_get_priority_min
+218	common	sched_rr_get_interval		sys_sched_rr_get_interval_time32
+219	common	sched_yield			sys_sched_yield
+222	common	available222			sys_ni_syscall
+# Signal Handling
+223	common	restart_syscall			sys_restart_syscall
+224	common	sigaltstack			sys_sigaltstack
+225	common	rt_sigreturn			xtensa_rt_sigreturn
+226	common	rt_sigaction			sys_rt_sigaction
+227	common	rt_sigprocmask			sys_rt_sigprocmask
+228	common	rt_sigpending			sys_rt_sigpending
+229	common	rt_sigtimedwait			sys_rt_sigtimedwait_time32
+230	common	rt_sigqueueinfo			sys_rt_sigqueueinfo
+231	common	rt_sigsuspend			sys_rt_sigsuspend
+# Message
+232	common	mq_open				sys_mq_open
+233	common	mq_unlink			sys_mq_unlink
+234	common	mq_timedsend			sys_mq_timedsend_time32
+235	common	mq_timedreceive			sys_mq_timedreceive_time32
+236	common	mq_notify			sys_mq_notify
+237	common	mq_getsetattr			sys_mq_getsetattr
+238	common	available238			sys_ni_syscall
+239	common	io_setup			sys_io_setup
+# IO
+240	common	io_destroy			sys_io_destroy
+241	common	io_submit			sys_io_submit
+242	common	io_getevents			sys_io_getevents_time32
+243	common	io_cancel			sys_io_cancel
+244	common	clock_settime			sys_clock_settime32
+245	common	clock_gettime			sys_clock_gettime32
+246	common	clock_getres			sys_clock_getres_time32
+247	common	clock_nanosleep			sys_clock_nanosleep_time32
+# Timer
+248	common	timer_create			sys_timer_create
+249	common	timer_delete			sys_timer_delete
+250	common	timer_settime			sys_timer_settime32
+251	common	timer_gettime			sys_timer_gettime32
+252	common	timer_getoverrun		sys_timer_getoverrun
+# System
+253	common	reserved253			sys_ni_syscall
+254	common	lookup_dcookie			sys_lookup_dcookie
+255	common	available255			sys_ni_syscall
+256	common	add_key				sys_add_key
+257	common	request_key			sys_request_key
+258	common	keyctl				sys_keyctl
+259	common	available259			sys_ni_syscall
+260	common	readahead			sys_readahead
+261	common	remap_file_pages		sys_remap_file_pages
+262	common	migrate_pages			sys_migrate_pages
+263	common	mbind				sys_mbind
+264	common	get_mempolicy			sys_get_mempolicy
+265	common	set_mempolicy			sys_set_mempolicy
+266	common	unshare				sys_unshare
+267	common	move_pages			sys_move_pages
+268	common	splice				sys_splice
+269	common	tee				sys_tee
+270	common	vmsplice			sys_vmsplice
+271	common	available271			sys_ni_syscall
+272	common	pselect6			sys_pselect6_time32
+273	common	ppoll				sys_ppoll_time32
+274	common	epoll_pwait			sys_epoll_pwait
+275	common	epoll_create1			sys_epoll_create1
+276	common	inotify_init			sys_inotify_init
+277	common	inotify_add_watch		sys_inotify_add_watch
+278	common	inotify_rm_watch		sys_inotify_rm_watch
+279	common	inotify_init1			sys_inotify_init1
+280	common	getcpu				sys_getcpu
+281	common	kexec_load			sys_ni_syscall
+282	common	ioprio_set			sys_ioprio_set
+283	common	ioprio_get			sys_ioprio_get
+284	common	set_robust_list			sys_set_robust_list
+285	common	get_robust_list			sys_get_robust_list
+286	common	available286			sys_ni_syscall
+287	common	available287			sys_ni_syscall
+# Relative File Operations
+288	common	openat				sys_openat
+289	common	mkdirat				sys_mkdirat
+290	common	mknodat				sys_mknodat
+291	common	unlinkat			sys_unlinkat
+292	common	renameat			sys_renameat
+293	common	linkat				sys_linkat
+294	common	symlinkat			sys_symlinkat
+295	common	readlinkat			sys_readlinkat
+296	common	utimensat			sys_utimensat_time32
+297	common	fchownat			sys_fchownat
+298	common	futimesat			sys_futimesat_time32
+299	common	fstatat64			sys_fstatat64
+300	common	fchmodat			sys_fchmodat
+301	common	faccessat			sys_faccessat
+302	common	available302			sys_ni_syscall
+303	common	available303			sys_ni_syscall
+304	common	signalfd			sys_signalfd
+# 305 was timerfd
+306	common	eventfd				sys_eventfd
+307	common	recvmmsg			sys_recvmmsg_time32
+308	common	setns				sys_setns
+309	common	signalfd4			sys_signalfd4
+310	common	dup3				sys_dup3
+311	common	pipe2				sys_pipe2
+312	common	timerfd_create			sys_timerfd_create
+313	common	timerfd_settime			sys_timerfd_settime32
+314	common	timerfd_gettime			sys_timerfd_gettime32
+315	common	available315			sys_ni_syscall
+316	common	eventfd2			sys_eventfd2
+317	common	preadv				sys_preadv
+318	common	pwritev				sys_pwritev
+319	common	available319			sys_ni_syscall
+320	common	fanotify_init			sys_fanotify_init
+321	common	fanotify_mark			sys_fanotify_mark
+322	common	process_vm_readv		sys_process_vm_readv
+323	common	process_vm_writev		sys_process_vm_writev
+324	common	name_to_handle_at		sys_name_to_handle_at
+325	common	open_by_handle_at		sys_open_by_handle_at
+326	common	sync_file_range2		sys_sync_file_range2
+327	common	perf_event_open			sys_perf_event_open
+328	common	rt_tgsigqueueinfo		sys_rt_tgsigqueueinfo
+329	common	clock_adjtime			sys_clock_adjtime32
+330	common	prlimit64			sys_prlimit64
+331	common	kcmp				sys_kcmp
+332	common	finit_module			sys_finit_module
+333	common	accept4				sys_accept4
+334	common	sched_setattr			sys_sched_setattr
+335	common	sched_getattr			sys_sched_getattr
+336	common	renameat2			sys_renameat2
+337	common	seccomp				sys_seccomp
+338	common	getrandom			sys_getrandom
+339	common	memfd_create			sys_memfd_create
+340	common	bpf				sys_bpf
+341	common	execveat			sys_execveat
+342	common	userfaultfd			sys_userfaultfd
+343	common	membarrier			sys_membarrier
+344	common	mlock2				sys_mlock2
+345	common	copy_file_range			sys_copy_file_range
+346	common	preadv2				sys_preadv2
+347	common	pwritev2			sys_pwritev2
+348	common	pkey_mprotect			sys_pkey_mprotect
+349	common	pkey_alloc			sys_pkey_alloc
+350	common	pkey_free			sys_pkey_free
+351	common	statx				sys_statx
+352	common	rseq				sys_rseq
+# 353 through 402 are unassigned to sync up with generic numbers
+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/xtensa/syscall_nr.h b/linux-user/xtensa/syscall_nr.h
deleted file mode 100644
index 39bff65dca08..000000000000
--- a/linux-user/xtensa/syscall_nr.h
+++ /dev/null
@@ -1,469 +0,0 @@
-/*
- * include/asm-xtensa/unistd.h
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 2001 - 2009 Tensilica Inc.
- */
-
-#ifndef XTENSA_SYSCALL_NR_H
-#define XTENSA_SYSCALL_NR_H
-
-#define TARGET_NR_spill                                0
-#define TARGET_NR_xtensa                               1
-#define TARGET_NR_available4                           2
-#define TARGET_NR_available5                           3
-#define TARGET_NR_available6                           4
-#define TARGET_NR_available7                           5
-#define TARGET_NR_available8                           6
-#define TARGET_NR_available9                           7
-
-/* File Operations */
-
-#define TARGET_NR_open                                 8
-#define TARGET_NR_close                                9
-#define TARGET_NR_dup                                 10
-#define TARGET_NR_dup2                                11
-#define TARGET_NR_read                                12
-#define TARGET_NR_write                               13
-#define TARGET_NR_select                              14
-#define TARGET_NR_lseek                               15
-#define TARGET_NR_poll                                16
-#define TARGET_NR__llseek                             17
-#define TARGET_NR_epoll_wait                          18
-#define TARGET_NR_epoll_ctl                           19
-#define TARGET_NR_epoll_create                        20
-#define TARGET_NR_creat                               21
-#define TARGET_NR_truncate                            22
-#define TARGET_NR_ftruncate                           23
-#define TARGET_NR_readv                               24
-#define TARGET_NR_writev                              25
-#define TARGET_NR_fsync                               26
-#define TARGET_NR_fdatasync                           27
-#define TARGET_NR_truncate64                          28
-#define TARGET_NR_ftruncate64                         29
-#define TARGET_NR_pread64                             30
-#define TARGET_NR_pwrite64                            31
-
-#define TARGET_NR_link                                32
-#define TARGET_NR_rename                              33
-#define TARGET_NR_symlink                             34
-#define TARGET_NR_readlink                            35
-#define TARGET_NR_mknod                               36
-#define TARGET_NR_pipe                                37
-#define TARGET_NR_unlink                              38
-#define TARGET_NR_rmdir                               39
-
-#define TARGET_NR_mkdir                               40
-#define TARGET_NR_chdir                               41
-#define TARGET_NR_fchdir                              42
-#define TARGET_NR_getcwd                              43
-
-#define TARGET_NR_chmod                               44
-#define TARGET_NR_chown                               45
-#define TARGET_NR_stat                                46
-#define TARGET_NR_stat64                              47
-
-#define TARGET_NR_lchown                              48
-#define TARGET_NR_lstat                               49
-#define TARGET_NR_lstat64                             50
-#define TARGET_NR_available51                         51
-
-#define TARGET_NR_fchmod                              52
-#define TARGET_NR_fchown                              53
-#define TARGET_NR_fstat                               54
-#define TARGET_NR_fstat64                             55
-
-#define TARGET_NR_flock                               56
-#define TARGET_NR_access                              57
-#define TARGET_NR_umask                               58
-#define TARGET_NR_getdents                            59
-#define TARGET_NR_getdents64                          60
-#define TARGET_NR_fcntl64                             61
-#define TARGET_NR_fallocate                           62
-#define TARGET_NR_fadvise64_64                        63
-#define TARGET_NR_utime                               64     /* glibc 2.3.3 ?? */
-#define TARGET_NR_utimes                              65
-#define TARGET_NR_ioctl                               66
-#define TARGET_NR_fcntl                               67
-
-#define TARGET_NR_setxattr                            68
-#define TARGET_NR_getxattr                            69
-#define TARGET_NR_listxattr                           70
-#define TARGET_NR_removexattr                         71
-#define TARGET_NR_lsetxattr                           72
-#define TARGET_NR_lgetxattr                           73
-#define TARGET_NR_llistxattr                          74
-#define TARGET_NR_lremovexattr                        75
-#define TARGET_NR_fsetxattr                           76
-#define TARGET_NR_fgetxattr                           77
-#define TARGET_NR_flistxattr                          78
-#define TARGET_NR_fremovexattr                        79
-
-/* File Map / Shared Memory Operations */
-
-#define TARGET_NR_mmap2                               80
-#define TARGET_NR_munmap                              81
-#define TARGET_NR_mprotect                            82
-#define TARGET_NR_brk                                 83
-#define TARGET_NR_mlock                               84
-#define TARGET_NR_munlock                             85
-#define TARGET_NR_mlockall                            86
-#define TARGET_NR_munlockall                          87
-#define TARGET_NR_mremap                              88
-#define TARGET_NR_msync                               89
-#define TARGET_NR_mincore                             90
-#define TARGET_NR_madvise                             91
-#define TARGET_NR_shmget                              92
-#define TARGET_NR_shmat                               93
-#define TARGET_NR_shmctl                              94
-#define TARGET_NR_shmdt                               95
-
-/* Socket Operations */
-
-#define TARGET_NR_socket                              96
-#define TARGET_NR_setsockopt                          97
-#define TARGET_NR_getsockopt                          98
-#define TARGET_NR_shutdown                            99
-
-#define TARGET_NR_bind                               100
-#define TARGET_NR_connect                            101
-#define TARGET_NR_listen                             102
-#define TARGET_NR_accept                             103
-
-#define TARGET_NR_getsockname                        104
-#define TARGET_NR_getpeername                        105
-#define TARGET_NR_sendmsg                            106
-#define TARGET_NR_recvmsg                            107
-#define TARGET_NR_send                               108
-#define TARGET_NR_recv                               109
-#define TARGET_NR_sendto                             110
-#define TARGET_NR_recvfrom                           111
-
-#define TARGET_NR_socketpair                         112
-#define TARGET_NR_sendfile                           113
-#define TARGET_NR_sendfile64                         114
-#define TARGET_NR_sendmmsg                           115
-
-/* Process Operations */
-
-#define TARGET_NR_clone                              116
-#define TARGET_NR_execve                             117
-#define TARGET_NR_exit                               118
-#define TARGET_NR_exit_group                         119
-#define TARGET_NR_getpid                             120
-#define TARGET_NR_wait4                              121
-#define TARGET_NR_waitid                             122
-#define TARGET_NR_kill                               123
-#define TARGET_NR_tkill                              124
-#define TARGET_NR_tgkill                             125
-#define TARGET_NR_set_tid_address                    126
-#define TARGET_NR_gettid                             127
-#define TARGET_NR_setsid                             128
-#define TARGET_NR_getsid                             129
-#define TARGET_NR_prctl                              130
-#define TARGET_NR_personality                        131
-#define TARGET_NR_getpriority                        132
-#define TARGET_NR_setpriority                        133
-#define TARGET_NR_setitimer                          134
-#define TARGET_NR_getitimer                          135
-#define TARGET_NR_setuid                             136
-#define TARGET_NR_getuid                             137
-#define TARGET_NR_setgid                             138
-#define TARGET_NR_getgid                             139
-#define TARGET_NR_geteuid                            140
-#define TARGET_NR_getegid                            141
-#define TARGET_NR_setreuid                           142
-#define TARGET_NR_setregid                           143
-#define TARGET_NR_setresuid                          144
-#define TARGET_NR_getresuid                          145
-#define TARGET_NR_setresgid                          146
-#define TARGET_NR_getresgid                          147
-#define TARGET_NR_setpgid                            148
-#define TARGET_NR_getpgid                            149
-#define TARGET_NR_getppid                            150
-#define TARGET_NR_getpgrp                            151
-
-#define TARGET_NR_reserved152                        152     /* set_thread_area */
-#define TARGET_NR_reserved153                        153     /* get_thread_area */
-#define TARGET_NR_times                              154
-#define TARGET_NR_acct                               155
-#define TARGET_NR_sched_setaffinity                  156
-#define TARGET_NR_sched_getaffinity                  157
-#define TARGET_NR_capget                             158
-#define TARGET_NR_capset                             159
-#define TARGET_NR_ptrace                             160
-#define TARGET_NR_semtimedop                         161
-#define TARGET_NR_semget                             162
-#define TARGET_NR_semop                              163
-#define TARGET_NR_semctl                             164
-#define TARGET_NR_available165                       165
-#define TARGET_NR_msgget                             166
-#define TARGET_NR_msgsnd                             167
-#define TARGET_NR_msgrcv                             168
-#define TARGET_NR_msgctl                             169
-#define TARGET_NR_available170                       170
-
-/* File System */
-
-#define TARGET_NR_umount2                            171
-#define TARGET_NR_mount                              172
-#define TARGET_NR_swapon                             173
-#define TARGET_NR_chroot                             174
-#define TARGET_NR_pivot_root                         175
-#define TARGET_NR_umount                             176
-#define TARGET_NR_swapoff                            177
-#define TARGET_NR_sync                               178
-#define TARGET_NR_syncfs                             179
-#define TARGET_NR_setfsuid                           180
-#define TARGET_NR_setfsgid                           181
-#define TARGET_NR_sysfs                              182
-#define TARGET_NR_ustat                              183
-#define TARGET_NR_statfs                             184
-#define TARGET_NR_fstatfs                            185
-#define TARGET_NR_statfs64                           186
-#define TARGET_NR_fstatfs64                          187
-
-/* System */
-
-#define TARGET_NR_setrlimit                          188
-#define TARGET_NR_getrlimit                          189
-#define TARGET_NR_getrusage                          190
-#define TARGET_NR_futex                              191
-#define TARGET_NR_gettimeofday                       192
-#define TARGET_NR_settimeofday                       193
-#define TARGET_NR_adjtimex                           194
-#define TARGET_NR_nanosleep                          195
-#define TARGET_NR_getgroups                          196
-#define TARGET_NR_setgroups                          197
-#define TARGET_NR_sethostname                        198
-#define TARGET_NR_setdomainname                      199
-#define TARGET_NR_syslog                             200
-#define TARGET_NR_vhangup                            201
-#define TARGET_NR_uselib                             202
-#define TARGET_NR_reboot                             203
-#define TARGET_NR_quotactl                           204
-#define TARGET_NR_nfsservctl                         205
-#define TARGET_NR__sysctl                            206
-#define TARGET_NR_bdflush                            207
-#define TARGET_NR_uname                              208
-#define TARGET_NR_sysinfo                            209
-#define TARGET_NR_init_module                        210
-#define TARGET_NR_delete_module                      211
-
-#define TARGET_NR_sched_setparam                     212
-#define TARGET_NR_sched_getparam                     213
-#define TARGET_NR_sched_setscheduler                 214
-#define TARGET_NR_sched_getscheduler                 215
-#define TARGET_NR_sched_get_priority_max             216
-#define TARGET_NR_sched_get_priority_min             217
-#define TARGET_NR_sched_rr_get_interval              218
-#define TARGET_NR_sched_yield                        219
-#define TARGET_NR_available222                       222
-
-/* Signal Handling */
-
-#define TARGET_NR_restart_syscall                    223
-#define TARGET_NR_sigaltstack                        224
-#define TARGET_NR_rt_sigreturn                       225
-#define TARGET_NR_rt_sigaction                       226
-#define TARGET_NR_rt_sigprocmask                     227
-#define TARGET_NR_rt_sigpending                      228
-#define TARGET_NR_rt_sigtimedwait                    229
-#define TARGET_NR_rt_sigqueueinfo                    230
-#define TARGET_NR_rt_sigsuspend                      231
-
-/* Message */
-
-#define TARGET_NR_mq_open                            232
-#define TARGET_NR_mq_unlink                          233
-#define TARGET_NR_mq_timedsend                       234
-#define TARGET_NR_mq_timedreceive                    235
-#define TARGET_NR_mq_notify                          236
-#define TARGET_NR_mq_getsetattr                      237
-#define TARGET_NR_available238                       238
-
-/* IO */
-
-#define TARGET_NR_io_setup                           239
-#define TARGET_NR_io_destroy                         240
-#define TARGET_NR_io_submit                          241
-#define TARGET_NR_io_getevents                       242
-#define TARGET_NR_io_cancel                          243
-#define TARGET_NR_clock_settime                      244
-#define TARGET_NR_clock_gettime                      245
-#define TARGET_NR_clock_getres                       246
-#define TARGET_NR_clock_nanosleep                    247
-
-/* Timer */
-
-#define TARGET_NR_timer_create                       248
-#define TARGET_NR_timer_delete                       249
-#define TARGET_NR_timer_settime                      250
-#define TARGET_NR_timer_gettime                      251
-#define TARGET_NR_timer_getoverrun                   252
-
-/* System */
-
-#define TARGET_NR_reserved253                        253
-#define TARGET_NR_lookup_dcookie                     254
-#define TARGET_NR_available255                       255
-#define TARGET_NR_add_key                            256
-#define TARGET_NR_request_key                        257
-#define TARGET_NR_keyctl                             258
-#define TARGET_NR_available259                       259
-
-
-#define TARGET_NR_readahead                          260
-#define TARGET_NR_remap_file_pages                   261
-#define TARGET_NR_migrate_pages                      262
-#define TARGET_NR_mbind                              263
-#define TARGET_NR_get_mempolicy                      264
-#define TARGET_NR_set_mempolicy                      265
-#define TARGET_NR_unshare                            266
-#define TARGET_NR_move_pages                         267
-#define TARGET_NR_splice                             268
-#define TARGET_NR_tee                                269
-#define TARGET_NR_vmsplice                           270
-#define TARGET_NR_available271                       271
-
-#define TARGET_NR_pselect6                           272
-#define TARGET_NR_ppoll                              273
-#define TARGET_NR_epoll_pwait                        274
-#define TARGET_NR_epoll_create1                      275
-
-#define TARGET_NR_inotify_init                       276
-#define TARGET_NR_inotify_add_watch                  277
-#define TARGET_NR_inotify_rm_watch                   278
-#define TARGET_NR_inotify_init1                      279
-
-#define TARGET_NR_getcpu                             280
-#define TARGET_NR_kexec_load                         281
-
-#define TARGET_NR_ioprio_set                         282
-#define TARGET_NR_ioprio_get                         283
-
-#define TARGET_NR_set_robust_list                    284
-#define TARGET_NR_get_robust_list                    285
-#define TARGET_NR_available286                       286
-#define TARGET_NR_available287                       287
-
-/* Relative File Operations */
-
-#define TARGET_NR_openat                             288
-#define TARGET_NR_mkdirat                            289
-#define TARGET_NR_mknodat                            290
-#define TARGET_NR_unlinkat                           291
-#define TARGET_NR_renameat                           292
-#define TARGET_NR_linkat                             293
-#define TARGET_NR_symlinkat                          294
-#define TARGET_NR_readlinkat                         295
-#define TARGET_NR_utimensat                          296
-#define TARGET_NR_fchownat                           297
-#define TARGET_NR_futimesat                          298
-#define TARGET_NR_fstatat64                          299
-#define TARGET_NR_fchmodat                           300
-#define TARGET_NR_faccessat                          301
-#define TARGET_NR_available302                       302
-#define TARGET_NR_available303                       303
-
-#define TARGET_NR_signalfd                           304
-/*  305 was TARGET_NR_timerfd  */
-#define TARGET_NR_eventfd                            306
-#define TARGET_NR_recvmmsg                           307
-
-#define TARGET_NR_setns                              308
-#define TARGET_NR_signalfd4                          309
-#define TARGET_NR_dup3                               310
-#define TARGET_NR_pipe2                              311
-
-#define TARGET_NR_timerfd_create                     312
-#define TARGET_NR_timerfd_settime                    313
-#define TARGET_NR_timerfd_gettime                    314
-#define TARGET_NR_available315                       315
-
-#define TARGET_NR_eventfd2                           316
-#define TARGET_NR_preadv                             317
-#define TARGET_NR_pwritev                            318
-#define TARGET_NR_available319                       319
-
-#define TARGET_NR_fanotify_init                      320
-#define TARGET_NR_fanotify_mark                      321
-#define TARGET_NR_process_vm_readv                   322
-#define TARGET_NR_process_vm_writev                  323
-
-#define TARGET_NR_name_to_handle_at                  324
-#define TARGET_NR_open_by_handle_at                  325
-#define TARGET_NR_sync_file_range2                   326
-#define TARGET_NR_perf_event_open                    327
-
-#define TARGET_NR_rt_tgsigqueueinfo                  328
-#define TARGET_NR_clock_adjtime                      329
-#define TARGET_NR_prlimit64                          330
-#define TARGET_NR_kcmp                               331
-
-#define TARGET_NR_finit_module                       332
-
-#define TARGET_NR_accept4                            333
-
-#define TARGET_NR_sched_setattr                      334
-#define TARGET_NR_sched_getattr                      335
-
-#define TARGET_NR_renameat2                          336
-
-#define TARGET_NR_seccomp                            337
-#define TARGET_NR_getrandom                          338
-#define TARGET_NR_memfd_create                       339
-#define TARGET_NR_bpf                                340
-#define TARGET_NR_execveat                           341
-
-#define TARGET_NR_userfaultfd                        342
-#define TARGET_NR_membarrier                         343
-#define TARGET_NR_mlock2                             344
-#define TARGET_NR_copy_file_range                    345
-#define TARGET_NR_preadv2                            346
-#define TARGET_NR_pwritev2                           347
-
-#define TARGET_NR_pkey_mprotect                      348
-#define TARGET_NR_pkey_alloc                         349
-#define TARGET_NR_pkey_free                          350
-
-#define TARGET_NR_statx                              351
-#define TARGET_NR_rseq                               352
-/* 353 through 402 are unassigned to sync up with generic numbers */
-#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 /* XTENSA_SYSCALL_NR_H */
diff --git a/linux-user/xtensa/syscallhdr.sh b/linux-user/xtensa/syscallhdr.sh
new file mode 100644
index 000000000000..eef0644c9431
--- /dev/null
+++ b/linux-user/xtensa/syscallhdr.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+
+in="$1"
+out="$2"
+my_abis=`echo "($3)" | tr ',' '|'`
+prefix="$4"
+offset="$5"
+
+fileguard=LINUX_USER_XTENSA_`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 ; do
+        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}"
+) > "$out"
-- 
2.24.1



  parent reply	other threads:[~2020-02-19 22:06 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 ` Laurent Vivier [this message]
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 ` [PATCH v2 15/20] linux-user, mips: " Laurent Vivier
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-6-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.