blob: 74178adeb1cd30f3a07eed6366ee36b8613ffe47 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#ifndef __ASM_HARDIRQ_H
2#define __ASM_HARDIRQ_H
3
Jesper Nilsson80bf7a52007-11-14 17:00:49 -08004#include <asm/irq.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -07005#include <linux/threads.h>
6#include <linux/cache.h>
7
Linus Torvalds1da177e2005-04-16 15:20:36 -07008typedef struct {
9 unsigned int __softirq_pending;
10} ____cacheline_aligned irq_cpustat_t;
11
12#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
13
Mikael Starvik2e0cea1d2005-07-27 11:44:36 -070014void ack_bad_irq(unsigned int irq);
15
Linus Torvalds1da177e2005-04-16 15:20:36 -070016#define HARDIRQ_BITS 8
17
18/*
19 * The hardirq mask has to be large enough to have
20 * space for potentially all IRQ sources in the system
21 * nesting on a single CPU:
22 */
23#if (1 << HARDIRQ_BITS) < NR_IRQS
24# error HARDIRQ_BITS is too low!
25#endif
26
27#endif /* __ASM_HARDIRQ_H */