Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at bdb94f3a78366d46bc73c8c8d8fe0dfb9522ff36 55 lines 1.3 kB view raw
1/* 2 * This file is subject to the terms and conditions of the GNU General Public 3 * License. See the file "COPYING" in the main directory of this archive 4 * for more details. 5 * 6 * Copyright (C) 1994 by Waldorf GMBH, written by Ralf Baechle 7 * Copyright (C) 1995, 96, 97, 98, 99, 2000, 01, 02, 03 by Ralf Baechle 8 */ 9#ifndef _ASM_IRQ_H 10#define _ASM_IRQ_H 11 12#include <linux/config.h> 13#include <linux/linkage.h> 14#include <irq.h> 15 16#ifdef CONFIG_I8259 17static inline int irq_canonicalize(int irq) 18{ 19 return ((irq == 2) ? 9 : irq); 20} 21#else 22#define irq_canonicalize(irq) (irq) /* Sane hardware, sane code ... */ 23#endif 24 25struct pt_regs; 26 27#ifdef CONFIG_PREEMPT 28 29extern asmlinkage unsigned int do_IRQ(unsigned int irq, struct pt_regs *regs); 30 31#else 32 33/* 34 * do_IRQ handles all normal device IRQ's (the special 35 * SMP cross-CPU interrupts have their own specific 36 * handlers). 37 * 38 * Ideally there should be away to get this into kernel/irq/handle.c to 39 * avoid the overhead of a call for just a tiny function ... 40 */ 41#define do_IRQ(irq, regs) \ 42do { \ 43 irq_enter(); \ 44 __do_IRQ((irq), (regs)); \ 45 irq_exit(); \ 46} while (0) 47 48#endif 49 50extern void arch_init_irq(void); 51 52struct irqaction; 53int handle_IRQ_event(unsigned int, struct pt_regs *, struct irqaction *); 54 55#endif /* _ASM_IRQ_H */