static void gic_irq_set_routed_state(struct vmm_host_irq *d, u32 val, u32 mask) { struct gic_chip_data *gic = vmm_host_irq_get_chip_data(d); if (mask & VMM_ROUTED_IRQ_STATE_PENDING) gic_poke_irq(gic, d, (val & VMM_ROUTED_IRQ_STATE_PENDING) ? GICD_ENABLE_SET : GICD_ENABLE_CLEAR); if (mask & VMM_ROUTED_IRQ_STATE_ACTIVE) gic_poke_irq(gic, d, (val & VMM_ROUTED_IRQ_STATE_ACTIVE) ? GICD_ACTIVE_SET : GICD_ACTIVE_CLEAR); if (mask & VMM_ROUTED_IRQ_STATE_MASKED) gic_poke_irq(gic, d, (val & VMM_ROUTED_IRQ_STATE_MASKED) ? GICD_ENABLE_CLEAR : GICD_ENABLE_SET); }
static void gic_unmask_irq(struct vmm_host_irq *irq) { gic_poke_irq(vmm_host_irq_get_chip_data(irq), irq, GIC_DIST_ENABLE_SET); }
static void gic_unmask_irq(struct vmm_host_irq *d) { gic_poke_irq(vmm_host_irq_get_chip_data(d), d, GICD_ENABLE_SET); }
static void gic_mask_irq(struct vmm_host_irq *d) { gic_poke_irq(vmm_host_irq_get_chip_data(d), d, GIC_DIST_ENABLE_CLEAR); }