From 70ae28ab2280f3e57d14b7a631e7508fe5b4bbaf Mon Sep 17 00:00:00 2001 From: Yu Chen Date: Wed, 20 Jul 2022 23:10:27 +0800 Subject: [PATCH] fix sbi interface for RustSBI version 0.2.2, adapting to RISC-V SBI v1.0.0 --- os1-ref/src/sbi.rs | 1 + os1/src/sbi.rs | 1 + os2-ref/src/sbi.rs | 1 + os2/src/sbi.rs | 1 + os3-ref/src/sbi.rs | 1 + os3/src/sbi.rs | 1 + os4-ref/src/sbi.rs | 1 + os4/src/sbi.rs | 1 + os5-ref/src/sbi.rs | 1 + os5/src/sbi.rs | 1 + os6-ref/src/sbi.rs | 1 + os6/src/sbi.rs | 1 + os7-ref/src/sbi.rs | 1 + os7/src/sbi.rs | 1 + os8-ref/src/sbi.rs | 1 + os8/src/sbi.rs | 1 + 16 files changed, 16 insertions(+) diff --git a/os1-ref/src/sbi.rs b/os1-ref/src/sbi.rs index 751a4d2..8d5c37b 100644 --- a/os1-ref/src/sbi.rs +++ b/os1-ref/src/sbi.rs @@ -10,6 +10,7 @@ fn sbi_call(which: usize, arg0: usize, arg1: usize, arg2: usize) -> usize { let mut ret; unsafe { core::arch::asm!( + "li x16, 0", "ecall", inlateout("x10") arg0 => ret, in("x11") arg1, diff --git a/os1/src/sbi.rs b/os1/src/sbi.rs index 751a4d2..8d5c37b 100644 --- a/os1/src/sbi.rs +++ b/os1/src/sbi.rs @@ -10,6 +10,7 @@ fn sbi_call(which: usize, arg0: usize, arg1: usize, arg2: usize) -> usize { let mut ret; unsafe { core::arch::asm!( + "li x16, 0", "ecall", inlateout("x10") arg0 => ret, in("x11") arg1, diff --git a/os2-ref/src/sbi.rs b/os2-ref/src/sbi.rs index 751a4d2..8d5c37b 100644 --- a/os2-ref/src/sbi.rs +++ b/os2-ref/src/sbi.rs @@ -10,6 +10,7 @@ fn sbi_call(which: usize, arg0: usize, arg1: usize, arg2: usize) -> usize { let mut ret; unsafe { core::arch::asm!( + "li x16, 0", "ecall", inlateout("x10") arg0 => ret, in("x11") arg1, diff --git a/os2/src/sbi.rs b/os2/src/sbi.rs index 751a4d2..8d5c37b 100644 --- a/os2/src/sbi.rs +++ b/os2/src/sbi.rs @@ -10,6 +10,7 @@ fn sbi_call(which: usize, arg0: usize, arg1: usize, arg2: usize) -> usize { let mut ret; unsafe { core::arch::asm!( + "li x16, 0", "ecall", inlateout("x10") arg0 => ret, in("x11") arg1, diff --git a/os3-ref/src/sbi.rs b/os3-ref/src/sbi.rs index 4af7620..3b58a23 100644 --- a/os3-ref/src/sbi.rs +++ b/os3-ref/src/sbi.rs @@ -13,6 +13,7 @@ fn sbi_call(which: usize, arg0: usize, arg1: usize, arg2: usize) -> usize { let mut ret; unsafe { core::arch::asm!( + "li x16, 0", "ecall", inlateout("x10") arg0 => ret, in("x11") arg1, diff --git a/os3/src/sbi.rs b/os3/src/sbi.rs index 6dcad4e..376cd07 100644 --- a/os3/src/sbi.rs +++ b/os3/src/sbi.rs @@ -10,6 +10,7 @@ fn sbi_call(which: usize, arg0: usize, arg1: usize, arg2: usize) -> usize { let mut ret; unsafe { core::arch::asm!( + "li x16, 0", "ecall", inlateout("x10") arg0 => ret, in("x11") arg1, diff --git a/os4-ref/src/sbi.rs b/os4-ref/src/sbi.rs index 4af7620..3b58a23 100644 --- a/os4-ref/src/sbi.rs +++ b/os4-ref/src/sbi.rs @@ -13,6 +13,7 @@ fn sbi_call(which: usize, arg0: usize, arg1: usize, arg2: usize) -> usize { let mut ret; unsafe { core::arch::asm!( + "li x16, 0", "ecall", inlateout("x10") arg0 => ret, in("x11") arg1, diff --git a/os4/src/sbi.rs b/os4/src/sbi.rs index 6dcad4e..376cd07 100644 --- a/os4/src/sbi.rs +++ b/os4/src/sbi.rs @@ -10,6 +10,7 @@ fn sbi_call(which: usize, arg0: usize, arg1: usize, arg2: usize) -> usize { let mut ret; unsafe { core::arch::asm!( + "li x16, 0", "ecall", inlateout("x10") arg0 => ret, in("x11") arg1, diff --git a/os5-ref/src/sbi.rs b/os5-ref/src/sbi.rs index 4af7620..3b58a23 100644 --- a/os5-ref/src/sbi.rs +++ b/os5-ref/src/sbi.rs @@ -13,6 +13,7 @@ fn sbi_call(which: usize, arg0: usize, arg1: usize, arg2: usize) -> usize { let mut ret; unsafe { core::arch::asm!( + "li x16, 0", "ecall", inlateout("x10") arg0 => ret, in("x11") arg1, diff --git a/os5/src/sbi.rs b/os5/src/sbi.rs index 6dcad4e..376cd07 100644 --- a/os5/src/sbi.rs +++ b/os5/src/sbi.rs @@ -10,6 +10,7 @@ fn sbi_call(which: usize, arg0: usize, arg1: usize, arg2: usize) -> usize { let mut ret; unsafe { core::arch::asm!( + "li x16, 0", "ecall", inlateout("x10") arg0 => ret, in("x11") arg1, diff --git a/os6-ref/src/sbi.rs b/os6-ref/src/sbi.rs index 4af7620..3b58a23 100644 --- a/os6-ref/src/sbi.rs +++ b/os6-ref/src/sbi.rs @@ -13,6 +13,7 @@ fn sbi_call(which: usize, arg0: usize, arg1: usize, arg2: usize) -> usize { let mut ret; unsafe { core::arch::asm!( + "li x16, 0", "ecall", inlateout("x10") arg0 => ret, in("x11") arg1, diff --git a/os6/src/sbi.rs b/os6/src/sbi.rs index 4af7620..3b58a23 100644 --- a/os6/src/sbi.rs +++ b/os6/src/sbi.rs @@ -13,6 +13,7 @@ fn sbi_call(which: usize, arg0: usize, arg1: usize, arg2: usize) -> usize { let mut ret; unsafe { core::arch::asm!( + "li x16, 0", "ecall", inlateout("x10") arg0 => ret, in("x11") arg1, diff --git a/os7-ref/src/sbi.rs b/os7-ref/src/sbi.rs index 4af7620..3b58a23 100644 --- a/os7-ref/src/sbi.rs +++ b/os7-ref/src/sbi.rs @@ -13,6 +13,7 @@ fn sbi_call(which: usize, arg0: usize, arg1: usize, arg2: usize) -> usize { let mut ret; unsafe { core::arch::asm!( + "li x16, 0", "ecall", inlateout("x10") arg0 => ret, in("x11") arg1, diff --git a/os7/src/sbi.rs b/os7/src/sbi.rs index 4af7620..3b58a23 100644 --- a/os7/src/sbi.rs +++ b/os7/src/sbi.rs @@ -13,6 +13,7 @@ fn sbi_call(which: usize, arg0: usize, arg1: usize, arg2: usize) -> usize { let mut ret; unsafe { core::arch::asm!( + "li x16, 0", "ecall", inlateout("x10") arg0 => ret, in("x11") arg1, diff --git a/os8-ref/src/sbi.rs b/os8-ref/src/sbi.rs index 4af7620..3b58a23 100644 --- a/os8-ref/src/sbi.rs +++ b/os8-ref/src/sbi.rs @@ -13,6 +13,7 @@ fn sbi_call(which: usize, arg0: usize, arg1: usize, arg2: usize) -> usize { let mut ret; unsafe { core::arch::asm!( + "li x16, 0", "ecall", inlateout("x10") arg0 => ret, in("x11") arg1, diff --git a/os8/src/sbi.rs b/os8/src/sbi.rs index 4af7620..3b58a23 100644 --- a/os8/src/sbi.rs +++ b/os8/src/sbi.rs @@ -13,6 +13,7 @@ fn sbi_call(which: usize, arg0: usize, arg1: usize, arg2: usize) -> usize { let mut ret; unsafe { core::arch::asm!( + "li x16, 0", "ecall", inlateout("x10") arg0 => ret, in("x11") arg1,