1 #ifndef _ASM_IRQ_H 2 #define _ASM_IRQ_H 3 4 #include <linux/hardirq.h> 5 #include <linux/types.h> 6 7 enum interruption_class { 8 EXTERNAL_INTERRUPT, 9 IO_INTERRUPT, 10 EXTINT_CLK, 11 EXTINT_EXC, 12 EXTINT_EMS, 13 EXTINT_TMR, 14 EXTINT_TLA, 15 EXTINT_PFL, 16 EXTINT_DSD, 17 EXTINT_VRT, 18 EXTINT_SCP, 19 EXTINT_IUC, 20 EXTINT_CPM, 21 IOINT_CIO, 22 IOINT_QAI, 23 IOINT_DAS, 24 IOINT_C15, 25 IOINT_C70, 26 IOINT_TAP, 27 IOINT_VMR, 28 IOINT_LCS, 29 IOINT_CLW, 30 IOINT_CTC, 31 IOINT_APB, 32 IOINT_CSC, 33 NMI_NMI, 34 NR_IRQS, 35 }; 36 37 struct ext_code { 38 unsigned short subcode; 39 unsigned short code; 40 }; 41 42 typedef void (*ext_int_handler_t)(struct ext_code, unsigned int, unsigned long); 43 44 int register_external_interrupt(u16 code, ext_int_handler_t handler); 45 int unregister_external_interrupt(u16 code, ext_int_handler_t handler); 46 void service_subclass_irq_register(void); 47 void service_subclass_irq_unregister(void); 48 void measurement_alert_subclass_register(void); 49 void measurement_alert_subclass_unregister(void); 50 51 #endif /* _ASM_IRQ_H */ 52