#define GET_OCCUPIED_SIZE(ActualSize, Alignment) \\r
(ActualSize) + (((Alignment) - ((ActualSize) & ((Alignment) - 1))) & ((Alignment) - 1))\r
\r
-\r
// Vector Table for Sec Phase\r
VOID\r
DebugAgentVectorTable (\r
FileState = FfsHeader->State;\r
\r
if (ErasePolarity != 0) {\r
- FileState = (EFI_FFS_FILE_STATE)~FileState;\r
+ FileState = (EFI_FFS_FILE_STATE) ~FileState;\r
}\r
\r
HighestBit = 0x80;\r
IN EFI_FFS_FILE_HEADER *FileHeader\r
)\r
{\r
- UINT8 Sum;\r
+ UINT8 Sum;\r
\r
// Calculate the sum of the header\r
- Sum = CalculateSum8 ((CONST VOID*)FileHeader,sizeof(EFI_FFS_FILE_HEADER));\r
+ Sum = CalculateSum8 ((CONST VOID *)FileHeader, sizeof (EFI_FFS_FILE_HEADER));\r
\r
// State field (since this indicates the different state of file).\r
Sum = (UINT8)(Sum - FileHeader->State);\r
\r
EFI_STATUS\r
GetFfsFile (\r
- IN EFI_FIRMWARE_VOLUME_HEADER *FwVolHeader,\r
- IN EFI_FV_FILETYPE FileType,\r
- OUT EFI_FFS_FILE_HEADER **FileHeader\r
+ IN EFI_FIRMWARE_VOLUME_HEADER *FwVolHeader,\r
+ IN EFI_FV_FILETYPE FileType,\r
+ OUT EFI_FFS_FILE_HEADER **FileHeader\r
)\r
{\r
- UINT64 FvLength;\r
- UINTN FileOffset;\r
- EFI_FFS_FILE_HEADER *FfsFileHeader;\r
- UINT8 ErasePolarity;\r
- UINT8 FileState;\r
- UINT32 FileLength;\r
- UINT32 FileOccupiedSize;\r
+ UINT64 FvLength;\r
+ UINTN FileOffset;\r
+ EFI_FFS_FILE_HEADER *FfsFileHeader;\r
+ UINT8 ErasePolarity;\r
+ UINT8 FileState;\r
+ UINT32 FileLength;\r
+ UINT32 FileOccupiedSize;\r
\r
ASSERT (FwVolHeader->Signature == EFI_FVH_SIGNATURE);\r
\r
- FvLength = FwVolHeader->FvLength;\r
+ FvLength = FwVolHeader->FvLength;\r
FfsFileHeader = (EFI_FFS_FILE_HEADER *)((UINT8 *)FwVolHeader + FwVolHeader->HeaderLength);\r
- FileOffset = FwVolHeader->HeaderLength;\r
+ FileOffset = FwVolHeader->HeaderLength;\r
\r
if (FwVolHeader->Attributes & EFI_FVB2_ERASE_POLARITY) {\r
ErasePolarity = 1;\r
FileState = GetFileState (ErasePolarity, FfsFileHeader);\r
\r
switch (FileState) {\r
+ case EFI_FILE_HEADER_INVALID:\r
+ FileOffset += sizeof (EFI_FFS_FILE_HEADER);\r
+ FfsFileHeader = (EFI_FFS_FILE_HEADER *)((UINT8 *)FfsFileHeader + sizeof (EFI_FFS_FILE_HEADER));\r
+ break;\r
\r
- case EFI_FILE_HEADER_INVALID:\r
- FileOffset += sizeof(EFI_FFS_FILE_HEADER);\r
- FfsFileHeader = (EFI_FFS_FILE_HEADER *)((UINT8 *)FfsFileHeader + sizeof(EFI_FFS_FILE_HEADER));\r
- break;\r
-\r
- case EFI_FILE_DATA_VALID:\r
- case EFI_FILE_MARKED_FOR_UPDATE:\r
- if (CalculateHeaderChecksum (FfsFileHeader) != 0) {\r
- ASSERT (FALSE);\r
- return EFI_NOT_FOUND;\r
- }\r
+ case EFI_FILE_DATA_VALID:\r
+ case EFI_FILE_MARKED_FOR_UPDATE:\r
+ if (CalculateHeaderChecksum (FfsFileHeader) != 0) {\r
+ ASSERT (FALSE);\r
+ return EFI_NOT_FOUND;\r
+ }\r
\r
- if (FfsFileHeader->Type == FileType) {\r
- *FileHeader = FfsFileHeader;\r
- return EFI_SUCCESS;\r
- }\r
+ if (FfsFileHeader->Type == FileType) {\r
+ *FileHeader = FfsFileHeader;\r
+ return EFI_SUCCESS;\r
+ }\r
\r
- FileLength = *(UINT32 *)(FfsFileHeader->Size) & 0x00FFFFFF;\r
- FileOccupiedSize = GET_OCCUPIED_SIZE(FileLength, 8);\r
+ FileLength = *(UINT32 *)(FfsFileHeader->Size) & 0x00FFFFFF;\r
+ FileOccupiedSize = GET_OCCUPIED_SIZE (FileLength, 8);\r
\r
- FileOffset += FileOccupiedSize;\r
- FfsFileHeader = (EFI_FFS_FILE_HEADER *)((UINT8 *)FfsFileHeader + FileOccupiedSize);\r
- break;\r
+ FileOffset += FileOccupiedSize;\r
+ FfsFileHeader = (EFI_FFS_FILE_HEADER *)((UINT8 *)FfsFileHeader + FileOccupiedSize);\r
+ break;\r
\r
- case EFI_FILE_DELETED:\r
- FileLength = *(UINT32 *)(FfsFileHeader->Size) & 0x00FFFFFF;\r
- FileOccupiedSize = GET_OCCUPIED_SIZE(FileLength, 8);\r
- FileOffset += FileOccupiedSize;\r
- FfsFileHeader = (EFI_FFS_FILE_HEADER *)((UINT8 *)FfsFileHeader + FileOccupiedSize);\r
- break;\r
+ case EFI_FILE_DELETED:\r
+ FileLength = *(UINT32 *)(FfsFileHeader->Size) & 0x00FFFFFF;\r
+ FileOccupiedSize = GET_OCCUPIED_SIZE (FileLength, 8);\r
+ FileOffset += FileOccupiedSize;\r
+ FfsFileHeader = (EFI_FFS_FILE_HEADER *)((UINT8 *)FfsFileHeader + FileOccupiedSize);\r
+ break;\r
\r
- default:\r
- return EFI_NOT_FOUND;\r
+ default:\r
+ return EFI_NOT_FOUND;\r
}\r
}\r
+\r
return EFI_NOT_FOUND;\r
}\r
\r
OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext\r
)\r
{\r
- EFI_STATUS Status;\r
- UINTN ParsedLength;\r
- UINTN SectionSize;\r
- UINTN SectionLength;\r
- EFI_COMMON_SECTION_HEADER *Section;\r
- VOID *EfiImage;\r
- UINTN ImageAddress;\r
- EFI_IMAGE_DEBUG_DIRECTORY_ENTRY *DebugEntry;\r
- VOID *CodeViewEntryPointer;\r
-\r
- Section = (EFI_COMMON_SECTION_HEADER *)(FfsHeader + 1);\r
- SectionSize = *(UINT32 *)(FfsHeader->Size) & 0x00FFFFFF;\r
+ EFI_STATUS Status;\r
+ UINTN ParsedLength;\r
+ UINTN SectionSize;\r
+ UINTN SectionLength;\r
+ EFI_COMMON_SECTION_HEADER *Section;\r
+ VOID *EfiImage;\r
+ UINTN ImageAddress;\r
+ EFI_IMAGE_DEBUG_DIRECTORY_ENTRY *DebugEntry;\r
+ VOID *CodeViewEntryPointer;\r
+\r
+ Section = (EFI_COMMON_SECTION_HEADER *)(FfsHeader + 1);\r
+ SectionSize = *(UINT32 *)(FfsHeader->Size) & 0x00FFFFFF;\r
SectionSize -= sizeof (EFI_FFS_FILE_HEADER);\r
ParsedLength = 0;\r
- EfiImage = NULL;\r
+ EfiImage = NULL;\r
\r
while (ParsedLength < SectionSize) {\r
if ((Section->Type == EFI_SECTION_PE32) || (Section->Type == EFI_SECTION_TE)) {\r
- EfiImage = (EFI_IMAGE_OPTIONAL_HEADER_UNION*)(Section + 1);\r
+ EfiImage = (EFI_IMAGE_OPTIONAL_HEADER_UNION *)(Section + 1);\r
break;\r
}\r
\r
SectionLength = GET_OCCUPIED_SIZE (SectionLength, 4);\r
ASSERT (SectionLength != 0);\r
ParsedLength += SectionLength;\r
- Section = (EFI_COMMON_SECTION_HEADER *)((UINT8 *)Section + SectionLength);\r
+ Section = (EFI_COMMON_SECTION_HEADER *)((UINT8 *)Section + SectionLength);\r
}\r
\r
if (EfiImage == NULL) {\r
ImageContext->ImageRead = PeCoffLoaderImageReadFromMemory;\r
\r
Status = PeCoffLoaderGetImageInfo (ImageContext);\r
- if (!EFI_ERROR(Status) && ((VOID*)(UINTN)ImageContext->DebugDirectoryEntryRva != NULL)) {\r
+ if (!EFI_ERROR (Status) && ((VOID *)(UINTN)ImageContext->DebugDirectoryEntryRva != NULL)) {\r
ImageAddress = ImageContext->ImageAddress;\r
if (ImageContext->IsTeImage) {\r
- ImageAddress += sizeof (EFI_TE_IMAGE_HEADER) - ((EFI_TE_IMAGE_HEADER*)EfiImage)->StrippedSize;\r
+ ImageAddress += sizeof (EFI_TE_IMAGE_HEADER) - ((EFI_TE_IMAGE_HEADER *)EfiImage)->StrippedSize;\r
}\r
\r
- DebugEntry = (EFI_IMAGE_DEBUG_DIRECTORY_ENTRY*)(ImageAddress + ImageContext->DebugDirectoryEntryRva);\r
+ DebugEntry = (EFI_IMAGE_DEBUG_DIRECTORY_ENTRY *)(ImageAddress + ImageContext->DebugDirectoryEntryRva);\r
if (DebugEntry->Type == EFI_IMAGE_DEBUG_TYPE_CODEVIEW) {\r
- CodeViewEntryPointer = (VOID *) (ImageAddress + (UINTN) DebugEntry->RVA);\r
- switch (* (UINT32 *) CodeViewEntryPointer) {\r
- case CODEVIEW_SIGNATURE_NB10:\r
- ImageContext->PdbPointer = (CHAR8 *)CodeViewEntryPointer + sizeof (EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY);\r
- break;\r
- case CODEVIEW_SIGNATURE_RSDS:\r
- ImageContext->PdbPointer = (CHAR8 *)CodeViewEntryPointer + sizeof (EFI_IMAGE_DEBUG_CODEVIEW_RSDS_ENTRY);\r
- break;\r
- case CODEVIEW_SIGNATURE_MTOC:\r
- ImageContext->PdbPointer = (CHAR8 *)CodeViewEntryPointer + sizeof (EFI_IMAGE_DEBUG_CODEVIEW_MTOC_ENTRY);\r
- break;\r
- default:\r
- break;\r
+ CodeViewEntryPointer = (VOID *)(ImageAddress + (UINTN)DebugEntry->RVA);\r
+ switch (*(UINT32 *)CodeViewEntryPointer) {\r
+ case CODEVIEW_SIGNATURE_NB10:\r
+ ImageContext->PdbPointer = (CHAR8 *)CodeViewEntryPointer + sizeof (EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY);\r
+ break;\r
+ case CODEVIEW_SIGNATURE_RSDS:\r
+ ImageContext->PdbPointer = (CHAR8 *)CodeViewEntryPointer + sizeof (EFI_IMAGE_DEBUG_CODEVIEW_RSDS_ENTRY);\r
+ break;\r
+ case CODEVIEW_SIGNATURE_MTOC:\r
+ ImageContext->PdbPointer = (CHAR8 *)CodeViewEntryPointer + sizeof (EFI_IMAGE_DEBUG_CODEVIEW_MTOC_ENTRY);\r
+ break;\r
+ default:\r
+ break;\r
}\r
}\r
}\r
IN DEBUG_AGENT_CONTINUE Function OPTIONAL\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_FFS_FILE_HEADER *FfsHeader;\r
+ EFI_STATUS Status;\r
+ EFI_FFS_FILE_HEADER *FfsHeader;\r
PE_COFF_LOADER_IMAGE_CONTEXT ImageContext;\r
\r
// We use InitFlag to know if DebugAgent has been initialized from\r
//\r
// Get the Sec or PrePeiCore module (defined as SEC type module)\r
//\r
- Status = GetFfsFile ((EFI_FIRMWARE_VOLUME_HEADER*)(UINTN)PcdGet64 (PcdSecureFvBaseAddress), EFI_FV_FILETYPE_SECURITY_CORE, &FfsHeader);\r
- if (!EFI_ERROR(Status)) {\r
- Status = GetImageContext (FfsHeader,&ImageContext);\r
- if (!EFI_ERROR(Status)) {\r
+ Status = GetFfsFile ((EFI_FIRMWARE_VOLUME_HEADER *)(UINTN)PcdGet64 (PcdSecureFvBaseAddress), EFI_FV_FILETYPE_SECURITY_CORE, &FfsHeader);\r
+ if (!EFI_ERROR (Status)) {\r
+ Status = GetImageContext (FfsHeader, &ImageContext);\r
+ if (!EFI_ERROR (Status)) {\r
PeCoffLoaderRelocateImageExtraAction (&ImageContext);\r
}\r
}\r
//\r
// Get the PrePi or PrePeiCore module (defined as SEC type module)\r
//\r
- Status = GetFfsFile ((EFI_FIRMWARE_VOLUME_HEADER*)(UINTN)PcdGet64 (PcdFvBaseAddress), EFI_FV_FILETYPE_SECURITY_CORE, &FfsHeader);\r
- if (!EFI_ERROR(Status)) {\r
- Status = GetImageContext (FfsHeader,&ImageContext);\r
- if (!EFI_ERROR(Status)) {\r
+ Status = GetFfsFile ((EFI_FIRMWARE_VOLUME_HEADER *)(UINTN)PcdGet64 (PcdFvBaseAddress), EFI_FV_FILETYPE_SECURITY_CORE, &FfsHeader);\r
+ if (!EFI_ERROR (Status)) {\r
+ Status = GetImageContext (FfsHeader, &ImageContext);\r
+ if (!EFI_ERROR (Status)) {\r
PeCoffLoaderRelocateImageExtraAction (&ImageContext);\r
}\r
}\r
//\r
// Get the PeiCore module (defined as PEI_CORE type module)\r
//\r
- Status = GetFfsFile ((EFI_FIRMWARE_VOLUME_HEADER*)(UINTN)PcdGet64 (PcdFvBaseAddress), EFI_FV_FILETYPE_PEI_CORE, &FfsHeader);\r
- if (!EFI_ERROR(Status)) {\r
- Status = GetImageContext (FfsHeader,&ImageContext);\r
- if (!EFI_ERROR(Status)) {\r
+ Status = GetFfsFile ((EFI_FIRMWARE_VOLUME_HEADER *)(UINTN)PcdGet64 (PcdFvBaseAddress), EFI_FV_FILETYPE_PEI_CORE, &FfsHeader);\r
+ if (!EFI_ERROR (Status)) {\r
+ Status = GetImageContext (FfsHeader, &ImageContext);\r
+ if (!EFI_ERROR (Status)) {\r
PeCoffLoaderRelocateImageExtraAction (&ImageContext);\r
}\r
}\r
BOOLEAN\r
EFIAPI\r
SaveAndSetDebugTimerInterrupt (\r
- IN BOOLEAN EnableStatus\r
+ IN BOOLEAN EnableStatus\r
)\r
{\r
return FALSE;\r