| #ifndef _H8300_IRQ_H_ | 
 | #define _H8300_IRQ_H_ | 
 |  | 
 | #include <asm/ptrace.h> | 
 |  | 
 | #if defined(__H8300H__) | 
 | #define NR_IRQS 64 | 
 | #define EXT_IRQ0 12 | 
 | #define EXT_IRQ1 13 | 
 | #define EXT_IRQ2 14 | 
 | #define EXT_IRQ3 15 | 
 | #define EXT_IRQ4 16 | 
 | #define EXT_IRQ5 17 | 
 | #define EXT_IRQ6 18 | 
 | #define EXT_IRQ7 19 | 
 | #define EXT_IRQS 5 | 
 |  | 
 | #include <asm/regs306x.h> | 
 | #define h8300_clear_isr(irq)                                                \ | 
 | do {                                                                        \ | 
 | 	if (irq >= EXT_IRQ0 && irq <= EXT_IRQ5)                             \ | 
 | 		*(volatile unsigned char *)ISR &= ~(1 << (irq - EXT_IRQ0)); \ | 
 | } while(0) | 
 |  | 
 | #define IER_REGS *(volatile unsigned char *)IER | 
 | #endif | 
 | #if defined(CONFIG_CPU_H8S) | 
 | #define NR_IRQS 128 | 
 | #define EXT_IRQ0 16 | 
 | #define EXT_IRQ1 17 | 
 | #define EXT_IRQ2 18 | 
 | #define EXT_IRQ3 19 | 
 | #define EXT_IRQ4 20 | 
 | #define EXT_IRQ5 21 | 
 | #define EXT_IRQ6 22 | 
 | #define EXT_IRQ7 23 | 
 | #define EXT_IRQ8 24 | 
 | #define EXT_IRQ9 25 | 
 | #define EXT_IRQ10 26 | 
 | #define EXT_IRQ11 27 | 
 | #define EXT_IRQ12 28 | 
 | #define EXT_IRQ13 29 | 
 | #define EXT_IRQ14 30 | 
 | #define EXT_IRQ15 31 | 
 | #define EXT_IRQS 15 | 
 |  | 
 | #include <asm/regs267x.h> | 
 | #define h8300_clear_isr(irq)                                                 \ | 
 | do {                                                                         \ | 
 | 	if (irq >= EXT_IRQ0 && irq <= EXT_IRQ15)                             \ | 
 | 		*(volatile unsigned short *)ISR &= ~(1 << (irq - EXT_IRQ0)); \ | 
 | } while(0) | 
 |  | 
 | #define IER_REGS *(volatile unsigned short *)IER | 
 | #endif | 
 |  | 
 | static __inline__ int irq_canonicalize(int irq) | 
 | { | 
 | 	return irq; | 
 | } | 
 |  | 
 | extern void enable_irq(unsigned int); | 
 | extern void disable_irq(unsigned int); | 
 |  | 
 | /* | 
 |  * Some drivers want these entry points | 
 |  */ | 
 | #define enable_irq_nosync(x)	enable_irq(x) | 
 | #define disable_irq_nosync(x)	disable_irq(x) | 
 |  | 
 | struct irqaction; | 
 | struct pt_regs; | 
 | int handle_IRQ_event(unsigned int, struct pt_regs *, struct irqaction *); | 
 |  | 
 | #endif /* _H8300_IRQ_H_ */ |