1 | /** @file
|
---|
2 | Provides a service to retrieve the PE/COFF entry point from a PE/COFF image.
|
---|
3 |
|
---|
4 | Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
|
---|
5 | This program and the accompanying materials are licensed and made available under
|
---|
6 | the terms and conditions of the BSD License that accompanies this distribution.
|
---|
7 | 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 The pointer to the PE/COFF image that is loaded in system memory.
|
---|
29 | @param EntryPoint The 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 The pointer to the PE/COFF image that is loaded in system
|
---|
49 | memory.
|
---|
50 |
|
---|
51 | @return Machine type or zero if not a valid image.
|
---|
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 The 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 The 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 image.
|
---|
96 |
|
---|
97 | **/
|
---|
98 | UINT32
|
---|
99 | EFIAPI
|
---|
100 | PeCoffGetSizeOfHeaders (
|
---|
101 | IN VOID *Pe32Data
|
---|
102 | );
|
---|
103 |
|
---|
104 | #endif
|
---|