]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkPkg/Include/Protocol/FrameworkMpService.h
Update for NetworkPkg.
[mirror_edk2.git] / IntelFrameworkPkg / Include / Protocol / FrameworkMpService.h
index 3947847f1241e438362094c4d78a34843a606cbc..b1c8f55154ff58175cae3ff5a884aecfde326160 100644 (file)
   APs to help test system memory in parallel with other device initialization.\r
   Diagnostics applications may also use this protocol for multi-processor.\r
 \r
-  Copyright (c) 1999 - 2002, 2009, Intel Corporation.<BR>\r
-  All rights reserved. This program and the accompanying materials\r
-  are licensed and made available under the terms and conditions of the BSD License\r
-  which accompanies this distribution.  The full text of the license may be found at<BR>\r
-  http://opensource.org/licenses/bsd-license.php\r
+Copyright (c) 1999 - 2010, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials are licensed and made available under \r
+the terms and conditions of the BSD License that accompanies this distribution.  \r
+The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php.                                          \r
+    \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 \r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
---*/\r
+**/\r
 \r
 #ifndef _FRAMEWORK_MP_SERVICE_PROTOCOL_H_\r
 #define _FRAMEWORK_MP_SERVICE_PROTOCOL_H_\r
 \r
+#include <FrameworkDxe.h>\r
+\r
 ///\r
-/// Global ID for the FRAMEWORK_EFI_MP_SERVICES_PROTOCOL\r
+/// Global ID for the FRAMEWORK_EFI_MP_SERVICES_PROTOCOL.\r
 ///\r
 #define FRAMEWORK_EFI_MP_SERVICES_PROTOCOL_GUID \\r
   { \\r
   }\r
 \r
 ///\r
-/// Forward declaration for the EFI_MP_SERVICES_PROTOCOL\r
+/// Forward declaration for the EFI_MP_SERVICES_PROTOCOL.\r
 ///\r
 typedef struct _FRAMEWORK_EFI_MP_SERVICES_PROTOCOL FRAMEWORK_EFI_MP_SERVICES_PROTOCOL;\r
 \r
 ///\r
-/// Fixed delivery mode that may be used as the DeliveryMode parameter in SendIpi() \r
+/// Fixed delivery mode that may be used as the DeliveryMode parameter in SendIpi().\r
 ///\r
 #define DELIVERY_MODE_FIXED           0x0\r
 \r
 ///\r
-/// Lowest priority delivery mode that may be used as the DeliveryMode parameter in SendIpi() \r
+/// Lowest priority delivery mode that may be used as the DeliveryMode parameter in SendIpi(). \r
 ///\r
 #define DELIVERY_MODE_LOWEST_PRIORITY 0x1\r
 \r
 ///\r
-/// SMI delivery mode that may be used as the DeliveryMode parameter in SendIpi() \r
+/// SMI delivery mode that may be used as the DeliveryMode parameter in SendIpi(). \r
 ///\r
 #define DELIVERY_MODE_SMI             0x2\r
 \r
 ///\r
-/// Remote read delivery mode that may be used as the DeliveryMode parameter in SendIpi() \r
+/// Remote read delivery mode that may be used as the DeliveryMode parameter in SendIpi(). \r
 ///\r
 #define DELIVERY_MODE_REMOTE_READ     0x3\r
 \r
 ///\r
-/// NMI delivery mode that may be used as the DeliveryMode parameter in SendIpi() \r
+/// NMI delivery mode that may be used as the DeliveryMode parameter in SendIpi(). \r
 ///\r
 #define DELIVERY_MODE_NMI             0x4\r
 \r
 ///\r
-/// INIT delivery mode that may be used as the DeliveryMode parameter in SendIpi() \r
+/// INIT delivery mode that may be used as the DeliveryMode parameter in SendIpi(). \r
 ///\r
 #define DELIVERY_MODE_INIT            0x5\r
 \r
 ///\r
-/// Startup IPI delivery mode that may be used as the DeliveryMode parameter in SendIpi() \r
+/// Startup IPI delivery mode that may be used as the DeliveryMode parameter in SendIpi().\r
 ///\r
 #define DELIVERY_MODE_SIPI            0x6\r
 \r
 ///\r
-/// The DeliveryMode parameter in SendIpi() bust be less than this maximum value\r
+/// The DeliveryMode parameter in SendIpi() must be less than this maximum value.\r
 ///\r
 #define DELIVERY_MODE_MAX             0x7\r
 \r
 ///\r
-/// IPF specific value for the state field of the Self Test State Parameter\r
+/// IPF specific value for the state field of the Self Test State Parameter.\r
 ///\r
 #define EFI_MP_HEALTH_FLAGS_STATUS_HEALTHY                  0x0\r
 \r
 ///\r
-/// IPF specific value for the state field of the Self Test State Parameter\r
+/// IPF specific value for the state field of the Self Test State Parameter.\r
 ///\r
 #define EFI_MP_HEALTH_FLAGS_STATUS_PERFORMANCE_RESTRICTED   0x1\r
 \r
 ///\r
-/// IPF specific value for the state field of the Self Test State Parameter\r
+/// IPF specific value for the state field of the Self Test State Parameter.\r
 ///\r
 #define EFI_MP_HEALTH_FLAGS_STATUS_FUNCTIONALLY_RESTRICTED  0x2\r
 \r
 typedef union {\r
   ///\r
-  /// Bitfield structure for the IPF Self Test State Parameter \r
+  /// Bitfield structure for the IPF Self Test State Parameter. \r
   ///\r
   struct {\r
     UINT32  Status:2;\r
@@ -130,7 +132,7 @@ typedef union {
     UINT32  Reserved2:12;\r
   } Bits;\r
   ///\r
-  /// IA32 and X64 BIST data of the processor\r
+  /// IA32 and X64 BIST data of the processor.\r
   ///\r
   UINT32  Uint32;\r
 } EFI_MP_HEALTH_FLAGS;\r
@@ -138,12 +140,12 @@ typedef union {
 typedef struct {\r
   ///\r
   /// @par IA32, X64:\r
-  ///   BIST (built-in self test) data of the processor.\r
+  ///   BIST (built-in self-test) data of the processor.\r
   ///\r
   /// @par IPF:\r
-  ///   Lower 32 bits of self test state parameter. For definition of self test \r
+  ///   Lower 32 bits of the self-test state parameter. For definition of self-test \r
   ///   state parameter, please refer to Intel(R) Itanium(R) Architecture Software \r
-  ///   Developer\92s Manual, Volume 2: System Architecture.\r
+  ///   Developer's Manual, Volume 2: System Architecture.\r
   ///\r
   EFI_MP_HEALTH_FLAGS  Flags;\r
   ///\r
@@ -157,8 +159,8 @@ typedef struct {
 } EFI_MP_HEALTH;\r
 \r
 typedef enum {\r
-  EfiCpuAP                = 0,  ///< The CPU is an AP (Application Processor)\r
-  EfiCpuBSP,                    ///< The CPU is the BSP (Boot-Strap Processor)\r
+  EfiCpuAP                = 0,  ///< The CPU is an AP (Application Processor).\r
+  EfiCpuBSP,                    ///< The CPU is the BSP (Boot-Strap Processor).\r
   EfiCpuDesignationMaximum\r
 } EFI_CPU_DESIGNATION;\r
 \r
@@ -191,7 +193,7 @@ typedef struct {
   ///\r
   /// @par IPF:\r
   ///   Bit format of this field is the same as the definition of self-test state \r
-  ///   parameter, in Intel?Itanium?Architecture Software Developer\92s Manual, \r
+  ///   parameter, in Intel(R) Itanium(R) Architecture Software Developer's Manual, \r
   ///   Volume 2: System Architecture.\r
   ///\r
   EFI_MP_HEALTH        Health;\r
@@ -233,15 +235,15 @@ typedef struct {
     - Rendezvous interrupt number (IPF-specific)\r
     - Length of the rendezvous procedure.\r
 \r
-  @param[in]  This                   Pointer to the FRAMEWORK_EFI_MP_SERVICES_PROTOCOL\r
+  @param[in]  This                   The pointer to the FRAMEWORK_EFI_MP_SERVICES_PROTOCOL\r
                                      instance.\r
-  @param[out] NumberOfCPUs           Pointer to the total number of logical processors \r
+  @param[out] NumberOfCPUs           The pointer to the total number of logical processors \r
                                      in the system, including the BSP and disabled \r
                                      APs.  If NULL, this parameter is ignored.\r
   @param[out] MaximumNumberOfCPUs    Pointer to the maximum number of processors \r
                                      supported by the system.  If NULL, this \r
                                      parameter is ignored.\r
-  @param[out] NumberOfEnabledCPUs    Pointer to the number of enabled logical \r
+  @param[out] NumberOfEnabledCPUs    The pointer to the number of enabled logical \r
                                      processors that exist in system, including \r
                                      the BSP.  If NULL, this parameter is ignored.\r
   @param[out] RendezvousIntNumber    This parameter is only meaningful for IPF.\r
@@ -249,12 +251,12 @@ typedef struct {
                                      If NULL, this parameter is ignored.\r
                                      - IPF: Pointer to the rendezvous interrupt \r
                                      number that is used for AP wake-up.\r
-  @param[out] RendezvousProcLength   Pointer to the length of rendezvous procedure. \r
+  @param[out] RendezvousProcLength   The pointer to the length of rendezvous procedure. \r
                                      - IA32, X64: The returned value is 0x1000.  \r
                                      If NULL, this parameter is ignored.\r
                                      - IPF: The returned value is zero.\r
 \r
-  @retval EFI_SUCCESS   Multiprocessor general information successfully retrieved.\r
+  @retval EFI_SUCCESS   Multiprocessor general information was successfully retrieved.\r
 \r
 **/\r
 typedef\r
@@ -279,7 +281,7 @@ EFI_STATUS
   slot numbers is all considered platform-related information and will not be \r
   presented here. \r
 \r
-  @param[in]  This                     Pointer to the FRAMEWORK_EFI_MP_SERVICES_PROTOCOL\r
+  @param[in]  This                     The pointer to the FRAMEWORK_EFI_MP_SERVICES_PROTOCOL\r
                                        instance.\r
   @param[in]  ProcessorNumber          The handle number of the processor. The range\r
                                        is from 0 to the total number of logical \r
@@ -294,20 +296,20 @@ EFI_STATUS
                                        If the size of ProcessorContextBuffer is \r
                                        sufficient, the value is not changed from \r
                                        input.\r
-  @param[out] ProcessorContextBuffer   Pointer to the buffer where the data of \r
+  @param[out] ProcessorContextBuffer   The pointer to the buffer where the data of \r
                                        requested processor will be deposited. \r
                                        The buffer is allocated by caller. \r
 \r
-  @retval EFI_SUCCESS             Processor information successfully returned.\r
+  @retval EFI_SUCCESS             Processor information was successfully returned.\r
   @retval EFI_BUFFER_TOO_SMALL    The size of ProcessorContextBuffer is too small. \r
-                                  Value pointed by BufferLength has been updated \r
+                                  The value pointed by BufferLength has been updated \r
                                   to size in bytes that is needed.\r
   @retval EFI_INVALID_PARAMETER   IA32, X64:BufferLength is NULL.\r
   @retval EFI_INVALID_PARAMETER   IA32, X64:ProcessorContextBuffer is NULL.\r
   @retval EFI_INVALID_PARAMETER   IA32, X64:Processor with the handle specified by \r
-                                  ProcessorNumber does not exist\r
+                                  ProcessorNumber does not exist.\r
   @retval EFI_NOT_FOUND           IPF: Processor with the handle specified by \r
-                                  ProcessorNumber does not exist\r
+                                  ProcessorNumber does not exist.\r
 \r
 **/\r
 typedef\r
@@ -331,7 +333,7 @@ EFI_STATUS
   controlled exclusive code. EFI services and protocols may not be called by APs \r
   unless otherwise specified.\r
 \r
-  @param[in]  This                    Pointer to the FRAMEWORK_EFI_MP_SERVICES_PROTOCOL\r
+  @param[in]  This                    The pointer to the FRAMEWORK_EFI_MP_SERVICES_PROTOCOL\r
                                       instance.\r
   @param[in]  Procedure               A pointer to the function to be run on enabled \r
                                       APs of the system. \r
@@ -398,7 +400,7 @@ EFI_STATUS
                                       If the value is non-zero, the BSP waits \r
                                       until dispatched AP finishes and then \r
                                       dispatch the next.\r
-  @param[in]  ProcedureArgument       Pointer to the optional parameter of the \r
+  @param[in]  ProcedureArgument       The pointer to the optional parameter of the \r
                                       function specified by Procedure.\r
   @param[out] FailedCPUList           List of APs that did not finish.\r
                                       - IA32, X64:\r
@@ -422,7 +424,7 @@ EFI_STATUS
                                   before the timeout expires.\r
   @retval EFI_SUCCESS              IA32, X64: Only 1 logical processor exists \r
                                   in system.\r
-  @retval EFI_INVALID_PARAMETER          IA32, X64: Procedure is NULL.\r
+  @retval EFI_INVALID_PARAMETER            IA32, X64: Procedure is NULL.\r
   @retval EFI_TIMEOUT              IA32, X64: The timeout expires before all \r
                                   dispatched APs have finished.\r
   @retval EFI_SUCCESS              IPF: This function always returns EFI_SUCCESS.\r
@@ -445,7 +447,7 @@ EFI_STATUS
   the caller. The caller can request the BSP to either wait for the AP or just \r
   proceed with the next task.\r
 \r
-  @param[in] This                    Pointer to the FRAMEWORK_EFI_MP_SERVICES_PROTOCOL\r
+  @param[in] This                    The pointer to the FRAMEWORK_EFI_MP_SERVICES_PROTOCOL\r
                                      instance.\r
   @param[in] Procedure               A pointer to the function to be run on the \r
                                      designated AP. \r
@@ -475,7 +477,7 @@ EFI_STATUS
                                      If the value is not zero, the BSP waits until \r
                                      the AP finishes or timeout expires. If timeout \r
                                      expires, EFI_TIMEOUT is returned, and the \r
-                                     BSP will then check the AP\92s status periodically, \r
+                                     BSP will then check the AP's status periodically, \r
                                      with time interval of 16 microseconds.\r
                                      - IPF:\r
                                      If WaitEvent is NULL, this parameter is ignored.\r
@@ -484,7 +486,7 @@ EFI_STATUS
                                      time interval. If the value is zero, the length \r
                                      of time interval is 10ms. If the value is \r
                                      non-zero, the BSP waits until the AP finishes.\r
-  @param[in] ProcedureArgument       Pointer to the optional parameter of the \r
+  @param[in] ProcedureArgument       The pointer to the optional parameter of the \r
                                      function specified by Procedure.\r
 \r
   @retval EFI_SUCCESS             Specified AP has finished before the timeout \r
@@ -519,7 +521,7 @@ EFI_STATUS
   from where the old one left off.  This call can only be performed by the \r
   current BSP.\r
 \r
-  @param[in] This              Pointer to the FRAMEWORK_EFI_MP_SERVICES_PROTOCOL\r
+  @param[in] This              The pointer to the FRAMEWORK_EFI_MP_SERVICES_PROTOCOL\r
                                instance.\r
   @param[in] ProcessorNumber   The handle number of AP. The range is from 0 to \r
                                the total number of logical processors minus 1. \r
@@ -529,7 +531,7 @@ EFI_STATUS
                                enabled AP. Otherwise, it will be disabled.\r
 \r
   @retval EFI_SUCCESS             BSP successfully switched.\r
-  @retval EFI_INVALID_PARAMETER   Processor with the handle specified by \r
+  @retval EFI_INVALID_PARAMETER   The processor with the handle specified by \r
                                   ProcessorNumber does not exist.\r
   @retval EFI_INVALID_PARAMETER   ProcessorNumber specifies the BSP.\r
   @retval EFI_NOT_READY           IA32, X64: Specified AP is busy or disabled.\r
@@ -550,16 +552,16 @@ EFI_STATUS
   This service sends an IPI to a specified AP. Caller can specify vector number \r
   and delivery mode of the interrupt.\r
 \r
-  @param[in] This              Pointer to the FRAMEWORK_EFI_MP_SERVICES_PROTOCOL\r
+  @param[in] This              The pointer to the FRAMEWORK_EFI_MP_SERVICES_PROTOCOL\r
                                instance.\r
   @param[in] ProcessorNumber   The handle number of AP. The range is from 0 to \r
                                the total number of logical processors minus 1. \r
                                The total number of logical processors can be \r
                                retrieved by GetGeneralMPInfo().\r
-  @param[in] VectorNumber      Vector number of the interrupt.\r
-  @param[in] DeliveryMode      Delivery mode of the interrupt.\r
+  @param[in] VectorNumber      The vector number of the interrupt.\r
+  @param[in] DeliveryMode      The delivery mode of the interrupt.\r
 \r
-  @retval EFI_SUCCESS             IPI is successfully sent.\r
+  @retval EFI_SUCCESS             IPI was successfully sent.\r
   @retval EFI_INVALID_PARAMETER   ProcessorNumber specifies the BSP.\r
   @retval EFI_INVALID_PARAMETER   IA32, X64: Processor with the handle specified \r
                                   by ProcessorNumber does not exist.\r
@@ -587,7 +589,7 @@ EFI_STATUS
   specify the health status of the AP by Health. It is usually used to update the \r
   health status of the processor after some processor test.\r
 \r
-  @param[in] This              Pointer to the FRAMEWORK_EFI_MP_SERVICES_PROTOCOL\r
+  @param[in] This              The pointer to the FRAMEWORK_EFI_MP_SERVICES_PROTOCOL\r
                                instance.\r
   @param[in] ProcessorNumber   The handle number of AP. The range is from 0 to \r
                                the total number of logical processors minus 1. \r
@@ -624,7 +626,7 @@ EFI_STATUS
   processors can be retrieved by GetGeneralMPInfo(). This service may be called \r
   from the BSP and APs.\r
 \r
-  @param[in]  This              Pointer to the FRAMEWORK_EFI_MP_SERVICES_PROTOCOL\r
+  @param[in]  This              The pointer to the FRAMEWORK_EFI_MP_SERVICES_PROTOCOL\r
                                 instance.\r
   @param[out] ProcessorNumber   A pointer to the handle number of AP. The range is \r
                                 from 0 to the total number of logical processors \r
@@ -642,9 +644,9 @@ EFI_STATUS
   );\r
 \r
 ///\r
-/// Framework MP Services Protocol structure\r
+/// Framework MP Services Protocol structure.\r
 ///\r
-typedef struct _FRAMEWORK_EFI_MP_SERVICES_PROTOCOL {\r
+struct _FRAMEWORK_EFI_MP_SERVICES_PROTOCOL {\r
   EFI_MP_SERVICES_GET_GENERAL_MP_INFO              GetGeneralMPInfo;\r
   EFI_MP_SERVICES_GET_PROCESSOR_CONTEXT            GetProcessorContext;\r
   FRAMEWORK_EFI_MP_SERVICES_STARTUP_ALL_APS        StartupAllAPs;\r