From 6658be6ad728c347df33b8593b75aafa3c52eeba Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 20 Aug 2009 12:13:27 -0700 Subject: [PATCH] Staging: hv: create hv_api.h Merge the different include/Hv*Api.h files together into hv_api.h as they really don't justify separate files. No code was changed here, only moving stuff around. Cc: Hank Janssen Signed-off-by: Greg Kroah-Hartman --- drivers/staging/hv/Hv.h | 5 +- .../hv/{include/HvSynicApi.h => hv_api.h} | 94 ++++++++++++++++++- drivers/staging/hv/include/HvHcApi.h | 49 ---------- drivers/staging/hv/include/HvPtApi.h | 77 --------------- drivers/staging/hv/include/HvVpApi.h | 45 --------- 5 files changed, 93 insertions(+), 177 deletions(-) rename drivers/staging/hv/{include/HvSynicApi.h => hv_api.h} (78%) delete mode 100644 drivers/staging/hv/include/HvHcApi.h delete mode 100644 drivers/staging/hv/include/HvPtApi.h delete mode 100644 drivers/staging/hv/include/HvVpApi.h diff --git a/drivers/staging/hv/Hv.h b/drivers/staging/hv/Hv.h index 3f205c696b66..67f47a20c57e 100644 --- a/drivers/staging/hv/Hv.h +++ b/drivers/staging/hv/Hv.h @@ -26,10 +26,7 @@ #define __HV_H__ #include "include/HvStatus.h" -#include "include/HvVpApi.h" -#include "include/HvSynicApi.h" -#include "include/HvHcApi.h" -#include "include/HvPtApi.h" +#include "hv_api.h" enum { VMBUS_MESSAGE_CONNECTION_ID = 1, diff --git a/drivers/staging/hv/include/HvSynicApi.h b/drivers/staging/hv/hv_api.h similarity index 78% rename from drivers/staging/hv/include/HvSynicApi.h rename to drivers/staging/hv/hv_api.h index 3e6151d7eb6c..99129b5823a0 100644 --- a/drivers/staging/hv/include/HvSynicApi.h +++ b/drivers/staging/hv/hv_api.h @@ -20,9 +20,27 @@ * Hank Janssen * */ +#ifndef __HV_API_H +#define __HV_API_H -#ifndef __HVSYNICAPI_H -#define __HVSYNICAPI_H +/* + * The below CPUID leaves are present if VersionAndFeatures.HypervisorPresent + * is set by CPUID(HvCpuIdFunctionVersionAndFeatures). + */ +enum hv_cpuid_function { + HvCpuIdFunctionVersionAndFeatures = 0x00000001, + HvCpuIdFunctionHvVendorAndMaxFunction = 0x40000000, + HvCpuIdFunctionHvInterface = 0x40000001, + + /* + * The remaining functions depend on the value of + * HvCpuIdFunctionInterface + */ + HvCpuIdFunctionMsHvVersion = 0x40000002, + HvCpuIdFunctionMsHvFeatures = 0x40000003, + HvCpuIdFunctionMsHvEnlightenmentInformation = 0x40000004, + HvCpuIdFunctionMsHvImplementationLimits = 0x40000005, +}; /* Define the virtual APIC registers */ #define HV_X64_MSR_EOI (0x40000070) @@ -327,4 +345,76 @@ struct hv_monitor_page { u8 RsvdZ4[1984]; }; +/* Declare the various hypercall operations. */ +enum hv_call_code { + HvCallPostMessage = 0x005c, + HvCallSignalEvent = 0x005d, +}; + +/* Definition of the HvPostMessage hypercall input structure. */ +struct hv_input_post_message { + union hv_connection_id ConnectionId; + u32 Reserved; + enum hv_message_type MessageType; + u32 PayloadSize; + u64 Payload[HV_MESSAGE_PAYLOAD_QWORD_COUNT]; +}; + +/* Definition of the HvSignalEvent hypercall input structure. */ +struct hv_input_signal_event { + union hv_connection_id ConnectionId; + u16 FlagNumber; + u16 RsvdZ; +}; + +/* + * 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 { + HvGuestOsVendorMicrosoft = 0x0001 +}; + +enum hv_guest_os_microsoft_ids { + HvGuestOsMicrosoftUndefined = 0x00, + HvGuestOsMicrosoftMSDOS = 0x01, + HvGuestOsMicrosoftWindows3x = 0x02, + HvGuestOsMicrosoftWindows9x = 0x03, + HvGuestOsMicrosoftWindowsNT = 0x04, + HvGuestOsMicrosoftWindowsCE = 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 AsUINT64; + struct { + u64 BuildNumber:16; + u64 ServiceVersion:8; /* Service Pack, etc. */ + u64 MinorVersion:8; + u64 MajorVersion:8; + u64 OsId:8; /* enum hv_guest_os_microsoft_ids (if Vendor=MS) */ + u64 VendorId:16; /* enum hv_guest_os_vendor */ + }; +}; + +/* + * Declare the MSR used to setup pages used to communicate with the hypervisor. + */ +#define HV_X64_MSR_HYPERCALL 0x40000001 + +union hv_x64_msr_hypercall_contents { + u64 AsUINT64; + struct { + u64 Enable:1; + u64 Reserved:11; + u64 GuestPhysicalAddress:52; + }; +}; + #endif diff --git a/drivers/staging/hv/include/HvHcApi.h b/drivers/staging/hv/include/HvHcApi.h deleted file mode 100644 index c03926a2f0b7..000000000000 --- a/drivers/staging/hv/include/HvHcApi.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * - * Copyright (c) 2009, Microsoft Corporation. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms and conditions of the GNU General Public License, - * version 2, as published by the Free Software Foundation. - * - * This program is distributed in the hope it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place - Suite 330, Boston, MA 02111-1307 USA. - * - * Authors: - * Haiyang Zhang - * Hank Janssen - * - */ - -#ifndef __HVHCAPI_H -#define __HVHCAPI_H - -/* Declare the various hypercall operations. */ -enum hv_call_code { - HvCallPostMessage = 0x005c, - HvCallSignalEvent = 0x005d, -}; - -/* Definition of the HvPostMessage hypercall input structure. */ -struct hv_input_post_message { - union hv_connection_id ConnectionId; - u32 Reserved; - enum hv_message_type MessageType; - u32 PayloadSize; - u64 Payload[HV_MESSAGE_PAYLOAD_QWORD_COUNT]; -}; - -/* Definition of the HvSignalEvent hypercall input structure. */ -struct hv_input_signal_event { - union hv_connection_id ConnectionId; - u16 FlagNumber; - u16 RsvdZ; -}; - -#endif diff --git a/drivers/staging/hv/include/HvPtApi.h b/drivers/staging/hv/include/HvPtApi.h deleted file mode 100644 index f6ddf46869d9..000000000000 --- a/drivers/staging/hv/include/HvPtApi.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - * - * Copyright (c) 2009, Microsoft Corporation. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms and conditions of the GNU General Public License, - * version 2, as published by the Free Software Foundation. - * - * This program is distributed in the hope it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place - Suite 330, Boston, MA 02111-1307 USA. - * - * Authors: - * Haiyang Zhang - * Hank Janssen - * - */ - -#ifndef __HVVPTPI_H -#define __HVVPTPI_H - -/* - * 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 { - HvGuestOsVendorMicrosoft = 0x0001 -}; - -enum hv_guest_os_microsoft_ids { - HvGuestOsMicrosoftUndefined = 0x00, - HvGuestOsMicrosoftMSDOS = 0x01, - HvGuestOsMicrosoftWindows3x = 0x02, - HvGuestOsMicrosoftWindows9x = 0x03, - HvGuestOsMicrosoftWindowsNT = 0x04, - HvGuestOsMicrosoftWindowsCE = 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 AsUINT64; - struct { - u64 BuildNumber:16; - u64 ServiceVersion:8; /* Service Pack, etc. */ - u64 MinorVersion:8; - u64 MajorVersion:8; - u64 OsId:8; /* enum hv_guest_os_microsoft_ids (if Vendor=MS) */ - u64 VendorId:16; /* enum hv_guest_os_vendor */ - }; -}; - -/* - * Declare the MSR used to setup pages used to communicate with the hypervisor. - */ -#define HV_X64_MSR_HYPERCALL 0x40000001 - -union hv_x64_msr_hypercall_contents { - u64 AsUINT64; - struct { - u64 Enable:1; - u64 Reserved:11; - u64 GuestPhysicalAddress:52; - }; -}; - -#endif diff --git a/drivers/staging/hv/include/HvVpApi.h b/drivers/staging/hv/include/HvVpApi.h deleted file mode 100644 index 33b7475a15ba..000000000000 --- a/drivers/staging/hv/include/HvVpApi.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * - * Copyright (c) 2009, Microsoft Corporation. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms and conditions of the GNU General Public License, - * version 2, as published by the Free Software Foundation. - * - * This program is distributed in the hope it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place - Suite 330, Boston, MA 02111-1307 USA. - * - * Authors: - * Haiyang Zhang - * Hank Janssen - * - */ -#ifndef __HVVPAPI_H -#define __HVVPAPI_H - -/* - * The below CPUID leaves are present if VersionAndFeatures.HypervisorPresent - * is set by CPUID(HvCpuIdFunctionVersionAndFeatures). - */ -enum hv_cpuid_function { - HvCpuIdFunctionVersionAndFeatures = 0x00000001, - HvCpuIdFunctionHvVendorAndMaxFunction = 0x40000000, - HvCpuIdFunctionHvInterface = 0x40000001, - - /* - * The remaining functions depend on the value of - * HvCpuIdFunctionInterface - */ - HvCpuIdFunctionMsHvVersion = 0x40000002, - HvCpuIdFunctionMsHvFeatures = 0x40000003, - HvCpuIdFunctionMsHvEnlightenmentInformation = 0x40000004, - HvCpuIdFunctionMsHvImplementationLimits = 0x40000005, -}; - -#endif -- 2.30.2