1c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef __irq_cpustat_h 2c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define __irq_cpustat_h 3c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 4c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* 5c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * Contains default mappings for irq_cpustat_t, used by almost every 6c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * architecture. Some arch (like s390) have per cpu hardware pages and 7c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * they define their own mappings for irq_stat. 8c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * 9c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * Keith Owens <kaos@ocs.com.au> July 2000. 10c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru */ 11c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 12c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 13c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* 14c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * Simple wrappers reducing source bloat. Define all irq_stat fields 15c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * here, even ones that are arch dependent. That way we get common 16c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * definitions instead of differing sets for each arch. 17c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru */ 18c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 19c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef __ARCH_IRQ_STAT 20c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruextern irq_cpustat_t irq_stat[]; /* defined in asm/hardirq.h */ 21c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define __IRQ_STAT(cpu, member) (irq_stat[cpu].member) 22c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 23c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 24c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru /* arch independent irq_stat fields */ 25c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define local_softirq_pending() \ 26c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru __IRQ_STAT(smp_processor_id(), __softirq_pending) 27c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 28c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru /* arch dependent irq_stat fields */ 29c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define nmi_count(cpu) __IRQ_STAT((cpu), __nmi_count) /* i386 */ 30c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 31c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif /* __irq_cpustat_h */ 32