]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Pi/PiDxeCis.h
MdePkg/Include/Pi: Modify specification number encoding
[mirror_edk2.git] / MdePkg / Include / Pi / PiDxeCis.h
index 17543fa72bc6741b97b4f5f986d747d0de7a112e..c081d047b35fe9ae6e21fb8b382206d356ba02b2 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Include file matches things in PI.\r
 \r
-Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2017, 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
@@ -11,7 +11,7 @@ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
 \r
   @par Revision Reference:\r
-  PI Version 1.2\r
+  PI Version 1.6\r
 \r
 **/\r
 \r
@@ -48,6 +48,20 @@ typedef enum {
   /// access I/O devices in the platform.\r
   ///\r
   EfiGcdMemoryTypeMemoryMappedIo,\r
+  ///\r
+  /// A memory region that is visible to the boot processor. \r
+  /// This memory supports byte-addressable non-volatility. \r
+  ///\r
+  EfiGcdMemoryTypePersistent,\r
+  //\r
+  // Keep original one for the compatibility.\r
+  //\r
+  EfiGcdMemoryTypePersistentMemory = EfiGcdMemoryTypePersistent,\r
+  ///\r
+  /// A memory region that provides higher reliability relative to other memory in the\r
+  /// system. If all memory has the same reliability, then this bit is not used.\r
+  ///\r
+  EfiGcdMemoryTypeMoreReliable,\r
   EfiGcdMemoryTypeMaximum\r
 } EFI_GCD_MEMORY_TYPE;\r
 \r
@@ -365,11 +379,12 @@ EFI_STATUS
                                 resource range specified by BaseAddress and Length.\r
   @retval EFI_UNSUPPORTED       The bit mask of attributes is not support for the memory resource\r
                                 range specified by BaseAddress and Length.\r
-  @retval EFI_ACCESS_DEFINED    The attributes for the memory resource range specified by\r
+  @retval EFI_ACCESS_DENIED     The attributes for the memory resource range specified by\r
                                 BaseAddress and Length cannot be modified.\r
   @retval EFI_OUT_OF_RESOURCES  There are not enough system resources to modify the attributes of\r
                                 the memory resource range.\r
-\r
+  @retval EFI_NOT_AVAILABLE_YET The attributes cannot be set because CPU architectural protocol is\r
+                                not available yet.\r
 **/\r
 typedef\r
 EFI_STATUS\r
@@ -379,6 +394,31 @@ EFI_STATUS
   IN UINT64                       Attributes\r
   );\r
 \r
+/**\r
+  Modifies the capabilities for a memory region in the global coherency domain of the\r
+  processor.\r
+\r
+  @param  BaseAddress      The physical address that is the start address of a memory region.\r
+  @param  Length           The size in bytes of the memory region.\r
+  @param  Capabilities     The bit mask of capabilities that the memory region supports.\r
+\r
+  @retval EFI_SUCCESS           The capabilities were set for the memory region.\r
+  @retval EFI_INVALID_PARAMETER Length is zero.\r
+  @retval EFI_UNSUPPORTED       The capabilities specified by Capabilities do not include the\r
+                                memory region attributes currently in use.\r
+  @retval EFI_ACCESS_DENIED     The capabilities for the memory resource range specified by\r
+                                BaseAddress and Length cannot be modified.\r
+  @retval EFI_OUT_OF_RESOURCES  There are not enough system resources to modify the capabilities\r
+                                of the memory resource range.\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_SET_MEMORY_SPACE_CAPABILITIES) (\r
+  IN EFI_PHYSICAL_ADDRESS  BaseAddress,\r
+  IN UINT64                Length,\r
+  IN UINT64                Capabilities\r
+  );\r
+\r
 /**\r
   Returns a map of the memory resources in the global coherency domain of the\r
   processor.\r
@@ -656,7 +696,7 @@ EFI_STATUS
 //\r
 #define DXE_SERVICES_SIGNATURE            0x565245535f455844ULL\r
 #define DXE_SPECIFICATION_MAJOR_REVISION  1\r
-#define DXE_SPECIFICATION_MINOR_REVISION  20\r
+#define DXE_SPECIFICATION_MINOR_REVISION  60\r
 #define DXE_SERVICES_REVISION             ((DXE_SPECIFICATION_MAJOR_REVISION<<16) | (DXE_SPECIFICATION_MINOR_REVISION))\r
 \r
 typedef struct {\r
@@ -693,23 +733,12 @@ typedef struct {
   // Service to process a single firmware volume found in a capsule\r
   //\r
   EFI_PROCESS_FIRMWARE_VOLUME     ProcessFirmwareVolume;\r
+  //\r
+  // Extensions to Global Coherency Domain Services\r
+  //\r
+  EFI_SET_MEMORY_SPACE_CAPABILITIES SetMemorySpaceCapabilities;\r
 } DXE_SERVICES;\r
 \r
 typedef DXE_SERVICES EFI_DXE_SERVICES;\r
 \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
 #endif\r