pub async fn emulate_io(
vp_index: VpIndex,
is_write: bool,
port: u16,
rax: &mut u64,
len: u8,
dev: &impl CpuIo,
)Expand description
Emulates an IO port instruction.
Just handles calling into the IO bus and updating rax. The caller must
update RIP, and it must update the VP’s rax register (when !is_write).
The caller is also responsible for performing any security checks to ensure the guest is allowed to execute I/O instructions. However, typically this is handled by the hardware and hypervisor automatically.