forked from Minki/linux
908dcecda1
Correct the return type of handle_IRQ_event() (inconsistency noticed during Xen development), and remove redundant declarations. The return type adjustment required breaking out the definition of irqreturn_t into a separate header, in order to satisfy current include order dependencies. Signed-off-by: Jan Beulich <jbeulich@novell.com> Cc: Richard Henderson <rth@twiddle.net> Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru> Cc: Russell King <rmk@arm.linux.org.uk> Cc: Ian Molton <spyro@f2s.com> Cc: Mikael Starvik <starvik@axis.com> Cc: Yoshinori Sato <ysato@users.sourceforge.jp> Cc: Hirokazu Takata <takata.hirokazu@renesas.com> Cc: Heiko Carstens <heiko.carstens@de.ibm.com> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: William Lee Irwin III <wli@holomorphy.com> Cc: "David S. Miller" <davem@davemloft.net> Cc: Miles Bader <uclinux-v850@lsi.nec.co.jp> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Cc: Roman Zippel <zippel@linux-m68k.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
68 lines
1.8 KiB
C
68 lines
1.8 KiB
C
/*
|
|
* include/asm-v850/irq.h -- Machine interrupt handling
|
|
*
|
|
* Copyright (C) 2001,02,04 NEC Electronics Corporation
|
|
* Copyright (C) 2001,02,04 Miles Bader <miles@gnu.org>
|
|
*
|
|
* This file is subject to the terms and conditions of the GNU General
|
|
* Public License. See the file COPYING in the main directory of this
|
|
* archive for more details.
|
|
*
|
|
* Written by Miles Bader <miles@gnu.org>
|
|
*/
|
|
|
|
#ifndef __V850_IRQ_H__
|
|
#define __V850_IRQ_H__
|
|
|
|
#include <asm/machdep.h>
|
|
|
|
/* Default NUM_MACH_IRQS. */
|
|
#ifndef NUM_MACH_IRQS
|
|
#define NUM_MACH_IRQS NUM_CPU_IRQS
|
|
#endif
|
|
|
|
/* NMIs have IRQ numbers from FIRST_NMI to FIRST_NMI+NUM_NMIS-1. */
|
|
#define FIRST_NMI NUM_MACH_IRQS
|
|
#define IRQ_NMI(n) (FIRST_NMI + (n))
|
|
/* v850 processors have 3 non-maskable interrupts. */
|
|
#define NUM_NMIS 3
|
|
|
|
/* Includes both maskable and non-maskable irqs. */
|
|
#define NR_IRQS (NUM_MACH_IRQS + NUM_NMIS)
|
|
|
|
|
|
#ifndef __ASSEMBLY__
|
|
|
|
struct pt_regs;
|
|
struct hw_interrupt_type;
|
|
struct irqaction;
|
|
|
|
#define irq_canonicalize(irq) (irq)
|
|
|
|
/* Initialize irq handling for IRQs.
|
|
BASE_IRQ, BASE_IRQ+INTERVAL, ..., BASE_IRQ+NUM*INTERVAL
|
|
to IRQ_TYPE. An IRQ_TYPE of 0 means to use a generic interrupt type. */
|
|
extern void
|
|
init_irq_handlers (int base_irq, int num, int interval,
|
|
struct hw_interrupt_type *irq_type);
|
|
|
|
typedef void (*irq_handler_t)(int irq, void *data, struct pt_regs *regs);
|
|
|
|
/* Handle interrupt IRQ. REGS are the registers at the time of ther
|
|
interrupt. */
|
|
extern unsigned int handle_irq (int irq, struct pt_regs *regs);
|
|
|
|
|
|
/* Enable interrupt handling on an irq. */
|
|
extern void enable_irq(unsigned int irq);
|
|
|
|
/* Disable an irq and wait for completion. */
|
|
extern void disable_irq (unsigned int irq);
|
|
|
|
/* Disable an irq without waiting. */
|
|
extern void disable_irq_nosync (unsigned int irq);
|
|
|
|
#endif /* !__ASSEMBLY__ */
|
|
|
|
#endif /* __V850_IRQ_H__ */
|