Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1/* SPDX-License-Identifier: GPL-2.0-or-later */
2#ifdef __KERNEL__
3#ifndef _ASM_POWERPC_IRQ_H
4#define _ASM_POWERPC_IRQ_H
5
6/*
7 */
8
9#include <linux/threads.h>
10#include <linux/list.h>
11#include <linux/radix-tree.h>
12
13#include <asm/types.h>
14#include <linux/atomic.h>
15
16
17extern atomic_t ppc_n_lost_interrupts;
18
19/* This number is used when no interrupt has been assigned */
20#define NO_IRQ (0)
21
22/* Total number of virq in the platform */
23#define NR_IRQS CONFIG_NR_IRQS
24
25/* Number of irqs reserved for a legacy isa controller */
26#define NR_IRQS_LEGACY 16
27
28extern irq_hw_number_t virq_to_hw(unsigned int virq);
29
30static __inline__ int irq_canonicalize(int irq)
31{
32 return irq;
33}
34
35extern int distribute_irqs;
36
37struct pt_regs;
38
39#if defined(CONFIG_BOOKE) || defined(CONFIG_40x)
40/*
41 * Per-cpu stacks for handling critical, debug and machine check
42 * level interrupts.
43 */
44extern void *critirq_ctx[NR_CPUS];
45extern void *dbgirq_ctx[NR_CPUS];
46extern void *mcheckirq_ctx[NR_CPUS];
47#endif
48
49/*
50 * Per-cpu stacks for handling hard and soft interrupts.
51 */
52extern void *hardirq_ctx[NR_CPUS];
53extern void *softirq_ctx[NR_CPUS];
54
55void __do_IRQ(struct pt_regs *regs);
56extern void __init init_IRQ(void);
57extern void __do_irq(struct pt_regs *regs);
58
59int irq_choose_cpu(const struct cpumask *mask);
60
61#endif /* _ASM_IRQ_H */
62#endif /* __KERNEL__ */