status_t unmask_interrupt(unsigned int vector) { if (vector >= INT_VECTORS) return ERR_INVALID_ARGS; // dprintf("%s: vector %d\n", __PRETTY_FUNCTION__, vector); *REG32(INTC_MIR_CLEAR(vectorToController(vector))) = 1 << (vector % 32); return NO_ERROR; }
static void intc_unmask(struct vmm_host_irq *irq) { intc_write(INTC_MIR_CLEAR((irq->num / INTC_BITS_PER_REG)), 0x1 << (irq->num & (INTC_BITS_PER_REG - 1))); }