|  | #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_ */ |