MCPcopy Create free account
hub / github.com/F-Stack/f-stack / vmx_restore_nmi_blocking

Function vmx_restore_nmi_blocking

freebsd/amd64/vmm/intel/vmx.c:1612–1621  ·  view source on GitHub ↗

* If the Virtual NMIs execution control is '1' then the logical processor * tracks virtual-NMI blocking in the Guest Interruptibility-state field of * the VMCS. An IRET instruction in VMX non-root operation will remove any * virtual-NMI blocking. * * This unblocking occurs even if the IRET causes a fault. In this case the * hypervisor needs to restore virtual-NMI blocking before resuming the

Source from the content-addressed store, hash-verified

1610 * hypervisor needs to restore virtual-NMI blocking before resuming the guest.
1611 */
1612static void
1613vmx_restore_nmi_blocking(struct vmx *vmx, int vcpuid)
1614{
1615 uint32_t gi;
1616
1617 VCPU_CTR0(vmx->vm, vcpuid, "Restore Virtual-NMI blocking");
1618 gi = vmcs_read(VMCS_GUEST_INTERRUPTIBILITY);
1619 gi |= VMCS_INTERRUPTIBILITY_NMI_BLOCKING;
1620 vmcs_write(VMCS_GUEST_INTERRUPTIBILITY, gi);
1621}
1622
1623static void
1624vmx_clear_nmi_blocking(struct vmx *vmx, int vcpuid)

Callers 1

vmx_exit_processFunction · 0.85

Calls 2

vmcs_readFunction · 0.85
vmcs_writeFunction · 0.85

Tested by

no test coverage detected