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}