blob: 2ceb4a0fd315113b8118d1b9ad80c53ae9d9de67 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
#ifndef IRQ_HANDLER_
#define IRQ_HANDLER_
#define INT_CAUSE_MAIN 0
#define INT_CAUSE_HIGH 1
#define MAX_CAUSE_REGS 4
#define MAX_CAUSE_REG_WIDTH 32
void hook_irq_handler (int int_cause , int bit_num , void *isr_ptr);
int disable_galileo_irq (int int_cause , int bit_num);
int enable_galileo_irq (int int_cause , int bit_num);
extern struct tq_struct irq_handlers[MAX_CAUSE_REGS][MAX_CAUSE_REG_WIDTH];
/*
PCI interrupts will come in on either the INTA or
INTD interrups lines, which are mapped to the #2 and
#5 interrupt pins of the MIPS. On our boards, they
all either come in on IntD or they all come in on
IntA, they aren't mixed. There can be numerous PCI
interrupts, so we keep a list of the "requested"
interrupt numbers and go through the list whenever
we get an IntA/D.
All PCI interrupts have numbers >= 20 by arbitrary convention. Any
interrupt < 8 is an interrupt that is maskable on the
MIPS.
*/
#define TIMER 4
#define INTA 2
#define INTD 5
#endif /* IRQ_HANDLER_ */
|