Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | #ifndef _ASM_IRQ_H |
| 2 | #define _ASM_IRQ_H |
| 3 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 4 | #include <linux/hardirq.h> |
Heiko Carstens | d7b250e | 2011-05-26 09:48:24 +0200 | [diff] [blame] | 5 | #include <linux/types.h> |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 6 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 7 | enum interruption_class { |
| 8 | EXTERNAL_INTERRUPT, |
| 9 | IO_INTERRUPT, |
Heiko Carstens | 052ff46 | 2011-01-05 12:47:28 +0100 | [diff] [blame] | 10 | EXTINT_CLK, |
Heiko Carstens | 2a3a2d6 | 2011-10-30 15:17:19 +0100 | [diff] [blame] | 11 | EXTINT_EXC, |
| 12 | EXTINT_EMS, |
Heiko Carstens | 052ff46 | 2011-01-05 12:47:28 +0100 | [diff] [blame] | 13 | EXTINT_TMR, |
| 14 | EXTINT_TLA, |
| 15 | EXTINT_PFL, |
| 16 | EXTINT_DSD, |
| 17 | EXTINT_VRT, |
| 18 | EXTINT_SCP, |
| 19 | EXTINT_IUC, |
Hendrik Brueckner | 0245616 | 2012-05-09 16:27:40 +0200 | [diff] [blame] | 20 | EXTINT_CMS, |
| 21 | EXTINT_CMC, |
Peter Oberparleiter | de400d6 | 2011-10-30 15:16:04 +0100 | [diff] [blame] | 22 | IOINT_CIO, |
Jan Glauber | 30d77c3 | 2011-01-05 12:47:29 +0100 | [diff] [blame] | 23 | IOINT_QAI, |
Heiko Carstens | 3283942 | 2011-01-05 12:47:30 +0100 | [diff] [blame] | 24 | IOINT_DAS, |
Heiko Carstens | 12fae58 | 2011-01-05 12:47:31 +0100 | [diff] [blame] | 25 | IOINT_C15, |
Heiko Carstens | 3fe22f6 | 2011-01-05 12:47:32 +0100 | [diff] [blame] | 26 | IOINT_C70, |
Heiko Carstens | b8665172 | 2011-01-05 12:47:33 +0100 | [diff] [blame] | 27 | IOINT_TAP, |
Heiko Carstens | f48198d | 2011-01-05 12:47:34 +0100 | [diff] [blame] | 28 | IOINT_VMR, |
Heiko Carstens | 096a616 | 2011-01-05 12:47:35 +0100 | [diff] [blame] | 29 | IOINT_LCS, |
Heiko Carstens | 355eb40 | 2011-01-05 12:47:36 +0100 | [diff] [blame] | 30 | IOINT_CLW, |
Heiko Carstens | 85b81cd | 2011-01-05 12:47:37 +0100 | [diff] [blame] | 31 | IOINT_CTC, |
Holger Dengler | 62d146f | 2011-01-05 12:47:38 +0100 | [diff] [blame] | 32 | IOINT_APB, |
Sebastian Ott | 65b4e40 | 2011-10-30 15:16:54 +0100 | [diff] [blame] | 33 | IOINT_CSC, |
Heiko Carstens | 052ff46 | 2011-01-05 12:47:28 +0100 | [diff] [blame] | 34 | NMI_NMI, |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 35 | NR_IRQS, |
| 36 | }; |
| 37 | |
Heiko Carstens | fde15c3 | 2012-03-11 11:59:31 -0400 | [diff] [blame] | 38 | struct ext_code { |
| 39 | unsigned short subcode; |
| 40 | unsigned short code; |
| 41 | }; |
| 42 | |
| 43 | typedef void (*ext_int_handler_t)(struct ext_code, unsigned int, unsigned long); |
Heiko Carstens | d7b250e | 2011-05-26 09:48:24 +0200 | [diff] [blame] | 44 | |
| 45 | int register_external_interrupt(u16 code, ext_int_handler_t handler); |
| 46 | int unregister_external_interrupt(u16 code, ext_int_handler_t handler); |
| 47 | void service_subclass_irq_register(void); |
| 48 | void service_subclass_irq_unregister(void); |
Jan Glauber | b03d541a | 2012-03-23 11:13:05 +0100 | [diff] [blame] | 49 | void measurement_alert_subclass_register(void); |
| 50 | void measurement_alert_subclass_unregister(void); |
Heiko Carstens | d7b250e | 2011-05-26 09:48:24 +0200 | [diff] [blame] | 51 | |
Heiko Carstens | 052ff46 | 2011-01-05 12:47:28 +0100 | [diff] [blame] | 52 | #endif /* _ASM_IRQ_H */ |