1 #ifndef __ASM_HARDIRQ_H
2 #define __ASM_HARDIRQ_H
3 
4 #include <xen/cache.h>
5 #include <xen/types.h>
6 
7 typedef struct {
8 	unsigned int __softirq_pending;
9 	unsigned int __local_irq_count;
10 	unsigned int __nmi_count;
11 	bool_t __mwait_wakeup;
12 } __cacheline_aligned irq_cpustat_t;
13 
14 #include <xen/irq_cpustat.h>	/* Standard mappings for irq_cpustat_t above */
15 
16 #define in_irq() (local_irq_count(smp_processor_id()) != 0)
17 
18 #define irq_enter()	(local_irq_count(smp_processor_id())++)
19 #define irq_exit()	(local_irq_count(smp_processor_id())--)
20 
21 void ack_bad_irq(unsigned int irq);
22 
23 extern void apic_intr_init(void);
24 extern void smp_intr_init(void);
25 
26 #endif /* __ASM_HARDIRQ_H */
27