blob: aaf59b7da98a2c7898390512c77601cd38b79eb1 [file] [log] [blame]
H. Peter Anvine08cae42010-05-07 16:57:28 -07001#ifndef _ASM_X86_MSHYPER_H
2#define _ASM_X86_MSHYPER_H
Ky Srinivasana2a47c62010-05-06 12:08:41 -07003
H. Peter Anvine08cae42010-05-07 16:57:28 -07004#include <linux/types.h>
Thomas Gleixner1aec1692014-02-23 21:40:22 +00005#include <linux/interrupt.h>
H. Peter Anvine08cae42010-05-07 16:57:28 -07006#include <asm/hyperv.h>
7
8struct ms_hyperv_info {
9 u32 features;
Denis V. Lunevcc2dd402015-08-01 16:08:20 -070010 u32 misc_features;
H. Peter Anvine08cae42010-05-07 16:57:28 -070011 u32 hints;
12};
13
14extern struct ms_hyperv_info ms_hyperv;
Ky Srinivasana2a47c62010-05-06 12:08:41 -070015
K. Y. Srinivasanbc2b0332013-02-03 17:22:39 -080016void hyperv_callback_vector(void);
Seiji Aguchicf910e82013-06-20 11:46:53 -040017#ifdef CONFIG_TRACING
18#define trace_hyperv_callback_vector hyperv_callback_vector
19#endif
K. Y. Srinivasanbc2b0332013-02-03 17:22:39 -080020void hyperv_vector_handler(struct pt_regs *regs);
Thomas Gleixner76d388c2014-03-05 13:42:14 +010021void hv_setup_vmbus_irq(void (*handler)(void));
22void hv_remove_vmbus_irq(void);
K. Y. Srinivasanbc2b0332013-02-03 17:22:39 -080023
Vitaly Kuznetsov25172812015-08-01 16:08:07 -070024void hv_setup_kexec_handler(void (*handler)(void));
25void hv_remove_kexec_handler(void);
Vitaly Kuznetsovb4370df2015-08-01 16:08:09 -070026void hv_setup_crash_handler(void (*handler)(struct pt_regs *regs));
27void hv_remove_crash_handler(void);
Ky Srinivasana2a47c62010-05-06 12:08:41 -070028#endif