20 Star 0 Fork 52

openEuler-RISC-V/rdma-core

forked from src-openEuler/rdma-core 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
riscv-barriers.patch 1.23 KB
一键复制 编辑 原始数据 按行查看 历史
吕晓倩 提交于 2021-12-28 11:35 +08:00 . add riscv patch
diff --git a/util/udma_barrier.h b/util/udma_barrier.h
index 23acf23..899acf5 100644
--- a/util/udma_barrier.h
+++ b/util/udma_barrier.h
@@ -96,6 +96,8 @@
#define udma_to_device_barrier() asm volatile("dsb st" ::: "memory");
#elif defined(__sparc__) || defined(__s390x__)
#define udma_to_device_barrier() asm volatile("" ::: "memory")
+#elif defined(__riscv)
+#define udma_to_device_barrier() asm volatile("fence w,w" ::: "memory");
#else
#error No architecture specific memory barrier defines found!
#endif
@@ -128,6 +130,8 @@
#define udma_from_device_barrier() asm volatile("dsb ld" ::: "memory");
#elif defined(__sparc__) || defined(__s390x__)
#define udma_from_device_barrier() asm volatile("" ::: "memory")
+#elif defined(__riscv)
+#define udma_from_device_barrier() asm volatile("fence r,rw" ::: "memory");
#else
#error No architecture specific memory barrier defines found!
#endif
@@ -192,6 +196,8 @@
#define mmio_flush_writes() asm volatile("dsb st" ::: "memory");
#elif defined(__sparc__) || defined(__s390x__)
#define mmio_flush_writes() asm volatile("" ::: "memory")
+#elif defined(__riscv)
+#define mmio_flush_writes() asm volatile("fence w,w" ::: "memory");
#else
#error No architecture specific memory barrier defines found!
#endif
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/openeuler-risc-v/rdma-core.git
git@gitee.com:openeuler-risc-v/rdma-core.git
openeuler-risc-v
rdma-core
rdma-core
master

搜索帮助