driver_interface/
lib.rs

1#![cfg_attr(not(test), no_std)]
2
3extern crate alloc;
4
5pub use fdt_parser as fdt;
6
7pub(crate) mod _macro;
8pub mod intc;
9pub mod io;
10mod register;
11pub mod timer;
12pub mod uart;
13pub use register::*;
14pub(crate) mod err;
15pub use err::{DriverError, DriverResult};
16pub use intc::IrqConfig;
17pub mod lock;
18
19pub trait DriverGeneric: Send {
20    fn open(&mut self) -> DriverResult;
21    fn close(&mut self) -> DriverResult;
22}
23
24#[derive(Debug, Clone, Copy)]
25pub struct RegAddress {
26    pub addr: usize,
27    pub size: Option<usize>,
28}
29
30#[derive(Debug, Clone, Copy, Eq, PartialEq)]
31pub enum IrqHandleResult {
32    Handled,
33    Unhandled,
34}