Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1#ifndef __ASM_SH_IRQ_H
2#define __ASM_SH_IRQ_H
3
4#include <asm/machvec.h>
5
6/*
7 * A sane default based on a reasonable vector table size, platforms are
8 * advised to cap this at the hard limit that they're interested in
9 * through the machvec.
10 */
11#define NR_IRQS 256
12#define NR_IRQS_LEGACY 8 /* Legacy external IRQ0-7 */
13
14/*
15 * Convert back and forth between INTEVT and IRQ values.
16 */
17#ifdef CONFIG_CPU_HAS_INTEVT
18#define evt2irq(evt) (((evt) >> 5) - 16)
19#define irq2evt(irq) (((irq) + 16) << 5)
20#else
21#define evt2irq(evt) (evt)
22#define irq2evt(irq) (irq)
23#endif
24
25/*
26 * Simple Mask Register Support
27 */
28extern void make_maskreg_irq(unsigned int irq);
29extern unsigned short *irq_mask_register;
30
31/*
32 * PINT IRQs
33 */
34void init_IRQ_pint(void);
35void make_imask_irq(unsigned int irq);
36
37static inline int generic_irq_demux(int irq)
38{
39 return irq;
40}
41
42#define irq_demux(irq) sh_mv.mv_irq_demux(irq)
43
44void init_IRQ(void);
45asmlinkage int do_IRQ(unsigned int irq, struct pt_regs *regs);
46
47#ifdef CONFIG_IRQSTACKS
48extern void irq_ctx_init(int cpu);
49extern void irq_ctx_exit(int cpu);
50# define __ARCH_HAS_DO_SOFTIRQ
51#else
52# define irq_ctx_init(cpu) do { } while (0)
53# define irq_ctx_exit(cpu) do { } while (0)
54#endif
55
56#include <asm-generic/irq.h>
57#ifdef CONFIG_CPU_SH5
58#include <cpu/irq.h>
59#endif
60
61#endif /* __ASM_SH_IRQ_H */