use rustsbi::RustSBI; pub mod console; pub mod hsm; pub mod ipi; pub mod reset; pub mod rfence; pub mod extensions; pub mod fifo; pub mod hart_context; pub mod logger; pub mod trap; pub mod trap_stack; use console::{ConsoleDevice, SbiConsole}; use hsm::SbiHsm; use ipi::{IpiDevice, SbiIpi}; use reset::{ResetDevice, SbiReset}; use rfence::SbiRFence; #[derive(RustSBI, Default)] #[rustsbi(dynamic)] pub struct SBI<'a, C: ConsoleDevice, I: IpiDevice, R: ResetDevice> { #[rustsbi(console)] pub console: Option>, #[rustsbi(ipi, timer)] pub ipi: Option>, #[rustsbi(hsm)] pub hsm: Option, #[rustsbi(reset)] pub reset: Option>, #[rustsbi(fence)] pub rfence: Option, }