]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Pi/PiPeiCis.h
Code Scrub the common includes in MdePkg.
[mirror_edk2.git] / MdePkg / Include / Pi / PiPeiCis.h
index da7c46e587e963956b84b0f2f2655110ca8985b0..89bc24220d4a47f0a38d6d5ce9900d78d89f8d1a 100644 (file)
@@ -1,4 +1,3 @@
-\r
 /** @file\r
   PI PEI master include file. This file should match the PI spec.\r
 \r
 \r
 #include <Pi/PiMultiPhase.h>\r
 \r
-//\r
-// Handles of EFI FV/FFS.\r
-// \r
+///\r
+/// Handles of EFI FV.\r
+/// \r
 typedef VOID    *EFI_PEI_FV_HANDLE;\r
+\r
+///\r
+/// Handles of EFI FFS\r
+/// \r
 typedef VOID    *EFI_PEI_FILE_HANDLE;\r
 \r
-//\r
-// Declare forward referenced data structures\r
-//\r
+///\r
+/// Declare forward reference data structure for EFI_PEI_SERVICE\r
+//\r
 typedef struct _EFI_PEI_SERVICES          EFI_PEI_SERVICES;\r
+\r
+///\r
+/// Declare forward reference data structure for EFI_PEI_NOTIFY_DESCRIPTOR\r
+/// \r
 typedef struct _EFI_PEI_NOTIFY_DESCRIPTOR EFI_PEI_NOTIFY_DESCRIPTOR;\r
 \r
 \r
@@ -42,17 +49,18 @@ typedef struct _EFI_PEI_NOTIFY_DESCRIPTOR EFI_PEI_NOTIFY_DESCRIPTOR;
   The PEI Dispatcher will invoke each PEIM one time.  During this pass, the PEI \r
   Dispatcher will pass control to the PEIM at the AddressOfEntryPoint in the PE Header. \r
 \r
-  @param  FfsHeader        Pointer to the FFS file header.\r
+  @param  FileHandle       Pointer to the FFS file header.\r
   @param  PeiServices      Describes the list of possible PEI Services.\r
 \r
-  @return Status code\r
+  @retval EFI_SUCCESS      The PEI completed successfully.\r
+  @retval !EFI_SUCCESS     There is error in PEIM.\r
 \r
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_PEIM_ENTRY_POINT)(\r
-  IN EFI_PEI_FILE_HANDLE       *FfsHeader,\r
-  IN EFI_PEI_SERVICES          **PeiServices\r
+(EFIAPI *EFI_PEIM_ENTRY_POINT2)(\r
+  IN EFI_PEI_FILE_HANDLE             FileHandle,\r
+  IN CONST EFI_PEI_SERVICES          **PeiServices\r
   );\r
 \r
 /**\r
@@ -62,12 +70,11 @@ EFI_STATUS
   @param  NotifyDescriptor Address of the notification descriptor data structure.\r
   @param  Ppi              Address of the PPI that was installed.\r
 \r
-  @return Status code\r
-  \r
+  @return Status of the notification.\r
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_PEIM_NOTIFY_ENTRY_POINT) (\r
+(EFIAPI *EFI_PEIM_NOTIFY_ENTRY_POINT)(\r
   IN EFI_PEI_SERVICES           **PeiServices,\r
   IN EFI_PEI_NOTIFY_DESCRIPTOR  *NotifyDescriptor,\r
   IN VOID                       *Ppi\r
@@ -83,28 +90,35 @@ EFI_STATUS
 #define EFI_PEI_PPI_DESCRIPTOR_NOTIFY_TYPES     0x00000060\r
 #define EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST   0x80000000\r
 \r
+///\r
+/// The data structure through which a PEIM describes available services to the PEI Foundation.\r
+/// \r
 typedef struct {\r
   UINTN     Flags;\r
   EFI_GUID  *Guid;\r
   VOID      *Ppi;\r
 } EFI_PEI_PPI_DESCRIPTOR;\r
 \r
+/// \r
+/// The data structure in a given PEIM that tells the PEI \r
+/// Foundation where to invoke the notification service.\r
+/// \r
 struct _EFI_PEI_NOTIFY_DESCRIPTOR {\r
   UINTN                       Flags;\r
   EFI_GUID                    *Guid;\r
   EFI_PEIM_NOTIFY_ENTRY_POINT Notify;\r
 };\r
 \r
-//\r
-// Describes request of the module to be loaded to \r
-// the permanent memory once it is available. Unlike most of the other HOBs, \r
-// this HOB is produced and consumed during the HOB producer phase.\r
-// \r
+///\r
+/// Describes request of the module to be loaded to \r
+/// the permanent memory once it is available. Unlike most of the other HOBs, \r
+/// this HOB is produced and consumed during the HOB producer phase.\r
+/// \r
 typedef struct _EFI_HOB_LOAD_PEIM {\r
   EFI_HOB_GENERIC_HEADER            Header;\r
   EFI_PEI_FILE_HANDLE               FileHandle;\r
-  EFI_PEIM_ENTRY_POINT              EntryPoint;\r
-  EFI_PEIM_ENTRY_POINT              InMemEntryPoint;\r
+  EFI_PEIM_ENTRY_POINT2             EntryPoint;\r
+  EFI_PEIM_ENTRY_POINT2             InMemEntryPoint;\r
 } EFI_HOB_LOAD_PEIM;\r
 \r
 \r
@@ -125,9 +139,9 @@ typedef struct _EFI_HOB_LOAD_PEIM {
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_PEI_INSTALL_PPI) (\r
-  IN EFI_PEI_SERVICES            **PeiServices,\r
-  IN EFI_PEI_PPI_DESCRIPTOR      *PpiList\r
+(EFIAPI *EFI_PEI_INSTALL_PPI)(\r
+  IN CONST EFI_PEI_SERVICES            **PeiServices,\r
+  IN CONST EFI_PEI_PPI_DESCRIPTOR      *PpiList\r
   );\r
 \r
 /**\r
@@ -150,10 +164,10 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_PEI_REINSTALL_PPI) (\r
-  IN EFI_PEI_SERVICES                **PeiServices,\r
-  IN EFI_PEI_PPI_DESCRIPTOR          *OldPpi,\r
-  IN EFI_PEI_PPI_DESCRIPTOR          *NewPpi\r
+(EFIAPI *EFI_PEI_REINSTALL_PPI)(\r
+  IN CONST EFI_PEI_SERVICES                **PeiServices,\r
+  IN CONST EFI_PEI_PPI_DESCRIPTOR          *OldPpi,\r
+  IN CONST EFI_PEI_PPI_DESCRIPTOR          *NewPpi\r
   );\r
 \r
 /**\r
@@ -171,12 +185,12 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_PEI_LOCATE_PPI) (\r
-  IN EFI_PEI_SERVICES            **PeiServices,\r
-  IN EFI_GUID                    *Guid,\r
-  IN UINTN                       Instance,\r
-  IN OUT EFI_PEI_PPI_DESCRIPTOR  **PpiDescriptor,\r
-  IN OUT VOID                    **Ppi\r
+(EFIAPI *EFI_PEI_LOCATE_PPI)(\r
+  IN CONST EFI_PEI_SERVICES            **PeiServices,\r
+  IN CONST EFI_GUID                    *Guid,\r
+  IN UINTN                             Instance,\r
+  IN OUT   EFI_PEI_PPI_DESCRIPTOR      **PpiDescriptor OPTIONAL,\r
+  IN OUT   VOID                        **Ppi\r
   );\r
 \r
 /**\r
@@ -196,9 +210,9 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_PEI_NOTIFY_PPI) (\r
-  IN EFI_PEI_SERVICES                **PeiServices,\r
-  IN EFI_PEI_NOTIFY_DESCRIPTOR       *NotifyList\r
+(EFIAPI *EFI_PEI_NOTIFY_PPI)(\r
+  IN CONST EFI_PEI_SERVICES                **PeiServices,\r
+  IN CONST EFI_PEI_NOTIFY_DESCRIPTOR       *NotifyList\r
   );\r
 \r
 /**\r
@@ -212,9 +226,9 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_PEI_GET_BOOT_MODE) (\r
-  IN EFI_PEI_SERVICES            **PeiServices,\r
-  OUT EFI_BOOT_MODE              *BootMode\r
+(EFIAPI *EFI_PEI_GET_BOOT_MODE)(\r
+  IN CONST EFI_PEI_SERVICES            **PeiServices,\r
+  OUT EFI_BOOT_MODE                    *BootMode\r
   );\r
 \r
 /**\r
@@ -228,9 +242,9 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_PEI_SET_BOOT_MODE) (\r
-  IN EFI_PEI_SERVICES            **PeiServices,\r
-  IN EFI_BOOT_MODE               BootMode\r
+(EFIAPI *EFI_PEI_SET_BOOT_MODE)(\r
+  IN CONST EFI_PEI_SERVICES            **PeiServices,\r
+  IN EFI_BOOT_MODE                     BootMode\r
   );\r
 \r
 /**\r
@@ -245,9 +259,9 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_PEI_GET_HOB_LIST) (\r
-  IN EFI_PEI_SERVICES            **PeiServices,\r
-  IN OUT VOID                    **HobList\r
+(EFIAPI *EFI_PEI_GET_HOB_LIST)(\r
+  IN CONST EFI_PEI_SERVICES        **PeiServices,\r
+  OUT VOID                         **HobList\r
   );\r
 \r
 /**\r
@@ -264,11 +278,11 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_PEI_CREATE_HOB) (\r
-  IN EFI_PEI_SERVICES            **PeiServices,\r
-  IN UINT16                      Type,\r
-  IN UINT16                      Length,\r
-  IN OUT VOID                    **Hob\r
+(EFIAPI *EFI_PEI_CREATE_HOB)(\r
+  IN CONST EFI_PEI_SERVICES            **PeiServices,\r
+  IN UINT16                            Type,\r
+  IN UINT16                            Length,\r
+  OUT VOID                             **Hob\r
   );\r
 \r
 /**\r
@@ -279,19 +293,19 @@ EFI_STATUS
 \r
   @param  PeiServices      An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.\r
   @param  Instance         This instance of the firmware volume to find. The value 0 is the Boot Firmware Volume (BFV).\r
-  @param  FwVolHeader      Pointer to the firmware volume header of the volume to return.\r
+  @param  VolumeHandle   On exit, points to the next volumn handle or NULL if it does not exist.\r
 \r
   @retval EFI_SUCCESS           The volume was found.\r
   @retval EFI_NOT_FOUND         The volume was not found.\r
-  @retval EFI_INVALID_PARAMETER FwVolHeader is NULL\r
+  @retval EFI_INVALID_PARAMETER VolHandle is NULL\r
 \r
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_PEI_FFS_FIND_NEXT_VOLUME2) (\r
-  IN EFI_PEI_SERVICES                **PeiServices,\r
-  IN UINTN                           Instance,\r
-  IN OUT EFI_FIRMWARE_VOLUME_HEADER  **FwVolHeader\r
+(EFIAPI *EFI_PEI_FFS_FIND_NEXT_VOLUME2)(\r
+  IN CONST EFI_PEI_SERVICES                **PeiServices,\r
+  IN UINTN                                 Instance,\r
+  OUT EFI_PEI_FV_HANDLE                    *VolumeHandle\r
   );\r
 \r
 /**\r
@@ -314,11 +328,11 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_PEI_FFS_FIND_NEXT_FILE2) (\r
-  IN EFI_PEI_SERVICES            **PeiServices,\r
-  IN EFI_FV_FILETYPE             SearchType,\r
-  IN EFI_FIRMWARE_VOLUME_HEADER  *FwVolHeader,\r
-  IN OUT EFI_FFS_FILE_HEADER     **FileHeader\r
+(EFIAPI *EFI_PEI_FFS_FIND_NEXT_FILE2)(\r
+  IN CONST EFI_PEI_SERVICES                **PeiServices,\r
+  IN EFI_FV_FILETYPE                       SearchType,\r
+  IN EFI_PEI_FV_HANDLE                     VolumeHandle,\r
+  IN OUT EFI_PEI_FILE_HANDLE               *FileHandle\r
   );\r
 \r
 /**\r
@@ -336,11 +350,11 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_PEI_FFS_FIND_SECTION_DATA2) (\r
-  IN EFI_PEI_SERVICES            **PeiServices,\r
-  IN EFI_SECTION_TYPE            SectionType,\r
-  IN EFI_FFS_FILE_HEADER         *FfsFileHeader,\r
-  IN OUT VOID                    **SectionData\r
+(EFIAPI *EFI_PEI_FFS_FIND_SECTION_DATA2)(\r
+  IN CONST EFI_PEI_SERVICES            **PeiServices,\r
+  IN EFI_SECTION_TYPE                  SectionType,\r
+  IN EFI_PEI_FILE_HANDLE               FileHandle,\r
+  IN OUT VOID                          **SectionData\r
   );\r
 \r
 /**\r
@@ -357,8 +371,8 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_PEI_INSTALL_PEI_MEMORY) (\r
-  IN EFI_PEI_SERVICES           **PeiServices,\r
+(EFIAPI *EFI_PEI_INSTALL_PEI_MEMORY)(\r
+  IN CONST EFI_PEI_SERVICES     **PeiServices,\r
   IN EFI_PHYSICAL_ADDRESS       MemoryBegin,\r
   IN UINT64                     MemoryLength\r
   );\r
@@ -380,8 +394,8 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_PEI_ALLOCATE_PAGES) (\r
-  IN EFI_PEI_SERVICES           **PeiServices,\r
+(EFIAPI *EFI_PEI_ALLOCATE_PAGES)(\r
+  IN CONST EFI_PEI_SERVICES     **PeiServices,\r
   IN EFI_MEMORY_TYPE            MemoryType,\r
   IN UINTN                      Pages,\r
   IN OUT EFI_PHYSICAL_ADDRESS   *Memory\r
@@ -401,8 +415,8 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_PEI_ALLOCATE_POOL) (\r
-  IN EFI_PEI_SERVICES           **PeiServices,\r
+(EFIAPI *EFI_PEI_ALLOCATE_POOL)(\r
+  IN CONST EFI_PEI_SERVICES     **PeiServices,\r
   IN UINTN                      Size,\r
   OUT VOID                      **Buffer\r
   );\r
@@ -414,12 +428,10 @@ EFI_STATUS
   @param  Source           Pointer to the source buffer of the memory copy\r
   @param  Length           Number of bytes to copy from Source to Destination.\r
 \r
-  @return None\r
-\r
 **/\r
 typedef\r
 VOID\r
-(EFIAPI *EFI_PEI_COPY_MEM) (\r
+(EFIAPI *EFI_PEI_COPY_MEM)(\r
   IN VOID                       *Destination,\r
   IN VOID                       *Source,\r
   IN UINTN                      Length\r
@@ -432,12 +444,10 @@ VOID
   @param  Size             Number of bytes in Buffer to fill.\r
   @param  Value            Value to fill Buffer with\r
 \r
-  @return None\r
-\r
 **/\r
 typedef\r
 VOID\r
-(EFIAPI *EFI_PEI_SET_MEM) (\r
+(EFIAPI *EFI_PEI_SET_MEM)(\r
   IN VOID                       *Buffer,\r
   IN UINTN                      Size,\r
   IN UINT8                      Value\r
@@ -469,13 +479,13 @@ VOID
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_PEI_REPORT_STATUS_CODE) (\r
-  IN EFI_PEI_SERVICES         **PeiServices,\r
-  IN EFI_STATUS_CODE_TYPE     Type,\r
-  IN EFI_STATUS_CODE_VALUE    Value,\r
-  IN UINT32                   Instance,\r
-  IN EFI_GUID                 *CallerId OPTIONAL,\r
-  IN EFI_STATUS_CODE_DATA     *Data OPTIONAL\r
+(EFIAPI *EFI_PEI_REPORT_STATUS_CODE)(\r
+  IN CONST EFI_PEI_SERVICES         **PeiServices,\r
+  IN EFI_STATUS_CODE_TYPE           Type,\r
+  IN EFI_STATUS_CODE_VALUE          Value,\r
+  IN UINT32                         Instance,\r
+  IN CONST EFI_GUID                 *CallerId OPTIONAL,\r
+  IN CONST EFI_STATUS_CODE_DATA     *Data OPTIONAL\r
   );\r
 \r
 /**\r
@@ -490,8 +500,8 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_PEI_RESET_SYSTEM) (\r
-  IN EFI_PEI_SERVICES   **PeiServices\r
+(EFIAPI *EFI_PEI_RESET_SYSTEM)(\r
+  IN CONST EFI_PEI_SERVICES   **PeiServices\r
   );\r
 \r
 /**\r
@@ -515,11 +525,10 @@ EFI_STATUS
   @retval EFI_INVALID_PARAMETER   VolumeHandle or FileHandle or\r
                                   FileName was NULL.\r
 \r
-\r
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_PEI_FFS_FIND_BY_NAME) (\r
+(EFIAPI *EFI_PEI_FFS_FIND_BY_NAME)(\r
   IN CONST  EFI_GUID            *FileName,\r
   IN CONST  EFI_PEI_FV_HANDLE   VolumeHandle,\r
   OUT       EFI_PEI_FILE_HANDLE *FileHandle\r
@@ -563,7 +572,7 @@ typedef struct {
 \r
   @param FileHandle   Handle of the file.\r
 \r
-  @param FileInfo     Upon exit, points to the file¡¯s\r
+  @param FileInfo     Upon exit, points to the file's\r
                       information.\r
 \r
   @retval EFI_SUCCESS             File information returned.\r
@@ -576,9 +585,9 @@ typedef struct {
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_PEI_FFS_GET_FILE_INFO) (\r
+(EFIAPI *EFI_PEI_FFS_GET_FILE_INFO)(\r
   IN CONST  EFI_PEI_FILE_HANDLE   FileHandle,\r
-  OUT       EFI_FV_FILE_INFO      *FileInfo\r
+  OUT EFI_FV_FILE_INFO            *FileInfo\r
   );\r
 \r
 \r
@@ -622,7 +631,7 @@ typedef struct {
 \r
   @param VolumeHandle   Handle of the volume.\r
 \r
-  @param VolumeInfo     Upon exit, points to the volume¡¯s\r
+  @param VolumeInfo     Upon exit, points to the volume's\r
                         information.\r
 \r
   @retval EFI_SUCCESS             File information returned.\r
@@ -635,9 +644,9 @@ typedef struct {
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_PEI_FFS_GET_VOLUME_INFO) (\r
-  IN CONST  EFI_PEI_FV_HANDLE *VolumeHandle,\r
-  OUT       EFI_FV_INFO       *VolumeInfo\r
+(EFIAPI *EFI_PEI_FFS_GET_VOLUME_INFO)(\r
+  IN  EFI_PEI_FV_HANDLE       VolumeHandle,\r
+  OUT EFI_FV_INFO             *VolumeInfo\r
   );\r
 \r
 /**\r
@@ -652,8 +661,8 @@ EFI_STATUS
   initialized after permanent memory is installed, even the first\r
   time.\r
 \r
-  @param FileHandle   PEIM¡¯s file handle. Must be the currently\r
-                      xecuting PEIM.\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
@@ -667,8 +676,8 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_PEI_REGISTER_FOR_SHADOW) (\r
-  IN CONST  EFI_PEI_FILE_HANDLE FileHandle\r
+(EFIAPI *EFI_PEI_REGISTER_FOR_SHADOW)(\r
+  IN  EFI_PEI_FILE_HANDLE FileHandle\r
   );\r
 \r
 \r
@@ -681,9 +690,18 @@ EFI_STATUS
 //\r
 // PEI Services Table\r
 //\r
-#define PEI_SERVICES_SIGNATURE  0x5652455320494550\r
-#define PEI_SERVICES_REVISION   (PEI_SPECIFICATION_MAJOR_REVISION<<16) | (PEI_SPECIFICATION_MINOR_REVISION)\r
-\r
+#define PEI_SERVICES_SIGNATURE  0x5652455320494550ULL\r
+#define PEI_SERVICES_REVISION   ((PEI_SPECIFICATION_MAJOR_REVISION<<16) | (PEI_SPECIFICATION_MINOR_REVISION))\r
+\r
+/// \r
+/// EFI_PEI_SERVICES is a collection of functions whose implementation is provided by the PEI\r
+/// Foundation. These services fall into various classes, including the following:\r
+/// - Managing the boot mode\r
+/// - Allocating both early and permanent memory\r
+/// - Supporting the Firmware File System (FFS)\r
+/// - Abstracting the PPI database abstraction\r
+/// - Creating Hand-Off Blocks (HOBs)\r
+///\r
 struct _EFI_PEI_SERVICES {\r
   EFI_TABLE_HEADER            Hdr;\r
   //\r
@@ -740,6 +758,11 @@ struct _EFI_PEI_SERVICES {
 };\r
 \r
 \r
+///\r
+/// EFI_SEC_PEI_HAND_OFF structure hold information about\r
+/// PEI core's operating environment, such as the size of location of\r
+/// temporary RAM, the stack location and BFV location.\r
+/// \r
 typedef struct _EFI_SEC_PEI_HAND_OFF {\r
   //\r
   // Size of the data structure.\r