Register SMI handler profile handler.\r
**/\r
VOID\r
-RegisterSmiHandlerProfileHandler(\r
+RegisterSmiHandlerProfileHandler (\r
VOID\r
);\r
\r
\r
extern SMI_HANDLER_PROFILE_PROTOCOL mSmiHandlerProfile;\r
\r
-GLOBAL_REMOVE_IF_UNREFERENCED LIST_ENTRY mHardwareSmiEntryList = INITIALIZE_LIST_HEAD_VARIABLE (mHardwareSmiEntryList);\r
+GLOBAL_REMOVE_IF_UNREFERENCED LIST_ENTRY mHardwareSmiEntryList = INITIALIZE_LIST_HEAD_VARIABLE (mHardwareSmiEntryList);\r
\r
-GLOBAL_REMOVE_IF_UNREFERENCED LIST_ENTRY mRootSmiEntryList = INITIALIZE_LIST_HEAD_VARIABLE (mRootSmiEntryList);\r
+GLOBAL_REMOVE_IF_UNREFERENCED LIST_ENTRY mRootSmiEntryList = INITIALIZE_LIST_HEAD_VARIABLE (mRootSmiEntryList);\r
\r
-GLOBAL_REMOVE_IF_UNREFERENCED LIST_ENTRY *mSmmCoreRootSmiEntryList = &mRootSmiEntryList;\r
-GLOBAL_REMOVE_IF_UNREFERENCED LIST_ENTRY *mSmmCoreSmiEntryList = &mSmiEntryList;\r
-GLOBAL_REMOVE_IF_UNREFERENCED LIST_ENTRY *mSmmCoreHardwareSmiEntryList = &mHardwareSmiEntryList;\r
+GLOBAL_REMOVE_IF_UNREFERENCED LIST_ENTRY *mSmmCoreRootSmiEntryList = &mRootSmiEntryList;\r
+GLOBAL_REMOVE_IF_UNREFERENCED LIST_ENTRY *mSmmCoreSmiEntryList = &mSmiEntryList;\r
+GLOBAL_REMOVE_IF_UNREFERENCED LIST_ENTRY *mSmmCoreHardwareSmiEntryList = &mHardwareSmiEntryList;\r
\r
GLOBAL_REMOVE_IF_UNREFERENCED IMAGE_STRUCT *mImageStruct;\r
GLOBAL_REMOVE_IF_UNREFERENCED UINT32 mImageStructCountMax;\r
)\r
{\r
UINTN Index;\r
+\r
for (Index = 0; Index < Size; Index++) {\r
DEBUG ((DEBUG_INFO, "%02x ", (UINTN)Data[Index]));\r
}\r
OUT EFI_GUID *Guid\r
)\r
{\r
- EFI_GUID *FileName;\r
+ EFI_GUID *FileName;\r
\r
FileName = NULL;\r
- if ((DevicePathType(LoadedImage->FilePath) == MEDIA_DEVICE_PATH) &&\r
- (DevicePathSubType(LoadedImage->FilePath) == MEDIA_PIWG_FW_FILE_DP)) {\r
+ if ((DevicePathType (LoadedImage->FilePath) == MEDIA_DEVICE_PATH) &&\r
+ (DevicePathSubType (LoadedImage->FilePath) == MEDIA_PIWG_FW_FILE_DP))\r
+ {\r
FileName = &((MEDIA_FW_VOL_FILEPATH_DEVICE_PATH *)LoadedImage->FilePath)->FvFileName;\r
}\r
+\r
if (FileName != NULL) {\r
- CopyGuid(Guid, FileName);\r
+ CopyGuid (Guid, FileName);\r
} else {\r
- ZeroMem(Guid, sizeof(EFI_GUID));\r
+ ZeroMem (Guid, sizeof (EFI_GUID));\r
}\r
}\r
\r
@param PdbString image PDB string\r
**/\r
VOID\r
-AddImageStruct(\r
- IN PHYSICAL_ADDRESS ImageBase,\r
- IN UINT64 ImageSize,\r
- IN PHYSICAL_ADDRESS EntryPoint,\r
- IN EFI_GUID *Guid,\r
- IN CHAR8 *PdbString\r
+AddImageStruct (\r
+ IN PHYSICAL_ADDRESS ImageBase,\r
+ IN UINT64 ImageSize,\r
+ IN PHYSICAL_ADDRESS EntryPoint,\r
+ IN EFI_GUID *Guid,\r
+ IN CHAR8 *PdbString\r
)\r
{\r
UINTN PdbStringSize;\r
\r
if (mImageStructCount >= mImageStructCountMax) {\r
- ASSERT(FALSE);\r
+ ASSERT (FALSE);\r
return;\r
}\r
\r
- CopyGuid(&mImageStruct[mImageStructCount].FileGuid, Guid);\r
- mImageStruct[mImageStructCount].ImageRef = mImageStructCount;\r
- mImageStruct[mImageStructCount].ImageBase = ImageBase;\r
- mImageStruct[mImageStructCount].ImageSize = ImageSize;\r
+ CopyGuid (&mImageStruct[mImageStructCount].FileGuid, Guid);\r
+ mImageStruct[mImageStructCount].ImageRef = mImageStructCount;\r
+ mImageStruct[mImageStructCount].ImageBase = ImageBase;\r
+ mImageStruct[mImageStructCount].ImageSize = ImageSize;\r
mImageStruct[mImageStructCount].EntryPoint = EntryPoint;\r
if (PdbString != NULL) {\r
- PdbStringSize = AsciiStrSize(PdbString);\r
+ PdbStringSize = AsciiStrSize (PdbString);\r
mImageStruct[mImageStructCount].PdbString = AllocateCopyPool (PdbStringSize, PdbString);\r
if (mImageStruct[mImageStructCount].PdbString != NULL) {\r
- mImageStruct[mImageStructCount].PdbStringSize = (UINT16) PdbStringSize;\r
+ mImageStruct[mImageStructCount].PdbStringSize = (UINT16)PdbStringSize;\r
}\r
}\r
\r
@return image structure\r
**/\r
IMAGE_STRUCT *\r
-AddressToImageStruct(\r
+AddressToImageStruct (\r
IN UINTN Address\r
)\r
{\r
\r
for (Index = 0; Index < mImageStructCount; Index++) {\r
if ((Address >= mImageStruct[Index].ImageBase) &&\r
- (Address < mImageStruct[Index].ImageBase + mImageStruct[Index].ImageSize)) {\r
+ (Address < mImageStruct[Index].ImageBase + mImageStruct[Index].ImageSize))\r
+ {\r
return &mImageStruct[Index];\r
}\r
}\r
+\r
return NULL;\r
}\r
\r
@return image reference index\r
**/\r
UINT32\r
-AddressToImageRef(\r
+AddressToImageRef (\r
IN UINTN Address\r
)\r
{\r
- IMAGE_STRUCT *ImageStruct;\r
+ IMAGE_STRUCT *ImageStruct;\r
\r
- ImageStruct = AddressToImageStruct(Address);\r
+ ImageStruct = AddressToImageStruct (Address);\r
if (ImageStruct != NULL) {\r
return ImageStruct->ImageRef;\r
}\r
+\r
return (UINT32)-1;\r
}\r
\r
Collect SMM image information based upon loaded image protocol.\r
**/\r
VOID\r
-GetSmmLoadedImage(\r
+GetSmmLoadedImage (\r
VOID\r
)\r
{\r
PHYSICAL_ADDRESS RealImageBase;\r
\r
HandleBufferSize = 0;\r
- HandleBuffer = NULL;\r
- Status = gSmst->SmmLocateHandle(\r
- ByProtocol,\r
- &gEfiLoadedImageProtocolGuid,\r
- NULL,\r
- &HandleBufferSize,\r
- HandleBuffer\r
- );\r
+ HandleBuffer = NULL;\r
+ Status = gSmst->SmmLocateHandle (\r
+ ByProtocol,\r
+ &gEfiLoadedImageProtocolGuid,\r
+ NULL,\r
+ &HandleBufferSize,\r
+ HandleBuffer\r
+ );\r
if (Status != EFI_BUFFER_TOO_SMALL) {\r
return;\r
}\r
+\r
HandleBuffer = AllocateZeroPool (HandleBufferSize);\r
if (HandleBuffer == NULL) {\r
return;\r
}\r
- Status = gSmst->SmmLocateHandle(\r
+\r
+ Status = gSmst->SmmLocateHandle (\r
ByProtocol,\r
&gEfiLoadedImageProtocolGuid,\r
NULL,\r
&HandleBufferSize,\r
HandleBuffer\r
);\r
- if (EFI_ERROR(Status)) {\r
+ if (EFI_ERROR (Status)) {\r
return;\r
}\r
\r
- NoHandles = HandleBufferSize/sizeof(EFI_HANDLE);\r
- mImageStructCountMax = (UINT32) NoHandles;\r
- mImageStruct = AllocateZeroPool(mImageStructCountMax * sizeof(IMAGE_STRUCT));\r
+ NoHandles = HandleBufferSize/sizeof (EFI_HANDLE);\r
+ mImageStructCountMax = (UINT32)NoHandles;\r
+ mImageStruct = AllocateZeroPool (mImageStructCountMax * sizeof (IMAGE_STRUCT));\r
if (mImageStruct == NULL) {\r
goto Done;\r
}\r
\r
for (Index = 0; Index < NoHandles; Index++) {\r
- Status = gSmst->SmmHandleProtocol(\r
+ Status = gSmst->SmmHandleProtocol (\r
HandleBuffer[Index],\r
&gEfiLoadedImageProtocolGuid,\r
(VOID **)&LoadedImage\r
);\r
- if (EFI_ERROR(Status)) {\r
+ if (EFI_ERROR (Status)) {\r
continue;\r
}\r
- PathStr = ConvertDevicePathToText(LoadedImage->FilePath, TRUE, TRUE);\r
- GetDriverGuid(LoadedImage, &Guid);\r
+\r
+ PathStr = ConvertDevicePathToText (LoadedImage->FilePath, TRUE, TRUE);\r
+ GetDriverGuid (LoadedImage, &Guid);\r
DEBUG ((DEBUG_INFO, "Image: %g ", &Guid));\r
\r
- EntryPoint = 0;\r
- LoadedImagePrivate = BASE_CR(LoadedImage, EFI_SMM_DRIVER_ENTRY, SmmLoadedImage);\r
- RealImageBase = (UINTN)LoadedImage->ImageBase;\r
+ EntryPoint = 0;\r
+ LoadedImagePrivate = BASE_CR (LoadedImage, EFI_SMM_DRIVER_ENTRY, SmmLoadedImage);\r
+ RealImageBase = (UINTN)LoadedImage->ImageBase;\r
if (LoadedImagePrivate->Signature == EFI_SMM_DRIVER_ENTRY_SIGNATURE) {\r
EntryPoint = LoadedImagePrivate->ImageEntryPoint;\r
if ((EntryPoint != 0) && ((EntryPoint < (UINTN)LoadedImage->ImageBase) || (EntryPoint >= ((UINTN)LoadedImage->ImageBase + LoadedImage->ImageSize)))) {\r
// If the EntryPoint is not in the range of image buffer, it should come from emulation environment.\r
// So patch ImageBuffer here to align the EntryPoint.\r
//\r
- Status = InternalPeCoffGetEntryPoint(LoadedImage->ImageBase, &EntryPointInImage);\r
- ASSERT_EFI_ERROR(Status);\r
+ Status = InternalPeCoffGetEntryPoint (LoadedImage->ImageBase, &EntryPointInImage);\r
+ ASSERT_EFI_ERROR (Status);\r
RealImageBase = (UINTN)LoadedImage->ImageBase + EntryPoint - (UINTN)EntryPointInImage;\r
}\r
}\r
+\r
DEBUG ((DEBUG_INFO, "(0x%lx - 0x%lx", RealImageBase, LoadedImage->ImageSize));\r
if (EntryPoint != 0) {\r
DEBUG ((DEBUG_INFO, ", EntryPoint:0x%lx", EntryPoint));\r
}\r
+\r
DEBUG ((DEBUG_INFO, ")\n"));\r
\r
if (RealImageBase != 0) {\r
- PdbString = PeCoffLoaderGetPdbPointer ((VOID*) (UINTN) RealImageBase);\r
+ PdbString = PeCoffLoaderGetPdbPointer ((VOID *)(UINTN)RealImageBase);\r
DEBUG ((DEBUG_INFO, " pdb - %a\n", PdbString));\r
} else {\r
PdbString = NULL;\r
}\r
+\r
DEBUG ((DEBUG_INFO, " (%s)\n", PathStr));\r
\r
- AddImageStruct(RealImageBase, LoadedImage->ImageSize, EntryPoint, &Guid, PdbString);\r
+ AddImageStruct (RealImageBase, LoadedImage->ImageSize, EntryPoint, &Guid, PdbString);\r
}\r
\r
Done:\r
- FreePool(HandleBuffer);\r
+ FreePool (HandleBuffer);\r
return;\r
}\r
\r
**/\r
VOID\r
DumpSmiChildContext (\r
- IN EFI_GUID *HandlerType,\r
- IN VOID *Context,\r
- IN UINTN ContextSize\r
+ IN EFI_GUID *HandlerType,\r
+ IN VOID *Context,\r
+ IN UINTN ContextSize\r
)\r
{\r
- CHAR16 *Str;\r
+ CHAR16 *Str;\r
\r
if (CompareGuid (HandlerType, &gEfiSmmSwDispatch2ProtocolGuid)) {\r
DEBUG ((DEBUG_INFO, " SwSmi - 0x%lx\n", ((SMI_HANDLER_PROFILE_SW_REGISTER_CONTEXT *)Context)->SwSmiInputValue));\r
DEBUG ((DEBUG_INFO, " IoTrapType - 0x%x\n", ((EFI_SMM_IO_TRAP_REGISTER_CONTEXT *)Context)->Type));\r
} else if (CompareGuid (HandlerType, &gEfiSmmUsbDispatch2ProtocolGuid)) {\r
DEBUG ((DEBUG_INFO, " UsbType - 0x%x\n", ((SMI_HANDLER_PROFILE_USB_REGISTER_CONTEXT *)Context)->Type));\r
- Str = 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
DEBUG ((DEBUG_INFO, " UsbDevicePath - %s\n", Str));\r
if (Str != NULL) {\r
FreePool (Str);\r
@param SmiEntry SMI entry.\r
**/\r
VOID\r
-DumpSmiHandlerOnSmiEntry(\r
- IN SMI_ENTRY *SmiEntry\r
+DumpSmiHandlerOnSmiEntry (\r
+ IN SMI_ENTRY *SmiEntry\r
)\r
{\r
- LIST_ENTRY *ListEntry;\r
- SMI_HANDLER *SmiHandler;\r
- IMAGE_STRUCT *ImageStruct;\r
+ LIST_ENTRY *ListEntry;\r
+ SMI_HANDLER *SmiHandler;\r
+ IMAGE_STRUCT *ImageStruct;\r
\r
ListEntry = &SmiEntry->SmiHandlers;\r
for (ListEntry = ListEntry->ForwardLink;\r
ListEntry != &SmiEntry->SmiHandlers;\r
- ListEntry = ListEntry->ForwardLink) {\r
- SmiHandler = CR(ListEntry, SMI_HANDLER, Link, SMI_HANDLER_SIGNATURE);\r
- ImageStruct = AddressToImageStruct((UINTN)SmiHandler->Handler);\r
+ ListEntry = ListEntry->ForwardLink)\r
+ {\r
+ SmiHandler = CR (ListEntry, SMI_HANDLER, Link, SMI_HANDLER_SIGNATURE);\r
+ ImageStruct = AddressToImageStruct ((UINTN)SmiHandler->Handler);\r
if (ImageStruct != NULL) {\r
DEBUG ((DEBUG_INFO, " Module - %g", &ImageStruct->FileGuid));\r
}\r
+\r
if ((ImageStruct != NULL) && (ImageStruct->PdbString[0] != 0)) {\r
DEBUG ((DEBUG_INFO, " (Pdb - %a)", ImageStruct->PdbString));\r
}\r
+\r
DEBUG ((DEBUG_INFO, "\n"));\r
if (SmiHandler->ContextSize != 0) {\r
DumpSmiChildContext (&SmiEntry->HandlerType, SmiHandler->Context, SmiHandler->ContextSize);\r
}\r
+\r
DEBUG ((DEBUG_INFO, " Handler - 0x%x", SmiHandler->Handler));\r
if (ImageStruct != NULL) {\r
- DEBUG ((DEBUG_INFO, " <== RVA - 0x%x", (UINTN)SmiHandler->Handler - (UINTN) ImageStruct->ImageBase));\r
+ DEBUG ((DEBUG_INFO, " <== RVA - 0x%x", (UINTN)SmiHandler->Handler - (UINTN)ImageStruct->ImageBase));\r
}\r
+\r
DEBUG ((DEBUG_INFO, "\n"));\r
DEBUG ((DEBUG_INFO, " CallerAddr - 0x%x", SmiHandler->CallerAddr));\r
if (ImageStruct != NULL) {\r
- DEBUG ((DEBUG_INFO, " <== RVA - 0x%x", SmiHandler->CallerAddr - (UINTN) ImageStruct->ImageBase));\r
+ DEBUG ((DEBUG_INFO, " <== RVA - 0x%x", SmiHandler->CallerAddr - (UINTN)ImageStruct->ImageBase));\r
}\r
+\r
DEBUG ((DEBUG_INFO, "\n"));\r
}\r
\r
@param SmiEntryList a list of SMI entry.\r
**/\r
VOID\r
-DumpSmiEntryList(\r
- IN LIST_ENTRY *SmiEntryList\r
+DumpSmiEntryList (\r
+ IN LIST_ENTRY *SmiEntryList\r
)\r
{\r
- LIST_ENTRY *ListEntry;\r
- SMI_ENTRY *SmiEntry;\r
+ LIST_ENTRY *ListEntry;\r
+ SMI_ENTRY *SmiEntry;\r
\r
ListEntry = SmiEntryList;\r
for (ListEntry = ListEntry->ForwardLink;\r
ListEntry != SmiEntryList;\r
- ListEntry = ListEntry->ForwardLink) {\r
- SmiEntry = CR(ListEntry, SMI_ENTRY, AllEntries, SMI_ENTRY_SIGNATURE);\r
+ ListEntry = ListEntry->ForwardLink)\r
+ {\r
+ SmiEntry = CR (ListEntry, SMI_ENTRY, AllEntries, SMI_ENTRY_SIGNATURE);\r
DEBUG ((DEBUG_INFO, "SmiEntry - %g\n", &SmiEntry->HandlerType));\r
- DumpSmiHandlerOnSmiEntry(SmiEntry);\r
+ DumpSmiHandlerOnSmiEntry (SmiEntry);\r
}\r
\r
return;\r
\r
DEBUG ((DEBUG_INFO, "# 1. ROOT SMI Handler #\n"));\r
DEBUG_CODE (\r
- DumpSmiEntryList(mSmmCoreRootSmiEntryList);\r
- );\r
+ DumpSmiEntryList (mSmmCoreRootSmiEntryList);\r
+ );\r
\r
DEBUG ((DEBUG_INFO, "# 2. GUID SMI Handler #\n"));\r
DEBUG_CODE (\r
- DumpSmiEntryList(mSmmCoreSmiEntryList);\r
- );\r
+ DumpSmiEntryList (mSmmCoreSmiEntryList);\r
+ );\r
\r
DEBUG ((DEBUG_INFO, "# 3. Hardware SMI Handler #\n"));\r
DEBUG_CODE (\r
- DumpSmiEntryList(mSmmCoreHardwareSmiEntryList);\r
- );\r
+ DumpSmiEntryList (mSmmCoreHardwareSmiEntryList);\r
+ );\r
\r
DEBUG ((DEBUG_INFO, "\n"));\r
\r
- RegisterSmiHandlerProfileHandler();\r
+ RegisterSmiHandlerProfileHandler ();\r
\r
if (mImageStruct != NULL) {\r
- FreePool(mImageStruct);\r
+ FreePool (mImageStruct);\r
}\r
\r
return EFI_SUCCESS;\r
@return SMM image data base size.\r
**/\r
UINTN\r
-GetSmmImageDatabaseSize(\r
+GetSmmImageDatabaseSize (\r
VOID\r
)\r
{\r
- UINTN Size;\r
- UINT32 Index;\r
+ UINTN Size;\r
+ UINT32 Index;\r
\r
Size = 0;\r
for (Index = 0; Index < mImageStructCount; Index++) {\r
- Size += sizeof(SMM_CORE_IMAGE_DATABASE_STRUCTURE) + GET_OCCUPIED_SIZE (mImageStruct[Index].PdbStringSize, sizeof (UINT64));\r
+ Size += sizeof (SMM_CORE_IMAGE_DATABASE_STRUCTURE) + GET_OCCUPIED_SIZE (mImageStruct[Index].PdbStringSize, sizeof (UINT64));\r
}\r
+\r
return Size;\r
}\r
\r
@return all SMI handlers' size associated with SmiEntry.\r
**/\r
UINTN\r
-GetSmmSmiHandlerSizeOnSmiEntry(\r
- IN SMI_ENTRY *SmiEntry\r
+GetSmmSmiHandlerSizeOnSmiEntry (\r
+ IN SMI_ENTRY *SmiEntry\r
)\r
{\r
- LIST_ENTRY *ListEntry;\r
- SMI_HANDLER *SmiHandler;\r
- UINTN Size;\r
+ LIST_ENTRY *ListEntry;\r
+ SMI_HANDLER *SmiHandler;\r
+ UINTN Size;\r
\r
- Size = 0;\r
+ Size = 0;\r
ListEntry = &SmiEntry->SmiHandlers;\r
for (ListEntry = ListEntry->ForwardLink;\r
ListEntry != &SmiEntry->SmiHandlers;\r
- ListEntry = ListEntry->ForwardLink) {\r
- SmiHandler = CR(ListEntry, SMI_HANDLER, Link, SMI_HANDLER_SIGNATURE);\r
- Size += sizeof(SMM_CORE_SMI_HANDLER_STRUCTURE) + GET_OCCUPIED_SIZE (SmiHandler->ContextSize, sizeof (UINT64));\r
+ ListEntry = ListEntry->ForwardLink)\r
+ {\r
+ SmiHandler = CR (ListEntry, SMI_HANDLER, Link, SMI_HANDLER_SIGNATURE);\r
+ Size += sizeof (SMM_CORE_SMI_HANDLER_STRUCTURE) + GET_OCCUPIED_SIZE (SmiHandler->ContextSize, sizeof (UINT64));\r
}\r
\r
return Size;\r
@return all SMI handler database size on the SMI entry list.\r
**/\r
UINTN\r
-GetSmmSmiDatabaseSize(\r
- IN LIST_ENTRY *SmiEntryList\r
+GetSmmSmiDatabaseSize (\r
+ IN LIST_ENTRY *SmiEntryList\r
)\r
{\r
- LIST_ENTRY *ListEntry;\r
- SMI_ENTRY *SmiEntry;\r
- UINTN Size;\r
+ LIST_ENTRY *ListEntry;\r
+ SMI_ENTRY *SmiEntry;\r
+ UINTN Size;\r
\r
- Size = 0;\r
+ Size = 0;\r
ListEntry = SmiEntryList;\r
for (ListEntry = ListEntry->ForwardLink;\r
ListEntry != SmiEntryList;\r
- ListEntry = ListEntry->ForwardLink) {\r
- SmiEntry = CR(ListEntry, SMI_ENTRY, AllEntries, SMI_ENTRY_SIGNATURE);\r
- Size += sizeof(SMM_CORE_SMI_DATABASE_STRUCTURE);\r
- Size += GetSmmSmiHandlerSizeOnSmiEntry(SmiEntry);\r
+ ListEntry = ListEntry->ForwardLink)\r
+ {\r
+ SmiEntry = CR (ListEntry, SMI_ENTRY, AllEntries, SMI_ENTRY_SIGNATURE);\r
+ Size += sizeof (SMM_CORE_SMI_DATABASE_STRUCTURE);\r
+ Size += GetSmmSmiHandlerSizeOnSmiEntry (SmiEntry);\r
}\r
+\r
return Size;\r
}\r
\r
VOID\r
)\r
{\r
- mSmmImageDatabaseSize = GetSmmImageDatabaseSize();\r
- mSmmRootSmiDatabaseSize = GetSmmSmiDatabaseSize(mSmmCoreRootSmiEntryList);\r
- mSmmSmiDatabaseSize = GetSmmSmiDatabaseSize(mSmmCoreSmiEntryList);\r
- mSmmHardwareSmiDatabaseSize = GetSmmSmiDatabaseSize(mSmmCoreHardwareSmiEntryList);\r
+ mSmmImageDatabaseSize = GetSmmImageDatabaseSize ();\r
+ mSmmRootSmiDatabaseSize = GetSmmSmiDatabaseSize (mSmmCoreRootSmiEntryList);\r
+ mSmmSmiDatabaseSize = GetSmmSmiDatabaseSize (mSmmCoreSmiEntryList);\r
+ mSmmHardwareSmiDatabaseSize = GetSmmSmiDatabaseSize (mSmmCoreHardwareSmiEntryList);\r
\r
return mSmmImageDatabaseSize + mSmmSmiDatabaseSize + mSmmRootSmiDatabaseSize + mSmmHardwareSmiDatabaseSize;\r
}\r
**/\r
UINTN\r
GetSmmImageDatabaseData (\r
- IN OUT VOID *Data,\r
- IN UINTN ExpectedSize\r
+ IN OUT VOID *Data,\r
+ IN UINTN ExpectedSize\r
)\r
{\r
- SMM_CORE_IMAGE_DATABASE_STRUCTURE *ImageStruct;\r
- UINTN Size;\r
- UINTN Index;\r
+ SMM_CORE_IMAGE_DATABASE_STRUCTURE *ImageStruct;\r
+ UINTN Size;\r
+ UINTN Index;\r
\r
ImageStruct = Data;\r
- Size = 0;\r
+ Size = 0;\r
for (Index = 0; Index < mImageStructCount; Index++) {\r
if (Size >= ExpectedSize) {\r
return 0;\r
}\r
- if (sizeof(SMM_CORE_IMAGE_DATABASE_STRUCTURE) + GET_OCCUPIED_SIZE (mImageStruct[Index].PdbStringSize, sizeof (UINT64)) > ExpectedSize - Size) {\r
+\r
+ if (sizeof (SMM_CORE_IMAGE_DATABASE_STRUCTURE) + GET_OCCUPIED_SIZE (mImageStruct[Index].PdbStringSize, sizeof (UINT64)) > ExpectedSize - Size) {\r
return 0;\r
}\r
+\r
ImageStruct->Header.Signature = SMM_CORE_IMAGE_DATABASE_SIGNATURE;\r
- ImageStruct->Header.Length = (UINT32)(sizeof(SMM_CORE_IMAGE_DATABASE_STRUCTURE) + GET_OCCUPIED_SIZE (mImageStruct[Index].PdbStringSize, sizeof (UINT64)));\r
- ImageStruct->Header.Revision = SMM_CORE_IMAGE_DATABASE_REVISION;\r
- CopyGuid(&ImageStruct->FileGuid, &mImageStruct[Index].FileGuid);\r
- ImageStruct->ImageRef = mImageStruct[Index].ImageRef;\r
+ ImageStruct->Header.Length = (UINT32)(sizeof (SMM_CORE_IMAGE_DATABASE_STRUCTURE) + GET_OCCUPIED_SIZE (mImageStruct[Index].PdbStringSize, sizeof (UINT64)));\r
+ ImageStruct->Header.Revision = SMM_CORE_IMAGE_DATABASE_REVISION;\r
+ CopyGuid (&ImageStruct->FileGuid, &mImageStruct[Index].FileGuid);\r
+ ImageStruct->ImageRef = mImageStruct[Index].ImageRef;\r
ImageStruct->EntryPoint = mImageStruct[Index].EntryPoint;\r
- ImageStruct->ImageBase = mImageStruct[Index].ImageBase;\r
- ImageStruct->ImageSize = mImageStruct[Index].ImageSize;\r
+ ImageStruct->ImageBase = mImageStruct[Index].ImageBase;\r
+ ImageStruct->ImageSize = mImageStruct[Index].ImageSize;\r
if (mImageStruct[Index].PdbStringSize != 0) {\r
- ImageStruct->PdbStringOffset = sizeof(SMM_CORE_IMAGE_DATABASE_STRUCTURE);\r
+ ImageStruct->PdbStringOffset = sizeof (SMM_CORE_IMAGE_DATABASE_STRUCTURE);\r
CopyMem ((VOID *)((UINTN)ImageStruct + ImageStruct->PdbStringOffset), mImageStruct[Index].PdbString, mImageStruct[Index].PdbStringSize);\r
} else {\r
ImageStruct->PdbStringOffset = 0;\r
}\r
+\r
ImageStruct = (SMM_CORE_IMAGE_DATABASE_STRUCTURE *)((UINTN)ImageStruct + ImageStruct->Header.Length);\r
- Size += sizeof(SMM_CORE_IMAGE_DATABASE_STRUCTURE) + GET_OCCUPIED_SIZE (mImageStruct[Index].PdbStringSize, sizeof (UINT64));\r
+ Size += sizeof (SMM_CORE_IMAGE_DATABASE_STRUCTURE) + GET_OCCUPIED_SIZE (mImageStruct[Index].PdbStringSize, sizeof (UINT64));\r
}\r
\r
if (ExpectedSize != Size) {\r
return 0;\r
}\r
+\r
return Size;\r
}\r
\r
@return SMM image data base size.\r
**/\r
UINTN\r
-GetSmmSmiHandlerDataOnSmiEntry(\r
- IN SMI_ENTRY *SmiEntry,\r
- IN OUT VOID *Data,\r
- IN UINTN MaxSize,\r
- OUT UINT32 *Count\r
+GetSmmSmiHandlerDataOnSmiEntry (\r
+ IN SMI_ENTRY *SmiEntry,\r
+ IN OUT VOID *Data,\r
+ IN UINTN MaxSize,\r
+ OUT UINT32 *Count\r
)\r
{\r
- SMM_CORE_SMI_HANDLER_STRUCTURE *SmiHandlerStruct;\r
- LIST_ENTRY *ListEntry;\r
- SMI_HANDLER *SmiHandler;\r
- UINTN Size;\r
+ SMM_CORE_SMI_HANDLER_STRUCTURE *SmiHandlerStruct;\r
+ LIST_ENTRY *ListEntry;\r
+ SMI_HANDLER *SmiHandler;\r
+ UINTN Size;\r
\r
SmiHandlerStruct = Data;\r
- Size = 0;\r
- *Count = 0;\r
- ListEntry = &SmiEntry->SmiHandlers;\r
+ Size = 0;\r
+ *Count = 0;\r
+ ListEntry = &SmiEntry->SmiHandlers;\r
for (ListEntry = ListEntry->ForwardLink;\r
ListEntry != &SmiEntry->SmiHandlers;\r
- ListEntry = ListEntry->ForwardLink) {\r
- SmiHandler = CR(ListEntry, SMI_HANDLER, Link, SMI_HANDLER_SIGNATURE);\r
+ ListEntry = ListEntry->ForwardLink)\r
+ {\r
+ SmiHandler = CR (ListEntry, SMI_HANDLER, Link, SMI_HANDLER_SIGNATURE);\r
if (Size >= MaxSize) {\r
*Count = 0;\r
return 0;\r
}\r
- if (sizeof(SMM_CORE_SMI_HANDLER_STRUCTURE) + GET_OCCUPIED_SIZE (SmiHandler->ContextSize, sizeof (UINT64)) > MaxSize - Size) {\r
+\r
+ if (sizeof (SMM_CORE_SMI_HANDLER_STRUCTURE) + GET_OCCUPIED_SIZE (SmiHandler->ContextSize, sizeof (UINT64)) > MaxSize - Size) {\r
*Count = 0;\r
return 0;\r
}\r
- SmiHandlerStruct->Length = (UINT32)(sizeof(SMM_CORE_SMI_HANDLER_STRUCTURE) + GET_OCCUPIED_SIZE (SmiHandler->ContextSize, sizeof (UINT64)));\r
- SmiHandlerStruct->CallerAddr = (UINTN)SmiHandler->CallerAddr;\r
- SmiHandlerStruct->Handler = (UINTN)SmiHandler->Handler;\r
- SmiHandlerStruct->ImageRef = AddressToImageRef((UINTN)SmiHandler->Handler);\r
+\r
+ SmiHandlerStruct->Length = (UINT32)(sizeof (SMM_CORE_SMI_HANDLER_STRUCTURE) + GET_OCCUPIED_SIZE (SmiHandler->ContextSize, sizeof (UINT64)));\r
+ SmiHandlerStruct->CallerAddr = (UINTN)SmiHandler->CallerAddr;\r
+ SmiHandlerStruct->Handler = (UINTN)SmiHandler->Handler;\r
+ SmiHandlerStruct->ImageRef = AddressToImageRef ((UINTN)SmiHandler->Handler);\r
SmiHandlerStruct->ContextBufferSize = (UINT32)SmiHandler->ContextSize;\r
if (SmiHandler->ContextSize != 0) {\r
- SmiHandlerStruct->ContextBufferOffset = sizeof(SMM_CORE_SMI_HANDLER_STRUCTURE);\r
+ SmiHandlerStruct->ContextBufferOffset = sizeof (SMM_CORE_SMI_HANDLER_STRUCTURE);\r
CopyMem ((UINT8 *)SmiHandlerStruct + SmiHandlerStruct->ContextBufferOffset, SmiHandler->Context, SmiHandler->ContextSize);\r
} else {\r
SmiHandlerStruct->ContextBufferOffset = 0;\r
}\r
- Size += sizeof(SMM_CORE_SMI_HANDLER_STRUCTURE) + GET_OCCUPIED_SIZE (SmiHandler->ContextSize, sizeof (UINT64));\r
+\r
+ Size += sizeof (SMM_CORE_SMI_HANDLER_STRUCTURE) + GET_OCCUPIED_SIZE (SmiHandler->ContextSize, sizeof (UINT64));\r
SmiHandlerStruct = (SMM_CORE_SMI_HANDLER_STRUCTURE *)((UINTN)SmiHandlerStruct + SmiHandlerStruct->Length);\r
- *Count = *Count + 1;\r
+ *Count = *Count + 1;\r
}\r
\r
return Size;\r
@return all SMI database size on the SMI entry list.\r
**/\r
UINTN\r
-GetSmmSmiDatabaseData(\r
- IN LIST_ENTRY *SmiEntryList,\r
- IN UINT32 HandlerCategory,\r
- IN OUT VOID *Data,\r
- IN UINTN ExpectedSize\r
+GetSmmSmiDatabaseData (\r
+ IN LIST_ENTRY *SmiEntryList,\r
+ IN UINT32 HandlerCategory,\r
+ IN OUT VOID *Data,\r
+ IN UINTN ExpectedSize\r
)\r
{\r
- SMM_CORE_SMI_DATABASE_STRUCTURE *SmiStruct;\r
- LIST_ENTRY *ListEntry;\r
- SMI_ENTRY *SmiEntry;\r
- UINTN Size;\r
- UINTN SmiHandlerSize;\r
- UINT32 SmiHandlerCount;\r
+ SMM_CORE_SMI_DATABASE_STRUCTURE *SmiStruct;\r
+ LIST_ENTRY *ListEntry;\r
+ SMI_ENTRY *SmiEntry;\r
+ UINTN Size;\r
+ UINTN SmiHandlerSize;\r
+ UINT32 SmiHandlerCount;\r
\r
SmiStruct = Data;\r
- Size = 0;\r
+ Size = 0;\r
ListEntry = SmiEntryList;\r
for (ListEntry = ListEntry->ForwardLink;\r
ListEntry != SmiEntryList;\r
- ListEntry = ListEntry->ForwardLink) {\r
- SmiEntry = CR(ListEntry, SMI_ENTRY, AllEntries, SMI_ENTRY_SIGNATURE);\r
+ ListEntry = ListEntry->ForwardLink)\r
+ {\r
+ SmiEntry = CR (ListEntry, SMI_ENTRY, AllEntries, SMI_ENTRY_SIGNATURE);\r
if (Size >= ExpectedSize) {\r
return 0;\r
}\r
- if (sizeof(SMM_CORE_SMI_DATABASE_STRUCTURE) > ExpectedSize - Size) {\r
+\r
+ if (sizeof (SMM_CORE_SMI_DATABASE_STRUCTURE) > ExpectedSize - Size) {\r
return 0;\r
}\r
\r
SmiStruct->Header.Signature = SMM_CORE_SMI_DATABASE_SIGNATURE;\r
- SmiStruct->Header.Length = sizeof(SMM_CORE_SMI_DATABASE_STRUCTURE);\r
- SmiStruct->Header.Revision = SMM_CORE_SMI_DATABASE_REVISION;\r
- SmiStruct->HandlerCategory = HandlerCategory;\r
- CopyGuid(&SmiStruct->HandlerType, &SmiEntry->HandlerType);\r
- Size += sizeof(SMM_CORE_SMI_DATABASE_STRUCTURE);\r
- SmiHandlerSize = GetSmmSmiHandlerDataOnSmiEntry(SmiEntry, (UINT8 *)SmiStruct + SmiStruct->Header.Length, ExpectedSize - Size, &SmiHandlerCount);\r
- SmiStruct->HandlerCount = SmiHandlerCount;\r
- Size += SmiHandlerSize;\r
+ SmiStruct->Header.Length = sizeof (SMM_CORE_SMI_DATABASE_STRUCTURE);\r
+ SmiStruct->Header.Revision = SMM_CORE_SMI_DATABASE_REVISION;\r
+ SmiStruct->HandlerCategory = HandlerCategory;\r
+ CopyGuid (&SmiStruct->HandlerType, &SmiEntry->HandlerType);\r
+ Size += sizeof (SMM_CORE_SMI_DATABASE_STRUCTURE);\r
+ SmiHandlerSize = GetSmmSmiHandlerDataOnSmiEntry (SmiEntry, (UINT8 *)SmiStruct + SmiStruct->Header.Length, ExpectedSize - Size, &SmiHandlerCount);\r
+ SmiStruct->HandlerCount = SmiHandlerCount;\r
+ Size += SmiHandlerSize;\r
SmiStruct->Header.Length += (UINT32)SmiHandlerSize;\r
- SmiStruct = (VOID *)((UINTN)SmiStruct + SmiStruct->Header.Length);\r
+ SmiStruct = (VOID *)((UINTN)SmiStruct + SmiStruct->Header.Length);\r
}\r
+\r
if (ExpectedSize != Size) {\r
return 0;\r
}\r
+\r
return Size;\r
}\r
\r
@retval EFI_INVALID_PARAMETER the database size mismatch.\r
**/\r
EFI_STATUS\r
-GetSmiHandlerProfileDatabaseData(\r
- IN OUT VOID *Data\r
+GetSmiHandlerProfileDatabaseData (\r
+ IN OUT VOID *Data\r
)\r
{\r
UINTN SmmImageDatabaseSize;\r
UINTN SmmRootSmiDatabaseSize;\r
UINTN SmmHardwareSmiDatabaseSize;\r
\r
- DEBUG((DEBUG_VERBOSE, "GetSmiHandlerProfileDatabaseData\n"));\r
- SmmImageDatabaseSize = GetSmmImageDatabaseData(Data, mSmmImageDatabaseSize);\r
+ DEBUG ((DEBUG_VERBOSE, "GetSmiHandlerProfileDatabaseData\n"));\r
+ SmmImageDatabaseSize = GetSmmImageDatabaseData (Data, mSmmImageDatabaseSize);\r
if (SmmImageDatabaseSize != mSmmImageDatabaseSize) {\r
- DEBUG((DEBUG_ERROR, "GetSmiHandlerProfileDatabaseData - SmmImageDatabaseSize mismatch!\n"));\r
+ DEBUG ((DEBUG_ERROR, "GetSmiHandlerProfileDatabaseData - SmmImageDatabaseSize mismatch!\n"));\r
return EFI_INVALID_PARAMETER;\r
}\r
- SmmRootSmiDatabaseSize = GetSmmSmiDatabaseData(mSmmCoreRootSmiEntryList, SmmCoreSmiHandlerCategoryRootHandler, (UINT8 *)Data + SmmImageDatabaseSize, mSmmRootSmiDatabaseSize);\r
+\r
+ SmmRootSmiDatabaseSize = GetSmmSmiDatabaseData (mSmmCoreRootSmiEntryList, SmmCoreSmiHandlerCategoryRootHandler, (UINT8 *)Data + SmmImageDatabaseSize, mSmmRootSmiDatabaseSize);\r
if (SmmRootSmiDatabaseSize != mSmmRootSmiDatabaseSize) {\r
- DEBUG((DEBUG_ERROR, "GetSmiHandlerProfileDatabaseData - SmmRootSmiDatabaseSize mismatch!\n"));\r
+ DEBUG ((DEBUG_ERROR, "GetSmiHandlerProfileDatabaseData - SmmRootSmiDatabaseSize mismatch!\n"));\r
return EFI_INVALID_PARAMETER;\r
}\r
- SmmSmiDatabaseSize = GetSmmSmiDatabaseData(mSmmCoreSmiEntryList, SmmCoreSmiHandlerCategoryGuidHandler, (UINT8 *)Data + SmmImageDatabaseSize + mSmmRootSmiDatabaseSize, mSmmSmiDatabaseSize);\r
+\r
+ SmmSmiDatabaseSize = GetSmmSmiDatabaseData (mSmmCoreSmiEntryList, SmmCoreSmiHandlerCategoryGuidHandler, (UINT8 *)Data + SmmImageDatabaseSize + mSmmRootSmiDatabaseSize, mSmmSmiDatabaseSize);\r
if (SmmSmiDatabaseSize != mSmmSmiDatabaseSize) {\r
- DEBUG((DEBUG_ERROR, "GetSmiHandlerProfileDatabaseData - SmmSmiDatabaseSize mismatch!\n"));\r
+ DEBUG ((DEBUG_ERROR, "GetSmiHandlerProfileDatabaseData - SmmSmiDatabaseSize mismatch!\n"));\r
return EFI_INVALID_PARAMETER;\r
}\r
- SmmHardwareSmiDatabaseSize = GetSmmSmiDatabaseData(mSmmCoreHardwareSmiEntryList, SmmCoreSmiHandlerCategoryHardwareHandler, (UINT8 *)Data + SmmImageDatabaseSize + SmmRootSmiDatabaseSize + SmmSmiDatabaseSize, mSmmHardwareSmiDatabaseSize);\r
+\r
+ SmmHardwareSmiDatabaseSize = GetSmmSmiDatabaseData (mSmmCoreHardwareSmiEntryList, SmmCoreSmiHandlerCategoryHardwareHandler, (UINT8 *)Data + SmmImageDatabaseSize + SmmRootSmiDatabaseSize + SmmSmiDatabaseSize, mSmmHardwareSmiDatabaseSize);\r
if (SmmHardwareSmiDatabaseSize != mSmmHardwareSmiDatabaseSize) {\r
- DEBUG((DEBUG_ERROR, "GetSmiHandlerProfileDatabaseData - SmmHardwareSmiDatabaseSize mismatch!\n"));\r
+ DEBUG ((DEBUG_ERROR, "GetSmiHandlerProfileDatabaseData - SmmHardwareSmiDatabaseSize mismatch!\n"));\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
build SMI handler profile database.\r
**/\r
VOID\r
-BuildSmiHandlerProfileDatabase(\r
+BuildSmiHandlerProfileDatabase (\r
VOID\r
)\r
{\r
EFI_STATUS Status;\r
- mSmiHandlerProfileDatabaseSize = GetSmiHandlerProfileDatabaseSize();\r
- mSmiHandlerProfileDatabase = AllocatePool(mSmiHandlerProfileDatabaseSize);\r
+\r
+ mSmiHandlerProfileDatabaseSize = GetSmiHandlerProfileDatabaseSize ();\r
+ mSmiHandlerProfileDatabase = AllocatePool (mSmiHandlerProfileDatabaseSize);\r
if (mSmiHandlerProfileDatabase == NULL) {\r
return;\r
}\r
- Status = GetSmiHandlerProfileDatabaseData(mSmiHandlerProfileDatabase);\r
- if (EFI_ERROR(Status)) {\r
- FreePool(mSmiHandlerProfileDatabase);\r
+\r
+ Status = GetSmiHandlerProfileDatabaseData (mSmiHandlerProfileDatabase);\r
+ if (EFI_ERROR (Status)) {\r
+ FreePool (mSmiHandlerProfileDatabase);\r
mSmiHandlerProfileDatabase = NULL;\r
}\r
}\r
\r
**/\r
VOID\r
-SmiHandlerProfileCopyData(\r
- OUT VOID *DataBuffer,\r
- IN OUT UINT64 *DataSize,\r
- IN OUT UINT64 *DataOffset\r
+SmiHandlerProfileCopyData (\r
+ OUT VOID *DataBuffer,\r
+ IN OUT UINT64 *DataSize,\r
+ IN OUT UINT64 *DataOffset\r
)\r
{\r
if (*DataOffset >= mSmiHandlerProfileDatabaseSize) {\r
*DataOffset = mSmiHandlerProfileDatabaseSize;\r
return;\r
}\r
+\r
if (mSmiHandlerProfileDatabaseSize - *DataOffset < *DataSize) {\r
*DataSize = mSmiHandlerProfileDatabaseSize - *DataOffset;\r
}\r
\r
- CopyMem(\r
+ CopyMem (\r
DataBuffer,\r
(UINT8 *)mSmiHandlerProfileDatabase + *DataOffset,\r
(UINTN)*DataSize\r
\r
**/\r
VOID\r
-SmiHandlerProfileHandlerGetInfo(\r
- IN SMI_HANDLER_PROFILE_PARAMETER_GET_INFO *SmiHandlerProfileParameterGetInfo\r
+SmiHandlerProfileHandlerGetInfo (\r
+ IN SMI_HANDLER_PROFILE_PARAMETER_GET_INFO *SmiHandlerProfileParameterGetInfo\r
)\r
{\r
- BOOLEAN SmiHandlerProfileRecordingStatus;\r
+ BOOLEAN SmiHandlerProfileRecordingStatus;\r
\r
- SmiHandlerProfileRecordingStatus = mSmiHandlerProfileRecordingStatus;\r
+ SmiHandlerProfileRecordingStatus = mSmiHandlerProfileRecordingStatus;\r
mSmiHandlerProfileRecordingStatus = FALSE;\r
\r
- SmiHandlerProfileParameterGetInfo->DataSize = mSmiHandlerProfileDatabaseSize;\r
+ SmiHandlerProfileParameterGetInfo->DataSize = mSmiHandlerProfileDatabaseSize;\r
SmiHandlerProfileParameterGetInfo->Header.ReturnStatus = 0;\r
\r
mSmiHandlerProfileRecordingStatus = SmiHandlerProfileRecordingStatus;\r
\r
**/\r
VOID\r
-SmiHandlerProfileHandlerGetDataByOffset(\r
- IN SMI_HANDLER_PROFILE_PARAMETER_GET_DATA_BY_OFFSET *SmiHandlerProfileParameterGetDataByOffset\r
+SmiHandlerProfileHandlerGetDataByOffset (\r
+ IN SMI_HANDLER_PROFILE_PARAMETER_GET_DATA_BY_OFFSET *SmiHandlerProfileParameterGetDataByOffset\r
)\r
{\r
- SMI_HANDLER_PROFILE_PARAMETER_GET_DATA_BY_OFFSET SmiHandlerProfileGetDataByOffset;\r
- BOOLEAN SmiHandlerProfileRecordingStatus;\r
+ SMI_HANDLER_PROFILE_PARAMETER_GET_DATA_BY_OFFSET SmiHandlerProfileGetDataByOffset;\r
+ BOOLEAN SmiHandlerProfileRecordingStatus;\r
\r
- SmiHandlerProfileRecordingStatus = mSmiHandlerProfileRecordingStatus;\r
+ SmiHandlerProfileRecordingStatus = mSmiHandlerProfileRecordingStatus;\r
mSmiHandlerProfileRecordingStatus = FALSE;\r
\r
- CopyMem(&SmiHandlerProfileGetDataByOffset, SmiHandlerProfileParameterGetDataByOffset, sizeof(SmiHandlerProfileGetDataByOffset));\r
+ CopyMem (&SmiHandlerProfileGetDataByOffset, SmiHandlerProfileParameterGetDataByOffset, sizeof (SmiHandlerProfileGetDataByOffset));\r
\r
//\r
// Sanity check\r
//\r
- if (!SmmIsBufferOutsideSmmValid((UINTN)SmiHandlerProfileGetDataByOffset.DataBuffer, (UINTN)SmiHandlerProfileGetDataByOffset.DataSize)) {\r
- DEBUG((DEBUG_ERROR, "SmiHandlerProfileHandlerGetDataByOffset: SMI handler profile get data in SMRAM or overflow!\n"));\r
+ if (!SmmIsBufferOutsideSmmValid ((UINTN)SmiHandlerProfileGetDataByOffset.DataBuffer, (UINTN)SmiHandlerProfileGetDataByOffset.DataSize)) {\r
+ DEBUG ((DEBUG_ERROR, "SmiHandlerProfileHandlerGetDataByOffset: SMI handler profile get data in SMRAM or overflow!\n"));\r
SmiHandlerProfileParameterGetDataByOffset->Header.ReturnStatus = (UINT64)(INT64)(INTN)EFI_ACCESS_DENIED;\r
goto Done;\r
}\r
\r
- SmiHandlerProfileCopyData((VOID *)(UINTN)SmiHandlerProfileGetDataByOffset.DataBuffer, &SmiHandlerProfileGetDataByOffset.DataSize, &SmiHandlerProfileGetDataByOffset.DataOffset);\r
- CopyMem(SmiHandlerProfileParameterGetDataByOffset, &SmiHandlerProfileGetDataByOffset, sizeof(SmiHandlerProfileGetDataByOffset));\r
+ SmiHandlerProfileCopyData ((VOID *)(UINTN)SmiHandlerProfileGetDataByOffset.DataBuffer, &SmiHandlerProfileGetDataByOffset.DataSize, &SmiHandlerProfileGetDataByOffset.DataOffset);\r
+ CopyMem (SmiHandlerProfileParameterGetDataByOffset, &SmiHandlerProfileGetDataByOffset, sizeof (SmiHandlerProfileGetDataByOffset));\r
SmiHandlerProfileParameterGetDataByOffset->Header.ReturnStatus = 0;\r
\r
Done:\r
**/\r
EFI_STATUS\r
EFIAPI\r
-SmiHandlerProfileHandler(\r
+SmiHandlerProfileHandler (\r
IN EFI_HANDLE DispatchHandle,\r
IN CONST VOID *Context OPTIONAL,\r
IN OUT VOID *CommBuffer OPTIONAL,\r
IN OUT UINTN *CommBufferSize OPTIONAL\r
)\r
{\r
- SMI_HANDLER_PROFILE_PARAMETER_HEADER *SmiHandlerProfileParameterHeader;\r
- UINTN TempCommBufferSize;\r
+ SMI_HANDLER_PROFILE_PARAMETER_HEADER *SmiHandlerProfileParameterHeader;\r
+ UINTN TempCommBufferSize;\r
\r
- DEBUG((DEBUG_ERROR, "SmiHandlerProfileHandler Enter\n"));\r
+ DEBUG ((DEBUG_ERROR, "SmiHandlerProfileHandler Enter\n"));\r
\r
if (mSmiHandlerProfileDatabase == NULL) {\r
return EFI_SUCCESS;\r
//\r
// If input is invalid, stop processing this SMI\r
//\r
- if (CommBuffer == NULL || CommBufferSize == NULL) {\r
+ if ((CommBuffer == NULL) || (CommBufferSize == NULL)) {\r
return EFI_SUCCESS;\r
}\r
\r
TempCommBufferSize = *CommBufferSize;\r
\r
- if (TempCommBufferSize < sizeof(SMI_HANDLER_PROFILE_PARAMETER_HEADER)) {\r
- DEBUG((DEBUG_ERROR, "SmiHandlerProfileHandler: SMM communication buffer size invalid!\n"));\r
+ if (TempCommBufferSize < sizeof (SMI_HANDLER_PROFILE_PARAMETER_HEADER)) {\r
+ DEBUG ((DEBUG_ERROR, "SmiHandlerProfileHandler: SMM communication buffer size invalid!\n"));\r
return EFI_SUCCESS;\r
}\r
\r
- if (!SmmIsBufferOutsideSmmValid((UINTN)CommBuffer, TempCommBufferSize)) {\r
- DEBUG((DEBUG_ERROR, "SmiHandlerProfileHandler: SMM communication buffer in SMRAM or overflow!\n"));\r
+ if (!SmmIsBufferOutsideSmmValid ((UINTN)CommBuffer, TempCommBufferSize)) {\r
+ DEBUG ((DEBUG_ERROR, "SmiHandlerProfileHandler: SMM communication buffer in SMRAM or overflow!\n"));\r
return EFI_SUCCESS;\r
}\r
\r
- SmiHandlerProfileParameterHeader = (SMI_HANDLER_PROFILE_PARAMETER_HEADER *)((UINTN)CommBuffer);\r
+ SmiHandlerProfileParameterHeader = (SMI_HANDLER_PROFILE_PARAMETER_HEADER *)((UINTN)CommBuffer);\r
SmiHandlerProfileParameterHeader->ReturnStatus = (UINT64)-1;\r
\r
switch (SmiHandlerProfileParameterHeader->Command) {\r
- case SMI_HANDLER_PROFILE_COMMAND_GET_INFO:\r
- DEBUG((DEBUG_ERROR, "SmiHandlerProfileHandlerGetInfo\n"));\r
- if (TempCommBufferSize != sizeof(SMI_HANDLER_PROFILE_PARAMETER_GET_INFO)) {\r
- DEBUG((DEBUG_ERROR, "SmiHandlerProfileHandler: SMM communication buffer size invalid!\n"));\r
- return EFI_SUCCESS;\r
- }\r
- SmiHandlerProfileHandlerGetInfo((SMI_HANDLER_PROFILE_PARAMETER_GET_INFO *)(UINTN)CommBuffer);\r
- break;\r
- case SMI_HANDLER_PROFILE_COMMAND_GET_DATA_BY_OFFSET:\r
- DEBUG((DEBUG_ERROR, "SmiHandlerProfileHandlerGetDataByOffset\n"));\r
- if (TempCommBufferSize != sizeof(SMI_HANDLER_PROFILE_PARAMETER_GET_DATA_BY_OFFSET)) {\r
- DEBUG((DEBUG_ERROR, "SmiHandlerProfileHandler: SMM communication buffer size invalid!\n"));\r
- return EFI_SUCCESS;\r
- }\r
- SmiHandlerProfileHandlerGetDataByOffset((SMI_HANDLER_PROFILE_PARAMETER_GET_DATA_BY_OFFSET *)(UINTN)CommBuffer);\r
- break;\r
- default:\r
- break;\r
+ case SMI_HANDLER_PROFILE_COMMAND_GET_INFO:\r
+ DEBUG ((DEBUG_ERROR, "SmiHandlerProfileHandlerGetInfo\n"));\r
+ if (TempCommBufferSize != sizeof (SMI_HANDLER_PROFILE_PARAMETER_GET_INFO)) {\r
+ DEBUG ((DEBUG_ERROR, "SmiHandlerProfileHandler: SMM communication buffer size invalid!\n"));\r
+ return EFI_SUCCESS;\r
+ }\r
+\r
+ SmiHandlerProfileHandlerGetInfo ((SMI_HANDLER_PROFILE_PARAMETER_GET_INFO *)(UINTN)CommBuffer);\r
+ break;\r
+ case SMI_HANDLER_PROFILE_COMMAND_GET_DATA_BY_OFFSET:\r
+ DEBUG ((DEBUG_ERROR, "SmiHandlerProfileHandlerGetDataByOffset\n"));\r
+ if (TempCommBufferSize != sizeof (SMI_HANDLER_PROFILE_PARAMETER_GET_DATA_BY_OFFSET)) {\r
+ DEBUG ((DEBUG_ERROR, "SmiHandlerProfileHandler: SMM communication buffer size invalid!\n"));\r
+ return EFI_SUCCESS;\r
+ }\r
+\r
+ SmiHandlerProfileHandlerGetDataByOffset ((SMI_HANDLER_PROFILE_PARAMETER_GET_DATA_BY_OFFSET *)(UINTN)CommBuffer);\r
+ break;\r
+ default:\r
+ break;\r
}\r
\r
- DEBUG((DEBUG_ERROR, "SmiHandlerProfileHandler Exit\n"));\r
+ DEBUG ((DEBUG_ERROR, "SmiHandlerProfileHandler Exit\n"));\r
\r
return EFI_SUCCESS;\r
}\r
VOID\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_HANDLE DispatchHandle;\r
+ EFI_STATUS Status;\r
+ EFI_HANDLE DispatchHandle;\r
\r
Status = gSmst->SmiHandlerRegister (\r
SmiHandlerProfileHandler,\r
);\r
ASSERT_EFI_ERROR (Status);\r
\r
- BuildSmiHandlerProfileDatabase();\r
+ BuildSmiHandlerProfileDatabase ();\r
}\r
\r
/**\r
SmiEntry = NULL;\r
for (Link = mHardwareSmiEntryList.ForwardLink;\r
Link != &mHardwareSmiEntryList;\r
- Link = Link->ForwardLink) {\r
-\r
+ Link = Link->ForwardLink)\r
+ {\r
Item = CR (Link, SMI_ENTRY, AllEntries, SMI_ENTRY_SIGNATURE);\r
if (CompareGuid (&Item->HandlerType, HandlerType)) {\r
//\r
// allocate a new entry\r
//\r
if ((SmiEntry == NULL) && Create) {\r
- SmiEntry = AllocatePool (sizeof(SMI_ENTRY));\r
+ SmiEntry = AllocatePool (sizeof (SMI_ENTRY));\r
if (SmiEntry != NULL) {\r
//\r
// Initialize new SMI entry structure\r
InsertTailList (&mHardwareSmiEntryList, &SmiEntry->AllEntries);\r
}\r
}\r
+\r
return SmiEntry;\r
}\r
\r
**/\r
SMI_HANDLER_PROFILE_USB_REGISTER_CONTEXT *\r
ConvertSmiHandlerUsbContext (\r
- IN EFI_SMM_USB_REGISTER_CONTEXT *UsbContext,\r
- IN UINTN UsbContextSize,\r
- OUT UINTN *SmiHandlerUsbContextSize\r
+ IN EFI_SMM_USB_REGISTER_CONTEXT *UsbContext,\r
+ IN UINTN UsbContextSize,\r
+ OUT UINTN *SmiHandlerUsbContextSize\r
)\r
{\r
UINTN DevicePathSize;\r
SMI_HANDLER_PROFILE_USB_REGISTER_CONTEXT *SmiHandlerUsbContext;\r
\r
- ASSERT (UsbContextSize == sizeof(EFI_SMM_USB_REGISTER_CONTEXT));\r
+ ASSERT (UsbContextSize == sizeof (EFI_SMM_USB_REGISTER_CONTEXT));\r
\r
- DevicePathSize = GetDevicePathSize (UsbContext->Device);\r
+ DevicePathSize = GetDevicePathSize (UsbContext->Device);\r
SmiHandlerUsbContext = AllocatePool (sizeof (SMI_HANDLER_PROFILE_USB_REGISTER_CONTEXT) + DevicePathSize);\r
if (SmiHandlerUsbContext == NULL) {\r
*SmiHandlerUsbContextSize = 0;\r
return NULL;\r
}\r
- SmiHandlerUsbContext->Type = UsbContext->Type;\r
+\r
+ SmiHandlerUsbContext->Type = UsbContext->Type;\r
SmiHandlerUsbContext->DevicePathSize = (UINT32)DevicePathSize;\r
CopyMem (SmiHandlerUsbContext + 1, UsbContext->Device, DevicePathSize);\r
*SmiHandlerUsbContextSize = sizeof (SMI_HANDLER_PROFILE_USB_REGISTER_CONTEXT) + DevicePathSize;\r
**/\r
SMI_HANDLER_PROFILE_SW_REGISTER_CONTEXT *\r
ConvertSmiHandlerSwContext (\r
- IN EFI_SMM_SW_REGISTER_CONTEXT *SwContext,\r
- IN UINTN SwContextSize,\r
- OUT UINTN *SmiHandlerSwContextSize\r
+ IN EFI_SMM_SW_REGISTER_CONTEXT *SwContext,\r
+ IN UINTN SwContextSize,\r
+ OUT UINTN *SmiHandlerSwContextSize\r
)\r
{\r
SMI_HANDLER_PROFILE_SW_REGISTER_CONTEXT *SmiHandlerSwContext;\r
\r
- ASSERT (SwContextSize == sizeof(EFI_SMM_SW_REGISTER_CONTEXT));\r
+ ASSERT (SwContextSize == sizeof (EFI_SMM_SW_REGISTER_CONTEXT));\r
\r
SmiHandlerSwContext = AllocatePool (sizeof (SMI_HANDLER_PROFILE_SW_REGISTER_CONTEXT));\r
if (SmiHandlerSwContext == NULL) {\r
*SmiHandlerSwContextSize = 0;\r
return NULL;\r
}\r
+\r
SmiHandlerSwContext->SwSmiInputValue = SwContext->SwSmiInputValue;\r
- *SmiHandlerSwContextSize = sizeof (SMI_HANDLER_PROFILE_SW_REGISTER_CONTEXT);\r
+ *SmiHandlerSwContextSize = sizeof (SMI_HANDLER_PROFILE_SW_REGISTER_CONTEXT);\r
return SmiHandlerSwContext;\r
}\r
\r
EFI_STATUS\r
EFIAPI\r
SmiHandlerProfileRegisterHandler (\r
- IN SMI_HANDLER_PROFILE_PROTOCOL *This,\r
- IN EFI_GUID *HandlerGuid,\r
- IN EFI_SMM_HANDLER_ENTRY_POINT2 Handler,\r
- IN PHYSICAL_ADDRESS CallerAddress,\r
- IN VOID *Context OPTIONAL,\r
- IN UINTN ContextSize OPTIONAL\r
+ IN SMI_HANDLER_PROFILE_PROTOCOL *This,\r
+ IN EFI_GUID *HandlerGuid,\r
+ IN EFI_SMM_HANDLER_ENTRY_POINT2 Handler,\r
+ IN PHYSICAL_ADDRESS CallerAddress,\r
+ IN VOID *Context OPTIONAL,\r
+ IN UINTN ContextSize OPTIONAL\r
)\r
{\r
SMI_HANDLER *SmiHandler;\r
LIST_ENTRY *List;\r
\r
if (((ContextSize == 0) && (Context != NULL)) ||\r
- ((ContextSize != 0) && (Context == NULL))) {\r
+ ((ContextSize != 0) && (Context == NULL)))\r
+ {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
return EFI_OUT_OF_RESOURCES;\r
}\r
\r
- SmiHandler->Signature = SMI_HANDLER_SIGNATURE;\r
- SmiHandler->Handler = Handler;\r
- SmiHandler->CallerAddr = (UINTN)CallerAddress;\r
- SmiHandler->Context = Context;\r
+ SmiHandler->Signature = SMI_HANDLER_SIGNATURE;\r
+ SmiHandler->Handler = Handler;\r
+ SmiHandler->CallerAddr = (UINTN)CallerAddress;\r
+ SmiHandler->Context = Context;\r
SmiHandler->ContextSize = ContextSize;\r
\r
if (Context != NULL) {\r
SmiHandler->Context = AllocateCopyPool (ContextSize, Context);\r
}\r
}\r
+\r
if (SmiHandler->Context == NULL) {\r
SmiHandler->ContextSize = 0;\r
}\r
if (SmiHandler->Context != NULL) {\r
FreePool (SmiHandler->Context);\r
}\r
+\r
FreePool (SmiHandler);\r
return EFI_OUT_OF_RESOURCES;\r
}\r
EFI_STATUS\r
EFIAPI\r
SmiHandlerProfileUnregisterHandler (\r
- IN SMI_HANDLER_PROFILE_PROTOCOL *This,\r
- IN EFI_GUID *HandlerGuid,\r
- IN EFI_SMM_HANDLER_ENTRY_POINT2 Handler,\r
- IN VOID *Context OPTIONAL,\r
- IN UINTN ContextSize OPTIONAL\r
+ IN SMI_HANDLER_PROFILE_PROTOCOL *This,\r
+ IN EFI_GUID *HandlerGuid,\r
+ IN EFI_SMM_HANDLER_ENTRY_POINT2 Handler,\r
+ IN VOID *Context OPTIONAL,\r
+ IN UINTN ContextSize OPTIONAL\r
)\r
{\r
LIST_ENTRY *Link;\r
UINTN SearchContextSize;\r
\r
if (((ContextSize == 0) && (Context != NULL)) ||\r
- ((ContextSize != 0) && (Context == NULL))) {\r
+ ((ContextSize != 0) && (Context == NULL)))\r
+ {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
return EFI_NOT_FOUND;\r
}\r
\r
- SearchContext = Context;\r
+ SearchContext = Context;\r
SearchContextSize = ContextSize;\r
if (Context != NULL) {\r
if (CompareGuid (HandlerGuid, &gEfiSmmUsbDispatch2ProtocolGuid)) {\r
}\r
\r
TargetSmiHandler = NULL;\r
- Head = &SmiEntry->SmiHandlers;\r
+ Head = &SmiEntry->SmiHandlers;\r
for (Link = Head->ForwardLink; Link != Head; Link = Link->ForwardLink) {\r
SmiHandler = CR (Link, SMI_HANDLER, Link, SMI_HANDLER_SIGNATURE);\r
if (SmiHandler->Handler == Handler) {\r
if ((SearchContext == NULL) ||\r
- ((SearchContextSize == SmiHandler->ContextSize) && (CompareMem (SearchContext, SmiHandler->Context, SearchContextSize) == 0))) {\r
+ ((SearchContextSize == SmiHandler->ContextSize) && (CompareMem (SearchContext, SmiHandler->Context, SearchContextSize) == 0)))\r
+ {\r
TargetSmiHandler = SmiHandler;\r
break;\r
}\r
if (TargetSmiHandler == NULL) {\r
return EFI_NOT_FOUND;\r
}\r
+\r
SmiHandler = TargetSmiHandler;\r
\r
RemoveEntryList (&SmiHandler->Link);\r
if (SmiHandler->Context != NULL) {\r
FreePool (SmiHandler->Context);\r
}\r
+\r
FreePool (SmiHandler);\r
\r
if (IsListEmpty (&SmiEntry->SmiHandlers)) {\r