| /* | |
| * Copyright 2014, NICTA | |
| * | |
| * This software may be distributed and modified according to the terms of | |
| * the GNU General Public License version 2. Note that NO WARRANTY is provided. | |
| * See "LICENSE_GPLv2.txt" for details. | |
| * | |
| * @TAG(NICTA_GPL) | |
| */ | |
| #ifndef _LIB_VMM_INTERRUPT_H_ | |
| #define _LIB_VMM_INTERRUPT_H_ | |
| typedef struct vmm_vcpu vmm_vcpu_t; | |
| /* Handler for a guest exit that is triggered when the guest is | |
| * ready to receive interrupts */ | |
| int vmm_pending_interrupt_handler(vmm_vcpu_t *vcpu); | |
| /* Request that the guest exist as soon as it is ready to receive | |
| * interrupts */ | |
| void wait_for_guest_ready(vmm_vcpu_t *vcpu); | |
| /* Start an AP vcpu after a sipi with the requested vector */ | |
| void vmm_start_ap_vcpu(vmm_vcpu_t *vcpu, unsigned int sipi_vector); | |
| /* Got interrupt(s) from PIC, propagate to relevant vcpu lapic */ | |
| void vmm_check_external_interrupt(vmm_t *vmm); | |
| /* inject an interrupt from the lapic on the vcpu, whether or not it is in an exit */ | |
| void vmm_vcpu_accept_interrupt(vmm_vcpu_t *vcpu); | |
| /* This function is called when a new interrupt has occured. */ | |
| void vmm_have_pending_interrupt(vmm_vcpu_t *vcpu); | |
| #endif |