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; }
status_t mask_interrupt(unsigned int vector) { if (vector >= INT_VECTORS) return ERR_INVALID_ARGS; // dprintf("%s: vector %d\n", __PRETTY_FUNCTION__, vector); enter_critical_section(); *REG32(INTC_MIR_SET(vectorToController(vector))) = 1 << (vector % 32); exit_critical_section(); return NO_ERROR; }
status_t unmask_interrupt(unsigned int vector) { if (vector >= INT_VECTORS) return ERR_INVALID_ARGS; // dprintf("%s: vector %d\n", __PRETTY_FUNCTION__, vector); enter_critical_section(); volatile uint32_t *mir = ICReg(vectorToController(vector), INTCON_MIR); *mir = *mir & ~(1<<(vector % 32)); exit_critical_section(); return NO_ERROR; }