/** @file\r
Provides a service to retrieve the PE/COFF entry point from a PE/COFF image.\r
\r
-Copyright (c) 2006 - 2008, Intel Corporation \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
+Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
\r
If Pe32Data is NULL, then ASSERT().\r
If EntryPoint is NULL, then ASSERT().\r
\r
- @param Pe32Data Pointer to the PE/COFF image that is loaded in system memory.\r
- @param EntryPoint Pointer to entry point to the PE/COFF image to return.\r
+ @param Pe32Data The pointer to the PE/COFF image that is loaded in system memory.\r
+ @param EntryPoint The pointer to entry point to the PE/COFF image to return.\r
\r
@retval RETURN_SUCCESS EntryPoint was returned.\r
@retval RETURN_INVALID_PARAMETER The entry point could not be found in the PE/COFF image.\r
Returns the machine type from the PE/COFF image specified by Pe32Data.\r
If Pe32Data is NULL, then ASSERT().\r
\r
- @param Pe32Data Pointer to the PE/COFF image that is loaded in system\r
+ @param Pe32Data The pointer to the PE/COFF image that is loaded in system\r
memory.\r
\r
- @return Machine type or zero if not a valid iamge.\r
+ @return Machine type or zero if not a valid image.\r
\r
**/\r
UINT16\r
\r
/**\r
Returns a pointer to the PDB file name for a PE/COFF image that has been\r
- loaded into system memory with the PE/COFF Loader Library functions. \r
+ loaded into system memory with the PE/COFF Loader Library functions.\r
\r
Returns the PDB file name for the PE/COFF image specified by Pe32Data. If\r
the PE/COFF image specified by Pe32Data is not a valid, then NULL is\r
then NULL is returned.\r
If Pe32Data is NULL, then ASSERT().\r
\r
- @param Pe32Data Pointer to the PE/COFF image that is loaded in system\r
+ @param Pe32Data The pointer to the PE/COFF image that is loaded in system\r
memory.\r
\r
- @return The PDB file name for the PE/COFF image specified by Pe32Data or NULL\r
+ @return The PDB file name for the PE/COFF image specified by Pe32Data, or NULL\r
if it cannot be retrieved.\r
\r
**/\r
IN VOID *Pe32Data\r
);\r
\r
+\r
+/**\r
+ Returns the size of the PE/COFF headers\r
+\r
+ Returns the size of the PE/COFF header specified by Pe32Data.\r
+ If Pe32Data is NULL, then ASSERT().\r
+\r
+ @param Pe32Data The pointer to the PE/COFF image that is loaded in system\r
+ memory.\r
+\r
+ @return Size of PE/COFF header in bytes, or zero if not a valid image.\r
+\r
+**/\r
+UINT32\r
+EFIAPI\r
+PeCoffGetSizeOfHeaders (\r
+ IN VOID *Pe32Data\r
+ );\r
+\r
+/**\r
+ Returns PE/COFF image base specified by the address in this PE/COFF image.\r
+\r
+ On DEBUG build, searches the PE/COFF image base forward the address in this\r
+ PE/COFF image and returns it.\r
+\r
+ @param Address Address located in one PE/COFF image.\r
+\r
+ @retval 0 RELEASE build or cannot find the PE/COFF image base.\r
+ @retval others PE/COFF image base found.\r
+\r
+**/\r
+UINTN\r
+EFIAPI\r
+PeCoffSearchImageBase (\r
+ IN UINTN Address\r
+ );\r
+\r
#endif\r