]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Include/Library/PeCoffGetEntryPointLib.h
Added new PeCoffGetEntryPoint lib function to get size of PE/COFF header. This is...
[mirror_edk2.git] / MdePkg / Include / Library / PeCoffGetEntryPointLib.h
1 /** @file
2 Provides a service to retrieve the PE/COFF entry point from a PE/COFF image.
3
4 Copyright (c) 2006 - 2008, 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 **/
14
15 #ifndef __PE_COFF_GET_ENTRY_POINT_LIB_H__
16 #define __PE_COFF_GET_ENTRY_POINT_LIB_H__
17
18 /**
19 Retrieves and returns a pointer to the entry point to a PE/COFF image that has been loaded
20 into system memory with the PE/COFF Loader Library functions.
21
22 Retrieves the entry point to the PE/COFF image specified by Pe32Data and returns this entry
23 point in EntryPoint. If the entry point could not be retrieved from the PE/COFF image, then
24 return RETURN_INVALID_PARAMETER. Otherwise return RETURN_SUCCESS.
25 If Pe32Data is NULL, then ASSERT().
26 If EntryPoint is NULL, then ASSERT().
27
28 @param Pe32Data Pointer to the PE/COFF image that is loaded in system memory.
29 @param EntryPoint Pointer to entry point to the PE/COFF image to return.
30
31 @retval RETURN_SUCCESS EntryPoint was returned.
32 @retval RETURN_INVALID_PARAMETER The entry point could not be found in the PE/COFF image.
33
34 **/
35 RETURN_STATUS
36 EFIAPI
37 PeCoffLoaderGetEntryPoint (
38 IN VOID *Pe32Data,
39 OUT VOID **EntryPoint
40 );
41
42 /**
43 Returns the machine type of a PE/COFF image.
44
45 Returns the machine type from the PE/COFF image specified by Pe32Data.
46 If Pe32Data is NULL, then ASSERT().
47
48 @param Pe32Data Pointer to the PE/COFF image that is loaded in system
49 memory.
50
51 @return Machine type or zero if not a valid iamge.
52
53 **/
54 UINT16
55 EFIAPI
56 PeCoffLoaderGetMachineType (
57 IN VOID *Pe32Data
58 );
59
60 /**
61 Returns a pointer to the PDB file name for a PE/COFF image that has been
62 loaded into system memory with the PE/COFF Loader Library functions.
63
64 Returns the PDB file name for the PE/COFF image specified by Pe32Data. If
65 the PE/COFF image specified by Pe32Data is not a valid, then NULL is
66 returned. If the PE/COFF image specified by Pe32Data does not contain a
67 debug directory entry, then NULL is returned. If the debug directory entry
68 in the PE/COFF image specified by Pe32Data does not contain a PDB file name,
69 then NULL is returned.
70 If Pe32Data is NULL, then ASSERT().
71
72 @param Pe32Data Pointer to the PE/COFF image that is loaded in system
73 memory.
74
75 @return The PDB file name for the PE/COFF image specified by Pe32Data or NULL
76 if it cannot be retrieved.
77
78 **/
79 VOID *
80 EFIAPI
81 PeCoffLoaderGetPdbPointer (
82 IN VOID *Pe32Data
83 );
84
85
86 /**
87 Returns the size of the PE/COFF headers
88
89 Returns the size of the PE/COFF header specified by Pe32Data.
90 If Pe32Data is NULL, then ASSERT().
91
92 @param Pe32Data Pointer to the PE/COFF image that is loaded in system
93 memory.
94
95 @return Size of PE/COFF header in bytes or zero if not a valid iamge.
96
97 **/
98 UINT32
99 EFIAPI
100 PeCoffGetSizeOfHeaders (
101 IN VOID *Pe32Data
102 );
103
104 #endif