diff options
Diffstat (limited to 'arch/s390/include/asm/irq.h')
-rw-r--r-- | arch/s390/include/asm/irq.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/arch/s390/include/asm/irq.h b/arch/s390/include/asm/irq.h new file mode 100644 index 00000000..5289cacd --- /dev/null +++ b/arch/s390/include/asm/irq.h @@ -0,0 +1,51 @@ +#ifndef _ASM_IRQ_H +#define _ASM_IRQ_H + +#include <linux/hardirq.h> +#include <linux/types.h> + +enum interruption_class { + EXTERNAL_INTERRUPT, + IO_INTERRUPT, + EXTINT_CLK, + EXTINT_EXC, + EXTINT_EMS, + EXTINT_TMR, + EXTINT_TLA, + EXTINT_PFL, + EXTINT_DSD, + EXTINT_VRT, + EXTINT_SCP, + EXTINT_IUC, + EXTINT_CPM, + IOINT_CIO, + IOINT_QAI, + IOINT_DAS, + IOINT_C15, + IOINT_C70, + IOINT_TAP, + IOINT_VMR, + IOINT_LCS, + IOINT_CLW, + IOINT_CTC, + IOINT_APB, + IOINT_CSC, + NMI_NMI, + NR_IRQS, +}; + +struct ext_code { + unsigned short subcode; + unsigned short code; +}; + +typedef void (*ext_int_handler_t)(struct ext_code, unsigned int, unsigned long); + +int register_external_interrupt(u16 code, ext_int_handler_t handler); +int unregister_external_interrupt(u16 code, ext_int_handler_t handler); +void service_subclass_irq_register(void); +void service_subclass_irq_unregister(void); +void measurement_alert_subclass_register(void); +void measurement_alert_subclass_unregister(void); + +#endif /* _ASM_IRQ_H */ |