blob: db30ed276878dcbf793e667d6edb279c5234a60a [file] [log] [blame]
Greg Ungerer10f939f2011-05-04 13:55:56 +10001#ifndef __M68K_HARDIRQ_H
2#define __M68K_HARDIRQ_H
3
4#include <linux/threads.h>
5#include <linux/cache.h>
6#include <asm/irq.h>
7
8#define HARDIRQ_BITS 8
9
10/*
11 * The hardirq mask has to be large enough to have
12 * space for potentially all IRQ sources in the system
13 * nesting on a single CPU:
14 */
15#if (1 << HARDIRQ_BITS) < NR_IRQS
16# error HARDIRQ_BITS is too low!
17#endif
18
19#ifdef CONFIG_MMU
20
Geert Uytterhoeven4936f632011-04-21 22:50:52 +020021static inline void ack_bad_irq(unsigned int irq)
22{
23 pr_crit("unexpected IRQ trap at vector %02x\n", irq);
24}
25
Greg Ungerer10f939f2011-05-04 13:55:56 +100026/* entry.S is sensitive to the offsets of these fields */
27typedef struct {
28 unsigned int __softirq_pending;
29} ____cacheline_aligned irq_cpustat_t;
30
31#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
32
Sam Ravnborg49148022009-01-16 21:58:10 +100033#else
Greg Ungerer10f939f2011-05-04 13:55:56 +100034
35#include <asm-generic/hardirq.h>
36
37#endif /* !CONFIG_MMU */
38
Sam Ravnborg49148022009-01-16 21:58:10 +100039#endif