mirror of https://github.com/acidanthera/audk.git
ArmPkg: Fix Ecc error 5007 in DefaultExceptionHandlerLib
This patch fixes the following Ecc reported error: There should be no initialization of a variable as part of its declaration Fixing this error implies extracting the CpsrChar array from CpsrString and making it a static variable. Signed-off-by: Pierre Gondois <Pierre.Gondois@arm.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@arm.com>
This commit is contained in:
parent
0931171f54
commit
7785b38ac9
|
@ -2,7 +2,7 @@
|
||||||
Default exception handler
|
Default exception handler
|
||||||
|
|
||||||
Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>
|
Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>
|
||||||
Copyright (c) 2012, ARM Ltd. All rights reserved.<BR>
|
Copyright (c) 2012 - 2021, Arm Ltd. All rights reserved.<BR>
|
||||||
|
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
|
|
||||||
|
@ -34,6 +34,20 @@ typedef struct {
|
||||||
CHAR8 Char;
|
CHAR8 Char;
|
||||||
} CPSR_CHAR;
|
} CPSR_CHAR;
|
||||||
|
|
||||||
|
STATIC CONST CPSR_CHAR mCpsrChar[] = {
|
||||||
|
{ 31, 'n' },
|
||||||
|
{ 30, 'z' },
|
||||||
|
{ 29, 'c' },
|
||||||
|
{ 28, 'v' },
|
||||||
|
|
||||||
|
{ 9, 'e' },
|
||||||
|
{ 8, 'a' },
|
||||||
|
{ 7, 'i' },
|
||||||
|
{ 6, 'f' },
|
||||||
|
{ 5, 't' },
|
||||||
|
{ 0, '?' }
|
||||||
|
};
|
||||||
|
|
||||||
CHAR8 *
|
CHAR8 *
|
||||||
GetImageName (
|
GetImageName (
|
||||||
IN UINTN FaultAddress,
|
IN UINTN FaultAddress,
|
||||||
|
@ -45,7 +59,7 @@ GetImageName (
|
||||||
Convert the Current Program Status Register (CPSR) to a string. The string is
|
Convert the Current Program Status Register (CPSR) to a string. The string is
|
||||||
a defacto standard in the ARM world.
|
a defacto standard in the ARM world.
|
||||||
|
|
||||||
It is possible to add extra bits by adding them to CpsrChar array.
|
It is possible to add extra bits by adding them to mCpsrChar array.
|
||||||
|
|
||||||
@param Cpsr ARM CPSR register value
|
@param Cpsr ARM CPSR register value
|
||||||
@param ReturnStr CPSR_STRING_SIZE byte string that contains string
|
@param ReturnStr CPSR_STRING_SIZE byte string that contains string
|
||||||
|
@ -61,25 +75,12 @@ CpsrString (
|
||||||
UINTN Index;
|
UINTN Index;
|
||||||
CHAR8* Str;
|
CHAR8* Str;
|
||||||
CHAR8* ModeStr;
|
CHAR8* ModeStr;
|
||||||
CPSR_CHAR CpsrChar[] = {
|
|
||||||
{ 31, 'n' },
|
|
||||||
{ 30, 'z' },
|
|
||||||
{ 29, 'c' },
|
|
||||||
{ 28, 'v' },
|
|
||||||
|
|
||||||
{ 9, 'e' },
|
|
||||||
{ 8, 'a' },
|
|
||||||
{ 7, 'i' },
|
|
||||||
{ 6, 'f' },
|
|
||||||
{ 5, 't' },
|
|
||||||
{ 0, '?' }
|
|
||||||
};
|
|
||||||
|
|
||||||
Str = ReturnStr;
|
Str = ReturnStr;
|
||||||
|
|
||||||
for (Index = 0; CpsrChar[Index].BIT != 0; Index++, Str++) {
|
for (Index = 0; mCpsrChar[Index].BIT != 0; Index++, Str++) {
|
||||||
*Str = CpsrChar[Index].Char;
|
*Str = mCpsrChar[Index].Char;
|
||||||
if ((Cpsr & (1 << CpsrChar[Index].BIT)) != 0) {
|
if ((Cpsr & (1 << mCpsrChar[Index].BIT)) != 0) {
|
||||||
// Concert to upper case if bit is set
|
// Concert to upper case if bit is set
|
||||||
*Str &= ~0x20;
|
*Str &= ~0x20;
|
||||||
}
|
}
|
||||||
|
@ -186,7 +187,9 @@ DefaultExceptionHandler (
|
||||||
UINT32 DfsrStatus;
|
UINT32 DfsrStatus;
|
||||||
UINT32 IfsrStatus;
|
UINT32 IfsrStatus;
|
||||||
BOOLEAN DfsrWrite;
|
BOOLEAN DfsrWrite;
|
||||||
UINT32 PcAdjust = 0;
|
UINT32 PcAdjust;
|
||||||
|
|
||||||
|
PcAdjust = 0;
|
||||||
|
|
||||||
CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"\n%a Exception PC at 0x%08x CPSR 0x%08x ",
|
CharCount = AsciiSPrint (Buffer,sizeof (Buffer),"\n%a Exception PC at 0x%08x CPSR 0x%08x ",
|
||||||
gExceptionTypeString[ExceptionType], SystemContext.SystemContextArm->PC, SystemContext.SystemContextArm->CPSR);
|
gExceptionTypeString[ExceptionType], SystemContext.SystemContextArm->PC, SystemContext.SystemContextArm->CPSR);
|
||||||
|
|
Loading…
Reference in New Issue