1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
pub mod clint;
pub mod counters;
pub mod plic;
pub struct CorePeripherals {
pub clint: clint::Clint,
pub plic: plic::Plic,
pub counters: counters::PerformanceCounters,
}
impl CorePeripherals {
pub(crate) fn new(clint: e310x::CLINT, plic: e310x::PLIC) -> Self {
Self {
clint: clint.into(),
plic: plic.into(),
counters: counters::PerformanceCounters::new()
}
}
pub unsafe fn steal() -> Self {
let p = e310x::Peripherals::steal();
Self::new(p.CLINT, p.PLIC)
}
}