\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
@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
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
@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
@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
@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
@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
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
// 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
//\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