X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=MdePkg%2FInclude%2FLibrary%2FUefiApplicationEntryPoint.h;h=5fe4be2a8f6694009e5467cbe623019fdbb86be9;hp=b6c193b710d37abfae4be5503efa5af916ec9428;hb=34860f7a069641fb9e14077c01605215aae68a9b;hpb=50a64e5b0b92772b3aa02c23a64745b51094916b diff --git a/MdePkg/Include/Library/UefiApplicationEntryPoint.h b/MdePkg/Include/Library/UefiApplicationEntryPoint.h index b6c193b710..5fe4be2a8f 100644 --- a/MdePkg/Include/Library/UefiApplicationEntryPoint.h +++ b/MdePkg/Include/Library/UefiApplicationEntryPoint.h @@ -24,11 +24,18 @@ extern CONST UINT32 _gUefiDriverRevision; /** Enrty point to UEFI Application. - @param ImageHandle ImageHandle of the loaded driver. - @param SystemTable Pointer to the EFI System Table. + This function is the entry point for a UEFI Application. This function must call + ProcessLibraryConstructorList(), ProcessModuleEntryPointList(), and ProcessLibraryDestructorList(). + The return value from ProcessModuleEntryPointList() is returned. + If _gUefiDriverRevision is not zero and SystemTable->Hdr.Revision is less than _gUefiDriverRevison, + then return EFI_INCOMPATIBLE_VERSION. - @retval EFI_SUCCESS One or more of the drivers returned a success code. - @retval !EFI_SUCESS The return status from the last driver entry point in the list. + @param ImageHandle The image handle of the UEFI Application. + @param SystemTable A pointer to the EFI System Table. + + @retval EFI_SUCCESS The UEFI Application exited normally. + @retval EFI_INCOMPATIBLE_VERSION _gUefiDriverRevision is greater than SystemTable->Hdr.Revision. + @retval Other Return value from ProcessModuleEntryPointList(). **/ EFI_STATUS @@ -40,13 +47,14 @@ _ModuleEntryPoint ( /** - Enrty point wrapper of UEFI Application. + Required by the EBC compiler and identical in functionality to _ModuleEntryPoint(). - @param ImageHandle ImageHandle of the loaded driver. - @param SystemTable Pointer to the EFI System Table. + @param ImageHandle The image handle of the UEFI Application. + @param SystemTable A pointer to the EFI System Table. - @retval EFI_SUCCESS One or more of the drivers returned a success code. - @retval !EFI_SUCESS The return status from the last driver entry point in the list. + @retval EFI_SUCCESS The UEFI Application exited normally. + @retval EFI_INCOMPATIBLE_VERSION _gUefiDriverRevision is greater than SystemTable->Hdr.Revision. + @retval Other Return value from ProcessModuleEntryPointList(). **/ EFI_STATUS @@ -58,10 +66,13 @@ EfiMain ( /** - Invoke the destuctors of all libraries and call gBS->Exit - to return control to firmware core. + Invokes the library destructors for all dependent libraries and terminates + the UEFI Application. + + This function calls ProcessLibraryDestructorList() and the EFI Boot Service Exit() + with a status specified by Status. - @param Status Status returned by the application that is exiting. + @param Status Status returned by the application that is exiting. **/ VOID @@ -72,11 +83,20 @@ Exit ( /** - Call constructors for all libraries. Autogen tool inserts the implementation - of this function into Autogen.c. - - @param ImageHandle ImageHandle of the loaded driver. - @param SystemTable Pointer to the EFI System Table. + Autogenerated function that calls the library constructors for all of the module's + dependent libraries. + + This function must be called by _ModuleEntryPoint(). + This function calls the set of library constructors for the set of library instances + that a module depends on. This includes 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. + + @param ImageHandle The image handle of the UEFI Application. + @param SystemTable A pointer to the EFI System Table. **/ VOID @@ -88,11 +108,20 @@ ProcessLibraryConstructorList ( /** - Call destructors for all libraries. Autogen tool inserts the implementation - of this function into Autogen.c. + Autogenerated function that calls the library descructors for all of the module's + dependent libraries. - @param ImageHandle ImageHandle of the loaded driver. - @param SystemTable Pointer to the EFI System Table. + This function may be called by _ModuleEntryPoint()or Exit(). + This function calls the set of library destructors for the set of library instances + that a module depends on. This includes 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 destructors, + and calling the library destructors in the proper order based upon each of the library + instances own dependencies. + + @param ImageHandle The image handle of the UEFI Application. + @param SystemTable A pointer to the EFI System Table. **/ VOID @@ -103,16 +132,17 @@ ProcessLibraryDestructorList ( ); /** - Call driver entry point. For UEFI application, user - can only specify one entry point. Tool will automatically insert - this to Autogen.c. + This function calls the set of module entry points. It must be called by _ModuleEntryPoint(). + + 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 ImageHandle The image handle of the UEFI Application. + @param SystemTable A pointer to the EFI System Table. - @param ImageHandle ImageHandle of the loaded driver. - @param SystemTable Pointer to the EFI System Table. + @retval EFI_SUCCESS The UEFI Application executed normally. + @retval !EFI_SUCCESS The UEFI Application failed to execute normally. - @return Status returned by entry points specified by - the user. - **/ EFI_STATUS EFIAPI