| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | #ifndef __ASM_HARDIRQ_H
 | 
					
						
							|  |  |  | #define __ASM_HARDIRQ_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <linux/cache.h>
 | 
					
						
							|  |  |  | #include <linux/threads.h>
 | 
					
						
							|  |  |  | #include <asm/irq.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  | 	unsigned int __softirq_pending; | 
					
						
							| 
									
										
										
										
											2005-11-08 19:08:05 +00:00
										 |  |  | 	unsigned int local_timer_irqs; | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | } ____cacheline_aligned irq_cpustat_t; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <linux/irq_cpustat.h>	/* Standard mappings for irq_cpustat_t above */
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-19 09:58:27 +01:00
										 |  |  | #if NR_IRQS > 512
 | 
					
						
							|  |  |  | #define HARDIRQ_BITS	10
 | 
					
						
							|  |  |  | #elif NR_IRQS > 256
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | #define HARDIRQ_BITS	9
 | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | #define HARDIRQ_BITS	8
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*
 | 
					
						
							|  |  |  |  * The hardirq mask has to be large enough to have space | 
					
						
							|  |  |  |  * for potentially all IRQ sources in the system nesting | 
					
						
							|  |  |  |  * on a single CPU: | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #if (1 << HARDIRQ_BITS) < NR_IRQS
 | 
					
						
							|  |  |  | # error HARDIRQ_BITS is too low!
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define __ARCH_IRQ_EXIT_IRQS_DISABLED	1
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif /* __ASM_HARDIRQ_H */
 |