diff options
author | David Howells <dhowells@redhat.com> | 2006-10-05 08:06:34 -0400 |
---|---|---|
committer | David Howells <dhowells@warthog.cambridge.redhat.com> | 2006-10-05 08:28:06 -0400 |
commit | 57a58a9435aef3e0342ba4b2c97e0ddfea6f2c7f (patch) | |
tree | 35603f6385edf3dcd20e80a2fcf4c66c7cdc34a7 /include | |
parent | d223a60106891bfe46febfacf46b20cd8509aaad (diff) |
IRQ: Typedef the IRQ flow handler function type
Typedef the IRQ flow handler function type.
Signed-Off-By: David Howells <dhowells@redhat.com>
(cherry picked from 8e973fbdf5716b93a0a8c0365be33a31ca0fa351 commit)
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/irq.h | 30 |
1 files changed, 12 insertions, 18 deletions
diff --git a/include/linux/irq.h b/include/linux/irq.h index 6f463606c318..b947d46e4b18 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h | |||
@@ -22,6 +22,12 @@ | |||
22 | #include <asm/irq.h> | 22 | #include <asm/irq.h> |
23 | #include <asm/ptrace.h> | 23 | #include <asm/ptrace.h> |
24 | 24 | ||
25 | struct irq_desc; | ||
26 | typedef void fastcall (*irq_flow_handler_t)(unsigned int irq, | ||
27 | struct irq_desc *desc, | ||
28 | struct pt_regs *regs); | ||
29 | |||
30 | |||
25 | /* | 31 | /* |
26 | * IRQ line status. | 32 | * IRQ line status. |
27 | * | 33 | * |
@@ -139,9 +145,7 @@ struct irq_chip { | |||
139 | * Pad this out to 32 bytes for cache and indexing reasons. | 145 | * Pad this out to 32 bytes for cache and indexing reasons. |
140 | */ | 146 | */ |
141 | struct irq_desc { | 147 | struct irq_desc { |
142 | void fastcall (*handle_irq)(unsigned int irq, | 148 | irq_flow_handler_t handle_irq; |
143 | struct irq_desc *desc, | ||
144 | struct pt_regs *regs); | ||
145 | struct irq_chip *chip; | 149 | struct irq_chip *chip; |
146 | void *handler_data; | 150 | void *handler_data; |
147 | void *chip_data; | 151 | void *chip_data; |
@@ -281,9 +285,7 @@ handle_bad_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs); | |||
281 | * Get a descriptive string for the highlevel handler, for | 285 | * Get a descriptive string for the highlevel handler, for |
282 | * /proc/interrupts output: | 286 | * /proc/interrupts output: |
283 | */ | 287 | */ |
284 | extern const char * | 288 | extern const char *handle_irq_name(irq_flow_handler_t handle); |
285 | handle_irq_name(void fastcall (*handle)(unsigned int, struct irq_desc *, | ||
286 | struct pt_regs *)); | ||
287 | 289 | ||
288 | /* | 290 | /* |
289 | * Monolithic do_IRQ implementation. | 291 | * Monolithic do_IRQ implementation. |
@@ -335,22 +337,15 @@ extern struct irq_chip dummy_irq_chip; | |||
335 | 337 | ||
336 | extern void | 338 | extern void |
337 | set_irq_chip_and_handler(unsigned int irq, struct irq_chip *chip, | 339 | set_irq_chip_and_handler(unsigned int irq, struct irq_chip *chip, |
338 | void fastcall (*handle)(unsigned int, | 340 | irq_flow_handler_t handle); |
339 | struct irq_desc *, | ||
340 | struct pt_regs *)); | ||
341 | extern void | 341 | extern void |
342 | __set_irq_handler(unsigned int irq, | 342 | __set_irq_handler(unsigned int irq, irq_flow_handler_t handle, int is_chained); |
343 | void fastcall (*handle)(unsigned int, struct irq_desc *, | ||
344 | struct pt_regs *), | ||
345 | int is_chained); | ||
346 | 343 | ||
347 | /* | 344 | /* |
348 | * Set a highlevel flow handler for a given IRQ: | 345 | * Set a highlevel flow handler for a given IRQ: |
349 | */ | 346 | */ |
350 | static inline void | 347 | static inline void |
351 | set_irq_handler(unsigned int irq, | 348 | set_irq_handler(unsigned int irq, irq_flow_handler_t handle) |
352 | void fastcall (*handle)(unsigned int, struct irq_desc *, | ||
353 | struct pt_regs *)) | ||
354 | { | 349 | { |
355 | __set_irq_handler(irq, handle, 0); | 350 | __set_irq_handler(irq, handle, 0); |
356 | } | 351 | } |
@@ -362,8 +357,7 @@ set_irq_handler(unsigned int irq, | |||
362 | */ | 357 | */ |
363 | static inline void | 358 | static inline void |
364 | set_irq_chained_handler(unsigned int irq, | 359 | set_irq_chained_handler(unsigned int irq, |
365 | void fastcall (*handle)(unsigned int, struct irq_desc *, | 360 | irq_flow_handler_t handle) |
366 | struct pt_regs *)) | ||
367 | { | 361 | { |
368 | __set_irq_handler(irq, handle, 1); | 362 | __set_irq_handler(irq, handle, 1); |
369 | } | 363 | } |