]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Pi/PiDxeCis.h
Prompt the PI specification version to 1.20 and UEFI specification version to 2.30...
[mirror_edk2.git] / MdePkg / Include / Pi / PiDxeCis.h
index 574ee464f96ec4d6a5a1445149eb88bf01b4fd17..04a7bcb9ac76bb9da23a30b1adae220000875b4d 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Include file matches things in PI.\r
 \r
-  Copyright (c) 2006 - 2007, Intel Corporation                                                         \r
+  Copyright (c) 2006 - 2009, 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
   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
 \r
   @par Revision Reference:\r
-  Version 1.0.\r
+  PI Version 1.0\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
 ///\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
@@ -35,8 +55,20 @@ typedef enum {
 /// 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,10 +77,30 @@ 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
@@ -183,8 +235,7 @@ EFI_STATUS
   IN EFI_PHYSICAL_ADDRESS  BaseAddress,\r
   IN UINT64                Length,\r
   IN UINT64                Capabilities\r
-  )\r
-;\r
+  );\r
 \r
 /**\r
   Allocates nonexistent memory, reserved memory, system memory, or memorymapped\r
@@ -226,8 +277,7 @@ EFI_STATUS
   IN OUT EFI_PHYSICAL_ADDRESS                *BaseAddress,\r
   IN     EFI_HANDLE                          ImageHandle,\r
   IN     EFI_HANDLE                          DeviceHandle OPTIONAL\r
-  )\r
-;\r
+  );\r
 \r
 /**\r
   Frees nonexistent memory, reserved memory, system memory, or memory-mapped\r
@@ -252,8 +302,7 @@ EFI_STATUS
 (EFIAPI *EFI_FREE_MEMORY_SPACE)(\r
   IN EFI_PHYSICAL_ADDRESS  BaseAddress,\r
   IN UINT64                Length\r
-  )\r
-;\r
+  );\r
 \r
 /**\r
   Removes reserved memory, system memory, or memory-mapped I/O resources from\r
@@ -281,8 +330,7 @@ EFI_STATUS
 (EFIAPI *EFI_REMOVE_MEMORY_SPACE)(\r
   IN EFI_PHYSICAL_ADDRESS  BaseAddress,\r
   IN UINT64                Length\r
-  )\r
-;\r
+  );\r
 \r
 /**\r
   Retrieves the descriptor for a memory region containing a specified address.\r
@@ -301,8 +349,7 @@ EFI_STATUS
 (EFIAPI *EFI_GET_MEMORY_SPACE_DESCRIPTOR)(\r
   IN  EFI_PHYSICAL_ADDRESS             BaseAddress,\r
   OUT EFI_GCD_MEMORY_SPACE_DESCRIPTOR  *Descriptor\r
-  )\r
-;\r
+  );\r
 \r
 /**\r
   Modifies the attributes for a memory region in the global coherency domain of the\r
@@ -330,8 +377,7 @@ EFI_STATUS
   IN EFI_PHYSICAL_ADDRESS         BaseAddress,\r
   IN UINT64                       Length,\r
   IN UINT64                       Attributes\r
-  )\r
-;\r
+  );\r
 \r
 /**\r
   Returns a map of the memory resources in the global coherency domain of the\r
@@ -353,8 +399,7 @@ EFI_STATUS
 (EFIAPI *EFI_GET_MEMORY_SPACE_MAP)(\r
   OUT UINTN                            *NumberOfDescriptors,\r
   OUT EFI_GCD_MEMORY_SPACE_DESCRIPTOR  **MemorySpaceMap\r
-  )\r
-;\r
+  );\r
 \r
 /**\r
   Adds reserved I/O or I/O resources to the global coherency domain of the processor.\r
@@ -386,8 +431,7 @@ EFI_STATUS
   IN EFI_GCD_IO_TYPE       GcdIoType,\r
   IN EFI_PHYSICAL_ADDRESS  BaseAddress,\r
   IN UINT64                Length\r
-  )\r
-;\r
+  );\r
 \r
 /**\r
   Allocates nonexistent I/O, reserved I/O, or I/O resources from the global coherency\r
@@ -423,8 +467,7 @@ EFI_STATUS
   IN OUT EFI_PHYSICAL_ADDRESS                *BaseAddress,\r
   IN     EFI_HANDLE                          ImageHandle,\r
   IN     EFI_HANDLE                          DeviceHandle OPTIONAL\r
-  )\r
-;\r
+  );\r
 \r
 /**\r
   Frees nonexistent I/O, reserved I/O, or I/O resources from the global coherency\r
@@ -449,8 +492,7 @@ EFI_STATUS
 (EFIAPI *EFI_FREE_IO_SPACE)(\r
   IN EFI_PHYSICAL_ADDRESS  BaseAddress,\r
   IN UINT64                Length\r
-  )\r
-;\r
+  );\r
 \r
 /**\r
   Removes reserved I/O or I/O resources from the global coherency domain of the\r
@@ -480,8 +522,7 @@ EFI_STATUS
 (EFIAPI *EFI_REMOVE_IO_SPACE)(\r
   IN EFI_PHYSICAL_ADDRESS  BaseAddress,\r
   IN UINT64                Length\r
-  )\r
-;\r
+  );\r
 \r
 /**\r
   Retrieves the descriptor for an I/O region containing a specified address.\r
@@ -500,8 +541,7 @@ EFI_STATUS
 (EFIAPI *EFI_GET_IO_SPACE_DESCRIPTOR)(\r
   IN  EFI_PHYSICAL_ADDRESS         BaseAddress,\r
   OUT EFI_GCD_IO_SPACE_DESCRIPTOR  *Descriptor\r
-  )\r
-;\r
+  );\r
 \r
 /**\r
   Returns a map of the I/O resources in the global coherency domain of the processor.\r
@@ -523,8 +563,7 @@ EFI_STATUS
 (EFIAPI *EFI_GET_IO_SPACE_MAP)(\r
   OUT UINTN                        *NumberOfDescriptors,\r
   OUT EFI_GCD_IO_SPACE_DESCRIPTOR  **IoSpaceMap\r
-  )\r
-;\r
+  );\r
 \r
 \r
 \r
@@ -548,8 +587,7 @@ typedef
 EFI_STATUS\r
 (EFIAPI *EFI_DISPATCH)(\r
   VOID\r
-  )\r
-;\r
+  );\r
 \r
 /**\r
   Clears the Schedule on Request (SOR) flag for a component that is stored in a firmware volume.\r
@@ -567,8 +605,7 @@ EFI_STATUS
 (EFIAPI *EFI_SCHEDULE)(\r
   IN EFI_HANDLE  FirmwareVolumeHandle,\r
   IN CONST EFI_GUID    *FileName\r
-  )\r
-;\r
+  );\r
 \r
 /**\r
   Promotes a file stored in a firmware volume from the untrusted to the trusted state.\r
@@ -586,8 +623,7 @@ EFI_STATUS
 (EFIAPI *EFI_TRUST)(\r
   IN EFI_HANDLE  FirmwareVolumeHandle,\r
   IN CONST EFI_GUID    *FileName\r
-  )\r
-;\r
+  );\r
 \r
 /**\r
   Creates a firmware volume handle for a firmware volume that is present in system memory.\r
@@ -613,16 +649,19 @@ EFI_STATUS
   IN CONST VOID                       *FirmwareVolumeHeader,\r
   IN UINTN                            Size,\r
   OUT EFI_HANDLE                      *FirmwareVolumeHandle\r
-  )\r
-;\r
+  );\r
 \r
 //\r
 // DXE Services Table\r
 //\r
 #define DXE_SERVICES_SIGNATURE  0x565245535f455844ULL\r
-#define DXE_SERVICES_REVISION   ((1<<16) | (00))\r
+#define DXE_SERVICES_REVISION   ((1<<16) | (20))\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
@@ -656,4 +695,19 @@ typedef struct {
 \r
 typedef DXE_SERVICES EFI_DXE_SERVICES;\r
 \r
+\r
+/**\r
+  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  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