X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=IntelFrameworkPkg%2FInclude%2FFramework%2FSmmCis.h;h=708e4b1c59ba2f25ab7499d370b6cd1abe3483b8;hb=5259c97d7ac7f464c134c3a15186b30e8e8eadff;hp=31dcc93f4e6145b9c31ff2969b021d73cdc69650;hpb=2bbaeb0d624f1d7758edd0a8d61322af209a1b1a;p=mirror_edk2.git diff --git a/IntelFrameworkPkg/Include/Framework/SmmCis.h b/IntelFrameworkPkg/Include/Framework/SmmCis.h index 31dcc93f4e..708e4b1c59 100644 --- a/IntelFrameworkPkg/Include/Framework/SmmCis.h +++ b/IntelFrameworkPkg/Include/Framework/SmmCis.h @@ -13,10 +13,8 @@ **/ -#ifndef _FRAMEWORK_SMM_CIS_H_ -#define _FRAMEWORK_SMM_CIS_H_ - -#include +#ifndef _SMM_CIS_H_ +#define _SMM_CIS_H_ #define EFI_SMM_CPU_IO_GUID \ { \ @@ -53,8 +51,8 @@ typedef enum { @param Width Signifies the width of the I/O operations. @param Address The base address of the I/O operations. @param Count The number of I/O operations to perform. - @param Buffer For read operations, the destination buffer to store the results. - For write operations, the source buffer from which to write data. + @param Buffer For read operations, the destination buffer to store the results (out parameter). + For write operations, the source buffer from which to write data (in parameter). @retval EFI_SUCCESS The data was read from or written to the device. @retval EFI_UNSUPPORTED The Address is not valid for this system. @@ -96,7 +94,7 @@ struct _EFI_SMM_CPU_IO_INTERFACE { Allocates pool memory from SMRAM for IA-32 or runtime memory for the Itanium processor family. - @param PoolType The type of pool to allocate.The only supported type is EfiRuntimeServicesData + @param PoolType The type of pool to allocate. The only supported type is EfiRuntimeServicesData @param Size The number of bytes to allocate from the pool. @param Buffer A pointer to a pointer to the allocated buffer if the call succeeds; undefined otherwise. @@ -104,7 +102,9 @@ struct _EFI_SMM_CPU_IO_INTERFACE { @retval EFI_SUCCESS The requested number of bytes was allocated. @retval EFI_OUT_OF_RESOURCES The pool requested could not be allocated. @retval EFI_UNSUPPORTED In runtime. - + @note: Inconsistent with specification here: + In Framework Spec, This definition is naming EFI_SMM_ALLOCATE_POOL. However, + To avoid the naming conflict, the definition is renamed. **/ typedef EFI_STATUS @@ -122,7 +122,9 @@ EFI_STATUS @retval EFI_SUCCESS The memory was returned to the system. @retval EFI_INVALID_PARAMETER Buffer was invalid. @retval EFI_UNSUPPORTED In runtime. - + @note: Inconsistent with specification here: + In the Framework Spec, this definition is named EFI_SMM_FREE_POOL. + To avoid a naming conflict, the definition here is renamed. **/ typedef EFI_STATUS @@ -145,7 +147,9 @@ EFI_STATUS @retval EFI_NOT_FOUND The requested pages could not be found. @retval EFI_INVALID_PARAMETER Type is not AllocateAnyPages or AllocateMaxAddress or AllocateAddress. Or MemoryType is in the range EfiMaxMemoryType..0x7FFFFFFF. - + @note: Inconsistent with specification here: + In the Framework Spec, this definition is named EFI_SMM_ALLOCATE_PAGES. + To avoid a naming conflict, the definition here is renamed. **/ typedef EFI_STATUS @@ -165,7 +169,10 @@ EFI_STATUS @retval EFI_SUCCESS The requested memory pages were freed. @retval EFI_INVALID_PARAMETER Memory is not a page-aligned address or NumberOfPages is invalid. @retval EFI_NOT_FOUND The requested memory pages were not allocated with SmmAllocatePages(). - + + @note: Inconsistent with specification here: + In the Framework Spec, this definition is named EFI_SMM_FREE_PAGES. + To avoid a naming conflict, the definition here is renamed. **/ typedef EFI_STATUS @@ -174,10 +181,30 @@ EFI_STATUS IN UINTN NumberOfPages ); +/** + Frees memory pages for the system. + + @param Procedure A pointer to the code stream to be run on the designated AP of the system. + @param CpuNumber The zero-based index of the processor number of the AP on which the code stream is + supposed to run. If the processor number points to the current processor or a disabled + processor, then it will not run the supplied code. + @param ProcArguments Allows the caller to pass a list of parameters to the code that is run by + the AP. It is an optional common mailbox between APs and the BSP to share information. + + @retval EFI_SUCCESS The call was successful and the return parameters are valid. + @retval EFI_INVALID_PARAMETER The input arguments are out of range. + @retval EFI_INVALID_PARAMETER The CPU requested is not available on this SMI invocation. + @retval EFI_INVALID_PARAMETER The CPU cannot support an additional service invocation. + + @note: Inconsistent with specification here: + In Framework Spec, this definition does not exist. This method is introduced in PI1.0 spec for + implementation needs. + +**/ typedef EFI_STATUS (EFIAPI *EFI_SMM_STARTUP_THIS_AP)( - IN EFI_AP_PROCEDURE Procedure, + IN FRAMEWORK_EFI_AP_PROCEDURE Procedure, IN UINTN CpuNumber, IN OUT VOID *ProcArguments OPTIONAL ); @@ -542,6 +569,7 @@ struct _EFI_SMM_SYSTEM_TABLE { // Runtime memory service // /// + /// /// Allocates pool memory from SMRAM for IA-32 or runtime memory for the /// Itanium processor family. /// @@ -562,6 +590,10 @@ struct _EFI_SMM_SYSTEM_TABLE { // // MP service // + + ///Inconsistent with specification here: + /// In Framework Spec, this definition does not exist. This method is introduced in PI1.0 spec for + /// implementation needed. EFI_SMM_STARTUP_THIS_AP SmmStartupThisAp; //