1) Make a slightly better work around for the EdkDxeSalLib by removing constructor from MSA and calling constructor from library functions.

2)	Fix pointer bug in the EdkUefiRuntimeLibrary in the event creation


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2034 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
mdkinney 2006-11-29 03:03:20 +00:00
parent b32a39b328
commit 8572fea91c
3 changed files with 12 additions and 7 deletions

View File

@ -54,9 +54,6 @@
<Externs>
<Specification>EFI_SPECIFICATION_VERSION 0x00020000</Specification>
<Specification>EDK_RELEASE_VERSION 0x00020000</Specification>
<Extern>
<Constructor>DxeSalLibConstruct</Constructor>
</Extern>
<Extern>
<SetVirtualAddressMapCallBack>DxeSalVirtualNotifyEvent</SetVirtualAddressMapCallBack>
</Extern>

View File

@ -19,20 +19,26 @@ Abstract:
#include <Ipf/IpfDefines.h>
BOOLEAN mLibraryInitialized = FALSE;
STATIC EXTENDED_SAL_BOOT_SERVICE_PROTOCOL *mEsalBootService;
STATIC EFI_PLABEL mPlabel;
EFI_STATUS
EFIAPI
DxeSalLibConstruct (
IN EFI_HANDLE ImageHandle,
IN EFI_SYSTEM_TABLE *SystemTable
// IN EFI_HANDLE ImageHandle,
// IN EFI_SYSTEM_TABLE *SystemTable
VOID
)
{
EFI_PLABEL *Plabel;
EFI_STATUS Status;
if (mLibraryInitialized == TRUE) {
return EFI_SUCCESS;
}
mLibraryInitialized = TRUE;
//
// The protocol contains a function pointer, which is an indirect procedure call.
// An indirect procedure call goes through a plabel, and pointer to a function is
@ -109,6 +115,7 @@ Returns:
--*/
{
DxeSalLibConstruct ();
return mEsalBootService->AddExtendedSalProc (
mEsalBootService,
ClassGuid,
@ -217,6 +224,7 @@ Returns:
SAL_RETURN_REGS ReturnReg;
SAL_EXTENDED_SAL_PROC EsalProc;
DxeSalLibConstruct ();
ReturnReg = GetEsalEntryPoint ();
if (ReturnReg.Status != EFI_SAL_SUCCESS) {
return ReturnReg;

View File

@ -159,7 +159,7 @@ Returns:
EFI_TPL_NOTIFY,
RuntimeLibVirtualNotifyEvent,
NULL,
mEfiVirtualNotifyEvent
&mEfiVirtualNotifyEvent
);
ASSERT_EFI_ERROR (Status);