1TBL_LIST="\ 2arch/alpha/kernel/syscalls/syscall.tbl,linux-user/alpha/syscall.tbl \ 3arch/arm/tools/syscall.tbl,linux-user/arm/syscall.tbl \ 4scripts/syscall.tbl,linux-user/aarch64/syscall_64.tbl \ 5scripts/syscall.tbl,linux-user/hexagon/syscall.tbl \ 6arch/m68k/kernel/syscalls/syscall.tbl,linux-user/m68k/syscall.tbl \ 7arch/microblaze/kernel/syscalls/syscall.tbl,linux-user/microblaze/syscall.tbl \ 8arch/mips/kernel/syscalls/syscall_n32.tbl,linux-user/mips64/syscall_n32.tbl \ 9arch/mips/kernel/syscalls/syscall_n64.tbl,linux-user/mips64/syscall_n64.tbl \ 10arch/mips/kernel/syscalls/syscall_o32.tbl,linux-user/mips/syscall_o32.tbl \ 11scripts/syscall.tbl,linux-user/openrisc/syscall.tbl \ 12arch/parisc/kernel/syscalls/syscall.tbl,linux-user/hppa/syscall.tbl \ 13arch/powerpc/kernel/syscalls/syscall.tbl,linux-user/ppc/syscall.tbl \ 14scripts/syscall.tbl,linux-user/riscv/syscall.tbl \ 15arch/s390/kernel/syscalls/syscall.tbl,linux-user/s390x/syscall.tbl \ 16arch/sh/kernel/syscalls/syscall.tbl,linux-user/sh4/syscall.tbl \ 17arch/sparc/kernel/syscalls/syscall.tbl,linux-user/sparc64/syscall.tbl \ 18arch/sparc/kernel/syscalls/syscall.tbl,linux-user/sparc/syscall.tbl \ 19arch/x86/entry/syscalls/syscall_32.tbl,linux-user/i386/syscall_32.tbl \ 20arch/x86/entry/syscalls/syscall_64.tbl,linux-user/x86_64/syscall_64.tbl \ 21arch/xtensa/kernel/syscalls/syscall.tbl,linux-user/xtensa/syscall.tbl\ 22" 23 24linux="$1" 25output="$2" 26 27if [ -z "$linux" ] || ! [ -d "$linux" ]; then 28 cat << EOF 29usage: update-syscalltbl.sh LINUX_PATH [OUTPUT_PATH] 30 31LINUX_PATH Linux kernel directory to obtain the syscall.tbl from 32OUTPUT_PATH output directory, usually the qemu source tree (default: $PWD) 33EOF 34 exit 1 35fi 36 37if [ -z "$output" ]; then 38 output="$PWD" 39fi 40 41for entry in $TBL_LIST; do 42 OFS="$IFS" 43 IFS=, 44 set $entry 45 src=$1 46 dst=$2 47 IFS="$OFS" 48 if ! cp "$linux/$src" "$output/$dst" ; then 49 echo "Cannot copy $linux/$src to $output/$dst" 1>&2 50 exit 1 51 fi 52done 53 54