summary refs log tree commit diff stats
path: root/linux-user/openrisc/syscallhdr.sh
diff options
context:
space:
mode:
authorLaurent Vivier <laurent@vivier.eu>2024-09-20 17:10:30 +0200
committerRichard Henderson <richard.henderson@linaro.org>2024-09-22 09:30:18 +0200
commit656a46fbdab7db025dc372ea27660b4d657ee910 (patch)
tree210fde9ba77f13c647cc33534ff7a13f93fbeae0 /linux-user/openrisc/syscallhdr.sh
parentf5afe739a22839498774fb2e9b4d4bd47d968acf (diff)
downloadfocaccia-qemu-656a46fbdab7db025dc372ea27660b4d657ee910.tar.gz
focaccia-qemu-656a46fbdab7db025dc372ea27660b4d657ee910.zip
linux-user,openrisc: move to syscalltbl file
Since kernel v6.11 openrisc has moved from syscall_nr.h file
to syscall.tbl (See 77122bf9e3df ("openrisc: convert to generic syscall
table"))

Update linux-user scripts to be able to retrieve syscall numbers
from linux syscall.tbl instead of syscall_nr.h.
New syscall.tbl is imported from linux v6.11 using updated
scripts/update-syscalltbl.sh

Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Message-ID: <20240920151034.859533-3-laurent@vivier.eu>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'linux-user/openrisc/syscallhdr.sh')
-rw-r--r--linux-user/openrisc/syscallhdr.sh28
1 files changed, 28 insertions, 0 deletions
diff --git a/linux-user/openrisc/syscallhdr.sh b/linux-user/openrisc/syscallhdr.sh
new file mode 100644
index 0000000000..047e9f77c7
--- /dev/null
+++ b/linux-user/openrisc/syscallhdr.sh
@@ -0,0 +1,28 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+
+in="$1"
+out="$2"
+my_abis=`echo "($3)" | tr ',' '|'`
+prefix="$4"
+offset="$5"
+
+fileguard=LINUX_USER_OPENRISC_`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 | (
+    echo "#ifndef ${fileguard}"
+    echo "#define ${fileguard} 1"
+    echo ""
+
+    while read nr abi name entry ; do
+    if [ -z "$offset" ]; then
+        echo "#define TARGET_NR_${prefix}${name} $nr"
+    else
+        echo "#define TARGET_NR_${prefix}${name} ($offset + $nr)"
+        fi
+    done
+
+    echo ""
+    echo "#endif /* ${fileguard} */"
+) > "$out"