blob: d3db9108346bed4d8fb316c50aa415556366c24c [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;
10 u32 hints;
11};
12
13extern struct ms_hyperv_info ms_hyperv;
Ky Srinivasana2a47c62010-05-06 12:08:41 -070014
K. Y. Srinivasanbc2b0332013-02-03 17:22:39 -080015void hyperv_callback_vector(void);
Seiji Aguchicf910e82013-06-20 11:46:53 -040016#ifdef CONFIG_TRACING
17#define trace_hyperv_callback_vector hyperv_callback_vector
18#endif
K. Y. Srinivasanbc2b0332013-02-03 17:22:39 -080019void hyperv_vector_handler(struct pt_regs *regs);
Thomas Gleixner76d388c2014-03-05 13:42:14 +010020void hv_setup_vmbus_irq(void (*handler)(void));
21void hv_remove_vmbus_irq(void);
K. Y. Srinivasanbc2b0332013-02-03 17:22:39 -080022
Vitaly Kuznetsov25172812015-08-01 16:08:07 -070023void hv_setup_kexec_handler(void (*handler)(void));
24void hv_remove_kexec_handler(void);
Ky Srinivasana2a47c62010-05-06 12:08:41 -070025#endif