summaryrefslogtreecommitdiff
path: root/include/asm-m68knommu/irqnode.h
diff options
context:
space:
mode:
authorGreg Ungerer <gerg@snapgear.com>2005-11-07 07:09:50 +0300
committerLinus Torvalds <torvalds@g5.osdl.org>2005-11-07 19:00:47 +0300
commit2ed5e6d09e266bd2288d49aaaf240ed8c468c13c (patch)
tree4cd700790fbaf7709dd3218970e457927759738d /include/asm-m68knommu/irqnode.h
parent562d2f8ce4e463e1427ddfab5e84440323856f43 (diff)
downloadlinux-2ed5e6d09e266bd2288d49aaaf240ed8c468c13c.tar.xz
[PATCH] m68knommu: move some platform irq support out of irq.h
Move some of the m68knommu platform specific irq core support to its own header, irqnode.h. Having it in asm-m68knommu/irq.h causes some build pain, since it is included in a number of common code places (and not all the required definitions will be included at these places). Signed-off-by: Greg Ungerer <gerg@uclinux.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/asm-m68knommu/irqnode.h')
-rw-r--r--include/asm-m68knommu/irqnode.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/include/asm-m68knommu/irqnode.h b/include/asm-m68knommu/irqnode.h
new file mode 100644
index 000000000000..a2503dfc554c
--- /dev/null
+++ b/include/asm-m68knommu/irqnode.h
@@ -0,0 +1,36 @@
+#ifndef _M68K_IRQNODE_H_
+#define _M68K_IRQNODE_H_
+
+#include <linux/interrupt.h>
+
+/*
+ * This structure is used to chain together the ISRs for a particular
+ * interrupt source (if it supports chaining).
+ */
+typedef struct irq_node {
+ irqreturn_t (*handler)(int, void *, struct pt_regs *);
+ unsigned long flags;
+ void *dev_id;
+ const char *devname;
+ struct irq_node *next;
+} irq_node_t;
+
+/*
+ * This structure has only 4 elements for speed reasons
+ */
+typedef struct irq_handler {
+ irqreturn_t (*handler)(int, void *, struct pt_regs *);
+ unsigned long flags;
+ void *dev_id;
+ const char *devname;
+} irq_handler_t;
+
+/* count of spurious interrupts */
+extern volatile unsigned int num_spurious;
+
+/*
+ * This function returns a new irq_node_t
+ */
+extern irq_node_t *new_irq_node(void);
+
+#endif /* _M68K_IRQNODE_H_ */