Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 1257 → Rev 1258

/kernel/trunk/arch/mips32/src/interrupt.c
34,6 → 34,8
#include <time/clock.h>
#include <arch/drivers/arc.h>
 
#include <ipc/sysipc.h>
 
/** Disable interrupts.
*
* @return Old interrupt priority level.
83,11 → 85,13
static void swint0(int n, istate_t *istate)
{
cp0_cause_write(cp0_cause_read() & ~(1 << 8)); /* clear SW0 interrupt */
ipc_irq_send_notif(0);
}
 
static void swint1(int n, istate_t *istate)
{
cp0_cause_write(cp0_cause_read() & ~(1 << 9)); /* clear SW1 interrupt */
ipc_irq_send_notif(1);
}
 
/* Initialize basic tables for exception dispatching */
97,3 → 101,19
int_register(0, "swint0", swint0);
int_register(1, "swint1", swint1);
}
 
#include <print.h>
static void ipc_int(int n, istate_t *istate)
{
ipc_irq_send_notif(n-INT_OFFSET);
}
 
/* Reregister irq to be IPC-ready */
void irq_ipc_bind_arch(__native irq)
{
/* Do not allow to redefine timer */
/* Swint0, Swint1 are already handled */
if (irq == TIMER_IRQ || irq < 2)
return;
int_register(irq, "ipc_int", ipc_int);
}