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