Lines Matching refs:ImageContext

38   IN OUT EFI_PEI_PE_COFF_LOADER_IMAGE_CONTEXT   *ImageContext,
45 IN OUT EFI_PEI_PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext,
53 IN OUT EFI_PEI_PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
60 IN OUT EFI_PEI_PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
67 IN OUT EFI_PEI_PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
73 IN EFI_PEI_PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
157 IN OUT EFI_PEI_PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext, in PeCoffLoaderGetPeHeader() argument
188 Status = ImageContext->ImageRead ( in PeCoffLoaderGetPeHeader()
189 ImageContext->Handle, in PeCoffLoaderGetPeHeader()
195 ImageContext->ImageError = EFI_IMAGE_ERROR_IMAGE_READ; in PeCoffLoaderGetPeHeader()
199 ImageContext->PeCoffHeaderOffset = 0; in PeCoffLoaderGetPeHeader()
205 ImageContext->PeCoffHeaderOffset = DosHdr.e_lfanew; in PeCoffLoaderGetPeHeader()
215 Status = ImageContext->ImageRead ( in PeCoffLoaderGetPeHeader()
216 ImageContext->Handle, in PeCoffLoaderGetPeHeader()
217 ImageContext->PeCoffHeaderOffset, in PeCoffLoaderGetPeHeader()
222 ImageContext->ImageError = EFI_IMAGE_ERROR_IMAGE_READ; in PeCoffLoaderGetPeHeader()
230 ImageContext->IsTeImage = TRUE; in PeCoffLoaderGetPeHeader()
231 ImageContext->Machine = Hdr.Te->Machine; in PeCoffLoaderGetPeHeader()
232 ImageContext->ImageType = (UINT16)(Hdr.Te->Subsystem); in PeCoffLoaderGetPeHeader()
233 ImageContext->ImageSize = 0; in PeCoffLoaderGetPeHeader()
234 ImageContext->SectionAlignment = 4096; in PeCoffLoaderGetPeHeader()
235ImageContext->SizeOfHeaders = sizeof (EFI_TE_IMAGE_HEADER) + (UINTN)Hdr.Te->BaseOfCode - (UINT… in PeCoffLoaderGetPeHeader()
238 ImageContext->IsTeImage = FALSE; in PeCoffLoaderGetPeHeader()
239 ImageContext->Machine = Hdr.Pe32->FileHeader.Machine; in PeCoffLoaderGetPeHeader()
262 ImageContext->ImageType = Hdr.Pe32->OptionalHeader.Subsystem; in PeCoffLoaderGetPeHeader()
263 ImageContext->ImageSize = (UINT64)Hdr.Pe32->OptionalHeader.SizeOfImage; in PeCoffLoaderGetPeHeader()
264 ImageContext->SectionAlignment = Hdr.Pe32->OptionalHeader.SectionAlignment; in PeCoffLoaderGetPeHeader()
265 ImageContext->SizeOfHeaders = Hdr.Pe32->OptionalHeader.SizeOfHeaders; in PeCoffLoaderGetPeHeader()
268 ImageContext->ImageError = EFI_IMAGE_ERROR_INVALID_MACHINE_TYPE; in PeCoffLoaderGetPeHeader()
272 ImageContext->ImageError = EFI_IMAGE_ERROR_INVALID_MACHINE_TYPE; in PeCoffLoaderGetPeHeader()
276 if (!PeCoffLoaderImageFormatSupported (ImageContext->Machine)) { in PeCoffLoaderGetPeHeader()
292 IN OUT EFI_PEI_PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext in PeCoffLoaderCheckImageType() argument
311 switch (ImageContext->ImageType) { in PeCoffLoaderCheckImageType()
314 ImageContext->ImageCodeMemoryType = EfiLoaderCode; in PeCoffLoaderCheckImageType()
315 ImageContext->ImageDataMemoryType = EfiLoaderData; in PeCoffLoaderCheckImageType()
319 ImageContext->ImageCodeMemoryType = EfiBootServicesCode; in PeCoffLoaderCheckImageType()
320 ImageContext->ImageDataMemoryType = EfiBootServicesData; in PeCoffLoaderCheckImageType()
325 ImageContext->ImageCodeMemoryType = EfiRuntimeServicesCode; in PeCoffLoaderCheckImageType()
326 ImageContext->ImageDataMemoryType = EfiRuntimeServicesData; in PeCoffLoaderCheckImageType()
330 ImageContext->ImageError = EFI_IMAGE_ERROR_INVALID_SUBSYSTEM; in PeCoffLoaderCheckImageType()
341 IN OUT EFI_PEI_PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext in PeCoffLoaderGetImageInfo() argument
380 if (NULL == ImageContext) { in PeCoffLoaderGetImageInfo()
387 ImageContext->ImageError = EFI_IMAGE_ERROR_SUCCESS; in PeCoffLoaderGetImageInfo()
390 Status = PeCoffLoaderGetPeHeader (ImageContext, Hdr); in PeCoffLoaderGetImageInfo()
398 Status = PeCoffLoaderCheckImageType (ImageContext); in PeCoffLoaderGetImageInfo()
408 if (!(ImageContext->IsTeImage)) { in PeCoffLoaderGetImageInfo()
429 ImageContext->ImageAddress = Hdr.Pe32->OptionalHeader.ImageBase; in PeCoffLoaderGetImageInfo()
434 ImageContext->ImageAddress = Hdr.Pe32Plus->OptionalHeader.ImageBase; in PeCoffLoaderGetImageInfo()
437ImageContext->ImageAddress = (EFI_PHYSICAL_ADDRESS)(Hdr.Te->ImageBase + Hdr.Te->StrippedSize - siz… in PeCoffLoaderGetImageInfo()
444 ImageContext->DestinationAddress = 0; in PeCoffLoaderGetImageInfo()
449 ImageContext->CodeView = NULL; in PeCoffLoaderGetImageInfo()
450 ImageContext->PdbPointer = NULL; in PeCoffLoaderGetImageInfo()
463 …if ((!(ImageContext->IsTeImage)) && ((Hdr.Pe32->FileHeader.Characteristics & EFI_IMAGE_FILE_RELOCS… in PeCoffLoaderGetImageInfo()
464 ImageContext->RelocationsStripped = TRUE; in PeCoffLoaderGetImageInfo()
466 ImageContext->RelocationsStripped = FALSE; in PeCoffLoaderGetImageInfo()
469 if (!(ImageContext->IsTeImage)) { in PeCoffLoaderGetImageInfo()
473 ImageContext->ImageSize = (UINT64) Hdr.Pe32->OptionalHeader.SizeOfImage; in PeCoffLoaderGetImageInfo()
474 ImageContext->SectionAlignment = Hdr.Pe32->OptionalHeader.SectionAlignment; in PeCoffLoaderGetImageInfo()
475 ImageContext->SizeOfHeaders = Hdr.Pe32->OptionalHeader.SizeOfHeaders; in PeCoffLoaderGetImageInfo()
502 ImageContext->PeCoffHeaderOffset + in PeCoffLoaderGetImageInfo()
513 Status = ImageContext->ImageRead ( in PeCoffLoaderGetImageInfo()
514 ImageContext->Handle, in PeCoffLoaderGetImageInfo()
520 ImageContext->ImageError = EFI_IMAGE_ERROR_IMAGE_READ; in PeCoffLoaderGetImageInfo()
540 Status = ImageContext->ImageRead ( in PeCoffLoaderGetImageInfo()
541 ImageContext->Handle, in PeCoffLoaderGetImageInfo()
547 ImageContext->ImageError = EFI_IMAGE_ERROR_IMAGE_READ; in PeCoffLoaderGetImageInfo()
552ImageContext->DebugDirectoryEntryRva = (UINT32) (DebugDirectoryEntryRva + Index * sizeof (EFI_IMAG… in PeCoffLoaderGetImageInfo()
554 ImageContext->ImageSize += DebugEntry.SizeOfData; in PeCoffLoaderGetImageInfo()
568ImageContext->ImageSize = (UINT64) (Hdr.Te->DataDirectory[0].VirtualAddress + Hdr.Te->DataDirector… in PeCoffLoaderGetImageInfo()
570ImageContext->ImageSize = (UINT64) (Hdr.Te->DataDirectory[1].VirtualAddress + Hdr.Te->DataDirector… in PeCoffLoaderGetImageInfo()
572 ImageContext->SectionAlignment = 4096; in PeCoffLoaderGetImageInfo()
573ImageContext->SizeOfHeaders = sizeof (EFI_TE_IMAGE_HEADER) + (UINTN) Hdr.Te->BaseOfCode - (UIN… in PeCoffLoaderGetImageInfo()
586 Status = ImageContext->ImageRead ( in PeCoffLoaderGetImageInfo()
587 ImageContext->Handle, in PeCoffLoaderGetImageInfo()
593 ImageContext->ImageError = EFI_IMAGE_ERROR_IMAGE_READ; in PeCoffLoaderGetImageInfo()
616 Status = ImageContext->ImageRead ( in PeCoffLoaderGetImageInfo()
617 ImageContext->Handle, in PeCoffLoaderGetImageInfo()
623 ImageContext->ImageError = EFI_IMAGE_ERROR_IMAGE_READ; in PeCoffLoaderGetImageInfo()
628ImageContext->DebugDirectoryEntryRva = (UINT32) (DebugDirectoryEntryRva + Index * sizeof (EFI_IMAG… in PeCoffLoaderGetImageInfo()
641 IN OUT EFI_PEI_PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext, in PeCoffLoaderImageAddress() argument
662 if (Address >= ImageContext->ImageSize) { in PeCoffLoaderImageAddress()
663 ImageContext->ImageError = EFI_IMAGE_ERROR_INVALID_IMAGE_ADDRESS; in PeCoffLoaderImageAddress()
667 return (CHAR8 *) ((UINTN) ImageContext->ImageAddress + Address); in PeCoffLoaderImageAddress()
674 IN OUT EFI_PEI_PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext in PeCoffLoaderRelocateImage() argument
720 if (NULL == ImageContext) { in PeCoffLoaderRelocateImage()
727 ImageContext->ImageError = EFI_IMAGE_ERROR_SUCCESS; in PeCoffLoaderRelocateImage()
732 if (ImageContext->RelocationsStripped) { in PeCoffLoaderRelocateImage()
740 if (ImageContext->DestinationAddress != 0) { in PeCoffLoaderRelocateImage()
741 BaseAddress = ImageContext->DestinationAddress; in PeCoffLoaderRelocateImage()
743 BaseAddress = ImageContext->ImageAddress; in PeCoffLoaderRelocateImage()
746 if (!(ImageContext->IsTeImage)) { in PeCoffLoaderRelocateImage()
747 …Hdr.Pe32 = (EFI_IMAGE_NT_HEADERS32 *)((UINTN)ImageContext->ImageAddress + ImageContext->PeCoffHead… in PeCoffLoaderRelocateImage()
792 RelocBase = PeCoffLoaderImageAddress (ImageContext, RelocDir->VirtualAddress); in PeCoffLoaderRelocateImage()
794 ImageContext, in PeCoffLoaderRelocateImage()
810 Hdr.Te = (EFI_TE_IMAGE_HEADER *)(UINTN)(ImageContext->ImageAddress); in PeCoffLoaderRelocateImage()
820 ImageContext->ImageAddress + in PeCoffLoaderRelocateImage()
838 FixupData = ImageContext->FixupData; in PeCoffLoaderRelocateImage()
843 if (!(ImageContext->IsTeImage)) { in PeCoffLoaderRelocateImage()
844 FixupBase = PeCoffLoaderImageAddress (ImageContext, RelocBase->VirtualAddress); in PeCoffLoaderRelocateImage()
853 FixupBase = (CHAR8 *)(UINTN)(ImageContext->ImageAddress + in PeCoffLoaderRelocateImage()
860 if ((CHAR8 *) RelocEnd < (CHAR8 *) ((UINTN) ImageContext->ImageAddress) || in PeCoffLoaderRelocateImage()
861 (CHAR8 *) RelocEnd > (CHAR8 *)((UINTN)ImageContext->ImageAddress + in PeCoffLoaderRelocateImage()
862 (UINTN)ImageContext->ImageSize)) { in PeCoffLoaderRelocateImage()
863 ImageContext->ImageError = EFI_IMAGE_ERROR_FAILED_RELOCATION; in PeCoffLoaderRelocateImage()
924 ImageContext->ImageError = EFI_IMAGE_ERROR_FAILED_RELOCATION; in PeCoffLoaderRelocateImage()
935 ImageContext->ImageError = EFI_IMAGE_ERROR_FAILED_RELOCATION; in PeCoffLoaderRelocateImage()
954 ImageContext->ModHandle = NULL; in PeCoffLoaderRelocateImage()
958 if ((ImageContext->PdbPointer != NULL) && in PeCoffLoaderRelocateImage()
959 (ImageContext->Machine != EFI_IMAGE_MACHINE_EBC)) { in PeCoffLoaderRelocateImage()
961 ImageContext->PdbPointer, in PeCoffLoaderRelocateImage()
967 ImageContext->EntryPoint = (EFI_PHYSICAL_ADDRESS) (UINTN) DllEntryPoint; in PeCoffLoaderRelocateImage()
968 ImageContext->ModHandle = ModHandle; in PeCoffLoaderRelocateImage()
980 IN OUT EFI_PEI_PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext in PeCoffLoaderLoadImage() argument
1026 if (NULL == ImageContext) { in PeCoffLoaderLoadImage()
1033 ImageContext->ImageError = EFI_IMAGE_ERROR_SUCCESS; in PeCoffLoaderLoadImage()
1040 CopyMem (&CheckContext, ImageContext, sizeof (EFI_PEI_PE_COFF_LOADER_IMAGE_CONTEXT)); in PeCoffLoaderLoadImage()
1050 if (ImageContext->ImageSize < CheckContext.ImageSize) { in PeCoffLoaderLoadImage()
1051 ImageContext->ImageError = EFI_IMAGE_ERROR_INVALID_IMAGE_SIZE; in PeCoffLoaderLoadImage()
1054 if (ImageContext->ImageAddress == 0) { in PeCoffLoaderLoadImage()
1058 ImageContext->ImageError = EFI_IMAGE_ERROR_INVALID_IMAGE_ADDRESS; in PeCoffLoaderLoadImage()
1071 ImageContext->ImageError = EFI_IMAGE_ERROR_INVALID_SUBSYSTEM; in PeCoffLoaderLoadImage()
1078 if (CheckContext.ImageAddress != ImageContext->ImageAddress) { in PeCoffLoaderLoadImage()
1079 ImageContext->ImageError = EFI_IMAGE_ERROR_INVALID_IMAGE_ADDRESS; in PeCoffLoaderLoadImage()
1086 if (!(ImageContext->IsTeImage)) { in PeCoffLoaderLoadImage()
1087 if ((ImageContext->ImageAddress & (CheckContext.SectionAlignment - 1)) != 0) { in PeCoffLoaderLoadImage()
1088 ImageContext->ImageError = EFI_IMAGE_ERROR_INVALID_SECTION_ALIGNMENT; in PeCoffLoaderLoadImage()
1095 if (!(ImageContext->IsTeImage)) { in PeCoffLoaderLoadImage()
1096 Status = ImageContext->ImageRead ( in PeCoffLoaderLoadImage()
1097 ImageContext->Handle, in PeCoffLoaderLoadImage()
1099 &ImageContext->SizeOfHeaders, in PeCoffLoaderLoadImage()
1100 (VOID *) (UINTN) ImageContext->ImageAddress in PeCoffLoaderLoadImage()
1103 …Hdr.Pe32 = (EFI_IMAGE_NT_HEADERS32 *)((UINTN)ImageContext->ImageAddress + ImageContext->PeCoffHead… in PeCoffLoaderLoadImage()
1106 (UINTN)ImageContext->ImageAddress + in PeCoffLoaderLoadImage()
1107 ImageContext->PeCoffHeaderOffset + in PeCoffLoaderLoadImage()
1114 Status = ImageContext->ImageRead ( in PeCoffLoaderLoadImage()
1115 ImageContext->Handle, in PeCoffLoaderLoadImage()
1117 &ImageContext->SizeOfHeaders, in PeCoffLoaderLoadImage()
1118 (VOID *)(UINTN)ImageContext->ImageAddress in PeCoffLoaderLoadImage()
1121 Hdr.Te = (EFI_TE_IMAGE_HEADER *)(UINTN)(ImageContext->ImageAddress); in PeCoffLoaderLoadImage()
1124 (UINTN)ImageContext->ImageAddress + in PeCoffLoaderLoadImage()
1132 ImageContext->ImageError = EFI_IMAGE_ERROR_IMAGE_READ; in PeCoffLoaderLoadImage()
1145 Base = PeCoffLoaderImageAddress (ImageContext, Section->VirtualAddress); in PeCoffLoaderLoadImage()
1147 ImageContext, in PeCoffLoaderLoadImage()
1150 if (ImageContext->IsTeImage) { in PeCoffLoaderLoadImage()
1162 ImageContext->ImageError = EFI_IMAGE_ERROR_SECTION_NOT_LOADED; in PeCoffLoaderLoadImage()
1175 if (!(ImageContext->IsTeImage)) { in PeCoffLoaderLoadImage()
1176 Status = ImageContext->ImageRead ( in PeCoffLoaderLoadImage()
1177 ImageContext->Handle, in PeCoffLoaderLoadImage()
1183 Status = ImageContext->ImageRead ( in PeCoffLoaderLoadImage()
1184 ImageContext->Handle, in PeCoffLoaderLoadImage()
1192 ImageContext->ImageError = EFI_IMAGE_ERROR_IMAGE_READ; in PeCoffLoaderLoadImage()
1216 if (!(ImageContext->IsTeImage)) { in PeCoffLoaderLoadImage()
1236 ImageContext->EntryPoint = (EFI_PHYSICAL_ADDRESS)(UINTN)PeCoffLoaderImageAddress ( in PeCoffLoaderLoadImage()
1237 ImageContext, in PeCoffLoaderLoadImage()
1242 ImageContext->EntryPoint = (EFI_PHYSICAL_ADDRESS) ( in PeCoffLoaderLoadImage()
1243 (UINTN)ImageContext->ImageAddress + in PeCoffLoaderLoadImage()
1257 if (!(ImageContext->IsTeImage)) { in PeCoffLoaderLoadImage()
1273 ImageContext->FixupDataSize = DirectoryEntry->Size / sizeof (UINT16) * sizeof (UINTN); in PeCoffLoaderLoadImage()
1275 ImageContext->FixupDataSize = 0; in PeCoffLoaderLoadImage()
1279 ImageContext->FixupDataSize = DirectoryEntry->Size / sizeof (UINT16) * sizeof (UINTN); in PeCoffLoaderLoadImage()
1285 ImageContext->FixupData = NULL; in PeCoffLoaderLoadImage()
1290 if (ImageContext->DebugDirectoryEntryRva != 0) { in PeCoffLoaderLoadImage()
1291 if (!(ImageContext->IsTeImage)) { in PeCoffLoaderLoadImage()
1293 ImageContext, in PeCoffLoaderLoadImage()
1294 ImageContext->DebugDirectoryEntryRva in PeCoffLoaderLoadImage()
1298 ImageContext->ImageAddress + in PeCoffLoaderLoadImage()
1299 ImageContext->DebugDirectoryEntryRva + in PeCoffLoaderLoadImage()
1317 if (!(ImageContext->IsTeImage)) { in PeCoffLoaderLoadImage()
1318 ImageContext->CodeView = PeCoffLoaderImageAddress (ImageContext, TempDebugEntryRva); in PeCoffLoaderLoadImage()
1320 ImageContext->CodeView = (VOID *)( in PeCoffLoaderLoadImage()
1321 (UINTN)ImageContext->ImageAddress + in PeCoffLoaderLoadImage()
1328 if (ImageContext->CodeView == NULL) { in PeCoffLoaderLoadImage()
1329 ImageContext->ImageError = EFI_IMAGE_ERROR_IMAGE_READ; in PeCoffLoaderLoadImage()
1335 if (!(ImageContext->IsTeImage)) { in PeCoffLoaderLoadImage()
1336 Status = ImageContext->ImageRead ( in PeCoffLoaderLoadImage()
1337 ImageContext->Handle, in PeCoffLoaderLoadImage()
1340 ImageContext->CodeView in PeCoffLoaderLoadImage()
1343 Status = ImageContext->ImageRead ( in PeCoffLoaderLoadImage()
1344 ImageContext->Handle, in PeCoffLoaderLoadImage()
1347 ImageContext->CodeView in PeCoffLoaderLoadImage()
1357 ImageContext->ImageError = EFI_IMAGE_ERROR_IMAGE_READ; in PeCoffLoaderLoadImage()
1364 switch (*(UINT32 *) ImageContext->CodeView) { in PeCoffLoaderLoadImage()
1366ImageContext->PdbPointer = (CHAR8 *)ImageContext->CodeView + sizeof (EFI_IMAGE_DEBUG_CODEVIEW_NB10… in PeCoffLoaderLoadImage()
1370ImageContext->PdbPointer = (CHAR8 *)ImageContext->CodeView + sizeof (EFI_IMAGE_DEBUG_CODEVIEW_RSDS… in PeCoffLoaderLoadImage()
1384 if (!(ImageContext->IsTeImage)) { in PeCoffLoaderLoadImage()
1398 Base = PeCoffLoaderImageAddress (ImageContext, DirectoryEntry->VirtualAddress); in PeCoffLoaderLoadImage()
1435ImageContext->HiiResourceData = (EFI_PHYSICAL_ADDRESS) (UINTN) PeCoffLoaderImageAddress (ImageCont… in PeCoffLoaderLoadImage()
1448 AsmEfiSetBreakSupport ((UINTN)(ImageContext->ImageAddress)); in PeCoffLoaderLoadImage()
1457 IN EFI_PEI_PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext in PeCoffLoaderUnloadImage() argument
1479 mPeCoffLoaderWinNtLoadAsDll->FreeLibrary (ImageContext->ModHandle); in PeCoffLoaderUnloadImage()