aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm/hyperv-tlfs.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/include/asm/hyperv-tlfs.h')
-rw-r--r--arch/x86/include/asm/hyperv-tlfs.h30
1 files changed, 29 insertions, 1 deletions
diff --git a/arch/x86/include/asm/hyperv-tlfs.h b/arch/x86/include/asm/hyperv-tlfs.h
index 416cb0e0c496..3bfa92c2793c 100644
--- a/arch/x86/include/asm/hyperv-tlfs.h
+++ b/arch/x86/include/asm/hyperv-tlfs.h
@@ -164,6 +164,11 @@
164 */ 164 */
165#define HV_X64_DEPRECATING_AEOI_RECOMMENDED (1 << 9) 165#define HV_X64_DEPRECATING_AEOI_RECOMMENDED (1 << 9)
166 166
167/*
168 * Recommend using cluster IPI hypercalls.
169 */
170#define HV_X64_CLUSTER_IPI_RECOMMENDED (1 << 10)
171
167/* Recommend using the newer ExProcessorMasks interface */ 172/* Recommend using the newer ExProcessorMasks interface */
168#define HV_X64_EX_PROCESSOR_MASKS_RECOMMENDED (1 << 11) 173#define HV_X64_EX_PROCESSOR_MASKS_RECOMMENDED (1 << 11)
169 174
@@ -329,12 +334,17 @@ struct hv_tsc_emulation_status {
329#define HV_X64_MSR_HYPERCALL_PAGE_ADDRESS_MASK \ 334#define HV_X64_MSR_HYPERCALL_PAGE_ADDRESS_MASK \
330 (~((1ull << HV_X64_MSR_HYPERCALL_PAGE_ADDRESS_SHIFT) - 1)) 335 (~((1ull << HV_X64_MSR_HYPERCALL_PAGE_ADDRESS_SHIFT) - 1))
331 336
337#define HV_IPI_LOW_VECTOR 0x10
338#define HV_IPI_HIGH_VECTOR 0xff
339
332/* Declare the various hypercall operations. */ 340/* Declare the various hypercall operations. */
333#define HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE 0x0002 341#define HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE 0x0002
334#define HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST 0x0003 342#define HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST 0x0003
335#define HVCALL_NOTIFY_LONG_SPIN_WAIT 0x0008 343#define HVCALL_NOTIFY_LONG_SPIN_WAIT 0x0008
344#define HVCALL_SEND_IPI 0x000b
336#define HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE_EX 0x0013 345#define HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE_EX 0x0013
337#define HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST_EX 0x0014 346#define HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST_EX 0x0014
347#define HVCALL_SEND_IPI_EX 0x0015
338#define HVCALL_POST_MESSAGE 0x005c 348#define HVCALL_POST_MESSAGE 0x005c
339#define HVCALL_SIGNAL_EVENT 0x005d 349#define HVCALL_SIGNAL_EVENT 0x005d
340 350
@@ -360,7 +370,7 @@ struct hv_tsc_emulation_status {
360#define HV_FLUSH_USE_EXTENDED_RANGE_FORMAT BIT(3) 370#define HV_FLUSH_USE_EXTENDED_RANGE_FORMAT BIT(3)
361 371
362enum HV_GENERIC_SET_FORMAT { 372enum HV_GENERIC_SET_FORMAT {
363 HV_GENERIC_SET_SPARCE_4K, 373 HV_GENERIC_SET_SPARSE_4K,
364 HV_GENERIC_SET_ALL, 374 HV_GENERIC_SET_ALL,
365}; 375};
366 376
@@ -706,4 +716,22 @@ struct hv_enlightened_vmcs {
706#define HV_STIMER_AUTOENABLE (1ULL << 3) 716#define HV_STIMER_AUTOENABLE (1ULL << 3)
707#define HV_STIMER_SINT(config) (__u8)(((config) >> 16) & 0x0F) 717#define HV_STIMER_SINT(config) (__u8)(((config) >> 16) & 0x0F)
708 718
719struct ipi_arg_non_ex {
720 u32 vector;
721 u32 reserved;
722 u64 cpu_mask;
723};
724
725struct hv_vpset {
726 u64 format;
727 u64 valid_bank_mask;
728 u64 bank_contents[];
729};
730
731struct ipi_arg_ex {
732 u32 vector;
733 u32 reserved;
734 struct hv_vpset vp_set;
735};
736
709#endif 737#endif