Measure ExitBootServices failure case

Signed-off-by: Chao Zhang<chao.b.zhang@intel.com>
Reviewed-by: Dong Guo<guo.dong@intel.com>
Reviewed-by: Gao Liming<liming.gao@intel.com>

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13580 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
czhang46 2012-08-02 06:33:10 +00:00
parent dda39f3a58
commit 9e945f7852
2 changed files with 42 additions and 0 deletions

View File

@ -23,6 +23,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#include <Guid/HobList.h>
#include <Guid/TcgEventHob.h>
#include <Guid/EventGroup.h>
#include <Guid/EventExitBootServiceFailed.h>
#include <Protocol/DevicePath.h>
#include <Protocol/TcgService.h>
#include <Protocol/AcpiTable.h>
@ -1103,6 +1104,34 @@ OnExitBootServices (
ASSERT_EFI_ERROR (Status);
}
/**
Exit Boot Services Failed Event notification handler.
Measure Failure of ExitBootServices.
@param[in] Event Event whose notification function is being invoked
@param[in] Context Pointer to the notification function's context
**/
VOID
EFIAPI
OnExitBootServicesFailed (
IN EFI_EVENT Event,
IN VOID *Context
)
{
EFI_STATUS Status;
//
// Measure Failure of ExitBootServices,
//
Status = TcgMeasureAction (
EFI_EXIT_BOOT_SERVICES_FAILED
);
ASSERT_EFI_ERROR (Status);
}
/**
Get TPM Deactivated state.
@ -1205,6 +1234,18 @@ DriverEntry (
&gEfiEventExitBootServicesGuid,
&Event
);
//
// Measure Exit Boot Service failed
//
Status = gBS->CreateEventEx (
EVT_NOTIFY_SIGNAL,
TPL_NOTIFY,
OnExitBootServicesFailed,
NULL,
&gEventExitBootServicesFailedGuid,
&Event
);
}
//

View File

@ -56,6 +56,7 @@
gTcgEventEntryHobGuid
gEfiEventReadyToBootGuid
gEfiEventExitBootServicesGuid
gEventExitBootServicesFailedGuid # ALWAYS_CONSUMED
[Protocols]
gEfiTcgProtocolGuid ## PRODUCES