]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Pi/PiDxeCis.h
Update PI Service Table Versions per PI 1.2 Errata C.
[mirror_edk2.git] / MdePkg / Include / Pi / PiDxeCis.h
index c98c6bc0f6a00f7be0c8b7153ef580d4c886b2c8..17543fa72bc6741b97b4f5f986d747d0de7a112e 100644 (file)
@@ -1,42 +1,74 @@
 /** @file\r
   Include file matches things in PI.\r
 \r
-  Copyright (c) 2006 - 2008, Intel Corporation                                                         \r
-  All rights reserved. This program and the accompanying materials                          \r
-  are licensed and made available under the terms and conditions of the BSD License         \r
-  which accompanies this distribution.  The full text of the license may be found at        \r
-  http://opensource.org/licenses/bsd-license.php                                            \r
+Copyright (c) 2006 - 2011, 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
+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
   @par Revision Reference:\r
-  PI Version 1.0\r
+  PI Version 1.2\r
 \r
 **/\r
 \r
 #ifndef __PI_DXECIS_H__\r
 #define __PI_DXECIS_H__\r
 \r
+#include <Uefi/UefiMultiPhase.h>\r
 #include <Pi/PiMultiPhase.h>\r
 \r
 ///\r
-/// Global Coherencey Domain types - Memory type\r
+/// Global Coherencey Domain types - Memory type.\r
 ///\r
 typedef enum {\r
+  ///\r
+  /// A memory region that is visible to the boot processor. However, there are no system\r
+  /// components that are currently decoding this memory region.\r
+  ///\r
   EfiGcdMemoryTypeNonExistent,\r
+  ///\r
+  /// A memory region that is visible to the boot processor. This memory region is being\r
+  /// decoded by a system component, but the memory region is not considered to be either\r
+  /// system memory or memory-mapped I/O.\r
+  ///\r
   EfiGcdMemoryTypeReserved,\r
+  ///\r
+  /// A memory region that is visible to the boot processor. A memory controller is\r
+  /// currently decoding this memory region and the memory controller is producing a\r
+  /// tested system memory region that is available to the memory services.\r
+  ///\r
   EfiGcdMemoryTypeSystemMemory,\r
+  ///\r
+  /// A memory region that is visible to the boot processor. This memory region is\r
+  /// currently being decoded by a component as memory-mapped I/O that can be used to\r
+  /// access I/O devices in the platform.\r
+  ///\r
   EfiGcdMemoryTypeMemoryMappedIo,\r
   EfiGcdMemoryTypeMaximum\r
 } EFI_GCD_MEMORY_TYPE;\r
 \r
 ///\r
-/// Global Coherencey Domain types - IO type\r
+/// Global Coherencey Domain types - IO type.\r
 ///\r
 typedef enum {\r
+  ///\r
+  /// An I/O region that is visible to the boot processor. However, there are no system\r
+  /// components that are currently decoding this I/O region.\r
+  ///\r
   EfiGcdIoTypeNonExistent,\r
+  ///\r
+  /// An I/O region that is visible to the boot processor. This I/O region is currently being\r
+  /// decoded by a system component, but the I/O region cannot be used to access I/O devices.\r
+  ///\r
   EfiGcdIoTypeReserved,\r
+  ///\r
+  /// An I/O region that is visible to the boot processor. This I/O region is currently being\r
+  /// decoded by a system component that is producing I/O ports that can be used to access I/O devices.\r
+  ///\r
   EfiGcdIoTypeIo,\r
   EfiGcdIoTypeMaximum\r
 } EFI_GCD_IO_TYPE;\r
@@ -45,22 +77,42 @@ typedef enum {
 /// The type of allocation to perform.\r
 /// \r
 typedef enum {\r
+  ///\r
+  /// The GCD memory space map is searched from the lowest address up to the highest address\r
+  /// looking for unallocated memory ranges.\r
+  ///\r
   EfiGcdAllocateAnySearchBottomUp,\r
+  ///\r
+  /// The GCD memory space map is searched from the lowest address up \r
+  /// to the specified MaxAddress looking for unallocated memory ranges.\r
+  ///\r
   EfiGcdAllocateMaxAddressSearchBottomUp,\r
+  ///\r
+  /// The GCD memory space map is checked to see if the memory range starting \r
+  /// at the specified Address is available.\r
+  ///\r
   EfiGcdAllocateAddress,\r
+  ///\r
+  /// The GCD memory space map is searched from the highest address down to the lowest address \r
+  /// looking for unallocated memory ranges.\r
+  ///\r
   EfiGcdAllocateAnySearchTopDown,\r
+  ///\r
+  /// The GCD memory space map is searched from the specified MaxAddress \r
+  /// down to the lowest address looking for unallocated memory ranges.\r
+  ///\r
   EfiGcdAllocateMaxAddressSearchTopDown,\r
   EfiGcdMaxAllocateType\r
 } EFI_GCD_ALLOCATE_TYPE;\r
 \r
 ///\r
-/// EFI_GCD_MEMORY_SPACE_DESCRIPTOR\r
+/// EFI_GCD_MEMORY_SPACE_DESCRIPTOR.\r
 /// \r
 typedef struct {\r
   ///\r
   /// The physical address of the first byte in the memory region. Type\r
   /// EFI_PHYSICAL_ADDRESS is defined in the AllocatePages() function\r
-  /// description in the UEFI 2.0 specification\r
+  /// description in the UEFI 2.0 specification.\r
   /// \r
   EFI_PHYSICAL_ADDRESS  BaseAddress;\r
 \r
@@ -82,7 +134,7 @@ typedef struct {
   UINT64                Attributes;\r
   ///\r
   /// Type of the memory region. Type EFI_GCD_MEMORY_TYPE is defined in the\r
-  /// AddMemorySpace() function description\r
+  /// AddMemorySpace() function description.\r
   /// \r
   EFI_GCD_MEMORY_TYPE   GcdMemoryType;\r
 \r
@@ -105,7 +157,7 @@ typedef struct {
 } EFI_GCD_MEMORY_SPACE_DESCRIPTOR;\r
 \r
 ///\r
-/// EFI_GCD_IO_SPACE_DESCRIPTOR\r
+/// EFI_GCD_IO_SPACE_DESCRIPTOR.\r
 /// \r
 typedef struct {\r
   ///\r
@@ -173,7 +225,7 @@ typedef struct {
                                  added to the global coherency domain of the processor.\r
   @retval EFI_ACCESS_DENIED      One or more bytes of the memory resource range\r
                                  specified by BaseAddress and Length was allocated\r
-                                 in a prior call to AllocateMemorySpace()..\r
+                                 in a prior call to AllocateMemorySpace().\r
 \r
 **/\r
 typedef\r
@@ -528,7 +580,7 @@ EFI_STATUS
   @retval EFI_SUCCESS         One or more DXE driver were dispatched.\r
   @retval EFI_NOT_FOUND       No DXE drivers were dispatched.\r
   @retval EFI_ALREADY_STARTED An attempt is being made to start the DXE Dispatcher recursively.\r
-                              Thus no action was taken.\r
+                              Thus, no action was taken.\r
 \r
 **/\r
 typedef\r
@@ -602,10 +654,16 @@ EFI_STATUS
 //\r
 // DXE Services Table\r
 //\r
-#define DXE_SERVICES_SIGNATURE  0x565245535f455844ULL\r
-#define DXE_SERVICES_REVISION   ((1<<16) | (00))\r
+#define DXE_SERVICES_SIGNATURE            0x565245535f455844ULL\r
+#define DXE_SPECIFICATION_MAJOR_REVISION  1\r
+#define DXE_SPECIFICATION_MINOR_REVISION  20\r
+#define DXE_SERVICES_REVISION             ((DXE_SPECIFICATION_MAJOR_REVISION<<16) | (DXE_SPECIFICATION_MINOR_REVISION))\r
 \r
 typedef struct {\r
+  ///\r
+  /// The table header for the DXE Services Table.\r
+  /// This header contains the DXE_SERVICES_SIGNATURE and DXE_SERVICES_REVISION values.\r
+  ///\r
   EFI_TABLE_HEADER                Hdr;\r
 \r
   //\r
@@ -639,4 +697,19 @@ typedef struct {
 \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