linux-arch.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/3] IRQ: Typedef the IRQ flow handler function type
@ 2006-10-02 16:20 David Howells
  2006-10-02 16:20 ` [PATCH 2/3] IRQ: Typedef the IRQ " David Howells
       [not found] ` <20061002162053.17763.26032.stgit@warthog.cambridge.redhat.com>
  0 siblings, 2 replies; 68+ messages in thread
From: David Howells @ 2006-10-02 16:20 UTC (permalink / raw)
  To: torvalds, akpm; +Cc: dhowells, linux-kernel, linux-arch

From: David Howells <dhowells@redhat.com>

Typedef the IRQ flow handler function type.

Signed-Off-By: David Howells <dhowells@redhat.com>
---

 include/linux/irq.h |   30 ++++++++++++------------------
 kernel/irq/chip.c   |   12 +++---------
 2 files changed, 15 insertions(+), 27 deletions(-)

diff --git a/include/linux/irq.h b/include/linux/irq.h
index 48d3cb3..8e1e1d8 100644
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -22,6 +22,12 @@ #include <linux/irqreturn.h>
 #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 @@ #endif
  * 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;
@@ -312,9 +316,7 @@ handle_bad_irq(unsigned int irq, struct 
  * 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.
@@ -366,22 +368,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);
 }
@@ -393,8 +388,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);
 }
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
index 736cb0b..ca8a28d 100644
--- a/kernel/irq/chip.c
+++ b/kernel/irq/chip.c
@@ -442,10 +442,7 @@ handle_percpu_irq(unsigned int irq, stru
 #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;
@@ -498,9 +495,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);
@@ -511,8 +506,7 @@ set_irq_chip_and_handler(unsigned int ir
  * /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  ";

^ permalink raw reply related	[flat|nested] 68+ messages in thread
* [PATCH 1/3] IRQ: Typedef the IRQ flow handler function type
@ 2006-09-12 14:58 David Howells
  2006-09-12 16:27 ` [PATCH 3/3] IRQ: Maintain regs pointer globally rather than passing to IRQ handlers David Howells
  0 siblings, 1 reply; 68+ messages in thread
From: David Howells @ 2006-09-12 14:58 UTC (permalink / raw)
  To: mingo; +Cc: linux-arch

From: David Howells <dhowells@redhat.com>

Typedef the IRQ flow handler function type.

Signed-Off-By: David Howells <dhowells@redhat.com>
---

 include/linux/irq.h |   30 ++++++++++++------------------
 kernel/irq/chip.c   |   12 +++---------
 2 files changed, 15 insertions(+), 27 deletions(-)

diff --git a/include/linux/irq.h b/include/linux/irq.h
index 48d3cb3..8e1e1d8 100644
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -22,6 +22,12 @@ #include <linux/irqreturn.h>
 #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 @@ #endif
  * 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;
@@ -312,9 +316,7 @@ handle_bad_irq(unsigned int irq, struct 
  * 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.
@@ -366,22 +368,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);
 }
@@ -393,8 +388,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);
 }
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
index 9336f2e..53fe07e 100644
--- a/kernel/irq/chip.c
+++ b/kernel/irq/chip.c
@@ -446,10 +446,7 @@ handle_percpu_irq(unsigned int irq, stru
 #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;
@@ -502,9 +499,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);
@@ -515,8 +510,7 @@ set_irq_chip_and_handler(unsigned int ir
  * /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  ";

^ permalink raw reply related	[flat|nested] 68+ messages in thread

end of thread, other threads:[~2006-10-07 14:44 UTC | newest]

Thread overview: 68+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-10-02 16:20 [PATCH 1/3] IRQ: Typedef the IRQ flow handler function type David Howells
2006-10-02 16:20 ` [PATCH 2/3] IRQ: Typedef the IRQ " David Howells
     [not found] ` <20061002162053.17763.26032.stgit@warthog.cambridge.redhat.com>
2006-10-02 20:21   ` [PATCH 3/3] IRQ: Maintain regs pointer globally rather than passing to IRQ handlers Andrew Morton
2006-10-02 20:18     ` Ingo Molnar
2006-10-02 20:54       ` Linus Torvalds
2006-10-02 21:01         ` Andrew Morton
2006-10-02 21:12           ` Linus Torvalds
2006-10-02 21:19             ` Andi Kleen
2006-10-02 21:46               ` Linus Torvalds
2006-10-02 21:47                 ` Ingo Molnar
2006-10-02 21:59                 ` Andi Kleen
2006-10-02 22:33                   ` Linus Torvalds
2006-10-03 10:43           ` Ingo Molnar
2006-10-02 21:12         ` David Miller
2006-10-02 21:18           ` Thomas Gleixner
2006-10-02 22:59         ` Karsten Wiese
2006-10-03  0:36         ` Dave Airlie
2006-10-03 10:21         ` David Howells
2006-10-05  8:01         ` David Woodhouse
2006-10-03 10:01       ` David Howells
2006-10-03 10:30         ` David Howells
2006-10-02 20:43     ` Dmitry Torokhov
2006-10-02 20:56       ` Andrew Morton
2006-10-02 23:52       ` Greg KH
2006-10-02 20:46     ` David Brownell
2006-10-02 20:58       ` Andrew Morton
2006-10-02 21:34       ` Alan Stern
2006-10-02 23:00         ` David Brownell
2006-10-05 14:22     ` David Howells
2006-10-05 19:46       ` Andrew Morton
2006-10-05 20:19         ` Thomas Gleixner
2006-10-05 20:20         ` Dmitry Torokhov
2006-10-05 20:34         ` Greg KH
2006-10-05 23:35       ` Linus Torvalds
2006-10-06  1:31         ` [PATCH] powerpc: irq change build breaks Olof Johansson
2006-10-06  4:22           ` Benjamin Herrenschmidt
2006-10-06 16:42         ` [PATCH 3/3] IRQ: Maintain regs pointer globally rather than passing to IRQ handlers Russell King
2006-10-06 18:01           ` Linus Torvalds
2006-10-07  2:54             ` Matthew Wilcox
2006-10-07 14:44               ` Matthew Wilcox
2006-10-06 18:53         ` [PATCH] fix mesh compile errors after irq changes Olaf Hering
2006-10-06 19:09           ` Geert Uytterhoeven
2006-10-06 20:34         ` [PATCH] powerpc: fixup " Olaf Hering
2006-10-06 20:52           ` [PATCH] powerpc: spu " Olaf Hering
2006-10-06 21:06             ` [PATCH] ppc: PReP " Olaf Hering
2006-10-07  0:19           ` [PATCH] powerpc: " Paul Mackerras
2006-10-07 12:25             ` Paul Mackerras
2006-10-06  0:52       ` [PATCH 3/3] IRQ: Maintain regs pointer globally rather than passing to IRQ handlers Jeff Garzik
2006-10-06 11:25         ` Alan Cox
2006-10-06 11:15           ` Jeff Garzik
2006-10-06 11:11             ` Ingo Molnar
2006-10-06 11:27               ` Jeff Garzik
2006-10-06 11:25                 ` Ingo Molnar
2006-10-06 14:07                   ` Dmitry Torokhov
2006-10-06 14:16                     ` Jeff Garzik
2006-10-06 15:18                 ` [PATCH, RAW] IRQ: Maintain irq number " Jeff Garzik
2006-10-06 15:20                   ` Jeff Garzik
2006-10-06 15:47                   ` Linus Torvalds
2006-10-06 16:21                     ` Dmitry Torokhov
2006-10-06 16:40                       ` Linus Torvalds
2006-10-06 16:38                     ` Jeff Garzik
2006-10-06  8:03       ` [PATCH 3/3] IRQ: Maintain regs pointer " Gregor Jasny
  -- strict thread matches above, loose matches on Subject: below --
2006-09-12 14:58 [PATCH 1/3] IRQ: Typedef the IRQ flow handler function type David Howells
2006-09-12 16:27 ` [PATCH 3/3] IRQ: Maintain regs pointer globally rather than passing to IRQ handlers David Howells
2006-10-03  0:10   ` Keith Owens
2006-10-03  9:54     ` David Howells
2006-10-04  3:26       ` Keith Owens
2006-10-05 14:24         ` David Howells
2006-10-05 14:26           ` David Howells

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).