|  | #ifndef __ASM_HARDIRQ_H | 
|  | #define __ASM_HARDIRQ_H | 
|  |  | 
|  | #include <linux/threads.h> | 
|  | #include <linux/irq.h> | 
|  | #include <asm/pda.h> | 
|  | #include <asm/apic.h> | 
|  |  | 
|  | /* We can have at most NR_VECTORS irqs routed to a cpu at a time */ | 
|  | #define MAX_HARDIRQS_PER_CPU NR_VECTORS | 
|  |  | 
|  | #define __ARCH_IRQ_STAT 1 | 
|  |  | 
|  | #define local_softirq_pending() read_pda(__softirq_pending) | 
|  |  | 
|  | #define __ARCH_SET_SOFTIRQ_PENDING 1 | 
|  |  | 
|  | #define set_softirq_pending(x) write_pda(__softirq_pending, (x)) | 
|  | #define or_softirq_pending(x)  or_pda(__softirq_pending, (x)) | 
|  |  | 
|  | extern void ack_bad_irq(unsigned int irq); | 
|  |  | 
|  | #endif /* __ASM_HARDIRQ_H */ |