mirror of
https://github.com/edera-dev/krata.git
synced 2025-08-02 21:00:55 +00:00
33 lines
967 B
Rust
33 lines
967 B
Rust
use xenclient::pci::*;
|
|
|
|
use xenclient::error::Result;
|
|
|
|
#[tokio::main]
|
|
async fn main() -> Result<()> {
|
|
let backend = XenPciBackend::new();
|
|
if !backend.is_loaded().await? {
|
|
return Err(xenclient::error::Error::GenericError(
|
|
"xen-pciback module not loaded".to_string(),
|
|
));
|
|
}
|
|
|
|
println!("assignable devices:");
|
|
for device in backend.list_devices().await? {
|
|
let is_assigned = backend.is_assigned(&device).await?;
|
|
let has_slot = backend.has_slot(&device).await?;
|
|
println!("{} slot={} assigned={}", device, has_slot, is_assigned);
|
|
let resources = backend.read_resources(&device).await?;
|
|
for resource in resources {
|
|
println!(
|
|
" resource start={:#x} end={:#x} flags={:#x} bar-io={}",
|
|
resource.start,
|
|
resource.end,
|
|
resource.flags,
|
|
resource.is_bar_io()
|
|
);
|
|
}
|
|
}
|
|
|
|
Ok(())
|
|
}
|