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 210bb9560cb697c950e803d0fdaf9869efefed54 50 lines 1.2 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 27extern asmlinkage unsigned int do_IRQ(unsigned int irq, struct pt_regs *regs); 28 29#ifdef CONFIG_PREEMPT 30 31/* 32 * do_IRQ handles all normal device IRQ's (the special 33 * SMP cross-CPU interrupts have their own specific 34 * handlers). 35 * 36 * Ideally there should be away to get this into kernel/irq/handle.c to 37 * avoid the overhead of a call for just a tiny function ... 38 */ 39#define do_IRQ(irq, regs) \ 40do { \ 41 irq_enter(); \ 42 __do_IRQ((irq), (regs)); \ 43 irq_exit(); \ 44} while (0) 45 46#endif 47 48extern void arch_init_irq(void); 49 50#endif /* _ASM_IRQ_H */