xref: /qemu/scripts/update-syscalltbl.sh (revision e7e6cc50219a8ba57fc3a8d34de5243bd83c69e4)
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