]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Library/PeiServicesLib.h
Synchronization of MDE Library Spec., Mde.dec, and corresponding head files in MdePkg...
[mirror_edk2.git] / MdePkg / Include / Library / PeiServicesLib.h
index 3d0deb9ba49e50d2f8d8cabbc2bf0284d6a25dba..7cff954c04ec2ed972d0966556537244566cfcf5 100644 (file)
@@ -1,14 +1,14 @@
 /** @file\r
-  Header file for PEI Services Library.\r
+  Provides library functions for all PEI Services.\r
 \r
-  Copyright (c) 2006, 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 - 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
 \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
 **/\r
 \r
@@ -138,7 +138,7 @@ PeiServicesSetBootMode (
 EFI_STATUS\r
 EFIAPI\r
 PeiServicesGetHobList (\r
-  IN OUT VOID                   **HobList\r
+  OUT VOID                      **HobList\r
   );\r
 \r
 /**\r
@@ -157,7 +157,7 @@ EFIAPI
 PeiServicesCreateHob (\r
   IN UINT16                     Type,\r
   IN UINT16                     Length,\r
-  IN OUT VOID                   **Hob\r
+  OUT VOID                      **Hob\r
   );\r
 \r
 /**\r
@@ -165,7 +165,7 @@ PeiServicesCreateHob (
 \r
   @param  Instance              This instance of the firmware volume to find.  The value 0 is the\r
                                 Boot Firmware Volume (BFV).\r
-  @param  FwVolHeader           Pointer to the firmware volume header of the volume to return.\r
+  @param  VolumeHandle          Pointer to the firmware volume header of the volume to return.\r
 \r
   @retval EFI_SUCCESS           The volume was found.\r
   @retval EFI_NOT_FOUND         The volume was not found.\r
@@ -183,9 +183,9 @@ PeiServicesFfsFindNextVolume (
   This service enables PEIMs to discover additional firmware files.\r
 \r
   @param  SearchType            A filter to find files only of this type.\r
-  @param  FwVolHeader           Pointer to the firmware volume header of the volume to search.\r
+  @param  VolumeHandle          Pointer to the firmware volume header of the volume to search.\r
                                 This parameter must point to a valid FFS volume.\r
-  @param  FileHeader            Pointer to the current file from which to begin searching.\r
+  @param  FileHandle            Pointer to the current file from which to begin searching.\r
 \r
   @retval EFI_SUCCESS           The file was found.\r
   @retval EFI_NOT_FOUND         The file was not found.\r
@@ -203,8 +203,8 @@ PeiServicesFfsFindNextFile (
 /**\r
   This service enables PEIMs to discover sections of a given type within a valid FFS file.\r
 \r
-  @param  SearchType            The value of the section type to find.\r
-  @param  FfsFileHeader         A pointer to the file header that contains the set of sections to\r
+  @param  SectionType           The value of the section type to find.\r
+  @param  FileHandle            A pointer to the file header that contains the set of sections to\r
                                 be searched.\r
   @param  SectionData           A pointer to the discovered section, if successful.\r
 \r
@@ -217,7 +217,7 @@ EFIAPI
 PeiServicesFfsFindSectionData (\r
   IN EFI_SECTION_TYPE           SectionType,\r
   IN EFI_PEI_FILE_HANDLE        FileHandle,\r
-  IN OUT VOID                   **SectionData\r
+  OUT VOID                      **SectionData\r
   );\r
 \r
 /**\r
@@ -258,7 +258,7 @@ EFIAPI
 PeiServicesAllocatePages (\r
   IN EFI_MEMORY_TYPE            MemoryType,\r
   IN UINTN                      Pages,\r
-  IN OUT EFI_PHYSICAL_ADDRESS   *Memory\r
+  OUT EFI_PHYSICAL_ADDRESS      *Memory\r
   );\r
 \r
 /**\r
@@ -280,9 +280,9 @@ PeiServicesAllocatePool (
   );\r
 \r
 /**\r
-  This service resets the entire platform, including all processors and devices, and reboots the\r
-  system. \r
+  Resets the entire platform.\r
 \r
+  @retval EFI_SUCCESS           The function completed successfully.\r
   @retval EFI_NOT_AVAILABLE_YET The service has not been installed yet.\r
 \r
 **/\r
@@ -293,4 +293,140 @@ PeiServicesResetSystem (
   );\r
 \r
 \r
+/**\r
+  This service is a wrapper for the PEI Service FfsFindByName(), except the pointer to the PEI Services \r
+  Table has been removed.  See the Platform Initialization Pre-EFI Initialization Core Interface \r
+  Specification for details. \r
+\r
+  @param FileName       A pointer to the name of the file to\r
+                        find within the firmware volume.\r
+\r
+  @param VolumeHandle   The firmware volume to search FileHandle\r
+                        Upon exit, points to the found file's\r
+                        handle or NULL if it could not be found.\r
+  @param FileHandle     Pointer to found file handle \r
+\r
+  @retval EFI_SUCCESS             File was found.\r
+\r
+  @retval EFI_NOT_FOUND           File was not found.\r
+\r
+  @retval EFI_INVALID_PARAMETER   VolumeHandle or FileHandle or\r
+                                  FileName was NULL.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+PeiServicesFfsFindByName (\r
+  IN CONST  EFI_GUID            *FileName,\r
+  IN CONST  EFI_PEI_FV_HANDLE   VolumeHandle,\r
+  OUT       EFI_PEI_FILE_HANDLE *FileHandle\r
+  );\r
+\r
+\r
+/**\r
+  This service is a wrapper for the PEI Service FfsGetFileInfo(), except the pointer to the PEI Services \r
+  Table has been removed.  See the Platform Initialization Pre-EFI Initialization Core Interface \r
+  Specification for details. \r
+\r
+  @param FileHandle   Handle of the file.\r
+\r
+  @param FileInfo     Upon exit, points to the file's\r
+                      information.\r
+\r
+  @retval EFI_SUCCESS             File information returned.\r
+  \r
+  @retval EFI_INVALID_PARAMETER   If FileHandle does not\r
+                                  represent a valid file.\r
+  \r
+  @retval EFI_INVALID_PARAMETER   If FileInfo is NULL.\r
+  \r
+**/\r
+EFI_STATUS\r
+EFIAPI \r
+PeiServicesFfsGetFileInfo (\r
+  IN CONST  EFI_PEI_FILE_HANDLE   FileHandle,\r
+  OUT EFI_FV_FILE_INFO            *FileInfo\r
+  );\r
+\r
+/**\r
+  This service is a wrapper for the PEI Service FfsGetVolumeInfo(), except the pointer to the PEI Services \r
+  Table has been removed.  See the Platform Initialization Pre-EFI Initialization Core Interface \r
+  Specification for details. \r
+\r
+  @param VolumeHandle   Handle of the volume.\r
+\r
+  @param VolumeInfo     Upon exit, points to the volume's\r
+                        information.\r
+\r
+  @retval EFI_SUCCESS             File information returned.\r
+  \r
+  @retval EFI_INVALID_PARAMETER   If FileHandle does not\r
+                                  represent a valid file.\r
+  \r
+  @retval EFI_INVALID_PARAMETER   If FileInfo is NULL.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+PeiServicesFfsGetVolumeInfo (\r
+  IN  EFI_PEI_FV_HANDLE       VolumeHandle,\r
+  OUT EFI_FV_INFO             *VolumeInfo\r
+  );\r
+\r
+\r
+/**\r
+  This service is a wrapper for the PEI Service RegisterForShadow(), except the pointer to the PEI Services \r
+  Table has been removed.  See the Platform Initialization Pre-EFI Initialization Core Interface \r
+  Specification for details. \r
+\r
+  @param FileHandle   PEIM's file handle. Must be the currently\r
+                      executing PEIM.\r
+  \r
+  @retval EFI_SUCCESS   The PEIM was successfully registered for\r
+                        shadowing.\r
+\r
+  @retval EFI_ALREADY_STARTED   The PEIM was previously\r
+                                registered for shadowing.\r
+\r
+  @retval EFI_NOT_FOUND   The FileHandle does not refer to a\r
+                          valid file handle.\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+PeiServicesRegisterForShadow (\r
+  IN  EFI_PEI_FILE_HANDLE FileHandle\r
+  );\r
+\r
+/**\r
+  Install a EFI_PEI_FIRMWARE_VOLUME_INFO PPI to inform PEI core about the existence of a new Firmware Volume.\r
+  \r
+  The function allocate the EFI_PEI_PPI_DESCRIPTOR structure and update the fields accordingly to parameter passed\r
+  in and install the PPI.\r
+  \r
+  @param  FvFormat             Unique identifier of the format of the memory-mapped firmware volume. \r
+                               If NULL is specified, EFI_FIRMWARE_FILE_SYSTEM2_GUID is used as the Format GUID.\r
+  @param  FvInfo               Points to a buffer which allows the EFI_PEI_FIRMWARE_VOLUME_PPI to\r
+                               process the volume. The format of this buffer is specific to the FvFormat. For\r
+                               memory-mapped firmware volumes, this typically points to the first byte of the\r
+                               firmware volume.\r
+  @param  FvInfoSize           Size of the data provided by FvInfo. For memory-mapped firmware volumes, this is\r
+                               typically the size of the firmware volume.\r
+  @param  ParentFvName         If the firmware volume originally came from a firmware file, then these point to the\r
+                               parent firmware volume name. If it did not originally come from a firmware file, \r
+                               these should be NULL.\r
+  @param  ParentFileName       If the firmware volume originally came from a firmware file, then these point to the\r
+                               firmware volume file. If it did not originally come from a firmware file, \r
+                               these should be NULL.\r
+   \r
+**/\r
+VOID\r
+EFIAPI\r
+PeiServicesInstallFvInfoPpi (\r
+  IN CONST EFI_GUID                *FvFormat, OPTIONAL\r
+  IN CONST VOID                    *FvInfo,\r
+  IN       UINT32                  FvInfoSize,\r
+  IN CONST EFI_GUID                *ParentFvName, OPTIONAL\r
+  IN CONST EFI_GUID                *ParentFileName OPTIONAL\r
+  );\r
+\r
 #endif\r