]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkPkg/Include/Framework/SmmCis.h
Add Framework MP Services Protocol
[mirror_edk2.git] / IntelFrameworkPkg / Include / Framework / SmmCis.h
index 31dcc93f4e6145b9c31ff2969b021d73cdc69650..122c471add9b09f9ce307a4928eda11340bf6189 100644 (file)
@@ -16,8 +16,6 @@
 #ifndef _FRAMEWORK_SMM_CIS_H_\r
 #define _FRAMEWORK_SMM_CIS_H_\r
 \r
-#include <Framework/DxeCis.h>\r
-\r
 #define EFI_SMM_CPU_IO_GUID \\r
   { \\r
     0x5f439a0b, 0x45d8, 0x4682, {0xa4, 0xf4, 0xf0, 0x57, 0x6b, 0x51, 0x34, 0x41 } \\r
@@ -104,7 +102,9 @@ struct _EFI_SMM_CPU_IO_INTERFACE {
   @retval EFI_SUCCESS           The requested number of bytes was allocated.\r
   @retval EFI_OUT_OF_RESOURCES  The pool requested could not be allocated.\r
   @retval EFI_UNSUPPORTED       In runtime.\r
-\r
+  @note: Inconsistent with specification here:\r
+         In Framework Spec, This definition is naming EFI_SMM_ALLOCATE_POOL. However, \r
+         To avoid the naming conflict, the definition is renamed.\r
 **/\r
 typedef\r
 EFI_STATUS\r
@@ -122,7 +122,9 @@ EFI_STATUS
   @retval EFI_SUCCESS           The memory was returned to the system.\r
   @retval EFI_INVALID_PARAMETER Buffer was invalid.\r
   @retval EFI_UNSUPPORTED       In runtime.\r
-\r
+  @note: Inconsistent with specification here:\r
+         In Framework Spec, This definition is naming EFI_SMM_FREE_POOL However, \r
+         To avoid the naming conflict, the definition is renamed.\r
 **/\r
 typedef\r
 EFI_STATUS\r
@@ -145,7 +147,9 @@ EFI_STATUS
   @retval EFI_NOT_FOUND         The requested pages could not be found.\r
   @retval EFI_INVALID_PARAMETER Type is not AllocateAnyPages or AllocateMaxAddress\r
                                 or AllocateAddress. Or MemoryType is in the range EfiMaxMemoryType..0x7FFFFFFF.\r
-\r
+  @note: Inconsistent with specification here:\r
+         In Framework Spec, This definition is naming EFI_SMM_ALLOCATE_PAGES However, \r
+         To avoid the naming conflict, the definition is renamed.\r
 **/\r
 typedef\r
 EFI_STATUS\r
@@ -165,7 +169,10 @@ EFI_STATUS
   @retval EFI_SUCCESS           The requested memory pages were freed.\r
   @retval EFI_INVALID_PARAMETER Memory is not a page-aligned address or NumberOfPages is invalid.\r
   @retval EFI_NOT_FOUND         The requested memory pages were not allocated with SmmAllocatePages().\r
-\r
+  \r
+  @note: Inconsistent with specification here:\r
+         In Framework Spec, This definition is naming EFI_SMM_FREE_PAGES However, \r
+         To avoid the naming conflict, the definition is renamed.\r
 **/\r
 typedef\r
 EFI_STATUS\r
@@ -174,10 +181,30 @@ EFI_STATUS
   IN UINTN                  NumberOfPages\r
   );\r
 \r
+/**\r
+  Frees memory pages for the system.\r
+\r
+  @param  Procedure         A pointer to the code stream to be run on the designated AP of the system.\r
+  @param  CpuNumber         The zero-based index of the processor number of the AP on which the code stream is\r
+                            supposed to run. If the processor number points to the current processor or a disabled\r
+                            processor, then it will not run the supplied code.\r
+  @param  ProcArguments     Allows the caller to pass a list of parameters to the code that is run by\r
+                            the AP. It is an optional common mailbox between APs and the BSP to share information.\r
+\r
+  @retval EFI_SUCCESS           The call was successful and the return parameters are valid.\r
+  @retval EFI_INVALID_PARAMETER The input arguments are out of range.\r
+  @retval EFI_INVALID_PARAMETER The CPU requested is not available on this SMI invocation.\r
+  @retval EFI_INVALID_PARAMETER The CPU cannot support an additional service invocation.\r
+  \r
+  @note: Inconsistent with specification here:\r
+         In Framework Spec, No this definition. This method is introduced in PI1.0 spec for \r
+         implementation needed.\r
+         \r
+**/\r
 typedef\r
 EFI_STATUS\r
 (EFIAPI *EFI_SMM_STARTUP_THIS_AP)(\r
-  IN  EFI_AP_PROCEDURE                    Procedure,\r
+  IN  FRAMEWORK_EFI_AP_PROCEDURE          Procedure,\r
   IN  UINTN                               CpuNumber,\r
   IN  OUT VOID                            *ProcArguments OPTIONAL\r
   );\r
@@ -542,6 +569,7 @@ struct _EFI_SMM_SYSTEM_TABLE {
   // Runtime memory service\r
   //\r
   ///\r
+  ///\r
   /// Allocates pool memory from SMRAM for IA-32 or runtime memory for the\r
   /// Itanium processor family.\r
   ///\r
@@ -562,6 +590,10 @@ struct _EFI_SMM_SYSTEM_TABLE {
   //\r
   // MP service\r
   //\r
+  \r
+  ///Inconsistent with specification here:\r
+  ///  In Framework Spec, No this definition. This method is introduced in PI1.0 spec for \r
+  ///  implementation needed.\r
   EFI_SMM_STARTUP_THIS_AP             SmmStartupThisAp;\r
 \r
   //\r