linux/arch/powerpc/include/asm/irq.h
<<
>>
Prefs
   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__ */
  63