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