1/*
2 *  linux/include/asm-arm/mach/irq.h
3 *
4 *  Copyright (C) 1995-2000 Russell King.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 */
10#ifndef __ASM_ARM_MACH_IRQ_H
11#define __ASM_ARM_MACH_IRQ_H
12
13#include <linux/irq.h>
14
15struct seq_file;
16
17/*
18 * This is internal.  Do not use it.
19 */
20extern void (*init_arch_irq)(void);
21extern void init_FIQ(void);
22extern int show_fiq_list(struct seq_file *, void *);
23
24/*
25 * Obsolete inline function for calling irq descriptor handlers.
26 */
27static inline void desc_handle_irq(unsigned int irq, struct irq_desc *desc)
28{
29	desc->handle_irq(irq, desc);
30}
31
32void set_irq_flags(unsigned int irq, unsigned int flags);
33
34#define IRQF_VALID	(1 << 0)
35#define IRQF_PROBE	(1 << 1)
36#define IRQF_NOAUTOEN	(1 << 2)
37
38/*
39 * This is for easy migration, but should be changed in the source
40 */
41#define do_bad_IRQ(irq,desc)				\
42do {							\
43	spin_lock(&desc->lock);				\
44	handle_bad_irq(irq, desc);			\
45	spin_unlock(&desc->lock);			\
46} while(0)
47
48extern unsigned long irq_err_count;
49static inline void ack_bad_irq(int irq)
50{
51	irq_err_count++;
52}
53
54#endif
55