update-syscalltbl.sh 2.0 KB

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