Skip to content

Commit f154ec5

Browse files
committed
rustsbi-qemu: inline clint functions
Signed-off-by: luojia65 <me@luojia.cc>
1 parent c52e637 commit f154ec5

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

rustsbi-qemu/src/clint.rs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#![allow(dead_code)]
22

3+
use rustsbi::{HartMask, Ipi, Timer};
34
// 这部分其实是运行时提供的,不应该做到实现库里面
45
use rustsbi::SbiRet;
56

@@ -8,33 +9,38 @@ pub struct Clint {
89
}
910

1011
impl Clint {
12+
#[inline]
1113
pub fn new(base: *mut u8) -> Clint {
1214
Clint {
1315
base: base as usize,
1416
}
1517
}
1618

19+
#[inline]
1720
pub fn get_mtime(&self) -> u64 {
1821
unsafe {
1922
let base = self.base as *mut u8;
2023
core::ptr::read_volatile(base.add(0xbff8) as *mut u64)
2124
}
2225
}
2326

27+
#[inline]
2428
pub fn set_timer(&self, hart_id: usize, instant: u64) {
2529
unsafe {
2630
let base = self.base as *mut u8;
2731
core::ptr::write_volatile((base.offset(0x4000) as *mut u64).add(hart_id), instant);
2832
}
2933
}
3034

35+
#[inline]
3136
pub fn send_soft(&self, hart_id: usize) {
3237
unsafe {
3338
let base = self.base as *mut u8;
3439
core::ptr::write_volatile((base as *mut u32).add(hart_id), 1);
3540
}
3641
}
3742

43+
#[inline]
3844
pub fn clear_soft(&self, hart_id: usize) {
3945
unsafe {
4046
let base = self.base as *mut u8;
@@ -43,14 +49,14 @@ impl Clint {
4349
}
4450
}
4551

46-
use rustsbi::{HartMask, Ipi, Timer};
47-
4852
impl Ipi for Clint {
53+
#[inline]
4954
fn max_hart_id(&self) -> usize {
5055
// 这个值将在初始化的时候加载,会从dtb_pa读取设备树,然后数里面有几个核
5156
*crate::count_harts::MAX_HART_ID.lock()
5257
}
5358

59+
#[inline]
5460
fn send_ipi_many(&self, hart_mask: HartMask) -> SbiRet {
5561
// println!("[rustsbi] send ipi many, {:?}", hart_mask);
5662
for i in 0..=self.max_hart_id() {
@@ -63,6 +69,7 @@ impl Ipi for Clint {
6369
}
6470

6571
impl Timer for Clint {
72+
#[inline]
6673
fn set_timer(&self, time_value: u64) {
6774
let this_mhartid = riscv::register::mhartid::read();
6875
self.set_timer(this_mhartid, time_value);

0 commit comments

Comments
 (0)