X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=MdePkg%2FInclude%2FLibrary%2FPeiCoreEntryPoint.h;h=1eb974c9d34f75df0db93b9606934e5670e314d6;hp=9c0acd01095edc2c35362f54c4568cb3c56d95aa;hb=34860f7a069641fb9e14077c01605215aae68a9b;hpb=50a64e5b0b92772b3aa02c23a64745b51094916b diff --git a/MdePkg/Include/Library/PeiCoreEntryPoint.h b/MdePkg/Include/Library/PeiCoreEntryPoint.h index 9c0acd0109..1eb974c9d3 100644 --- a/MdePkg/Include/Library/PeiCoreEntryPoint.h +++ b/MdePkg/Include/Library/PeiCoreEntryPoint.h @@ -16,27 +16,33 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. #define __MODULE_ENTRY_POINT_H__ /** - - Enrty point to PEI core. - - @param SecCoreData Points to a data structure containing - information about the PEI core's - operating environment, such as the size - and location of temporary RAM, the stack - location and the BFV location. The type - EFI_SEC_PEI_HAND_OFF is - - @param PpiList Points to a list of one or more PPI - descriptors to be installed initially by - the PEI core. An empty PPI list consists - of a single descriptor with the end-tag - EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST. - As part of its initialization phase, the - PEI Foundation will add these SEC-hosted - PPIs to its PPI database such that both - the PEI Foundation and any modules can - leverage the associated service calls - and/or code in these early PPIs. + The entry point of PE/COFF Image for the PEI Core. + + This function is the entry point for the PEI Foundation, which allows the SEC phase + to pass information about the stack, temporary RAM and the Boot Firmware Volume. + In addition, it also allows the SEC phase to pass services and data forward for use + during the PEI phase in the form of one or more PPIs. + There is no limit to the number of additional PPIs that can be passed from SEC into + the PEI Foundation. As part of its initialization phase, the PEI Foundation will add + these SEC-hosted PPIs to its PPI database such that both the PEI Foundation and any + modules can leverage the associated service calls and/or code in these early PPIs. + This function is required to call ProcessModuleEntryPointList() with the Context + parameter set to NULL. ProcessModuleEntryPoint() is never expected to return. + The PEI Core is responsible for calling ProcessLibraryConstructorList() as soon as + the PEI Services Table and the file handle for the PEI Core itself have been established. + If ProcessModuleEntryPointList() returns, then ASSERT() and halt the system. + + @param SecCoreData Points to a data structure containing information about the PEI + core's operating environment, such as the size and location of + temporary RAM, the stack location and the BFV location. + + @param PpiList Points to a list of one or more PPI descriptors to be installed + initially by the PEI core. An empty PPI list consists of a single + descriptor with the end-tag EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST. + As part of its initialization phase, the PEI Foundation will add + these SEC-hosted PPIs to its PPI database such that both the PEI + Foundation and any modules can leverage the associated service calls + and/or code in these early PPIs. **/ VOID @@ -47,28 +53,21 @@ _ModuleEntryPoint( ); /** - Wrapper of enrty point to PEI core. - - @param SecCoreData Points to a data structure containing - information about the PEI core's - operating environment, such as the size - and location of temporary RAM, the stack - location and the BFV location. The type - EFI_SEC_PEI_HAND_OFF is - - @param PpiList Points to a list of one or more PPI - descriptors to be installed initially by - the PEI core. An empty PPI list consists - of a single descriptor with the end-tag - EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST. - As part of its initialization phase, the - PEI Foundation will add these SEC-hosted - PPIs to its PPI database such that both - the PEI Foundation and any modules can - leverage the associated service calls - and/or code in these early PPIs. - - @return Status returned by entry points of core and drivers. + Required by the EBC compiler and identical in functionality to _ModuleEntryPoint(). + + This function is required to call _ModuleEntryPoint() passing in SecCoreData and PpiList. + + @param SecCoreData Points to a data structure containing information about the PEI core's + operating environment, such as the size and location of temporary RAM, + the stack location and the BFV location. + + @param PpiList Points to a list of one or more PPI descriptors to be installed + initially by the PEI core. An empty PPI list consists of a single + descriptor with the end-tag EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST. + As part of its initialization phase, the PEI Foundation will add these + SEC-hosted PPIs to its PPI database such that both the PEI Foundation + and any modules can leverage the associated service calls and/or code + in these early PPIs. **/ VOID @@ -79,11 +78,21 @@ EfiMain ( ); /** - Call constructs for all libraries. Automatics Generated by tool. - - @param FileHandle Handle of the file being invoked. - Type EFI_PEI_FILE_HANDLE is defined in FfsFindNextFile(). - @param PeiServices Pointer to the PEI Services Table. + Autogenerated function that calls the library constructors for all of the module's + dependent libraries. + + This function must be called by the PEI Core once an initial PEI Services Table has been established. + This function calls the set of library constructors for the set of library instances that a + module depends on. This include library instances that a module depends on directly and library + instances that a module depends on indirectly through other libraries. + This function is autogenerated by build tools and those build tools are responsible for collecting + the set of library instances, determine which ones have constructors, and calling the library + constructors in the proper order based upon each of the library instances own dependencies. + The PEI Core must call this function with a NULL FileHandle value as soon as the initial PEI + Services Table has been established. + + @param FileHandle Handle of the file being invoked. + @param PeiServices Describes the list of possible PEI Services. **/ VOID @@ -95,27 +104,27 @@ ProcessLibraryConstructorList ( /** - Call the list of driver entry points. Automatics Generated by tool. - - @param SecCoreData Points to a data structure containing - information about the PEI core's - operating environment, such as the size - and location of temporary RAM, the stack - location and the BFV location. The type - EFI_SEC_PEI_HAND_OFF is - - @param PpiList Points to a list of one or more PPI - descriptors to be installed initially by - the PEI core. An empty PPI list consists - of a single descriptor with the end-tag - EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST. - As part of its initialization phase, the - PEI Foundation will add these SEC-hosted - PPIs to its PPI database such that both - the PEI Foundation and any modules can - leverage the associated service calls - and/or code in these early PPIs. - @param OldCoreData Pointer to Original startup information. + Autogenerated function that calls a set of module entry points. + + This function must be called by _ModuleEntryPoint(). + This function calls the set of module entry points. + This function is autogenerated by build tools and those build tools are responsible + for collecting the module entry points and calling them in a specified order. + + @param SecCoreData Points to a data structure containing information about the PEI + core's operating environment, such as the size and location of + temporary RAM, the stack location and the BFV location. + + @param PpiList Points to a list of one or more PPI descriptors to be installed + initially by the PEI core. An empty PPI list consists of a single + descriptor with the end-tag EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST. + As part of its initialization phase, the PEI Foundation will add + these SEC-hosted PPIs to its PPI database such that both the PEI + Foundation and any modules can leverage the associated service calls + and/or code in these early PPIs. + @param Context A pointer to a private context structure defined by the PEI Core + implementation. The implementation of _ModuleEntryPoint() must set + this parameter is NULL to indicate that this is the first PEI phase. **/ VOID @@ -123,7 +132,7 @@ EFIAPI ProcessModuleEntryPointList ( IN CONST EFI_SEC_PEI_HAND_OFF *SecCoreData, IN CONST EFI_PEI_PPI_DESCRIPTOR *PpiList, - IN VOID *OldCoreData + IN VOID *Context ); #endif