/** @file\r
Include file matches things in PI for multiple module types.\r
\r
-Copyright (c) 2006 - 2013, 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
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
+Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
@par Revision Reference:\r
These elements are defined in UEFI Platform Initialization Specification 1.2.\r
Produces an error code in the range reserved for use by the Platform Initialization\r
Architecture Specification.\r
\r
- The supported 32-bit range is 0xA0000000-0xBFFFFFFF \r
- The supported 64-bit range is 0xA000000000000000-0xBFFFFFFFFFFFFFFF \r
+ The supported 32-bit range is 0xA0000000-0xBFFFFFFF\r
+ The supported 64-bit range is 0xA000000000000000-0xBFFFFFFFFFFFFFFF\r
\r
- @param StatusCode The status code value to convert into a warning code. \r
+ @param StatusCode The status code value to convert into a warning code.\r
StatusCode must be in the range 0x00000000..0x1FFFFFFF.\r
\r
@return The value specified by StatusCode in the PI reserved range.\r
#define EFI_REQUEST_UNLOAD_IMAGE DXE_ERROR (1)\r
\r
///\r
-/// If this value is returned by an API, it means the capability is not yet \r
+/// If this value is returned by an API, it means the capability is not yet\r
/// installed/available/ready to use.\r
///\r
-#define EFI_NOT_AVAILABLE_YET DXE_ERROR (2)\r
+#define EFI_NOT_AVAILABLE_YET DXE_ERROR (2)\r
\r
///\r
/// Success and warning codes reserved for use by PI.\r
/// Supported 32-bit range is 0x20000000-0x3fffffff.\r
/// Supported 64-bit range is 0x2000000000000000-0x3fffffffffffffff.\r
///\r
-#define PI_ENCODE_WARNING(a) ((MAX_BIT >> 2) | (a))\r
+#define PI_ENCODE_WARNING(a) ((MAX_BIT >> 2) | (a))\r
\r
///\r
/// Error codes reserved for use by PI.\r
/// Supported 32-bit range is 0xa0000000-0xbfffffff.\r
/// Supported 64-bit range is 0xa000000000000000-0xbfffffffffffffff.\r
///\r
-#define PI_ENCODE_ERROR(a) (MAX_BIT | (MAX_BIT >> 2) | (a))\r
+#define PI_ENCODE_ERROR(a) (MAX_BIT | (MAX_BIT >> 2) | (a))\r
\r
-/// \r
+///\r
/// Return status codes defined in SMM CIS.\r
-/// \r
-#define EFI_INTERRUPT_PENDING PI_ENCODE_ERROR (0)\r
+///\r
+#define EFI_INTERRUPT_PENDING PI_ENCODE_ERROR (0)\r
\r
#define EFI_WARN_INTERRUPT_SOURCE_PENDING PI_ENCODE_WARNING (0)\r
#define EFI_WARN_INTERRUPT_SOURCE_QUIESCED PI_ENCODE_WARNING (1)\r
\r
///\r
/// Bitmask of values for Authentication Status.\r
-/// Authentication Status is returned from EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL \r
+/// Authentication Status is returned from EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL\r
/// and the EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI\r
///\r
/// xx00 Image was not signed.\r
/// 1010 Image was signed, the signature was tested, and the signature failed the authentication test.\r
///\r
///@{\r
-#define EFI_AUTH_STATUS_PLATFORM_OVERRIDE 0x01\r
-#define EFI_AUTH_STATUS_IMAGE_SIGNED 0x02\r
-#define EFI_AUTH_STATUS_NOT_TESTED 0x04\r
-#define EFI_AUTH_STATUS_TEST_FAILED 0x08\r
-#define EFI_AUTH_STATUS_ALL 0x0f\r
+#define EFI_AUTH_STATUS_PLATFORM_OVERRIDE 0x01\r
+#define EFI_AUTH_STATUS_IMAGE_SIGNED 0x02\r
+#define EFI_AUTH_STATUS_NOT_TESTED 0x04\r
+#define EFI_AUTH_STATUS_TEST_FAILED 0x08\r
+#define EFI_AUTH_STATUS_ALL 0x0f\r
///@}\r
\r
///\r
-/// SMRAM states and capabilities\r
+/// MMRAM states and capabilities\r
///\r
-#define EFI_SMRAM_OPEN 0x00000001\r
-#define EFI_SMRAM_CLOSED 0x00000002\r
-#define EFI_SMRAM_LOCKED 0x00000004\r
-#define EFI_CACHEABLE 0x00000008\r
-#define EFI_ALLOCATED 0x00000010\r
-#define EFI_NEEDS_TESTING 0x00000020\r
-#define EFI_NEEDS_ECC_INITIALIZATION 0x00000040\r
+#define EFI_MMRAM_OPEN 0x00000001\r
+#define EFI_MMRAM_CLOSED 0x00000002\r
+#define EFI_MMRAM_LOCKED 0x00000004\r
+#define EFI_CACHEABLE 0x00000008\r
+#define EFI_ALLOCATED 0x00000010\r
+#define EFI_NEEDS_TESTING 0x00000020\r
+#define EFI_NEEDS_ECC_INITIALIZATION 0x00000040\r
+\r
+#define EFI_SMRAM_OPEN EFI_MMRAM_OPEN\r
+#define EFI_SMRAM_CLOSED EFI_MMRAM_CLOSED\r
+#define EFI_SMRAM_LOCKED EFI_MMRAM_LOCKED\r
\r
///\r
-/// Structure describing a SMRAM region and its accessibility attributes.\r
+/// Structure describing a MMRAM region and its accessibility attributes.\r
///\r
typedef struct {\r
///\r
- /// Designates the physical address of the SMRAM in memory. This view of memory is \r
- /// the same as seen by I/O-based agents, for example, but it may not be the address seen \r
+ /// Designates the physical address of the MMRAM in memory. This view of memory is\r
+ /// the same as seen by I/O-based agents, for example, but it may not be the address seen\r
/// by the processors.\r
///\r
- EFI_PHYSICAL_ADDRESS PhysicalStart;\r
+ EFI_PHYSICAL_ADDRESS PhysicalStart;\r
///\r
- /// Designates the address of the SMRAM, as seen by software executing on the \r
+ /// Designates the address of the MMRAM, as seen by software executing on the\r
/// processors. This address may or may not match PhysicalStart.\r
///\r
- EFI_PHYSICAL_ADDRESS CpuStart; \r
+ EFI_PHYSICAL_ADDRESS CpuStart;\r
///\r
- /// Describes the number of bytes in the SMRAM region.\r
+ /// Describes the number of bytes in the MMRAM region.\r
///\r
- UINT64 PhysicalSize;\r
+ UINT64 PhysicalSize;\r
///\r
- /// Describes the accessibility attributes of the SMRAM. These attributes include the \r
- /// hardware state (e.g., Open/Closed/Locked), capability (e.g., cacheable), logical \r
- /// allocation (e.g., allocated), and pre-use initialization (e.g., needs testing/ECC \r
+ /// Describes the accessibility attributes of the MMRAM. These attributes include the\r
+ /// hardware state (e.g., Open/Closed/Locked), capability (e.g., cacheable), logical\r
+ /// allocation (e.g., allocated), and pre-use initialization (e.g., needs testing/ECC\r
/// initialization).\r
///\r
- UINT64 RegionState;\r
-} EFI_SMRAM_DESCRIPTOR;\r
+ UINT64 RegionState;\r
+} EFI_MMRAM_DESCRIPTOR;\r
+\r
+typedef EFI_MMRAM_DESCRIPTOR EFI_SMRAM_DESCRIPTOR;\r
+\r
+///\r
+/// Structure describing a MMRAM region which cannot be used for the MMRAM heap.\r
+///\r
+typedef struct _EFI_MM_RESERVED_MMRAM_REGION {\r
+ ///\r
+ /// Starting address of the reserved MMRAM area, as it appears while MMRAM is open.\r
+ /// Ignored if MmramReservedSize is 0.\r
+ ///\r
+ EFI_PHYSICAL_ADDRESS MmramReservedStart;\r
+ ///\r
+ /// Number of bytes occupied by the reserved MMRAM area. A size of zero indicates the\r
+ /// last MMRAM area.\r
+ ///\r
+ UINT64 MmramReservedSize;\r
+} EFI_MM_RESERVED_MMRAM_REGION;\r
\r
typedef enum {\r
EFI_PCD_TYPE_8,\r
/// The returned information associated with the requested TokenNumber. If\r
/// TokenNumber is 0, then PcdType is set to EFI_PCD_TYPE_8.\r
///\r
- EFI_PCD_TYPE PcdType;\r
+ EFI_PCD_TYPE PcdType;\r
///\r
/// The size of the data in bytes associated with the TokenNumber specified. If\r
/// TokenNumber is 0, then PcdSize is set 0.\r
///\r
- UINTN PcdSize;\r
+ UINTN PcdSize;\r
///\r
/// The null-terminated ASCII string associated with a given token. If the\r
/// TokenNumber specified was 0, then this field corresponds to the null-terminated\r
/// ASCII string associated with the token's namespace Guid. If NULL, there is no\r
/// name associated with this request.\r
///\r
- CHAR8 *PcdName;\r
+ CHAR8 *PcdName;\r
} EFI_PCD_INFO;\r
\r
+/**\r
+ The function prototype for invoking a function on an Application Processor.\r
+\r
+ This definition is used by the UEFI MP Serices Protocol, and the\r
+ PI SMM System Table.\r
+\r
+ @param[in,out] Buffer The pointer to private data buffer.\r
+**/\r
+typedef\r
+VOID\r
+(EFIAPI *EFI_AP_PROCEDURE)(\r
+ IN OUT VOID *Buffer\r
+ );\r
+\r
+/**\r
+ The function prototype for invoking a function on an Application Processor.\r
+\r
+ This definition is used by the UEFI MM MP Serices Protocol.\r
+\r
+ @param[in] ProcedureArgument The pointer to private data buffer.\r
+\r
+ @retval EFI_SUCCESS Excutive the procedure successfully\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_AP_PROCEDURE2)(\r
+ IN VOID *ProcedureArgument\r
+ );\r
+\r
#endif\r