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_CMS, 21 EXTINT_CMC, 22 IOINT_CIO, 23 IOINT_QAI, 24 IOINT_DAS, 25 IOINT_C15, 26 IOINT_C70, 27 IOINT_TAP, 28 IOINT_VMR, 29 IOINT_LCS, 30 IOINT_CLW, 31 IOINT_CTC, 32 IOINT_APB, 33 IOINT_CSC, 34 NMI_NMI, 35 NR_IRQS, 36 }; 37 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); 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); 49 void measurement_alert_subclass_register(void); 50 void measurement_alert_subclass_unregister(void); 51 52 #endif /* _ASM_IRQ_H */ 53