Import some Pei and Dxe related instances for MdePkg.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2712 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
108
MdePkg/Library/UefiApplicationEntryPoint/ApplicationEntryPoint.c
Normal file
108
MdePkg/Library/UefiApplicationEntryPoint/ApplicationEntryPoint.c
Normal file
@@ -0,0 +1,108 @@
|
||||
/** @file
|
||||
Entry point library instance to a UEFI application.
|
||||
|
||||
Copyright (c) 2007, Intel Corporation<BR>
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
**/
|
||||
|
||||
//
|
||||
// Include common header file for this module.
|
||||
//
|
||||
#include "CommonHeader.h"
|
||||
|
||||
/**
|
||||
Enrty point to UEFI application.
|
||||
|
||||
@param ImageHandle ImageHandle of the loaded driver.
|
||||
@param SystemTable 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.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
_ModuleEntryPoint (
|
||||
IN EFI_HANDLE ImageHandle,
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
|
||||
if (_gUefiDriverRevision != 0) {
|
||||
//
|
||||
// Make sure that the EFI/UEFI spec revision of the platform is >= EFI/UEFI spec revision of the application.
|
||||
//
|
||||
if (SystemTable->Hdr.Revision < _gUefiDriverRevision) {
|
||||
return EFI_INCOMPATIBLE_VERSION;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Call constructor for all libraries.
|
||||
//
|
||||
ProcessLibraryConstructorList (ImageHandle, SystemTable);
|
||||
|
||||
//
|
||||
// Call the module's entry point
|
||||
//
|
||||
Status = ProcessModuleEntryPointList (ImageHandle, SystemTable);
|
||||
|
||||
//
|
||||
// Process destructor for all libraries.
|
||||
//
|
||||
ProcessLibraryDestructorList (ImageHandle, SystemTable);
|
||||
|
||||
//
|
||||
// Return the return status code from the driver entry point
|
||||
//
|
||||
return Status;
|
||||
}
|
||||
|
||||
/**
|
||||
Invoke the destuctors of all libraries and call gBS->Exit
|
||||
to return control to firmware core.
|
||||
|
||||
@param Status Status returned by the application that is exiting.
|
||||
|
||||
@retval VOID
|
||||
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
Exit (
|
||||
IN EFI_STATUS Status
|
||||
)
|
||||
|
||||
{
|
||||
ProcessLibraryDestructorList (gImageHandle, gST);
|
||||
|
||||
gBS->Exit (gImageHandle, Status, 0, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
Enrty point wrapper of UEFI Application.
|
||||
|
||||
@param ImageHandle ImageHandle of the loaded driver.
|
||||
@param SystemTable 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.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
EfiMain (
|
||||
IN EFI_HANDLE ImageHandle,
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
)
|
||||
{
|
||||
return _ModuleEntryPoint (ImageHandle, SystemTable);
|
||||
}
|
Reference in New Issue
Block a user