mirror of https://github.com/acidanthera/audk.git
PerformancePkg/Dp_App: Support execution break
Support UEFI shell execution break. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Cinnamon Shia <cinnamon.shia@hpe.com> Reviewed-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Samer EL-Haj-Mahmoud <elhaj@hpe.com> Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
This commit is contained in:
parent
efef6ad6d7
commit
3e9de670ec
|
@ -14,7 +14,7 @@
|
|||
timer information to calculate elapsed time for each measurement.
|
||||
|
||||
Copyright (c) 2009 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
(C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>
|
||||
(C) Copyright 2015-2016 Hewlett Packard Enterprise Development LP<BR>
|
||||
This program and the accompanying materials
|
||||
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
|
||||
|
@ -198,8 +198,8 @@ InitCumulativeData (
|
|||
|
||||
@retval EFI_SUCCESS Command completed successfully.
|
||||
@retval EFI_INVALID_PARAMETER Command usage error.
|
||||
@retval EFI_ABORTED The user aborts the operation.
|
||||
@retval value Unknown error.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
|
@ -443,7 +443,10 @@ InitializeDp (
|
|||
ProcessCumulative (CustomCumulativeData);
|
||||
} else if (AllMode) {
|
||||
if (TraceMode) {
|
||||
DumpAllTrace( Number2Display, ExcludeMode);
|
||||
Status = DumpAllTrace( Number2Display, ExcludeMode);
|
||||
if (Status == EFI_ABORTED) {
|
||||
goto Done;
|
||||
}
|
||||
}
|
||||
if (ProfileMode) {
|
||||
DumpAllProfile( Number2Display, ExcludeMode);
|
||||
|
@ -451,7 +454,10 @@ InitializeDp (
|
|||
}
|
||||
else if (RawMode) {
|
||||
if (TraceMode) {
|
||||
DumpRawTrace( Number2Display, ExcludeMode);
|
||||
Status = DumpRawTrace( Number2Display, ExcludeMode);
|
||||
if (Status == EFI_ABORTED) {
|
||||
goto Done;
|
||||
}
|
||||
}
|
||||
if (ProfileMode) {
|
||||
DumpRawProfile( Number2Display, ExcludeMode);
|
||||
|
@ -463,11 +469,21 @@ InitializeDp (
|
|||
ProcessPhases ( Ticker );
|
||||
if ( ! SummaryMode) {
|
||||
Status = ProcessHandles ( ExcludeMode);
|
||||
if ( ! EFI_ERROR( Status)) {
|
||||
ProcessPeims ( );
|
||||
ProcessGlobal ( );
|
||||
ProcessCumulative (NULL);
|
||||
if (Status == EFI_ABORTED) {
|
||||
goto Done;
|
||||
}
|
||||
|
||||
Status = ProcessPeims ();
|
||||
if (Status == EFI_ABORTED) {
|
||||
goto Done;
|
||||
}
|
||||
|
||||
Status = ProcessGlobal ();
|
||||
if (Status == EFI_ABORTED) {
|
||||
goto Done;
|
||||
}
|
||||
|
||||
ProcessCumulative (NULL);
|
||||
}
|
||||
}
|
||||
if (ProfileMode) {
|
||||
|
@ -480,6 +496,8 @@ InitializeDp (
|
|||
}
|
||||
}
|
||||
|
||||
Done:
|
||||
|
||||
//
|
||||
// Free the memory allocate from HiiGetString
|
||||
//
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
DpUtilities.c, DpTrace.c, and DpProfile.c are included here.
|
||||
|
||||
Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR>
|
||||
(C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>
|
||||
(C) Copyright 2015-2016 Hewlett Packard Enterprise Development LP<BR>
|
||||
This program and the accompanying materials
|
||||
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
|
||||
|
@ -215,8 +215,11 @@ GatherStatistics(
|
|||
@param[in] Limit The number of records to print. Zero is ALL.
|
||||
@param[in] ExcludeFlag TRUE to exclude individual Cumulative items from display.
|
||||
|
||||
@retval EFI_SUCCESS The operation was successful.
|
||||
@retval EFI_ABORTED The user aborts the operation.
|
||||
@return Others from a call to gBS->LocateHandleBuffer().
|
||||
**/
|
||||
VOID
|
||||
EFI_STATUS
|
||||
DumpAllTrace(
|
||||
IN UINTN Limit,
|
||||
IN BOOLEAN ExcludeFlag
|
||||
|
@ -239,8 +242,10 @@ DumpAllTrace(
|
|||
@param[in] Limit The number of records to print. Zero is ALL.
|
||||
@param[in] ExcludeFlag TRUE to exclude individual Cumulative items from display.
|
||||
|
||||
@retval EFI_SUCCESS The operation was successful.
|
||||
@retval EFI_ABORTED The user aborts the operation.
|
||||
**/
|
||||
VOID
|
||||
EFI_STATUS
|
||||
DumpRawTrace(
|
||||
IN UINTN Limit,
|
||||
IN BOOLEAN ExcludeFlag
|
||||
|
@ -263,7 +268,9 @@ ProcessPhases(
|
|||
|
||||
@param[in] ExcludeFlag TRUE to exclude individual Cumulative items from display.
|
||||
|
||||
@return Status from a call to gBS->LocateHandle().
|
||||
@retval EFI_SUCCESS The operation was successful.
|
||||
@retval EFI_ABORTED The user aborts the operation.
|
||||
@return Others from a call to gBS->LocateHandleBuffer().
|
||||
**/
|
||||
EFI_STATUS
|
||||
ProcessHandles(
|
||||
|
@ -276,8 +283,10 @@ ProcessHandles(
|
|||
|
||||
Only prints complete PEIM records
|
||||
|
||||
@retval EFI_SUCCESS The operation was successful.
|
||||
@retval EFI_ABORTED The user aborts the operation.
|
||||
**/
|
||||
VOID
|
||||
EFI_STATUS
|
||||
ProcessPeims(
|
||||
VOID
|
||||
);
|
||||
|
@ -290,8 +299,10 @@ ProcessPeims(
|
|||
Increment TIndex for every record, even skipped ones, so that we have an
|
||||
indication of every measurement record taken.
|
||||
|
||||
@retval EFI_SUCCESS The operation was successful.
|
||||
@retval EFI_ABORTED The user aborts the operation.
|
||||
**/
|
||||
VOID
|
||||
EFI_STATUS
|
||||
ProcessGlobal(
|
||||
VOID
|
||||
);
|
||||
|
|
|
@ -136,8 +136,11 @@ GatherStatistics(
|
|||
@param[in] Limit The number of records to print. Zero is ALL.
|
||||
@param[in] ExcludeFlag TRUE to exclude individual Cumulative items from display.
|
||||
|
||||
@retval EFI_SUCCESS The operation was successful.
|
||||
@retval EFI_ABORTED The user aborts the operation.
|
||||
@return Others from a call to gBS->LocateHandleBuffer().
|
||||
**/
|
||||
VOID
|
||||
EFI_STATUS
|
||||
DumpAllTrace(
|
||||
IN UINTN Limit,
|
||||
IN BOOLEAN ExcludeFlag
|
||||
|
@ -257,12 +260,17 @@ DumpAllTrace(
|
|||
ElapsedTime
|
||||
);
|
||||
}
|
||||
if (ShellGetExecutionBreakFlag ()) {
|
||||
Status = EFI_ABORTED;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (HandleBuffer != NULL) {
|
||||
FreePool (HandleBuffer);
|
||||
}
|
||||
SafeFreePool ((VOID *) IncFlag);
|
||||
return Status;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -282,8 +290,10 @@ DumpAllTrace(
|
|||
@param[in] Limit The number of records to print. Zero is ALL.
|
||||
@param[in] ExcludeFlag TRUE to exclude individual Cumulative items from display.
|
||||
|
||||
@retval EFI_SUCCESS The operation was successful.
|
||||
@retval EFI_ABORTED The user aborts the operation.
|
||||
**/
|
||||
VOID
|
||||
EFI_STATUS
|
||||
DumpRawTrace(
|
||||
IN UINTN Limit,
|
||||
IN BOOLEAN ExcludeFlag
|
||||
|
@ -298,6 +308,9 @@ DumpRawTrace(
|
|||
|
||||
EFI_STRING StringPtr;
|
||||
EFI_STRING StringPtrUnknown;
|
||||
EFI_STATUS Status;
|
||||
|
||||
Status = EFI_SUCCESS;
|
||||
|
||||
StringPtrUnknown = HiiGetString (gHiiHandle, STRING_TOKEN (STR_ALIT_UNKNOWN), NULL);
|
||||
StringPtr = HiiGetString (gHiiHandle, STRING_TOKEN (STR_DP_SECTION_RAWTRACE), NULL);
|
||||
|
@ -361,7 +374,12 @@ DumpRawTrace(
|
|||
Measurement.Module
|
||||
);
|
||||
}
|
||||
if (ShellGetExecutionBreakFlag ()) {
|
||||
Status = EFI_ABORTED;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return Status;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -510,7 +528,9 @@ ProcessPhases(
|
|||
|
||||
@param[in] ExcludeFlag TRUE to exclude individual Cumulative items from display.
|
||||
|
||||
@return Status from a call to gBS->LocateHandle().
|
||||
@retval EFI_SUCCESS The operation was successful.
|
||||
@retval EFI_ABORTED The user aborts the operation.
|
||||
@return Others from a call to gBS->LocateHandleBuffer().
|
||||
**/
|
||||
EFI_STATUS
|
||||
ProcessHandles(
|
||||
|
@ -608,6 +628,10 @@ ProcessHandles(
|
|||
);
|
||||
}
|
||||
}
|
||||
if (ShellGetExecutionBreakFlag ()) {
|
||||
Status = EFI_ABORTED;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (HandleBuffer != NULL) {
|
||||
|
@ -621,8 +645,10 @@ ProcessHandles(
|
|||
|
||||
Only prints complete PEIM records
|
||||
|
||||
@retval EFI_SUCCESS The operation was successful.
|
||||
@retval EFI_ABORTED The user aborts the operation.
|
||||
**/
|
||||
VOID
|
||||
EFI_STATUS
|
||||
ProcessPeims(
|
||||
VOID
|
||||
)
|
||||
|
@ -634,6 +660,9 @@ ProcessPeims(
|
|||
UINTN LogEntryKey;
|
||||
UINTN TIndex;
|
||||
EFI_STRING StringPtrUnknown;
|
||||
EFI_STATUS Status;
|
||||
|
||||
Status = EFI_SUCCESS;
|
||||
|
||||
StringPtrUnknown = HiiGetString (gHiiHandle, STRING_TOKEN (STR_ALIT_UNKNOWN), NULL);
|
||||
StringPtr = HiiGetString (gHiiHandle, STRING_TOKEN (STR_DP_SECTION_PEIMS), NULL);
|
||||
|
@ -687,7 +716,12 @@ ProcessPeims(
|
|||
);
|
||||
}
|
||||
}
|
||||
if (ShellGetExecutionBreakFlag ()) {
|
||||
Status = EFI_ABORTED;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return Status;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -698,8 +732,10 @@ ProcessPeims(
|
|||
Increment TIndex for every record, even skipped ones, so that we have an
|
||||
indication of every measurement record taken.
|
||||
|
||||
@retval EFI_SUCCESS The operation was successful.
|
||||
@retval EFI_ABORTED The user aborts the operation.
|
||||
**/
|
||||
VOID
|
||||
EFI_STATUS
|
||||
ProcessGlobal(
|
||||
VOID
|
||||
)
|
||||
|
@ -711,6 +747,9 @@ ProcessGlobal(
|
|||
UINTN LogEntryKey;
|
||||
UINTN Index; // Index, or number, of the measurement record being processed
|
||||
EFI_STRING StringPtrUnknown;
|
||||
EFI_STATUS Status;
|
||||
|
||||
Status = EFI_SUCCESS;
|
||||
|
||||
StringPtrUnknown = HiiGetString (gHiiHandle, STRING_TOKEN (STR_ALIT_UNKNOWN), NULL);
|
||||
StringPtr = HiiGetString (gHiiHandle, STRING_TOKEN (STR_DP_SECTION_GENERAL), NULL);
|
||||
|
@ -770,8 +809,13 @@ ProcessGlobal(
|
|||
}
|
||||
}
|
||||
}
|
||||
if (ShellGetExecutionBreakFlag ()) {
|
||||
Status = EFI_ABORTED;
|
||||
break;
|
||||
}
|
||||
Index++;
|
||||
}
|
||||
return Status;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue