#include <Protocol/FirmwareManagement.h>\r
#include <Protocol/DevicePath.h>\r
\r
-EFI_SYSTEM_RESOURCE_TABLE *mEsrtTable = NULL;\r
-BOOLEAN mIsVirtualAddrConverted = FALSE;\r
-BOOLEAN mDxeCapsuleLibEndOfDxe = FALSE;\r
+BOOLEAN mDxeCapsuleLibEndOfDxe = FALSE;\r
+EFI_EVENT mDxeCapsuleLibEndOfDxeEvent = NULL;\r
\r
/**\r
Initialize capsule related variables.\r
EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;\r
\r
ImagePayload = (DISPLAY_DISPLAY_PAYLOAD *)(CapsuleHeader + 1);\r
- PayloadSize = (UINTN)(CapsuleHeader->CapsuleImageSize - sizeof(EFI_CAPSULE_HEADER));\r
+ PayloadSize = CapsuleHeader->CapsuleImageSize - sizeof(EFI_CAPSULE_HEADER);\r
\r
if (ImagePayload->Version != 1) {\r
return EFI_UNSUPPORTED;\r
for (Index = 0; Index < FmpCapsuleHeader->EmbeddedDriverCount; Index++) {\r
DEBUG((DEBUG_VERBOSE, " ItemOffsetList[%d] - 0x%lx\n", Index, ItemOffsetList[Index]));\r
}\r
- for (; Index < (UINTN)(FmpCapsuleHeader->EmbeddedDriverCount + FmpCapsuleHeader->PayloadItemCount); Index++) {\r
+ for (; Index < (UINT32)FmpCapsuleHeader->EmbeddedDriverCount + FmpCapsuleHeader->PayloadItemCount; Index++) {\r
DEBUG((DEBUG_VERBOSE, " ItemOffsetList[%d] - 0x%lx\n", Index, ItemOffsetList[Index]));\r
ImageHeader = (EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER *)((UINT8 *)FmpCapsuleHeader + ItemOffsetList[Index]);\r
\r
IN EFI_SYSTEM_TABLE *SystemTable\r
)\r
{\r
- EFI_EVENT EndOfDxeEvent;\r
EFI_STATUS Status;\r
\r
Status = gBS->CreateEventEx (\r
DxeCapsuleLibEndOfDxe,\r
NULL,\r
&gEfiEndOfDxeEventGroupGuid,\r
- &EndOfDxeEvent\r
+ &mDxeCapsuleLibEndOfDxeEvent\r
);\r
ASSERT_EFI_ERROR (Status);\r
\r
\r
return EFI_SUCCESS;\r
}\r
+\r
+/**\r
+ The destructor function closes the End of DXE event.\r
+\r
+ @param ImageHandle The firmware allocated handle for the EFI image.\r
+ @param SystemTable A pointer to the EFI System Table.\r
+\r
+ @retval EFI_SUCCESS The destructor completed successfully.\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+DxeCapsuleLibDestructor (\r
+ IN EFI_HANDLE ImageHandle,\r
+ IN EFI_SYSTEM_TABLE *SystemTable\r
+ )\r
+{\r
+ EFI_STATUS Status;\r
+\r
+ //\r
+ // Close the End of DXE event.\r
+ //\r
+ Status = gBS->CloseEvent (mDxeCapsuleLibEndOfDxeEvent);\r
+ ASSERT_EFI_ERROR (Status);\r
+\r
+ return EFI_SUCCESS;\r
+}\r