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);
19 void enable_irq(unsigned int irqnum)
21 NVIC_EnableIRQ(irqnum);
25 request_irq(unsigned int irqnum, irq_handler_t *handler, unsigned long flags,
26 const char *name, void *context)
28 unsigned int irqidx=irq_irqnum2irqidx(irqnum);
30 if (irqidx>=irq_table_size)
34 irq_handler_table[irqidx]=handler;
35 irq_context_table[irqidx]=context;
41 void free_irq(unsigned int irqnum, void *context)
43 unsigned int irqidx=irq_irqnum2irqidx(irqnum);
45 if (irqidx>=irq_table_size)
49 irq_handler_table[irqidx]=NULL;
50 irq_context_table[irqidx]=NULL;