From 9d2859957408b4c719760a7073e54cd3729561f6 Mon Sep 17 00:00:00 2001 From: johannst Date: Tue, 1 Jun 2021 22:53:52 +0200 Subject: adapted examples with new exit reasons --- examples/long_mode.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'examples/long_mode.rs') diff --git a/examples/long_mode.rs b/examples/long_mode.rs index 67c014a..668364f 100644 --- a/examples/long_mode.rs +++ b/examples/long_mode.rs @@ -126,7 +126,7 @@ fn setup_long_mode(sregs: &mut kvm_sys::kvm_sregs, mem: &mut UserMem) { fn main() -> std::io::Result<()> { // Create VM & VCPU. let vm = Kvm::new()?.create_vm()?; - let vcpu = vm.create_vpcu(0)?; + let mut vcpu = vm.create_vpcu(0)?; // Map memory for guest VM. let mut mem = UserMem::new(0x8000)?; @@ -155,10 +155,20 @@ fn main() -> std::io::Result<()> { while let Ok(exit) = vcpu.run() { match exit { KvmExit::Halt => break, + KvmExit::IoIn(port, data) => { + println!("IO_IN: port={} len={}", port, data.len()); + // Provide some input data. + data.fill(0xaa); + } KvmExit::IoOut(_port, data) => { let s = std::str::from_utf8(data).unwrap(); print!("{}", s); } + KvmExit::MmioRead(addr, data) => { + println!("MMIO_READ: addr={:#x} len={}", addr, data.len()); + // Provide some read data. + data.fill(0xbb); + } KvmExit::MmioWrite(addr, data) => { println!( "MMIO_WRITE: addr={:#x} len={} data={:#x?}", -- cgit v1.2.3