Import Library Class from original MDE package. Also I added the EFI_PEI_CORE_ENTRY_P...
[mirror_edk2.git] / MdePkg / Include / Library / PeCoffGetEntryPointLib.h
1 /** @file
2 Memory Only PE COFF loader
3
4 Copyright (c) 2006, Intel Corporation
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
9
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12
13 Module Name: PeCoffGetEntryPointLib.h
14
15 **/
16
17 #ifndef __PE_COFF_GET_ENTRY_POINT_LIB_H__
18 #define __PE_COFF_GET_ENTRY_POINT_LIB_H__
19
20 /**
21 Retrieves and returns a pointer to the entry point to a PE/COFF image that has been loaded
22 into system memory with the PE/COFF Loader Library functions.
23
24 Retrieves the entry point to the PE/COFF image specified by Pe32Data and returns this entry
25 point in EntryPoint. If the entry point could not be retrieved from the PE/COFF image, then
26 return RETURN_INVALID_PARAMETER. Otherwise return RETURN_SUCCESS.
27 If Pe32Data is NULL, then ASSERT().
28 If EntryPoint is NULL, then ASSERT().
29
30 @param Pe32Data Pointer to the PE/COFF image that is loaded in system memory.
31 @param EntryPoint Pointer to entry point to the PE/COFF image to return.
32
33 @retval RETURN_SUCCESS EntryPoint was returned.
34 @retval RETURN_INVALID_PARAMETER The entry point could not be found in the PE/COFF image.
35
36 **/
37 RETURN_STATUS
38 EFIAPI
39 PeCoffLoaderGetEntryPoint (
40 IN VOID *Pe32Data,
41 OUT VOID **EntryPoint
42 );
43
44 /**
45 Returns the machine type of a PE/COFF image.
46
47 Returns the machine type from the PE/COFF image specified by Pe32Data.
48 If Pe32Data is NULL, then ASSERT().
49
50 @param Pe32Data Pointer to the PE/COFF image that is loaded in system
51 memory.
52
53 @return Machine type or zero if not a valid iamge.
54
55 **/
56 UINT16
57 EFIAPI
58 PeCoffLoaderGetMachineType (
59 IN VOID *Pe32Data
60 );
61
62 /**
63 Returns a pointer to the PDB file name for a PE/COFF image that has been
64 loaded into system memory with the PE/COFF Loader Library functions.
65
66 Returns the PDB file name for the PE/COFF image specified by Pe32Data. If
67 the PE/COFF image specified by Pe32Data is not a valid, then NULL is
68 returned. If the PE/COFF image specified by Pe32Data does not contain a
69 debug directory entry, then NULL is returned. If the debug directory entry
70 in the PE/COFF image specified by Pe32Data does not contain a PDB file name,
71 then NULL is returned.
72 If Pe32Data is NULL, then ASSERT().
73
74 @param Pe32Data Pointer to the PE/COFF image that is loaded in system
75 memory.
76
77 @return The PDB file name for the PE/COFF image specified by Pe32Data or NULL
78 if it cannot be retrieved.
79
80 **/
81 VOID *
82 EFIAPI
83 PeCoffLoaderGetPdbPointer (
84 IN VOID *Pe32Data
85 );
86
87 #endif