blob: 7bb6a36c96a17aecdbe474ba300aaaae72cd1c0f [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#ifndef _ALPHA_HARDIRQ_H
2#define _ALPHA_HARDIRQ_H
3
4#include <linux/config.h>
5#include <linux/threads.h>
6#include <linux/cache.h>
7
8
9/* entry.S is sensitive to the offsets of these fields */
10typedef struct {
11 unsigned long __softirq_pending;
12} ____cacheline_aligned irq_cpustat_t;
13
14#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
15
Ivan Kokshaysky0595bf32006-01-06 00:12:22 -080016void ack_bad_irq(unsigned int irq);
17
Linus Torvalds1da177e2005-04-16 15:20:36 -070018#define HARDIRQ_BITS 12
19
20/*
21 * The hardirq mask has to be large enough to have
22 * space for potentially nestable IRQ sources in the system
23 * to nest on a single CPU. On Alpha, interrupts are masked at the CPU
24 * by IPL as well as at the system level. We only have 8 IPLs (UNIX PALcode)
25 * so we really only have 8 nestable IRQs, but allow some overhead
26 */
27#if (1 << HARDIRQ_BITS) < 16
28#error HARDIRQ_BITS is too low!
29#endif
30
31#endif /* _ALPHA_HARDIRQ_H */