IRQ: Typedef the IRQ flow handler function type
authorDavid Howells <dhowells@redhat.com>
Thu, 5 Oct 2006 12:06:34 +0000 (13:06 +0100)
committerDavid Howells <dhowells@warthog.cambridge.redhat.com>
Thu, 5 Oct 2006 12:28:06 +0000 (13:28 +0100)
Typedef the IRQ flow handler function type.

Signed-Off-By: David Howells <dhowells@redhat.com>
(cherry picked from 8e973fbdf5716b93a0a8c0365be33a31ca0fa351 commit)

include/linux/irq.h
kernel/irq/chip.c

index 6f463606c318ed46bbfdc0427f219023b1da3860..b947d46e4b18fa5fdc8f314cfd3eb50e35642b44 100644 (file)
 #include <asm/irq.h>
 #include <asm/ptrace.h>
 
+struct irq_desc;
+typedef        void fastcall (*irq_flow_handler_t)(unsigned int irq,
+                                           struct irq_desc *desc,
+                                           struct pt_regs *regs);
+
+
 /*
  * IRQ line status.
  *
@@ -139,9 +145,7 @@ struct irq_chip {
  * Pad this out to 32 bytes for cache and indexing reasons.
  */
 struct irq_desc {
-       void fastcall           (*handle_irq)(unsigned int irq,
-                                             struct irq_desc *desc,
-                                             struct pt_regs *regs);
+       irq_flow_handler_t      handle_irq;
        struct irq_chip         *chip;
        void                    *handler_data;
        void                    *chip_data;
@@ -281,9 +285,7 @@ handle_bad_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs);
  * Get a descriptive string for the highlevel handler, for
  * /proc/interrupts output:
  */
-extern const char *
-handle_irq_name(void fastcall (*handle)(unsigned int, struct irq_desc *,
-                                       struct pt_regs *));
+extern const char *handle_irq_name(irq_flow_handler_t handle);
 
 /*
  * Monolithic do_IRQ implementation.
@@ -335,22 +337,15 @@ extern struct irq_chip dummy_irq_chip;
 
 extern void
 set_irq_chip_and_handler(unsigned int irq, struct irq_chip *chip,
-                        void fastcall (*handle)(unsigned int,
-                                                struct irq_desc *,
-                                                struct pt_regs *));
+                        irq_flow_handler_t handle);
 extern void
-__set_irq_handler(unsigned int irq,
-                 void fastcall (*handle)(unsigned int, struct irq_desc *,
-                                         struct pt_regs *),
-                 int is_chained);
+__set_irq_handler(unsigned int irq, irq_flow_handler_t handle, int is_chained);
 
 /*
  * Set a highlevel flow handler for a given IRQ:
  */
 static inline void
-set_irq_handler(unsigned int irq,
-               void fastcall (*handle)(unsigned int, struct irq_desc *,
-                                       struct pt_regs *))
+set_irq_handler(unsigned int irq, irq_flow_handler_t handle)
 {
        __set_irq_handler(irq, handle, 0);
 }
@@ -362,8 +357,7 @@ set_irq_handler(unsigned int irq,
  */
 static inline void
 set_irq_chained_handler(unsigned int irq,
-                       void fastcall (*handle)(unsigned int, struct irq_desc *,
-                                               struct pt_regs *))
+                       irq_flow_handler_t handle)
 {
        __set_irq_handler(irq, handle, 1);
 }
index 4cf65f5c6a74f5697d7411391207cdcd5431e1ea..53e9dce6c657df17f622c40201b7d11ba2742652 100644 (file)
@@ -505,10 +505,7 @@ handle_percpu_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs)
 #endif /* CONFIG_SMP */
 
 void
-__set_irq_handler(unsigned int irq,
-                 void fastcall (*handle)(unsigned int, irq_desc_t *,
-                                         struct pt_regs *),
-                 int is_chained)
+__set_irq_handler(unsigned int irq, irq_flow_handler_t handle, int is_chained)
 {
        struct irq_desc *desc;
        unsigned long flags;
@@ -561,9 +558,7 @@ __set_irq_handler(unsigned int irq,
 
 void
 set_irq_chip_and_handler(unsigned int irq, struct irq_chip *chip,
-                        void fastcall (*handle)(unsigned int,
-                                                struct irq_desc *,
-                                                struct pt_regs *))
+                        irq_flow_handler_t handle)
 {
        set_irq_chip(irq, chip);
        __set_irq_handler(irq, handle, 0);
@@ -574,8 +569,7 @@ set_irq_chip_and_handler(unsigned int irq, struct irq_chip *chip,
  * /proc/interrupts output:
  */
 const char *
-handle_irq_name(void fastcall (*handle)(unsigned int, struct irq_desc *,
-                                       struct pt_regs *))
+handle_irq_name(irq_flow_handler_t handle)
 {
        if (handle == handle_level_irq)
                return "level  ";