| 473 | } |
| 474 | |
| 475 | fn mmio_write(&self, gpa: u64, data: &[u8]) -> result::Result<(), HypervisorVmError> { |
| 476 | match self.mmio_bus.write(gpa, data) { |
| 477 | Err(vm_device::BusError::MissingAddressRange) => { |
| 478 | info!("Guest MMIO write to unregistered address 0x{gpa:x}"); |
| 479 | } |
| 480 | Ok(Some(barrier)) => { |
| 481 | info!("Waiting for barrier"); |
| 482 | barrier.wait(); |
| 483 | info!("Barrier released"); |
| 484 | } |
| 485 | _ => {} |
| 486 | } |
| 487 | Ok(()) |
| 488 | } |
| 489 | |
| 490 | #[cfg(target_arch = "x86_64")] |
| 491 | fn pio_read(&self, port: u64, data: &mut [u8]) -> result::Result<(), HypervisorVmError> { |