0001
0002 #ifdef __KERNEL__
0003 #ifndef _ASM_POWERPC_IRQ_H
0004 #define _ASM_POWERPC_IRQ_H
0005
0006
0007
0008
0009 #include <linux/threads.h>
0010 #include <linux/list.h>
0011 #include <linux/radix-tree.h>
0012
0013 #include <asm/types.h>
0014 #include <linux/atomic.h>
0015
0016
0017 extern atomic_t ppc_n_lost_interrupts;
0018
0019
0020 #define NO_IRQ (0)
0021
0022
0023 #define NR_IRQS CONFIG_NR_IRQS
0024
0025
0026 #define NR_IRQS_LEGACY 16
0027
0028 extern irq_hw_number_t virq_to_hw(unsigned int virq);
0029
0030 static __inline__ int irq_canonicalize(int irq)
0031 {
0032 return irq;
0033 }
0034
0035 extern int distribute_irqs;
0036
0037 struct pt_regs;
0038
0039 #ifdef CONFIG_BOOKE_OR_40x
0040
0041
0042
0043
0044 extern void *critirq_ctx[NR_CPUS];
0045 extern void *dbgirq_ctx[NR_CPUS];
0046 extern void *mcheckirq_ctx[NR_CPUS];
0047 #endif
0048
0049
0050
0051
0052 extern void *hardirq_ctx[NR_CPUS];
0053 extern void *softirq_ctx[NR_CPUS];
0054
0055 void __do_IRQ(struct pt_regs *regs);
0056 extern void __init init_IRQ(void);
0057
0058 int irq_choose_cpu(const struct cpumask *mask);
0059
0060 #endif
0061 #endif