From a4a9359253f5ee4fd419c3164940cfcfe9635e45 Mon Sep 17 00:00:00 2001 From: Laurent Vivier Date: Tue, 10 Mar 2020 11:33:47 +0100 Subject: [PATCH] linux-user, xtensa: add syscall table generation support 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 Reviewed-by: Taylor Simpson Message-Id: <20200310103403.3284090-6-laurent@vivier.eu> Signed-off-by: Laurent Vivier --- 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 480e1d9af5..3e72343b2a 100755 --- a/configure +++ b/configure @@ -1889,7 +1889,7 @@ rm -f */config-devices.mak.d # Remove syscall_nr.h to be sure they will be regenerated in the build # directory, not in the source directory -for arch in alpha hppa m68k ; 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 @@ -7916,6 +7916,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 ac74b23683..13b821baf7 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 0000000000..d4be1b7455 --- /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 0000000000..25f4de729a --- /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: +# +# +# The 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 39bff65dca..0000000000 --- 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 0000000000..eef0644c94 --- /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"