MdeModulePkg Variable: Consume the separated VarCheckLib

Since the variable check service has be separated to VarCheckLib
from Variable driver, so update Variable driver to consume the
separated VarCheckLib.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18286 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Star Zeng
2015-08-25 03:01:56 +00:00
committed by lzeng14
parent 3b01413759
commit 8021f4c716
8 changed files with 108 additions and 1415 deletions

View File

@@ -45,7 +45,7 @@ BOOLEAN mAtRuntime = F
UINT8 *mVariableBufferPayload = NULL;
UINTN mVariableBufferPayloadSize;
extern BOOLEAN mEndOfDxe;
extern BOOLEAN mEnableLocking;
extern VAR_CHECK_REQUEST_SOURCE mRequestSource;
/**
SecureBoot Hook for SetVariable.
@@ -97,7 +97,7 @@ SmmVariableSetVariable (
//
// Disable write protection when the calling SetVariable() through EFI_SMM_VARIABLE_PROTOCOL.
//
mEnableLocking = FALSE;
mRequestSource = VarCheckFromTrusted;
Status = VariableServiceSetVariable (
VariableName,
VendorGuid,
@@ -105,7 +105,7 @@ SmmVariableSetVariable (
DataSize,
Data
);
mEnableLocking = TRUE;
mRequestSource = VarCheckFromUntrusted;
return Status;
}
@@ -666,15 +666,18 @@ SmmVariableHandler (
break;
case SMM_VARIABLE_FUNCTION_READY_TO_BOOT:
mEndOfDxe = TRUE;
//
// The initialization for variable quota.
//
InitializeVariableQuota ();
if (AtRuntime()) {
Status = EFI_UNSUPPORTED;
break;
}
if (!mEndOfDxe) {
mEndOfDxe = TRUE;
VarCheckLibInitializeAtEndOfDxe (NULL);
//
// The initialization for variable quota.
//
InitializeVariableQuota ();
}
ReclaimForOS ();
Status = EFI_SUCCESS;
break;
@@ -800,8 +803,9 @@ SmmEndOfDxeCallback (
IN EFI_HANDLE Handle
)
{
DEBUG ((EFI_D_INFO, "[Variable]END_OF_DXE is signaled\n"));
DEBUG ((EFI_D_INFO, "[Variable]SMM_END_OF_DXE is signaled\n"));
mEndOfDxe = TRUE;
VarCheckLibInitializeAtEndOfDxe (NULL);
//
// The initialization for variable quota.
//
@@ -809,6 +813,7 @@ SmmEndOfDxeCallback (
if (PcdGetBool (PcdReclaimVariableSpaceAtEndOfDxe)) {
ReclaimForOS ();
}
return EFI_SUCCESS;
}