From: David Howells <dhowells@redhat.com>
To: torvalds@osdl.org, akpm@osdl.org
Cc: dhowells@redhat.com, linux-kernel@vger.kernel.org,
linux-arch@vger.kernel.org
Subject: [PATCH 1/3] IRQ: Typedef the IRQ flow handler function type
Date: Mon, 02 Oct 2006 17:20:49 +0100 [thread overview]
Message-ID: <20061002162049.17763.39576.stgit@warthog.cambridge.redhat.com> (raw)
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 ";
next reply other threads:[~2006-10-02 16:20 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-02 16:20 David Howells [this message]
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
[not found] ` <fa.v9OUIBlFjbmpdm2jHjUOj/6fm5Y@ifi.uio.no>
2006-10-07 18:44 ` Bill Waddington
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-05 8:01 ` David Woodhouse
2006-10-03 10:21 ` 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-03 18:03 ` Alan Stern
2006-10-06 3:45 ` David Brownell
2006-10-06 17:42 ` Alan Stern
2006-10-03 10:01 ` David Howells
2006-10-03 10:30 ` David Howells
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
[not found] <fa.FU9k10MvHKEiGBkmyRa0N7lIvX4@ifi.uio.no>
[not found] ` <fa.YmeJPP3GwSahgI09Gcaha4kqm84@ifi.uio.no>
[not found] ` <fa.qbSmIOXP3NtOgNMHs5oazelaSJs@ifi.uio.no>
[not found] ` <fa.AB8rZ1kwd3vQ1HCbYfV1438E4A0@ifi.uio.no>
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20061002162049.17763.39576.stgit@warthog.cambridge.redhat.com \
--to=dhowells@redhat.com \
--cc=akpm@osdl.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®