]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkPkg/Include/Framework/SmmCis.h
Committing changes to the comments, after review with engineers.
[mirror_edk2.git] / IntelFrameworkPkg / Include / Framework / SmmCis.h
index 31dcc93f4e6145b9c31ff2969b021d73cdc69650..708e4b1c59ba2f25ab7499d370b6cd1abe3483b8 100644 (file)
 \r
 **/\r
 \r
-#ifndef _FRAMEWORK_SMM_CIS_H_\r
-#define _FRAMEWORK_SMM_CIS_H_\r
-\r
-#include <Framework/DxeCis.h>\r
+#ifndef _SMM_CIS_H_\r
+#define _SMM_CIS_H_\r
 \r
 #define EFI_SMM_CPU_IO_GUID \\r
   { \\r
@@ -53,8 +51,8 @@ typedef enum {
   @param  Width            Signifies the width of the I/O operations.\r
   @param  Address          The base address of the I/O operations.\r
   @param  Count            The number of I/O operations to perform.\r
-  @param  Buffer           For read operations, the destination buffer to store the results.\r
-                           For write operations, the source buffer from which to write data.\r
+  @param  Buffer           For read operations, the destination buffer to store the results (out parameter).\r
+                           For write operations, the source buffer from which to write data (in parameter).\r
 \r
   @retval EFI_SUCCESS           The data was read from or written to the device.\r
   @retval EFI_UNSUPPORTED       The Address is not valid for this system.\r
@@ -96,7 +94,7 @@ struct _EFI_SMM_CPU_IO_INTERFACE {
   Allocates pool memory from SMRAM for IA-32 or runtime memory for\r
   the Itanium processor family.\r
 \r
-  @param  PoolType         The type of pool to allocate.The only supported type is EfiRuntimeServicesData\r
+  @param  PoolType         The type of pool to allocate. The only supported type is EfiRuntimeServicesData\r
   @param  Size             The number of bytes to allocate from the pool.\r
   @param  Buffer           A pointer to a pointer to the allocated buffer if the call\r
                            succeeds; undefined otherwise.\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 the Framework Spec, this definition is named EFI_SMM_FREE_POOL.  \r
+         To avoid a naming conflict, the definition here 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 the Framework Spec, this definition is named EFI_SMM_ALLOCATE_PAGES.  \r
+         To avoid a naming conflict, the definition here 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 the Framework Spec, this definition is named EFI_SMM_FREE_PAGES.  \r
+         To avoid a naming conflict, the definition here 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, this definition does not exist. This method is introduced in PI1.0 spec for \r
+         implementation needs.\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, this definition does not exist. This method is introduced in PI1.0 spec for \r
+  ///  implementation needed.\r
   EFI_SMM_STARTUP_THIS_AP             SmmStartupThisAp;\r
 \r
   //\r