19 lines
360 B
Rust
19 lines
360 B
Rust
![]() |
#[derive(Debug)]
|
||
|
pub enum PciBar {
|
||
|
None,
|
||
|
Memory(u32),
|
||
|
Port(u16)
|
||
|
}
|
||
|
|
||
|
impl From<u32> for PciBar {
|
||
|
fn from(bar: u32) -> Self {
|
||
|
if bar & 0xFFFFFFFC == 0 {
|
||
|
PciBar::None
|
||
|
} else if bar & 1 == 0 {
|
||
|
PciBar::Memory(bar & 0xFFFFFFF0)
|
||
|
} else {
|
||
|
PciBar::Port((bar & 0xFFFC) as u16)
|
||
|
}
|
||
|
}
|
||
|
}
|