5 #define IRQ_TABLE_SIZE (16+33)
7 __attribute__ ((section(".irqarea")))
8 irq_handler_t *irq_handler_table_start[IRQ_TABLE_SIZE];
9 void *irq_context_table_start[IRQ_TABLE_SIZE];
11 void **irq_context_table = irq_context_table_start;
12 irq_handler_t **irq_handler_table = irq_handler_table_start;
13 unsigned int irq_table_size = IRQ_TABLE_SIZE;
15 void disable_irq(unsigned int irqnum)
17 NVIC_DisableIRQ(irqnum);
20 void enable_irq(unsigned int irqnum)
23 NVIC_EnableIRQ(irqnum);
27 request_irq(unsigned int irqnum, irq_handler_t *handler, unsigned long flags,
28 const char *name, void *context)
30 unsigned int irqidx=irq_irqnum2irqidx(irqnum);
32 if (irqidx>=irq_table_size)
36 irq_handler_table[irqidx]=handler;
37 irq_context_table[irqidx]=context;
43 void free_irq(unsigned int irqnum, void *context)
45 unsigned int irqidx=irq_irqnum2irqidx(irqnum);
47 if (irqidx>=irq_table_size)
51 irq_handler_table[irqidx]=NULL;
52 irq_context_table[irqidx]=NULL;