]> git.proxmox.com Git - mirror_edk2.git/commitdiff
1) Add in FvFileLoaderToLoadFileThunk.
authorqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 29 May 2008 08:50:42 +0000 (08:50 +0000)
committerqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 29 May 2008 08:50:42 +0000 (08:50 +0000)
2) Update some doxygen comments.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5309 6f19259b-4bc3-4df7-8a09-765794883524

EdkCompatibilityPkg/Compatibility/FvFileLoaderToLoadFileThunk/FvFileLoaderToLoadFileThunk.c [new file with mode: 0644]
EdkCompatibilityPkg/Compatibility/FvFileLoaderToLoadFileThunk/FvFileLoaderToLoadFileThunk.inf [new file with mode: 0644]
EdkCompatibilityPkg/Compatibility/ReadOnlyVariableToReadOnlyVariable2Thunk/ReadOnlyVariableToReadOnlyVariable2Thunk.c
EdkCompatibilityPkg/EdkCompatibilityPkg.dsc

diff --git a/EdkCompatibilityPkg/Compatibility/FvFileLoaderToLoadFileThunk/FvFileLoaderToLoadFileThunk.c b/EdkCompatibilityPkg/Compatibility/FvFileLoaderToLoadFileThunk/FvFileLoaderToLoadFileThunk.c
new file mode 100644 (file)
index 0000000..35621cd
--- /dev/null
@@ -0,0 +1,132 @@
+/** @file\r
+Module produce Framework's EFI_PEI_FV_FILE_LOADER_PPI top of EFI_PEI_LOAD_FILE_PPI.\r
+\r
+UEFI PI Spec supersedes Intel's Framework Specs. \r
+EFI_PEI_FV_FILE_LOADER_PPI defined in Intel Framework Pkg is replaced by EFI_PEI_LOAD_FILE_PPI\r
+in MdePkg.\r
+This module produces EFI_PEI_FV_FILE_LOADER_PPI on top of EFI_PEI_LOAD_FILE_PPI . \r
+This module is used on platform when both of these two conditions are true:\r
+1) Framework module consumes EFI_PEI_FV_FILE_LOADER_PPI is present.\r
+2) The platform has PI modules that produce EFI_PEI_LOAD_FILE_PPI.\r
+\r
+Copyright (c) 2008, Intel Corporation\r
+\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+Module Name:\r
+\r
+**/\r
+\r
+#include <PiPei.h>\r
+#include <Ppi/LoadFile.h>\r
+#include <Ppi/FvLoadFile.h>\r
+#include <Library/DebugLib.h>\r
+#include <Library/PeiServicesLib.h>\r
+\r
+/**\r
+\r
+  Wrap the call to PI's EFI_PEI_LOAD_FILE_PPI.\r
+\r
+  @param This                  A pointer to EFI_PEI_FV_FILE_LOADER_PPI.\r
+  @param FileHeader         The pointer to the file header to be loaded by the Pe/Coff loader.\r
+  @param ImageAddress   The loaded address of the Image.\r
+  @param ImageSize         Pointer to the size of the loaded image.\r
+  @param EntryPoint          Pointer to the entry point of the image.\r
+\r
+  @retval  EFI_SUCCESS                  The image was loaded successfully.\r
+  @retval  EFI_OUT_OF_RESOURCE   There was not enought memory.\r
+  @retval  EFI_INVALID_PARAMETER The contents of the FFS file did not contain a valid PE/COFF image that could be loaded.\r
+--*/  \r
+EFI_STATUS\r
+EFIAPI\r
+FrameworkLoadFile (\r
+  IN EFI_PEI_FV_FILE_LOADER_PPI                 *This,\r
+  IN  EFI_FFS_FILE_HEADER                       *FfsHeader,\r
+  OUT EFI_PHYSICAL_ADDRESS                      *ImageAddress,\r
+  OUT UINT64                                    *ImageSize,\r
+  OUT EFI_PHYSICAL_ADDRESS                      *EntryPoint\r
+  )\r
+;\r
+\r
+EFI_PEI_FV_FILE_LOADER_PPI mLoadFilePpi = {\r
+  FrameworkLoadFile\r
+};\r
+\r
+EFI_PEI_PPI_DESCRIPTOR     mPpiFrameworkLoadFile = {\r
+  (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),\r
+  &gEfiPeiFvFileLoaderPpiGuid,\r
+  &mLoadFilePpi\r
+};\r
+\r
+/**\r
+  Standard entry point of a PEIM.\r
+\r
+  @param FfsHeadher  The FFS file header\r
+  @param PeiServices  General purpose services available to every PEIM.\r
+\r
+  @retval EFI_SUCCESS If the gEfiPeiReadOnlyVariablePpiGuid interface could be successfully installed.\r
+\r
+--*/\r
+EFI_STATUS\r
+EFIAPI\r
+InitPeim (\r
+  IN EFI_FFS_FILE_HEADER     *FfsHeader,\r
+  IN CONST EFI_PEI_SERVICES  **PeiServices\r
+  )\r
+{\r
+  return (*PeiServices)->InstallPpi (PeiServices, &mPpiFrameworkLoadFile);\r
+}\r
+\r
+\r
+/**\r
+\r
+  Wrap the call to PI's EFI_PEI_LOAD_FILE_PPI.\r
+\r
+  @param This                  A pointer to EFI_PEI_FV_FILE_LOADER_PPI.\r
+  @param FileHeader         The pointer to the file header to be loaded by the Pe/Coff loader.\r
+  @param ImageAddress   The loaded address of the Image.\r
+  @param ImageSize         Pointer to the size of the loaded image.\r
+  @param EntryPoint          Pointer to the entry point of the image.\r
+\r
+  @retval  EFI_SUCCESS                  The image was loaded successfully.\r
+  @retval  EFI_OUT_OF_RESOURCE   There was not enought memory.\r
+  @retval  EFI_INVALID_PARAMETER The contents of the FFS file did not contain a valid PE/COFF image that could be loaded.\r
+--*/  \r
+EFI_STATUS\r
+EFIAPI\r
+FrameworkLoadFile (\r
+  IN EFI_PEI_FV_FILE_LOADER_PPI                 *This,\r
+  IN  EFI_FFS_FILE_HEADER                       *FfsHeader,\r
+  OUT EFI_PHYSICAL_ADDRESS                      *ImageAddress,\r
+  OUT UINT64                                    *ImageSize,\r
+  OUT EFI_PHYSICAL_ADDRESS                      *EntryPoint\r
+  )\r
+{\r
+  EFI_STATUS              Status;\r
+  EFI_PEI_LOAD_FILE_PPI   *PiLoadFile;\r
+  UINT32                  AuthenticationState;\r
+\r
+  Status = PeiServicesLocatePpi (\r
+             &gEfiPeiLoadFilePpiGuid,\r
+             0,\r
+             NULL,\r
+             (VOID **) &PiLoadFile\r
+             );\r
+  ASSERT_EFI_ERROR (Status);\r
+\r
+  return PiLoadFile->LoadFile (\r
+           PiLoadFile,\r
+           (EFI_PEI_FILE_HANDLE) FfsHeader,\r
+           ImageAddress,\r
+           ImageSize,\r
+           EntryPoint,\r
+           &AuthenticationState\r
+         );\r
+    \r
+}\r
+\r
diff --git a/EdkCompatibilityPkg/Compatibility/FvFileLoaderToLoadFileThunk/FvFileLoaderToLoadFileThunk.inf b/EdkCompatibilityPkg/Compatibility/FvFileLoaderToLoadFileThunk/FvFileLoaderToLoadFileThunk.inf
new file mode 100644 (file)
index 0000000..c637491
--- /dev/null
@@ -0,0 +1,58 @@
+#/** @file\r
+# Module produce Framework's EFI_PEI_FV_FILE_LOADER_PPI top of EFI_PEI_LOAD_FILE_PPI.\r
+#\r
+# UEFI PI Spec supersedes Intel's Framework Specs. \r
+# EFI_PEI_FV_FILE_LOADER_PPI defined in Intel Framework Pkg is replaced by EFI_PEI_LOAD_FILE_PPI\r
+# in MdePkg.\r
+# This module produces EFI_PEI_FV_FILE_LOADER_PPI on top of EFI_PEI_LOAD_FILE_PPI . \r
+# This module is used on platform when both of these two conditions are true:\r
+# 1) Framework module consumes EFI_PEI_FV_FILE_LOADER_PPI is present.\r
+# 2) The platform has PI modules that produce EFI_PEI_LOAD_FILE_PPI.\r
+#\r
+# Copyright (c) 2008, Intel Corporation\r
+#\r
+#  All rights reserved. This program and the accompanying materials\r
+#  are licensed and made available under the terms and conditions of the BSD License\r
+#  which accompanies this distribution. The full text of the license may be found at\r
+#  http://opensource.org/licenses/bsd-license.php\r
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+#\r
+#**/\r
+\r
+[Defines]\r
+  INF_VERSION                    = 0x00010005\r
+  BASE_NAME                      = FvFileLoaderToLoadFileThunk\r
+  FILE_GUID                      = 6CDDBF28-89AC-4e01-9692-616B8A1009C8\r
+  MODULE_TYPE                    = PEIM\r
+  VERSION_STRING                 = 1.0\r
+  EDK_RELEASE_VERSION            = 0x00020000\r
+  EFI_SPECIFICATION_VERSION      = 0x00020000\r
+\r
+  ENTRY_POINT                    = InitPeim\r
+\r
+#\r
+# The following information is for reference only and not required by the build tools.\r
+#\r
+#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC\r
+#\r
+\r
+[Sources.common]\r
+  FvFileLoaderToLoadFileThunk.c\r
+\r
+[Packages]\r
+  MdePkg/MdePkg.dec\r
+  IntelFrameworkPkg/IntelFrameworkPkg.dec\r
+\r
+[LibraryClasses]\r
+  PeimEntryPoint\r
+  PeiServicesLib\r
+  DebugLib\r
+\r
+[Ppis]\r
+  gEfiPeiLoadFilePpiGuid      #ALWAYS_CONSUME\r
+  gEfiPeiFvFileLoaderPpiGuid  #ALWAYS_PRODUCE\r
+  \r
+[Depex]\r
+  gEfiPeiLoadFilePpiGuid\r
index 48103490ae963c777404314ad7d0b2e78522f033..06dd4ccff3d2d187eee4eeffe5d59ac815836b49 100644 (file)
@@ -66,29 +66,21 @@ EFI_PEI_PPI_DESCRIPTOR     mPpiListVariable = {
   &mVariablePpi\r
 };\r
 \r
+/**\r
+  Standard entry point of a PEIM.\r
+\r
+  @param FfsHeadher  The FFS file header\r
+  @param PeiServices  General purpose services available to every PEIM.\r
+\r
+  @retval EFI_SUCCESS If the gEfiPeiReadOnlyVariablePpiGuid interface could be successfully installed.\r
+\r
+--*/\r
 EFI_STATUS\r
 EFIAPI\r
 PeimInitializeReadOnlyVariable (\r
-  IN EFI_FFS_FILE_HEADER     *FfsHeader,\r
+  IN EFI_PEI_FILE_HANDLE     FfsHeader,\r
   IN CONST EFI_PEI_SERVICES  **PeiServices\r
   )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Provide the functionality of the variable services.\r
-\r
-Arguments:\r
-\r
-  FfsHeadher  - The FFS file header\r
-  PeiServices - General purpose services available to every PEIM.\r
-\r
-Returns:\r
-\r
-  Status -  EFI_SUCCESS if the interface could be successfully\r
-            installed\r
-\r
---*/\r
 {\r
   VOID        *Interface;\r
   EFI_STATUS  Status;\r
index d20c3a52b340984ec8b0203fc143c9719dc58203..f2bfa2cb819f8acfd7d36a08c362f4041d828daa 100644 (file)
@@ -217,6 +217,7 @@ define GCC_MACRO                 = -DEFI_SPECIFICATION_VERSION=0x0002000A -DPI_S
   #\r
   EdkCompatibilityPkg/Compatibility/DeviceIoToPciRootBridgeIoThunk/DeviceIoToPciRootBridgeIoThunk.inf\r
   EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/FrameworkHiiToUefiHiiThunk.inf\r
+  EdkCompatibilityPkg/Compatibility/FvFileLoaderToLoadFileThunk/FvFileLoaderToLoadFileThunk.inf\r
   EdkCompatibilityPkg/Compatibility/FvToFv2Thunk/FvToFv2Thunk.inf\r
   EdkCompatibilityPkg/Compatibility/Fv2ToFvThunk/Fv2ToFvThunk.inf\r
   EdkCompatibilityPkg/Compatibility/PciCfg2ToPciCfgThunk/PciCfg2ToPciCfgThunk.inf\r