libseccomp/0003-arch-Add-riscv64-support-to-syscall-validate-script.patch
2020-06-30 17:20:17 +08:00

87 lines
2.1 KiB
Diff

From 00afcffb77141f8416ca156065c50eae471b8ad1 Mon Sep 17 00:00:00 2001
From: Tom Hromatka <tom.hromatka@oracle.com>
Date: Tue, 10 Mar 2020 12:32:37 -0600
Subject: [PATCH] arch: Add riscv64 support to syscall validate script
This patch adds riscv64 support to arch-syscall-validate.
Signed-off-by: Tom Hromatka <tom.hromatka@oracle.com>
Signed-off-by: Paul Moore <paul@paul-moore.com>
---
src/arch-syscall-validate | 45 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)
diff --git a/src/arch-syscall-validate b/src/arch-syscall-validate
index b9e0bce..a47eb63 100755
--- a/src/arch-syscall-validate
+++ b/src/arch-syscall-validate
@@ -393,6 +393,45 @@ function dump_lib_ppc64() {
}
#
+# Dump the riscv64 system syscall table
+#
+# Arguments:
+# 1 path to the kernel source
+#
+# Dump the architecture's syscall table to stdout.
+#
+function dump_sys_riscv64() {
+ gcc -E -dM -I$1/include/uapi \
+ -D__BITS_PER_LONG=64 -D__ARCH_WANT_NEW_STAT \
+ $1/include/uapi/asm-generic/unistd.h | \
+ grep "^#define __NR_" | \
+ sed -e '/__NR_syscalls/d' | \
+ sed -e '/__NR_arch_specific_syscall/d' | \
+ sed -e 's/#define[ \t]\+__NR_\([^ \t]\+\)[ \t]\+\(.*\)/\1\t\2/' | \
+ sed -e 's/__NR3264_fadvise64/223/' | \
+ sed -e 's/__NR3264_fcntl/25/' | \
+ sed -e 's/__NR3264_fstatat/79/' | \
+ sed -e 's/__NR3264_fstatfs/44/' | \
+ sed -e 's/__NR3264_ftruncate/46/' | \
+ sed -e 's/__NR3264_lseek/62/' | \
+ sed -e 's/__NR3264_mmap/222/' | \
+ sed -e 's/__NR3264_sendfile/71/' | \
+ sed -e 's/__NR3264_statfs/43/' | \
+ sed -e 's/__NR3264_truncate/45/' | \
+ sed -e 's/__NR3264_fstat/80/' | \
+ sort
+}
+
+#
+# Dump the riscv64 library syscall table
+#
+# Dump the library's syscall table to stdout.
+#
+function dump_lib_riscv64() {
+ dump_lib_arch riscv64
+}
+
+#
# Dump the s390 system syscall table
#
# Arguments:
@@ -487,6 +526,9 @@ function dump_sys() {
ppc64)
dump_sys_ppc64 "$2"
;;
+ riscv64)
+ dump_sys_riscv64 "$2"
+ ;;
s390)
dump_sys_s390 "$2"
;;
@@ -542,6 +584,9 @@ function dump_lib() {
ppc64)
dump_lib_ppc64 "$2"
;;
+ riscv64)
+ dump_lib_riscv64 "$2"
+ ;;
s390)
dump_lib_s390 "$2"
;;
--
1.8.3.1