Exemple #1
0
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;
}
Exemple #2
0
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;
}
Exemple #3
0
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;
}