X-Git-Url: http://rtime.felk.cvut.cz/gitweb/lincan.git/blobdiff_plain/cc1afb21bdc089426652f21769164645cae062fd..243fec4450d3a3246f3f0d92751a95daef7c1503:/embedded/arch/arm/mach-lpc21xx/libs/hal/hal.c diff --git a/embedded/arch/arm/mach-lpc21xx/libs/hal/hal.c b/embedded/arch/arm/mach-lpc21xx/libs/hal/hal.c index a983e95..4fd41ca 100644 --- a/embedded/arch/arm/mach-lpc21xx/libs/hal/hal.c +++ b/embedded/arch/arm/mach-lpc21xx/libs/hal/hal.c @@ -1,4 +1,5 @@ #include +#include #include #include #include @@ -174,7 +175,9 @@ uint32_t hal_default_isr(int vector, uint32_t data) 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; @@ -187,3 +190,17 @@ void irq_handler_resolver(void) ((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); +}