mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-09-09 04:39:34 +00:00
HV: Add hypercall to set/clear IRQ line
- wraps ASSERT/DEASSERT IRQ line hypercalls. - remove 'intr_type' from set/clear IRQ line interface. - deprecate "IRQ_ASSERT", "IRQ_DEASSERT" & "IRQ_PULSE". - new adding hypercall will support "GSI_SET_HIGH"/ "GSI_SET_LOW"/ "GSI_RAISING_PULSE"/ "GSI_FALLING_PULSE" operations Tracked-On: #861 Signed-off-by: Yonghua Huang <yonghua.huang@intel.com> Acked-by: Eddie Dong <eddie.dong@intel.com>
This commit is contained in:
@@ -264,6 +264,22 @@ struct acrn_set_ioreq_buffer {
|
||||
/** Interrupt type for acrn_irqline: inject interrupt to both PIC and IOAPIC */
|
||||
#define ACRN_INTR_TYPE_IOAPIC 1U
|
||||
|
||||
/** Operation types for setting IRQ line */
|
||||
#define GSI_SET_HIGH 0U
|
||||
#define GSI_SET_LOW 1U
|
||||
#define GSI_RAISING_PULSE 2U
|
||||
#define GSI_FALLING_PULSE 3U
|
||||
|
||||
/**
|
||||
* @brief Info to Set/Clear/Pulse a virtual IRQ line for a VM
|
||||
*
|
||||
* the parameter for HC_SET_IRQLINE hypercall
|
||||
*/
|
||||
struct acrn_irqline_ops {
|
||||
uint32_t nr_gsi;
|
||||
uint32_t op;
|
||||
} __aligned(8);
|
||||
|
||||
/**
|
||||
* @brief Info to assert/deassert/pulse a virtual IRQ line for a VM
|
||||
*
|
||||
|
@@ -45,6 +45,7 @@
|
||||
#define HC_PULSE_IRQLINE BASE_HC_ID(HC_ID, HC_ID_IRQ_BASE + 0x02UL)
|
||||
#define HC_INJECT_MSI BASE_HC_ID(HC_ID, HC_ID_IRQ_BASE + 0x03UL)
|
||||
#define HC_VM_INTR_MONITOR BASE_HC_ID(HC_ID, HC_ID_IRQ_BASE + 0x04UL)
|
||||
#define HC_SET_IRQLINE BASE_HC_ID(HC_ID, HC_ID_IRQ_BASE + 0x05UL)
|
||||
|
||||
/* DM ioreq management */
|
||||
#define HC_ID_IOREQ_BASE 0x30UL
|
||||
|
Reference in New Issue
Block a user