#include <system_def.h>
+#include <cpu_def.h>
#include <hal_ints.h>
#include <hal_intr.h>
#include <types.h>
uint32_t hal_interrupt_handlers[HAL_ISR_COUNT]={[0 ... HAL_ISR_COUNT-1]=(uint32_t)hal_default_isr};
uint32_t hal_interrupt_data[HAL_ISR_COUNT];
+#if !defined(__thumb__)
void irq_handler_resolver(void) __attribute__ ((interrupt));
+#endif
void irq_handler_resolver(void)
{
int v;
((hal_isr)f)(v,d);
hal_interrupt_acknowledge(v);
}
+
+int request_irq(unsigned int irqnum, irq_handler_t handler, unsigned long flags,
+ const char *name, void *context)
+{
+ HAL_INTERRUPT_ATTACH(irqnum, handler, context);
+ HAL_INTERRUPT_UNMASK(irqnum);
+ return irqnum;
+}
+
+void free_irq(unsigned int irqnum,void *ctx)
+{
+ HAL_INTERRUPT_MASK(irqnum);
+ HAL_INTERRUPT_DETACH(irqnum, NULL);
+}