mirror of https://github.com/acidanthera/audk.git
Update module to pass in a valid EFI_HANDLE when is reloads and restarts itself using the PeCoffLib.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11364 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
d042c6e830
commit
ca1677d839
|
@ -2,7 +2,7 @@
|
||||||
Implementation for S3 Boot Script Save thunk driver.
|
Implementation for S3 Boot Script Save thunk driver.
|
||||||
This thunk driver consumes PI S3SaveState protocol to produce framework S3BootScriptSave Protocol
|
This thunk driver consumes PI S3SaveState protocol to produce framework S3BootScriptSave Protocol
|
||||||
|
|
||||||
Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
which accompanies this distribution. The full text of the license may be found at
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
@ -803,6 +803,7 @@ InitializeScriptSaveOnS3SaveState (
|
||||||
VOID *DevicePath;
|
VOID *DevicePath;
|
||||||
EFI_PHYSICAL_ADDRESS MemoryAddress;
|
EFI_PHYSICAL_ADDRESS MemoryAddress;
|
||||||
UINTN PageNumber;
|
UINTN PageNumber;
|
||||||
|
EFI_HANDLE NewImageHandle;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Test if the gEfiCallerIdGuid of this image is already installed. if not, the entry
|
// Test if the gEfiCallerIdGuid of this image is already installed. if not, the entry
|
||||||
|
@ -817,11 +818,12 @@ InitializeScriptSaveOnS3SaveState (
|
||||||
//
|
//
|
||||||
// A workarouond: Here we install a dummy handle
|
// A workarouond: Here we install a dummy handle
|
||||||
//
|
//
|
||||||
|
NewImageHandle = NULL;
|
||||||
Status = gBS->InstallProtocolInterface (
|
Status = gBS->InstallProtocolInterface (
|
||||||
&ImageHandle,
|
&NewImageHandle,
|
||||||
&gEfiCallerIdGuid,
|
&gEfiCallerIdGuid,
|
||||||
EFI_NATIVE_INTERFACE,
|
EFI_NATIVE_INTERFACE,
|
||||||
DevicePath
|
NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
Status = GetSectionFromAnyFv (
|
Status = GetSectionFromAnyFv (
|
||||||
|
@ -881,7 +883,7 @@ InitializeScriptSaveOnS3SaveState (
|
||||||
// Flush the instruction cache so the image data is written before we execute it
|
// Flush the instruction cache so the image data is written before we execute it
|
||||||
//
|
//
|
||||||
InvalidateInstructionCacheRange ((VOID *)(UINTN)ImageContext.ImageAddress, (UINTN)ImageContext.ImageSize);
|
InvalidateInstructionCacheRange ((VOID *)(UINTN)ImageContext.ImageAddress, (UINTN)ImageContext.ImageSize);
|
||||||
Status = ((EFI_IMAGE_ENTRY_POINT)(UINTN)(ImageContext.EntryPoint)) ((EFI_HANDLE)(UINTN)(ImageContext.ImageAddress), SystemTable);
|
Status = ((EFI_IMAGE_ENTRY_POINT)(UINTN)(ImageContext.EntryPoint)) (NewImageHandle, SystemTable);
|
||||||
if (EFI_ERROR (Status)) {
|
if (EFI_ERROR (Status)) {
|
||||||
gBS->FreePages (MemoryAddress, PageNumber);
|
gBS->FreePages (MemoryAddress, PageNumber);
|
||||||
return Status;
|
return Status;
|
||||||
|
|
Loading…
Reference in New Issue