Loading drivers/hv/hyperv_vmbus.h +2 −150 Original line number Diff line number Diff line Loading @@ -41,66 +41,11 @@ #define HV_UTIL_NEGO_TIMEOUT 55 /* Define version of the synthetic interrupt controller. */ #define HV_SYNIC_VERSION (1) #define HV_ANY_VP (0xFFFFFFFF) /* Define synthetic interrupt controller flag constants. */ #define HV_EVENT_FLAGS_COUNT (256 * 8) #define HV_EVENT_FLAGS_BYTE_COUNT (256) #define HV_EVENT_FLAGS_DWORD_COUNT (256 / sizeof(u32)) /* Define invalid partition identifier. */ #define HV_PARTITION_ID_INVALID ((u64)0x0) /* Define port type. */ enum hv_port_type { HVPORT_MSG = 1, HVPORT_EVENT = 2, HVPORT_MONITOR = 3 }; /* Define port information structure. */ struct hv_port_info { enum hv_port_type port_type; u32 padding; union { struct { u32 target_sint; u32 target_vp; u64 rsvdz; } message_port_info; struct { u32 target_sint; u32 target_vp; u16 base_flag_number; u16 flag_count; u32 rsvdz; } event_port_info; struct { u64 monitor_address; u64 rsvdz; } monitor_port_info; }; }; struct hv_connection_info { enum hv_port_type port_type; u32 padding; union { struct { u64 rsvdz; } message_connection_info; struct { u64 rsvdz; } event_connection_info; struct { u64 monitor_address; } monitor_connection_info; }; }; /* * Timer configuration register. */ Loading @@ -117,8 +62,6 @@ union hv_timer_config { }; }; /* Define the number of message buffers associated with each port. */ #define HV_PORT_MESSAGE_BUFFER_COUNT (16) /* Define the synthetic interrupt controller event flags format. */ union hv_synic_event_flags { Loading @@ -126,11 +69,6 @@ union hv_synic_event_flags { u32 flags32[HV_EVENT_FLAGS_DWORD_COUNT]; }; /* Define the synthetic interrupt flags page layout. */ struct hv_synic_event_flags_page { union hv_synic_event_flags sintevent_flags[HV_SYNIC_SINT_COUNT]; }; /* Define SynIC control register. */ union hv_synic_scontrol { u64 as_uint64; Loading Loading @@ -232,6 +170,8 @@ struct hv_monitor_page { u8 rsvdz4[1984]; }; #define HV_HYPERCALL_PARAM_ALIGN sizeof(u64) /* Definition of the hv_post_message hypercall input structure. */ struct hv_input_post_message { union hv_connection_id connectionid; Loading @@ -241,41 +181,6 @@ struct hv_input_post_message { u64 payload[HV_MESSAGE_PAYLOAD_QWORD_COUNT]; }; /* * Versioning definitions used for guests reporting themselves to the * hypervisor, and visa versa. */ /* Version info reported by guest OS's */ enum hv_guest_os_vendor { HVGUESTOS_VENDOR_MICROSOFT = 0x0001 }; enum hv_guest_os_microsoft_ids { HVGUESTOS_MICROSOFT_UNDEFINED = 0x00, HVGUESTOS_MICROSOFT_MSDOS = 0x01, HVGUESTOS_MICROSOFT_WINDOWS3X = 0x02, HVGUESTOS_MICROSOFT_WINDOWS9X = 0x03, HVGUESTOS_MICROSOFT_WINDOWSNT = 0x04, HVGUESTOS_MICROSOFT_WINDOWSCE = 0x05 }; /* * Declare the MSR used to identify the guest OS. */ #define HV_X64_MSR_GUEST_OS_ID 0x40000000 union hv_x64_msr_guest_os_id_contents { u64 as_uint64; struct { u64 build_number:16; u64 service_version:8; /* Service Pack, etc. */ u64 minor_version:8; u64 major_version:8; u64 os_id:8; /* enum hv_guest_os_microsoft_ids (if Vendor=MS) */ u64 vendor_id:16; /* enum hv_guest_os_vendor */ }; }; enum { VMBUS_MESSAGE_CONNECTION_ID = 1, Loading @@ -287,55 +192,6 @@ enum { VMBUS_MESSAGE_SINT = 2, }; /* #defines */ #define HV_PRESENT_BIT 0x80000000 #define HV_CPU_POWER_MANAGEMENT (1 << 0) #define HV_RECOMMENDATIONS_MAX 4 #define HV_X64_MAX 5 #define HV_CAPS_MAX 8 #define HV_HYPERCALL_PARAM_ALIGN sizeof(u64) /* Service definitions */ #define HV_SERVICE_PARENT_PORT (0) #define HV_SERVICE_PARENT_CONNECTION (0) #define HV_SERVICE_CONNECT_RESPONSE_SUCCESS (0) #define HV_SERVICE_CONNECT_RESPONSE_INVALID_PARAMETER (1) #define HV_SERVICE_CONNECT_RESPONSE_UNKNOWN_SERVICE (2) #define HV_SERVICE_CONNECT_RESPONSE_CONNECTION_REJECTED (3) #define HV_SERVICE_CONNECT_REQUEST_MESSAGE_ID (1) #define HV_SERVICE_CONNECT_RESPONSE_MESSAGE_ID (2) #define HV_SERVICE_DISCONNECT_REQUEST_MESSAGE_ID (3) #define HV_SERVICE_DISCONNECT_RESPONSE_MESSAGE_ID (4) #define HV_SERVICE_MAX_MESSAGE_ID (4) #define HV_SERVICE_PROTOCOL_VERSION (0x0010) #define HV_CONNECT_PAYLOAD_BYTE_COUNT 64 /* #define VMBUS_REVISION_NUMBER 6 */ /* Our local vmbus's port and connection id. Anything >0 is fine */ /* #define VMBUS_PORT_ID 11 */ /* 628180B8-308D-4c5e-B7DB-1BEB62E62EF4 */ static const uuid_le VMBUS_SERVICE_ID = { .b = { 0xb8, 0x80, 0x81, 0x62, 0x8d, 0x30, 0x5e, 0x4c, 0xb7, 0xdb, 0x1b, 0xeb, 0x62, 0xe6, 0x2e, 0xf4 }, }; struct hv_context { /* We only support running on top of Hyper-V * So at this point this really can only contain the Hyper-V ID Loading Loading @@ -531,10 +387,6 @@ struct hv_device *vmbus_device_create(const uuid_le *type, int vmbus_device_register(struct hv_device *child_device_obj); void vmbus_device_unregister(struct hv_device *device_obj); /* static void */ /* VmbusChildDeviceDestroy( */ /* struct hv_device *); */ struct vmbus_channel *relid2channel(u32 relid); void vmbus_free_channels(void); Loading Loading
drivers/hv/hyperv_vmbus.h +2 −150 Original line number Diff line number Diff line Loading @@ -41,66 +41,11 @@ #define HV_UTIL_NEGO_TIMEOUT 55 /* Define version of the synthetic interrupt controller. */ #define HV_SYNIC_VERSION (1) #define HV_ANY_VP (0xFFFFFFFF) /* Define synthetic interrupt controller flag constants. */ #define HV_EVENT_FLAGS_COUNT (256 * 8) #define HV_EVENT_FLAGS_BYTE_COUNT (256) #define HV_EVENT_FLAGS_DWORD_COUNT (256 / sizeof(u32)) /* Define invalid partition identifier. */ #define HV_PARTITION_ID_INVALID ((u64)0x0) /* Define port type. */ enum hv_port_type { HVPORT_MSG = 1, HVPORT_EVENT = 2, HVPORT_MONITOR = 3 }; /* Define port information structure. */ struct hv_port_info { enum hv_port_type port_type; u32 padding; union { struct { u32 target_sint; u32 target_vp; u64 rsvdz; } message_port_info; struct { u32 target_sint; u32 target_vp; u16 base_flag_number; u16 flag_count; u32 rsvdz; } event_port_info; struct { u64 monitor_address; u64 rsvdz; } monitor_port_info; }; }; struct hv_connection_info { enum hv_port_type port_type; u32 padding; union { struct { u64 rsvdz; } message_connection_info; struct { u64 rsvdz; } event_connection_info; struct { u64 monitor_address; } monitor_connection_info; }; }; /* * Timer configuration register. */ Loading @@ -117,8 +62,6 @@ union hv_timer_config { }; }; /* Define the number of message buffers associated with each port. */ #define HV_PORT_MESSAGE_BUFFER_COUNT (16) /* Define the synthetic interrupt controller event flags format. */ union hv_synic_event_flags { Loading @@ -126,11 +69,6 @@ union hv_synic_event_flags { u32 flags32[HV_EVENT_FLAGS_DWORD_COUNT]; }; /* Define the synthetic interrupt flags page layout. */ struct hv_synic_event_flags_page { union hv_synic_event_flags sintevent_flags[HV_SYNIC_SINT_COUNT]; }; /* Define SynIC control register. */ union hv_synic_scontrol { u64 as_uint64; Loading Loading @@ -232,6 +170,8 @@ struct hv_monitor_page { u8 rsvdz4[1984]; }; #define HV_HYPERCALL_PARAM_ALIGN sizeof(u64) /* Definition of the hv_post_message hypercall input structure. */ struct hv_input_post_message { union hv_connection_id connectionid; Loading @@ -241,41 +181,6 @@ struct hv_input_post_message { u64 payload[HV_MESSAGE_PAYLOAD_QWORD_COUNT]; }; /* * Versioning definitions used for guests reporting themselves to the * hypervisor, and visa versa. */ /* Version info reported by guest OS's */ enum hv_guest_os_vendor { HVGUESTOS_VENDOR_MICROSOFT = 0x0001 }; enum hv_guest_os_microsoft_ids { HVGUESTOS_MICROSOFT_UNDEFINED = 0x00, HVGUESTOS_MICROSOFT_MSDOS = 0x01, HVGUESTOS_MICROSOFT_WINDOWS3X = 0x02, HVGUESTOS_MICROSOFT_WINDOWS9X = 0x03, HVGUESTOS_MICROSOFT_WINDOWSNT = 0x04, HVGUESTOS_MICROSOFT_WINDOWSCE = 0x05 }; /* * Declare the MSR used to identify the guest OS. */ #define HV_X64_MSR_GUEST_OS_ID 0x40000000 union hv_x64_msr_guest_os_id_contents { u64 as_uint64; struct { u64 build_number:16; u64 service_version:8; /* Service Pack, etc. */ u64 minor_version:8; u64 major_version:8; u64 os_id:8; /* enum hv_guest_os_microsoft_ids (if Vendor=MS) */ u64 vendor_id:16; /* enum hv_guest_os_vendor */ }; }; enum { VMBUS_MESSAGE_CONNECTION_ID = 1, Loading @@ -287,55 +192,6 @@ enum { VMBUS_MESSAGE_SINT = 2, }; /* #defines */ #define HV_PRESENT_BIT 0x80000000 #define HV_CPU_POWER_MANAGEMENT (1 << 0) #define HV_RECOMMENDATIONS_MAX 4 #define HV_X64_MAX 5 #define HV_CAPS_MAX 8 #define HV_HYPERCALL_PARAM_ALIGN sizeof(u64) /* Service definitions */ #define HV_SERVICE_PARENT_PORT (0) #define HV_SERVICE_PARENT_CONNECTION (0) #define HV_SERVICE_CONNECT_RESPONSE_SUCCESS (0) #define HV_SERVICE_CONNECT_RESPONSE_INVALID_PARAMETER (1) #define HV_SERVICE_CONNECT_RESPONSE_UNKNOWN_SERVICE (2) #define HV_SERVICE_CONNECT_RESPONSE_CONNECTION_REJECTED (3) #define HV_SERVICE_CONNECT_REQUEST_MESSAGE_ID (1) #define HV_SERVICE_CONNECT_RESPONSE_MESSAGE_ID (2) #define HV_SERVICE_DISCONNECT_REQUEST_MESSAGE_ID (3) #define HV_SERVICE_DISCONNECT_RESPONSE_MESSAGE_ID (4) #define HV_SERVICE_MAX_MESSAGE_ID (4) #define HV_SERVICE_PROTOCOL_VERSION (0x0010) #define HV_CONNECT_PAYLOAD_BYTE_COUNT 64 /* #define VMBUS_REVISION_NUMBER 6 */ /* Our local vmbus's port and connection id. Anything >0 is fine */ /* #define VMBUS_PORT_ID 11 */ /* 628180B8-308D-4c5e-B7DB-1BEB62E62EF4 */ static const uuid_le VMBUS_SERVICE_ID = { .b = { 0xb8, 0x80, 0x81, 0x62, 0x8d, 0x30, 0x5e, 0x4c, 0xb7, 0xdb, 0x1b, 0xeb, 0x62, 0xe6, 0x2e, 0xf4 }, }; struct hv_context { /* We only support running on top of Hyper-V * So at this point this really can only contain the Hyper-V ID Loading Loading @@ -531,10 +387,6 @@ struct hv_device *vmbus_device_create(const uuid_le *type, int vmbus_device_register(struct hv_device *child_device_obj); void vmbus_device_unregister(struct hv_device *device_obj); /* static void */ /* VmbusChildDeviceDestroy( */ /* struct hv_device *); */ struct vmbus_channel *relid2channel(u32 relid); void vmbus_free_channels(void); Loading