]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Include/Library/PeCoffGetEntryPointLib.h
Code have been checked with spec
[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, 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 #endif