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 struct irqdesc {
14 	unsigned int	 triggered: 1;		/* IRQ has occurred	      */
15 	unsigned int	 running  : 1;		/* IRQ is running             */
16 	unsigned int	 pending  : 1;		/* IRQ is pending	      */
17 	unsigned int	 probing  : 1;		/* IRQ in use for a probe     */
18 	unsigned int	 probe_ok : 1;		/* IRQ can be used for probe  */
19 	unsigned int	 valid    : 1;		/* IRQ claimable	      */
20 	unsigned int	 noautoenable : 1;	/* don't automatically enable IRQ */
21 	unsigned int	 unused   :25;
22 	unsigned int	 disable_depth;
23 
24 	struct list_head pend;
25 
26 	void (*mask_ack)(unsigned int irq);	/* Mask and acknowledge IRQ   */
27 	void (*mask)(unsigned int irq);		/* Mask IRQ		      */
28 	void (*unmask)(unsigned int irq);	/* Unmask IRQ		      */
29 	struct irqaction *action;
30 
31 	/*
32 	 * IRQ lock detection
33 	 */
34 	unsigned int	 lck_cnt;
35 	unsigned int	 lck_pc;
36 	unsigned int	 lck_jif;
37 	int		 lck_warned;
38 	struct timer_list	lck_timer;
39 };
40 
41 extern struct irqdesc irq_desc[];
42 
43 extern void (*init_arch_irq)(void);
44 extern int setup_arm_irq(int, struct irqaction *);
45 extern int get_fiq_list(char *);
46 extern void init_FIQ(void);
47 
48 #endif
49