diff --git a/lib/CPUs/MIPS/bsp/examples/irq.c b/lib/CPUs/MIPS/bsp/examples/irq.c index a051f58..bcd8d98 100644 --- a/lib/CPUs/MIPS/bsp/examples/irq.c +++ b/lib/CPUs/MIPS/bsp/examples/irq.c @@ -8,7 +8,7 @@ #include "xcpt.h" #include "irq.h" -static fp_t g_irq_handler[MAX_NUM_IRQ] = {NULL}; +static fp_irq_t g_irq_handler[MAX_NUM_IRQ] = {NULL}; int _irq_dispatch(struct xcptcontext * xcp) { @@ -20,7 +20,7 @@ int _irq_dispatch(struct xcptcontext * xcp) { if (ip & 1) if (g_irq_handler[i]) - (g_irq_handler[i])(); + (g_irq_handler[i])(xcp); ip >>= 1; } @@ -28,7 +28,7 @@ int _irq_dispatch(struct xcptcontext * xcp) return 0; } -void interrupt_register(int irq_num, fp_t fp) +void interrupt_register(int irq_num, fp_irq_t fp) { if ((irq_num >= 0) && (irq_num < MAX_NUM_IRQ)) g_irq_handler[irq_num] = fp; diff --git a/lib/CPUs/MIPS/bsp/examples/irq.h b/lib/CPUs/MIPS/bsp/examples/irq.h index 73b207d..d6c343c 100644 --- a/lib/CPUs/MIPS/bsp/examples/irq.h +++ b/lib/CPUs/MIPS/bsp/examples/irq.h @@ -5,10 +5,10 @@ #define MAX_NUM_IRQ 8 -typedef void (*fp_t)(void); +typedef void (*fp_irq_t)(struct xcptcontext * xcp); int _irq_dispatch(struct xcptcontext * xcp); -void interrupt_register(int irq_num, fp_t fp); +void interrupt_register(int irq_num, fp_irq_t fp); void interrupt_enable(int irq_num); void interrupt_disable(int irq_num);