pub trait VirtualDevice: Send {
// Required methods
fn handle_io(
&mut self,
port: u16,
is_write: bool,
data: &mut [u8],
) -> Result<(), VmError>;
fn name(&self) -> &str;
fn base_port(&self) -> u16;
fn port_count(&self) -> u16;
}