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/linux | |
| 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/linux')
| -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 6f463606c3..b947d46e4b 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 | } |
