From e386b444c88b01c5a14ca846b6ba10dcf5536e05 Mon Sep 17 00:00:00 2001 From: vanjeff Date: Fri, 22 Jun 2007 06:57:39 +0000 Subject: 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 --- .../ApplicationEntryPoint.c | 108 +++++++++++++++++++++ .../UefiApplicationEntryPoint/CommonHeader.h | 32 ++++++ .../UefiApplicationEntryPoint.inf | 80 +++++++++++++++ .../UefiApplicationEntryPoint.msa | 42 ++++++++ 4 files changed, 262 insertions(+) create mode 100644 MdePkg/Library/UefiApplicationEntryPoint/ApplicationEntryPoint.c create mode 100644 MdePkg/Library/UefiApplicationEntryPoint/CommonHeader.h create mode 100644 MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf create mode 100644 MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.msa (limited to 'MdePkg/Library/UefiApplicationEntryPoint') diff --git a/MdePkg/Library/UefiApplicationEntryPoint/ApplicationEntryPoint.c b/MdePkg/Library/UefiApplicationEntryPoint/ApplicationEntryPoint.c new file mode 100644 index 0000000000..580668c882 --- /dev/null +++ b/MdePkg/Library/UefiApplicationEntryPoint/ApplicationEntryPoint.c @@ -0,0 +1,108 @@ +/** @file + Entry point library instance to a UEFI application. + +Copyright (c) 2007, Intel Corporation
+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); +} diff --git a/MdePkg/Library/UefiApplicationEntryPoint/CommonHeader.h b/MdePkg/Library/UefiApplicationEntryPoint/CommonHeader.h new file mode 100644 index 0000000000..ffc077db55 --- /dev/null +++ b/MdePkg/Library/UefiApplicationEntryPoint/CommonHeader.h @@ -0,0 +1,32 @@ +/**@file + Common header file shared by all source files. + + This file includes package header files, library classes and protocol, PPI & GUID definitions. + + Copyright (c) 2007, Intel Corporation. + 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. +**/ + +#ifndef __COMMON_HEADER_H_ +#define __COMMON_HEADER_H_ + + +// +// The package level header files this module uses +// +#include +// +// The protocols, PPI and GUID defintions for this module +// +// +// The Library classes this module consumes +// +#include +#include + +#endif diff --git a/MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf b/MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf new file mode 100644 index 0000000000..0bb4cde418 --- /dev/null +++ b/MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf @@ -0,0 +1,80 @@ +#/** @file +# Component description file for the entry point to a EFI Application +# +# Library to abstract entry point to a EFI Application. +# Copyright (c) 2007, Intel Corporation. +# +# 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. +# +# +#**/ + +################################################################################ +# +# Defines Section - statements that will be processed to create a Makefile. +# +################################################################################ +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = UefiApplicationEntryPoint + FILE_GUID = DADE8301-CB29-4fd5-8148-56FD246C5B88 + MODULE_TYPE = UEFI_APPLICATION + VERSION_STRING = 1.0 + LIBRARY_CLASS = UefiApplicationEntryPoint|UEFI_APPLICATION + EDK_RELEASE_VERSION = 0x00020000 + EFI_SPECIFICATION_VERSION = 0x00020000 + + +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = IA32 X64 IPF EBC +# + +################################################################################ +# +# Sources Section - list of files that are required for the build to succeed. +# +################################################################################ + +[Sources.common] + ApplicationEntryPoint.c + CommonHeader.h + + +################################################################################ +# +# Includes Section - list of Include locations that are required for +# this module. +# +################################################################################ + +[Includes] + $(WORKSPACE)/MdePkg\Include/Library + +################################################################################ +# +# Package Dependency Section - list of Package files that are required for +# this module. +# +################################################################################ + +[Packages] + MdePkg/MdePkg.dec + + +################################################################################ +# +# Library Class Section - list of Library Classes that are required for +# this module. +# +################################################################################ + +[LibraryClasses] + UefiBootServicesTableLib + diff --git a/MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.msa b/MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.msa new file mode 100644 index 0000000000..8500f05d89 --- /dev/null +++ b/MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.msa @@ -0,0 +1,42 @@ + + + + UefiApplicationEntryPoint + UEFI_APPLICATION + DADE8301-CB29-4fd5-8148-56FD246C5B88 + 1.0 + Component description file for the entry point to a EFI Application + Library to abstract entry point to a EFI Application. + Copyright (c) 2007, Intel Corporation. + 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. + FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052 + + + IA32 X64 IPF EBC + false + UefiApplicationEntryPoint + + + + UefiApplicationEntryPoint + + + UefiBootServicesTableLib + + + + ApplicationEntryPoint.c + + + + + + EFI_SPECIFICATION_VERSION 0x00020000 + EDK_RELEASE_VERSION 0x00020000 + + \ No newline at end of file -- cgit v1.2.3