Include file for definitions in the Intel Platform Innovation Framework for EFI\r
System Management Mode Core Interface Specification (SMM CIS) version 0.91.\r
\r
-Copyright (c) 2007 - 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
+Copyright (c) 2007 - 2018, 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
+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
**/\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 \r
+ @param PoolType The type of pool to allocate. The only supported type\r
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 \r
+ @param Buffer A pointer to a pointer to the allocated buffer if the\r
call succeeds. Otherwise, undefined.\r
\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
@note Inconsistent with specification here:\r
- In Framework Spec, this definition is named EFI_SMM_ALLOCATE_POOL. \r
+ In Framework Spec, this definition is named EFI_SMM_ALLOCATE_POOL.\r
To avoid a naming conflict, the definition is renamed.\r
**/\r
typedef\r
@retval EFI_INVALID_PARAMETER Buffer was invalid.\r
@retval EFI_UNSUPPORTED In runtime.\r
@note Inconsistent with specification here:\r
- In Framework Spec, this definition is named EFI_SMM_FREE_POOL. \r
- To avoid a naming conflict, the definition is renamed. \r
+ In Framework Spec, this definition is named EFI_SMM_FREE_POOL.\r
+ To avoid a naming conflict, the definition is renamed.\r
**/\r
typedef\r
EFI_STATUS\r
@retval EFI_INVALID_PARAMETER Type is not AllocateAnyPages or AllocateMaxAddress\r
or AllocateAddress. Or, MemoryType is in the range EfiMaxMemoryType..0x7FFFFFFF.\r
@note Inconsistent with specification here:\r
- In the Framework Spec, this definition is named EFI_SMM_ALLOCATE_PAGES. \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
@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
+ 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
UINT8 Reserved2[164];\r
\r
//\r
- // Registers in IA-32 processors. \r
+ // Registers in IA-32 processors.\r
//\r
UINT32 ES;\r
UINT32 CS;\r
/// The processor save-state information for the Itanium processor family. This information is\r
/// important in that the SMM drivers may need to ascertain the state of the processor before invoking\r
/// the PMI. This structure is mandatory and must be 512 byte aligned.\r
-/// \r
+///\r
typedef struct {\r
UINT64 reserved;\r
UINT64 r1;\r
///\r
typedef union {\r
///\r
- /// The processor save-state information for IA-32 processors. \r
+ /// The processor save-state information for IA-32 processors.\r
///\r
EFI_SMI_CPU_SAVE_STATE Ia32SaveState;\r
///\r
+ /// Note: Inconsistency with the Framework SMM CIS spec - Itanium save state not included.\r
+ ///\r
/// The processor save-state information for Itanium processors.\r
///\r
- EFI_PMI_SYSTEM_CONTEXT ItaniumSaveState;\r
+ /// EFI_PMI_SYSTEM_CONTEXT ItaniumSaveState;\r
} EFI_SMM_CPU_SAVE_STATE;\r
\r
///\r
\r
///\r
/// The optional floating point save-state information for the Itanium processor family. If the optional\r
-/// floating point save is indicated for any handler, then this data structure must be preserved. \r
-/// \r
+/// floating point save is indicated for any handler, then this data structure must be preserved.\r
+///\r
typedef struct {\r
UINT64 f2[2];\r
UINT64 f3[2];\r
/// point save is indicated for any handler, then this data structure must be preserved.\r
///\r
typedef union {\r
- /// \r
- /// The optional floating point save-state information for IA-32 processors. \r
+ ///\r
+ /// The optional floating point save-state information for IA-32 processors.\r
///\r
EFI_SMI_OPTIONAL_FPSAVE_STATE Ia32FpSave;\r
///\r
- /// The optional floating point save-state information for Itanium processors. \r
+ /// The optional floating point save-state information for Itanium processors.\r
///\r
EFI_PMI_OPTIONAL_FLOATING_POINT_CONTEXT ItaniumFpSave;\r
} EFI_SMM_FLOATING_POINT_SAVE_STATE;\r
//\r
struct _EFI_SMM_SYSTEM_TABLE {\r
///\r
- /// The table header for the System Management System Table (SMST). \r
+ /// The table header for the System Management System Table (SMST).\r
///\r
EFI_TABLE_HEADER Hdr;\r
\r
UINT32 SmmFirmwareRevision;\r
\r
///\r
- /// Adds, updates, or removes a configuration table entry from the SMST. \r
+ /// Adds, updates, or removes a configuration table entry from the SMST.\r
///\r
EFI_SMM_INSTALL_CONFIGURATION_TABLE SmmInstallConfigurationTable;\r
\r
// I/O Services\r
//\r
///\r
- /// A GUID that designates the particular CPU I/O services. \r
+ /// A GUID that designates the particular CPU I/O services.\r
///\r
EFI_GUID EfiSmmCpuIoGuid;\r
///\r
///\r
EFI_SMMCORE_ALLOCATE_POOL SmmAllocatePool;\r
///\r
- /// Returns pool memory to the system. \r
+ /// Returns pool memory to the system.\r
///\r
EFI_SMMCORE_FREE_POOL SmmFreePool;\r
///\r
- /// Allocates memory pages from the system. \r
+ /// Allocates memory pages from the system.\r
///\r
EFI_SMMCORE_ALLOCATE_PAGES SmmAllocatePages;\r
///\r
//\r
// MP service\r
//\r
- \r
+\r
/// Inconsistent with specification here:\r
- /// In Framework Spec, this definition does not exist. This method is introduced in PI1.1 specification for \r
+ /// In Framework Spec, this definition does not exist. This method is introduced in PI1.1 specification for\r
/// the implementation needed.\r
EFI_SMM_STARTUP_THIS_AP SmmStartupThisAp;\r
\r