diff options
Diffstat (limited to 'arch/x86/include/asm/hyperv-tlfs.h')
| -rw-r--r-- | arch/x86/include/asm/hyperv-tlfs.h | 33 | 
1 files changed, 33 insertions, 0 deletions
| diff --git a/arch/x86/include/asm/hyperv-tlfs.h b/arch/x86/include/asm/hyperv-tlfs.h index 381e88122a5f..0a9407dc0859 100644 --- a/arch/x86/include/asm/hyperv-tlfs.h +++ b/arch/x86/include/asm/hyperv-tlfs.h @@ -602,6 +602,39 @@ enum hv_interrupt_type {  	HV_X64_INTERRUPT_TYPE_MAXIMUM           = 0x000A,  }; +union hv_msi_address_register { +	u32 as_uint32; +	struct { +		u32 reserved1:2; +		u32 destination_mode:1; +		u32 redirection_hint:1; +		u32 reserved2:8; +		u32 destination_id:8; +		u32 msi_base:12; +	}; +} __packed; + +union hv_msi_data_register { +	u32 as_uint32; +	struct { +		u32 vector:8; +		u32 delivery_mode:3; +		u32 reserved1:3; +		u32 level_assert:1; +		u32 trigger_mode:1; +		u32 reserved2:16; +	}; +} __packed; + +/* HvRetargetDeviceInterrupt hypercall */ +union hv_msi_entry { +	u64 as_uint64; +	struct { +		union hv_msi_address_register address; +		union hv_msi_data_register data; +	} __packed; +}; +  #include <asm-generic/hyperv-tlfs.h>  #endif |