diff --git a/arch/parisc/kernel/syscalls/syscallhdr.sh
b/arch/parisc/kernel/syscalls/syscallhdr.sh
new file mode 100644
index 0000000..607d4ca
--- /dev/null
+++ b/arch/parisc/kernel/syscalls/syscallhdr.sh
@@ -0,0 +1,35 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+
+in="$1"
+out="$2"
+my_abis=`echo "($3)" | tr ',' '|'`
+prefix="$4"
+offset="$5"
+
+fileguard=_UAPI_ASM_PARISC_`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}"
+ echo ""
+
+ nxt=0
+ while read nr abi name entry compat ; do
+ if [ -z "$offset" ]; then
+ echo -e "#define __NR_${prefix}${name}\t$nr"
+ else
+ echo -e "#define __NR_${prefix}${name}\t($offset + $nr)"
+ fi
+ nxt=$nr
+ let nxt=nxt+1
+ done
+
+ echo ""
+ echo "#ifdef __KERNEL__"
+ echo -e "#define __NR_syscalls\t$nxt"
+ echo "#endif"
+ echo ""
+ echo "#endif /* ${fileguard} */"
+) > "$out"
diff --git a/arch/parisc/kernel/syscalls/syscalltbl.sh
b/arch/parisc/kernel/syscalls/syscalltbl.sh
new file mode 100644
index 0000000..04abde7
--- /dev/null
+++ b/arch/parisc/kernel/syscalls/syscalltbl.sh
@@ -0,0 +1,46 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+
+in="$1"
+out="$2"
+my_abis=`echo "($3)" | tr ',' '|'`
+offset="$4"
+
+emit() {
+ nxt="$1"
+ if [ -z "$offset" ]; then
+ nr="$2"
+ else
+ nr="$2"
+ nr=$((nr+offset))
+ fi
+ entry="$3"
+
+ while [ $nxt -lt $nr ]; do
+ echo "__SYSCALL($nxt, sys_ni_syscall, )"
+ let nxt=nxt+1
+ done
+ echo "__SYSCALL($nxt, $entry, )"
+}
+
+grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
+ if [ -z "$offset" ]; then
+ nxt=0
+ else
+ nxt=$offset
+ fi
+
+ my_abi="$(cut -d'|' -f2 <<< $my_abis)"
+ while read nr abi name entry compat ; do
+ if [ $my_abi = "compat" ]; then
+ if [ -z "$compat" ]; then
+ emit $nxt $nr $entry
+ else
+ emit $nxt $nr $compat
+ fi
+ else
+ emit $nxt $nr $entry
+ fi
+ let nxt=nxt+1
+ done
+) > "$out"