blob: c0593f9b21e1b5ceb78bd03edad2479a26af41ca [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
16#define HARDIRQ_BITS 12
17
18/*
19 * The hardirq mask has to be large enough to have
20 * space for potentially nestable IRQ sources in the system
21 * to nest on a single CPU. On Alpha, interrupts are masked at the CPU
22 * by IPL as well as at the system level. We only have 8 IPLs (UNIX PALcode)
23 * so we really only have 8 nestable IRQs, but allow some overhead
24 */
25#if (1 << HARDIRQ_BITS) < 16
26#error HARDIRQ_BITS is too low!
27#endif
28
29#endif /* _ALPHA_HARDIRQ_H */