mSmramProfileGettingStatus = SmramProfileGettingStatus;\r
}\r
\r
-/**\r
- SMRAM profile handler to register SMM image.\r
-\r
- @param SmramProfileParameterRegisterImage The parameter of SMM profile register image.\r
-\r
-**/\r
-VOID\r
-SmramProfileHandlerRegisterImage (\r
- IN SMRAM_PROFILE_PARAMETER_REGISTER_IMAGE *SmramProfileParameterRegisterImage\r
- )\r
-{\r
- EFI_STATUS Status;\r
- EFI_SMM_DRIVER_ENTRY DriverEntry;\r
- VOID *EntryPointInImage;\r
-\r
- ZeroMem (&DriverEntry, sizeof (DriverEntry));\r
- CopyMem (&DriverEntry.FileName, &SmramProfileParameterRegisterImage->FileName, sizeof(EFI_GUID));\r
- DriverEntry.ImageBuffer = SmramProfileParameterRegisterImage->ImageBuffer;\r
- DriverEntry.NumberOfPage = (UINTN) SmramProfileParameterRegisterImage->NumberOfPage;\r
- Status = InternalPeCoffGetEntryPoint ((VOID *) (UINTN) DriverEntry.ImageBuffer, &EntryPointInImage);\r
- ASSERT_EFI_ERROR (Status);\r
- DriverEntry.ImageEntryPoint = (PHYSICAL_ADDRESS) (UINTN) EntryPointInImage;\r
-\r
- Status = RegisterSmramProfileImage (&DriverEntry, FALSE);\r
- if (!EFI_ERROR (Status)) {\r
- SmramProfileParameterRegisterImage->Header.ReturnStatus = 0;\r
- }\r
-}\r
-\r
-/**\r
- SMRAM profile handler to unregister SMM image.\r
-\r
- @param SmramProfileParameterUnregisterImage The parameter of SMM profile unregister image.\r
-\r
-**/\r
-VOID\r
-SmramProfileHandlerUnregisterImage (\r
- IN SMRAM_PROFILE_PARAMETER_UNREGISTER_IMAGE *SmramProfileParameterUnregisterImage\r
- )\r
-{\r
- EFI_STATUS Status;\r
- EFI_SMM_DRIVER_ENTRY DriverEntry;\r
- VOID *EntryPointInImage;\r
-\r
- ZeroMem (&DriverEntry, sizeof (DriverEntry));\r
- CopyMem (&DriverEntry.FileName, &SmramProfileParameterUnregisterImage->FileName, sizeof (EFI_GUID));\r
- DriverEntry.ImageBuffer = SmramProfileParameterUnregisterImage->ImageBuffer;\r
- DriverEntry.NumberOfPage = (UINTN) SmramProfileParameterUnregisterImage->NumberOfPage;\r
- Status = InternalPeCoffGetEntryPoint ((VOID *) (UINTN) DriverEntry.ImageBuffer, &EntryPointInImage);\r
- ASSERT_EFI_ERROR (Status);\r
- DriverEntry.ImageEntryPoint = (PHYSICAL_ADDRESS) (UINTN) EntryPointInImage;\r
-\r
- Status = UnregisterSmramProfileImage (&DriverEntry, FALSE);\r
- if (!EFI_ERROR (Status)) {\r
- SmramProfileParameterUnregisterImage->Header.ReturnStatus = 0;\r
- }\r
-}\r
-\r
/**\r
Dispatch function for a Software SMI handler.\r
\r
}\r
SmramProfileHandlerGetDataByOffset ((SMRAM_PROFILE_PARAMETER_GET_PROFILE_DATA_BY_OFFSET *) (UINTN) CommBuffer);\r
break;\r
- case SMRAM_PROFILE_COMMAND_REGISTER_IMAGE:\r
- DEBUG ((EFI_D_ERROR, "SmramProfileHandlerRegisterImage\n"));\r
- if (TempCommBufferSize != sizeof (SMRAM_PROFILE_PARAMETER_REGISTER_IMAGE)) {\r
- DEBUG ((EFI_D_ERROR, "SmramProfileHandler: SMM communication buffer size invalid!\n"));\r
- return EFI_SUCCESS;\r
- }\r
- if (mSmramReadyToLock) {\r
- return EFI_SUCCESS;\r
- }\r
- SmramProfileHandlerRegisterImage ((SMRAM_PROFILE_PARAMETER_REGISTER_IMAGE *) (UINTN) CommBuffer);\r
- break;\r
- case SMRAM_PROFILE_COMMAND_UNREGISTER_IMAGE:\r
- DEBUG ((EFI_D_ERROR, "SmramProfileHandlerUnregisterImage\n"));\r
- if (TempCommBufferSize != sizeof (SMRAM_PROFILE_PARAMETER_UNREGISTER_IMAGE)) {\r
- DEBUG ((EFI_D_ERROR, "SmramProfileHandler: SMM communication buffer size invalid!\n"));\r
- return EFI_SUCCESS;\r
- }\r
- if (mSmramReadyToLock) {\r
- return EFI_SUCCESS;\r
- }\r
- SmramProfileHandlerUnregisterImage ((SMRAM_PROFILE_PARAMETER_UNREGISTER_IMAGE *) (UINTN) CommBuffer);\r
- break;\r
case SMRAM_PROFILE_COMMAND_GET_RECORDING_STATE:\r
DEBUG ((EFI_D_ERROR, "SmramProfileHandlerGetRecordingState\n"));\r
if (TempCommBufferSize != sizeof (SMRAM_PROFILE_PARAMETER_RECORDING_STATE)) {\r
ParameterRecordingState->Header.ReturnStatus = 0;\r
break;\r
\r
+ //\r
+ // Below 2 commands have been deprecated. They may not be (re-)used.\r
+ //\r
+ case SMRAM_PROFILE_COMMAND_DEPRECATED1:\r
+ case SMRAM_PROFILE_COMMAND_DEPRECATED2:\r
+ ASSERT (FALSE);\r
+ //\r
+ // Fall-through to the default (unrecognized command) case.\r
+ //\r
default:\r
break;\r
}\r