**/\r
\r
#include "DxeMain.h"\r
+#include "Image.h"\r
+\r
//\r
// Module Globals\r
//\r
-\r
LOADED_IMAGE_PRIVATE_DATA *mCurrentImage = NULL;\r
\r
LOAD_PE32_IMAGE_PRIVATE_DATA mLoadPe32PrivateData = {\r
}\r
\r
Image->ImageBasePage = Image->ImageContext.ImageAddress;\r
- Image->ImageContext.ImageAddress =\r
- (Image->ImageContext.ImageAddress + Image->ImageContext.SectionAlignment - 1) &\r
- ~((UINTN)Image->ImageContext.SectionAlignment - 1);\r
+ if (!Image->ImageContext.IsTeImage) {\r
+ Image->ImageContext.ImageAddress =\r
+ (Image->ImageContext.ImageAddress + Image->ImageContext.SectionAlignment - 1) &\r
+ ~((UINTN)Image->ImageContext.SectionAlignment - 1);\r
+ }\r
\r
//\r
// Load the image from the file into the allocated memory\r
DEBUG ((DEBUG_INFO | DEBUG_LOAD,\r
"Loading driver at 0x%11p EntryPoint=0x%11p ",\r
(VOID *)(UINTN) Image->ImageContext.ImageAddress,\r
- FUNCTION_ENTRY_POINT ((UINTN) Image->ImageContext.EntryPoint)));\r
+ FUNCTION_ENTRY_POINT (Image->ImageContext.EntryPoint)));\r
\r
\r
//\r
)\r
{\r
EFI_STATUS Status;\r
+ UINT64 Tick;\r
\r
- PERF_START (NULL, "LoadImage", NULL, 0);\r
+ Tick = 0;\r
+ PERF_CODE (\r
+ Tick = GetPerformanceCounter ();\r
+ );\r
\r
Status = CoreLoadImageCommon (\r
BootPolicy,\r
EFI_LOAD_PE_IMAGE_ATTRIBUTE_RUNTIME_REGISTRATION | EFI_LOAD_PE_IMAGE_ATTRIBUTE_DEBUG_IMAGE_INFO_TABLE_REGISTRATION\r
);\r
\r
- PERF_END (NULL, "LoadImage", NULL, 0);\r
+ PERF_START (*ImageHandle, LOAD_IMAGE_TOK, NULL, Tick);\r
+ PERF_END (*ImageHandle, LOAD_IMAGE_TOK, NULL, 0);\r
\r
return Status;\r
}\r
DEBUG_CODE_BEGIN ();\r
if (Image->ExitDataSize != 0 || Image->ExitData != NULL) {\r
\r
- DEBUG ((DEBUG_LOAD, "StartImage: ExitDataSize %d, ExitData %x", Image->ExitDataSize, Image->ExitData));\r
+ DEBUG ((DEBUG_LOAD, "StartImage: ExitDataSize %d, ExitData %p", (UINT32)Image->ExitDataSize, Image->ExitData));\r
if (Image->ExitData != NULL) {\r
DEBUG ((DEBUG_LOAD, " (%hs)", Image->ExitData));\r
}\r