Author: lvxiaoqian <xiaoqian@nj.iscas.ac.cn>
Date:   Mon Aug 15 14:06:16 2022 +0800

	add riscv support

diff --git a/config/opal_config_asm.m4 b/config/opal_config_asm.m4
index 5183c7e..d8640e0 100644
--- a/config/opal_config_asm.m4
+++ b/config/opal_config_asm.m4
@@ -1148,6 +1148,11 @@ AC_DEFUN([OPAL_CONFIG_ASM],[
                 AC_MSG_WARN([$opal_cv_asm_arch: gcc atomics have been known to perform poorly on powerpc.])
             fi
 
+            ;;
+        riscv64*)
+            opal_cv_asm_arch="RISCV64"
+            OPAL_ASM_SUPPORT_64BIT=1
+            OPAL_GCC_INLINE_ASSIGN='"li %0, 0" : "=&r"(ret)'
             ;;
         # There is no current difference between s390 and s390x
         # But use two different defines in case some come later
diff --git a/opal/include/opal/sys/architecture.h b/opal/include/opal/sys/architecture.h
index ee9aa96..8a9fc53 100644
--- a/opal/include/opal/sys/architecture.h
+++ b/opal/include/opal/sys/architecture.h
@@ -44,6 +44,7 @@
 #define OPAL_ARM64          0101
 #define OPAL_S390           0110
 #define OPAL_S390X          0111
+#define OPAL_RISCV64        0120
 #define OPAL_BUILTIN_SYNC   0200
 #define OPAL_BUILTIN_GCC    0202
 #define OPAL_BUILTIN_NO     0203
diff --git a/opal/include/opal/sys/cma.h b/opal/include/opal/sys/cma.h
index 4211013..8040ccb 100644
--- a/opal/include/opal/sys/cma.h
+++ b/opal/include/opal/sys/cma.h
@@ -92,6 +92,11 @@
 #define __NR_process_vm_readv	340
 #define __NR_process_vm_writev	341
 
+#elif OPAL_ASSEMBLY_ARCH == OPAL_RISCV64
+/* RISCV64 uses the asm-generic syscall numbers */
+#define __NR_process_vm_readv 270
+#define __NR_process_vm_writev 271
+
 #else
 #error "Unsupported architecture for process_vm_readv and process_vm_writev syscalls"
 #endif
