b03d541aa4
Prepare the measurement facility which is currently only used by oprofile for multiple users. To achieve that the measurement alert interrupt control bit needs to be protected. The measurement alert definitions are moved to a header file and an interrupt mask is added so that users can discard interrupts if they are for a different measurement subsystem. Reviewed-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com> Signed-off-by: Jan Glauber <jang@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
51 lines
967 B
C
51 lines
967 B
C
#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 */
|