3130ac39379ebdf7c32d3e0e698c0ef0b1515d46
[linux-flexiantxendom0-3.2.10.git] / include / asm-h8300 / irq.h
1 #ifndef _H8300_IRQ_H_
2 #define _H8300_IRQ_H_
3
4 #define SYS_IRQS 64
5
6 #define NR_IRQS 64
7
8 #include <asm/ptrace.h>
9
10 /*
11  * "Generic" interrupt sources
12  */
13
14 #define IRQ_SCHED_TIMER (40)    /* interrupt source for scheduling timer */
15
16 static __inline__ int irq_canonicalize(int irq)
17 {
18         return irq;
19 }
20
21 extern void enable_irq(unsigned int);
22 extern void disable_irq(unsigned int);
23
24 extern int sys_request_irq(unsigned int, 
25         void (*)(int, void *, struct pt_regs *), 
26         unsigned long, const char *, void *);
27 extern void sys_free_irq(unsigned int, void *);
28
29 typedef struct irq_node {
30         void            (*handler)(int, void *, struct pt_regs *);
31         unsigned long   flags;
32         void            *dev_id;
33         const char      *devname;
34         struct irq_node *next;
35 } irq_node_t;
36
37 /*
38  * This structure has only 4 elements for speed reasons
39  */
40 typedef struct irq_handler {
41         void            (*handler)(int, void *, struct pt_regs *);
42         unsigned long   flags;
43         void            *dev_id;
44         const char      *devname;
45 } irq_handler_t;
46
47 /* count of spurious interrupts */
48 extern volatile unsigned int num_spurious;
49
50 /*
51  * Some drivers want these entry points
52  */
53 #define enable_irq_nosync(x)    enable_irq(x)
54 #define disable_irq_nosync(x)   disable_irq(x)
55
56 #endif /* _H8300_IRQ_H_ */