2. FFS UI section\r
3. Image GUID\r
\r
- @param[in] DriverInfo Pointer to memory profile driver info.\r
+ @param[in] ImageStruct Point to the image structure.\r
\r
@return The resulting Ascii name string is stored in the mNameString global array.\r
\r
//\r
// Method 1: Get the name string from image PDB\r
//\r
- if (ImageStruct->Header.Length > sizeof (SMM_CORE_IMAGE_DATABASE_STRUCTURE)) {\r
- GetShortPdbFileName ((CHAR8 *) (ImageStruct + 1), mNameString);\r
+ if (ImageStruct->PdbStringOffset != 0) {\r
+ GetShortPdbFileName ((CHAR8 *) ((UINTN) ImageStruct + ImageStruct->PdbStringOffset), mNameString);\r
return mNameString;\r
}\r
\r
if (ImageStruct->Header.Signature == SMM_CORE_IMAGE_DATABASE_SIGNATURE) {\r
NameString = GetDriverNameString (ImageStruct);\r
Print(L" <Image Name=\"%a\"", NameString);\r
- Print(L" Base=\"0x%x\" Size=\"0x%x\"", ImageStruct->ImageBase, ImageStruct->ImageSize);\r
+ Print(L" Base=\"0x%lx\" Size=\"0x%lx\"", ImageStruct->ImageBase, ImageStruct->ImageSize);\r
if (ImageStruct->EntryPoint != 0) {\r
- Print(L" EntryPoint=\"0x%x\"", ImageStruct->EntryPoint);\r
+ Print(L" EntryPoint=\"0x%lx\"", ImageStruct->EntryPoint);\r
}\r
Print(L" FvFile=\"%g\"", &ImageStruct->FileGuid);\r
Print(L" RefId=\"0x%x\"", ImageStruct->ImageRef);\r
Print(L">\n");\r
- PdbString = (CHAR8 *)((UINTN)ImageStruct + ImageStruct->PdbStringOffset);\r
- Print(L" <Pdb>%a</Pdb>\n", PdbString);\r
+ if (ImageStruct->PdbStringOffset != 0) {\r
+ PdbString = (CHAR8 *)((UINTN)ImageStruct + ImageStruct->PdbStringOffset);\r
+ Print(L" <Pdb>%a</Pdb>\n", PdbString);\r
+ }\r
Print(L" </Image>\n");\r
}\r
\r
IN UINTN ContextSize\r
)\r
{\r
+ CHAR16 *Str;\r
+\r
if (CompareGuid (HandlerType, &gEfiSmmSwDispatch2ProtocolGuid)) {\r
- Print(L" SwSmi=\"0x%x\"", ((EFI_SMM_SW_REGISTER_CONTEXT *)Context)->SwSmiInputValue);\r
+ Print(L" SwSmi=\"0x%lx\"", ((SMI_HANDLER_PROFILE_SW_REGISTER_CONTEXT *)Context)->SwSmiInputValue);\r
} else if (CompareGuid (HandlerType, &gEfiSmmSxDispatch2ProtocolGuid)) {\r
Print(L" SxType=\"%a\"", SxTypeToString(((EFI_SMM_SX_REGISTER_CONTEXT *)Context)->Type));\r
Print(L" SxPhase=\"%a\"", SxPhaseToString(((EFI_SMM_SX_REGISTER_CONTEXT *)Context)->Phase));\r
Print(L" IoTrapType=\"%a\"", IoTrapTypeToString(((EFI_SMM_IO_TRAP_REGISTER_CONTEXT *)Context)->Type));\r
} else if (CompareGuid (HandlerType, &gEfiSmmUsbDispatch2ProtocolGuid)) {\r
Print(L" UsbType=\"0x%x\"", UsbTypeToString(((SMI_HANDLER_PROFILE_USB_REGISTER_CONTEXT *)Context)->Type));\r
- Print(L" UsbDevicePath=\"%s\"", ConvertDevicePathToText((EFI_DEVICE_PATH_PROTOCOL *)(((SMI_HANDLER_PROFILE_USB_REGISTER_CONTEXT *)Context) + 1), TRUE, TRUE));\r
+ Str = ConvertDevicePathToText((EFI_DEVICE_PATH_PROTOCOL *)(((SMI_HANDLER_PROFILE_USB_REGISTER_CONTEXT *)Context) + 1), TRUE, TRUE);\r
+ Print(L" UsbDevicePath=\"%s\"", Str);\r
+ if (Str != NULL) {\r
+ FreePool (Str);\r
+ }\r
} else {\r
Print(L" Context=\"");\r
InternalDumpData (Context, ContextSize);\r
Print(L" <Pdb>%a</Pdb>\n", (UINT8 *)ImageStruct + ImageStruct->PdbStringOffset);\r
}\r
Print(L" </Module>\n");\r
- Print(L" <Handler Address=\"0x%x\">\n", SmiHandlerStruct->Handler);\r
+ Print(L" <Handler Address=\"0x%lx\">\n", SmiHandlerStruct->Handler);\r
if (ImageStruct != NULL) {\r
- Print(L" <RVA>0x%x</RVA>\n", SmiHandlerStruct->Handler - ImageStruct->ImageBase);\r
+ Print(L" <RVA>0x%x</RVA>\n", (UINTN) (SmiHandlerStruct->Handler - ImageStruct->ImageBase));\r
}\r
Print(L" </Handler>\n", SmiHandlerStruct->Handler);\r
- Print(L" <Caller Address=\"0x%x\">\n", SmiHandlerStruct->CallerAddr);\r
+ Print(L" <Caller Address=\"0x%lx\">\n", SmiHandlerStruct->CallerAddr);\r
if (ImageStruct != NULL) {\r
- Print(L" <RVA>0x%x</RVA>\n", SmiHandlerStruct->CallerAddr - ImageStruct->ImageBase);\r
+ Print(L" <RVA>0x%x</RVA>\n", (UINTN) (SmiHandlerStruct->CallerAddr - ImageStruct->ImageBase));\r
}\r
Print(L" </Caller>\n", SmiHandlerStruct->Handler);\r
SmiHandlerStruct = (VOID *)((UINTN)SmiHandlerStruct + SmiHandlerStruct->Length);\r