use anyhow::{Context as _, Error};
use vmi_arch_amd64::Amd64;
use vmi_core::{VcpuId, VmiCore};
use vmi_driver_xen::VmiXenDriver;
fn main() -> Result<(), Error> {
let driver = VmiXenDriver::<Amd64>::try_from_env()?
.context("invalid VMI_XEN_DOMAIN environment variable")?;
let vmi = VmiCore::new(driver)?;
let _pause_guard = vmi.pause_guard()?;
let info = vmi.info()?;
for vcpu_id in 0..info.vcpus {
let registers = vmi.registers(VcpuId(vcpu_id))?;
let idt = Amd64::interrupt_descriptor_table(&vmi, ®isters)?;
println!("IDT[{vcpu_id}]: {idt:#?}");
}
Ok(())
}