diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.c index eac9286176..2e3afbac9d 100644 --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.c +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.c @@ -1,7 +1,7 @@ /** @file ACPI parser - Copyright (c) 2016 - 2021, Arm Limited. All rights reserved. + Copyright (c) 2016 - 2024, Arm Limited. All rights reserved. Copyright (c) 2022, AMD Incorporated. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent **/ @@ -616,7 +616,11 @@ ParseAcpi ( if (GetConsistencyChecking () && (Parser[Index].FieldValidator != NULL)) { - Parser[Index].FieldValidator (Ptr, Parser[Index].Context); + Parser[Index].FieldValidator ( + Ptr, + Parser[Index].Length, + Parser[Index].Context + ); } Print (L"\n"); @@ -927,7 +931,11 @@ ParseAcpiBitFields ( if (GetConsistencyChecking () && (Parser[Index].FieldValidator != NULL)) { - Parser[Index].FieldValidator ((UINT8 *)&Data, Parser[Index].Context); + Parser[Index].FieldValidator ( + (UINT8 *)&Data, + Parser[Index].Length, + Parser[Index].Context + ); } Print (L"\n"); diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h index b449ded0d1..b759a916f5 100644 --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h @@ -2,7 +2,7 @@ Header file for ACPI parser Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. - Copyright (c) 2016 - 2020, Arm Limited. All rights reserved. + Copyright (c) 2016 - 2024, Arm Limited. All rights reserved. Copyright (c) 2022, AMD Incorporated. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent **/ @@ -234,11 +234,16 @@ typedef VOID (EFIAPI *FNPTR_PRINT_FORMATTER)(CONST CHAR16 *Format, UINT8 *Ptr); This function pointer is the template for validating an ACPI table field. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information as specified by the 'Context' member of the ACPI_PARSER. e.g. this could be a pointer to the ACPI table header. **/ -typedef VOID (EFIAPI *FNPTR_FIELD_VALIDATOR)(UINT8 *Ptr, VOID *Context); +typedef VOID (EFIAPI *FNPTR_FIELD_VALIDATOR)( + UINT8 *Ptr, + UINT32 Length, + VOID *Context + ); /** The ACPI_PARSER structure describes the fields of an ACPI table and diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Aest/AestParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Aest/AestParser.c index 48f71484fb..83f9b292b0 100644 --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Aest/AestParser.c +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Aest/AestParser.c @@ -1,7 +1,7 @@ /** @file AEST table parser - Copyright (c) 2020, Arm Limited. + Copyright (c) 2020 - 2024, Arm Limited. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent @par Reference(s): @@ -33,6 +33,7 @@ STATIC UINT8 *ProcessorResourceType; Validate Processor Flags. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -40,8 +41,9 @@ STATIC VOID EFIAPI ValidateProcessorFlags ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { // If the global or shared node flag is set then the ACPI Processor ID @@ -59,6 +61,7 @@ ValidateProcessorFlags ( Validate GIC Interface Type. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -66,8 +69,9 @@ STATIC VOID EFIAPI ValidateGicInterfaceType ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { UINT32 GicInterfaceType; @@ -83,6 +87,7 @@ ValidateGicInterfaceType ( Validate Interface Type. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -90,8 +95,9 @@ STATIC VOID EFIAPI ValidateInterfaceType ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { if (*Ptr > 1) { @@ -104,6 +110,7 @@ ValidateInterfaceType ( Validate Interrupt Type. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -111,8 +118,9 @@ STATIC VOID EFIAPI ValidateInterruptType ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { if (*Ptr > 1) { @@ -125,6 +133,7 @@ ValidateInterruptType ( Validate interrupt flags. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -132,8 +141,9 @@ STATIC VOID EFIAPI ValidateInterruptFlags ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { if ((*Ptr & 0xfe) != 0) { diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dbg2/Dbg2Parser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dbg2/Dbg2Parser.c index d25d4d84f8..3d43d5cb8c 100644 --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dbg2/Dbg2Parser.c +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dbg2/Dbg2Parser.c @@ -1,7 +1,7 @@ /** @file DBG2 table parser - Copyright (c) 2016 - 2020, ARM Limited. All rights reserved. + Copyright (c) 2016 - 2024, Arm Limited. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent @par Reference(s): @@ -30,6 +30,7 @@ STATIC ACPI_DESCRIPTION_HEADER_INFO AcpiHdrInfo; This function validates the NameSpace string length. @param [in] Ptr Pointer to the start of the buffer. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -37,8 +38,9 @@ STATIC VOID EFIAPI ValidateNameSpaceStrLen ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { UINT16 NameSpaceStrLen; diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Einj/EinjParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Einj/EinjParser.c index de867fb34a..3e3c1b0df8 100644 --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Einj/EinjParser.c +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Einj/EinjParser.c @@ -31,6 +31,7 @@ STATIC CONST CHAR16 *InstNameTable[] = { This function validates the flags field in the EINJ injection header. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -38,8 +39,9 @@ STATIC VOID EFIAPI ValidateInjectionFlags ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { UINT8 Flags; @@ -72,6 +74,7 @@ STATIC CONST ACPI_PARSER EinjParser[] = { the EINJ injection instruction entry. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -79,8 +82,9 @@ STATIC VOID EFIAPI ValidateInjectionAction ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { UINT8 InjectionAction; @@ -113,6 +117,7 @@ ValidateInjectionAction ( the EINJ injection instruction entry. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -120,8 +125,9 @@ STATIC VOID EFIAPI ValidateInstruction ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { UINT8 Inst; @@ -141,6 +147,7 @@ ValidateInstruction ( the EINJ injection instruction entry. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -148,8 +155,9 @@ STATIC VOID EFIAPI ValidateRegisterRegion ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE *RegisterRegion; diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Erst/ErstParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Erst/ErstParser.c index f3ae09309c..2b19e3e1c0 100644 --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Erst/ErstParser.c +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Erst/ErstParser.c @@ -2,7 +2,7 @@ ERST table parser Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. - Copyright (c) 2016 - 2018, ARM Limited. All rights reserved. + Copyright (c) 2016 - 2024, Arm Limited. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent @par Reference(s): @@ -70,6 +70,7 @@ STATIC CONST CHAR16 *ErstInstructionTable[] = { Validate Erst action. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -77,8 +78,9 @@ STATIC VOID EFIAPI ValidateErstAction ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { if (*Ptr > EFI_ACPI_6_4_ERST_GET_EXECUTE_OPERATION_TIMINGS) { @@ -91,6 +93,7 @@ ValidateErstAction ( Validate Erst instruction. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -98,8 +101,9 @@ STATIC VOID EFIAPI ValidateErstInstruction ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { if (*Ptr > EFI_ACPI_6_4_ERST_MOVE_DATA) { @@ -112,6 +116,7 @@ ValidateErstInstruction ( Validate Erst flags. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -119,8 +124,9 @@ STATIC VOID EFIAPI ValidateErstFlags ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { if ((*Ptr & 0xfe) != 0) { diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Fadt/FadtParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Fadt/FadtParser.c index abc58d6552..c9eac9c18e 100644 --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Fadt/FadtParser.c +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Fadt/FadtParser.c @@ -1,7 +1,7 @@ /** @file FADT table parser - Copyright (c) 2016 - 2020, ARM Limited. All rights reserved. + Copyright (c) 2016 - 2024, Arm Limited. All rights reserved. Copyright (c) 2022, AMD Incorporated. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent @@ -57,6 +57,7 @@ GetAcpiXsdtHeaderInfo ( This function validates the Firmware Control Field. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -64,8 +65,9 @@ STATIC VOID EFIAPI ValidateFirmwareCtrl ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { #if defined (MDE_CPU_ARM) || defined (MDE_CPU_AARCH64) @@ -83,6 +85,7 @@ ValidateFirmwareCtrl ( This function validates the X_Firmware Control Field. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -90,8 +93,9 @@ STATIC VOID EFIAPI ValidateXFirmwareCtrl ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { #if defined (MDE_CPU_ARM) || defined (MDE_CPU_AARCH64) @@ -109,6 +113,7 @@ ValidateXFirmwareCtrl ( This function validates the flags. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -116,8 +121,9 @@ STATIC VOID EFIAPI ValidateFlags ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { #if defined (MDE_CPU_ARM) || defined (MDE_CPU_AARCH64) diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Gtdt/GtdtParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Gtdt/GtdtParser.c index e62927098a..c8681e8424 100644 --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Gtdt/GtdtParser.c +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Gtdt/GtdtParser.c @@ -1,7 +1,7 @@ /** @file GTDT table parser - Copyright (c) 2016 - 2021, ARM Limited. All rights reserved. + Copyright (c) 2016 - 2024, Arm Limited. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent @par Reference(s): @@ -30,6 +30,7 @@ STATIC ACPI_DESCRIPTION_HEADER_INFO AcpiHdrInfo; This function validates the GT Block timer count. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -37,8 +38,9 @@ STATIC VOID EFIAPI ValidateGtBlockTimerCount ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { UINT32 BlockTimerCount; @@ -59,6 +61,7 @@ ValidateGtBlockTimerCount ( This function validates the GT Frame Number. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -66,8 +69,9 @@ STATIC VOID EFIAPI ValidateGtFrameNumber ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { UINT8 FrameNumber; diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Hest/HestParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Hest/HestParser.c index 963163448f..1e9991dba2 100644 --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Hest/HestParser.c +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Hest/HestParser.c @@ -113,6 +113,7 @@ STATIC CONST ACPI_PARSER HestErrorNotificationCweParser[] = { This function validates the Type field of Hardware Error Notification Structure @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -120,8 +121,9 @@ STATIC VOID EFIAPI ValidateErrorNotificationType ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { UINT8 Type; @@ -246,6 +248,7 @@ STATIC CONST ACPI_PARSER HestErrorNotificationParser[] = { pci related Error source structure's bus field. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -253,8 +256,9 @@ STATIC VOID EFIAPI ValidatePciBusReservedBits ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { if (*Ptr != 0x00) { @@ -277,6 +281,7 @@ STATIC CONST ACPI_PARSER HestErrorSourcePciCommonBusParser[] = { error source descriptor structure. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -284,8 +289,9 @@ STATIC VOID EFIAPI ValidateIA32ErrorSourceFlags ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { UINT8 SourceFlags; @@ -313,6 +319,7 @@ ValidateIA32ErrorSourceFlags ( error source descriptor structure. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -320,8 +327,9 @@ STATIC VOID EFIAPI ValidatePciErrorSourceFlags ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { UINT8 SourceFlags; @@ -342,6 +350,7 @@ ValidatePciErrorSourceFlags ( error source descriptor structure. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -349,8 +358,9 @@ STATIC VOID EFIAPI ValidateGhesSourceFlags ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { UINT8 SourceFlags; @@ -368,6 +378,7 @@ ValidateGhesSourceFlags ( structure. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -375,8 +386,9 @@ STATIC VOID EFIAPI ValidateEnabledField ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { if (*(UINT8 *)Ptr > 1) { @@ -391,6 +403,7 @@ ValidateEnabledField ( structure. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -398,8 +411,9 @@ STATIC VOID EFIAPI ValidateRecordCount ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { UINT8 RecordCount; diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Hmat/HmatParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Hmat/HmatParser.c index 2a1357c853..ce69a600e7 100644 --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Hmat/HmatParser.c +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Hmat/HmatParser.c @@ -1,7 +1,7 @@ /** @file HMAT table parser - Copyright (c) 2020, Arm Limited. + Copyright (c) 2020 - 2024, Arm Limited. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent @par Reference(s): @@ -54,6 +54,7 @@ STATIC CONST CHAR16 *SllbiNames[] = { This function validates the Cache Attributes field. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -61,8 +62,9 @@ STATIC VOID EFIAPI ValidateCacheAttributes ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { EFI_ACPI_6_4_HMAT_STRUCTURE_MEMORY_SIDE_CACHE_INFO_CACHE_ATTRIBUTES * diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Hpet/HpetParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Hpet/HpetParser.c index 1b4c38f2af..9975af53fd 100644 --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Hpet/HpetParser.c +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Hpet/HpetParser.c @@ -1,6 +1,7 @@ /** @file HPET table parser + Copyright (c) 2024, Arm Limited. All rights reserved. Copyright (C) 2024 Advanced Micro Devices, Inc. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent @@ -121,6 +122,7 @@ DumpCounterSize ( This function validates the flags. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -128,8 +130,9 @@ STATIC VOID EFIAPI ValidateHpetRevId ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { if ((*(UINT8 *)Ptr) == 0) { diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Iort/IortParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Iort/IortParser.c index 599cf0ee8f..299ea4fd45 100644 --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Iort/IortParser.c +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Iort/IortParser.c @@ -1,7 +1,7 @@ /** @file IORT table parser - Copyright (c) 2016 - 2022, Arm Limited. All rights reserved. + Copyright (c) 2016 - 2024, Arm Limited. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent @par Reference(s): @@ -46,6 +46,7 @@ STATIC CONST UINT32 *RmrMemDescOffset; This function validates the ID Mapping array count for the ITS node. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -53,8 +54,9 @@ STATIC VOID EFIAPI ValidateItsIdMappingCount ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { if (*(UINT32 *)Ptr != 0) { @@ -68,6 +70,7 @@ ValidateItsIdMappingCount ( Monitoring Counter Group (PMCG) node. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -75,8 +78,9 @@ STATIC VOID EFIAPI ValidatePmcgIdMappingCount ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { if (*(UINT32 *)Ptr > 1) { @@ -89,6 +93,7 @@ ValidatePmcgIdMappingCount ( This function validates the ID Mapping array offset for the ITS node. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -96,8 +101,9 @@ STATIC VOID EFIAPI ValidateItsIdArrayReference ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { if (*(UINT32 *)Ptr != 0) { @@ -111,6 +117,7 @@ ValidateItsIdArrayReference ( and is 64K aligned. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -118,8 +125,9 @@ STATIC VOID EFIAPI ValidatePhysicalRange ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { UINT64 Value; @@ -135,6 +143,7 @@ ValidatePhysicalRange ( This function validates that the RMR memory range descriptor count. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -142,8 +151,9 @@ STATIC VOID EFIAPI ValidateRmrMemDescCount ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { if (*(UINT32 *)Ptr == 0) { diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.c index 42f45d5a94..614fa4c2f9 100644 --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.c +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.c @@ -1,7 +1,7 @@ /** @file MADT table parser - Copyright (c) 2016 - 2023, ARM Limited. All rights reserved. + Copyright (c) 2016 - 2024, Arm Limited. All rights reserved. Copyright (c) 2022, AMD Incorporated. All rights reserved. Copyright (c) 2024, Loongson Technology Corporation Limited. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent @@ -29,6 +29,7 @@ STATIC ACPI_DESCRIPTION_HEADER_INFO AcpiHdrInfo; This function validates the System Vector Base in the GICD. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -36,8 +37,9 @@ STATIC VOID EFIAPI ValidateGICDSystemVectorBase ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { if (*(UINT32 *)Ptr != 0) { @@ -52,6 +54,7 @@ ValidateGICDSystemVectorBase ( This function validates the SPE Overflow Interrupt in the GICC. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -59,8 +62,9 @@ STATIC VOID EFIAPI ValidateSpeOverflowInterrupt ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { UINT16 SpeOverflowInterrupt; @@ -102,6 +106,7 @@ ValidateSpeOverflowInterrupt ( This function validates the TRBE Interrupt in the GICC. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -109,8 +114,9 @@ STATIC VOID EFIAPI ValidateTrbeInterrupt ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { UINT16 TrbeInterrupt; diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pcct/PcctParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pcct/PcctParser.c index 8ad39090af..43c6a9fb6f 100644 --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pcct/PcctParser.c +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pcct/PcctParser.c @@ -1,7 +1,7 @@ /** @file PCCT table parser - Copyright (c) 2021, Arm Limited. + Copyright (c) 2021 - 2024, Arm Limited. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent @par Reference(s): @@ -28,6 +28,7 @@ STATIC UINT8 *ExtendedPccSubspaceInterruptFlags; This function validates the length coded on 4 bytes of a shared memory range @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -35,8 +36,9 @@ STATIC VOID EFIAPI ValidateRangeLength4 ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { if (*(UINT32 *)Ptr < MIN_EXT_PCC_SUBSPACE_MEM_RANGE_LEN) { @@ -54,6 +56,7 @@ ValidateRangeLength4 ( This function validates the length coded on 8 bytes of a shared memory range @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -61,8 +64,9 @@ STATIC VOID EFIAPI ValidateRangeLength8 ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { if (*(UINT64 *)Ptr <= MIN_MEMORY_RANGE_LENGTH) { @@ -80,6 +84,7 @@ ValidateRangeLength8 ( This function validates address space for Memory/IO GAS. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -87,8 +92,9 @@ STATIC VOID EFIAPI ValidatePccMemoryIoGas ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { switch (*(UINT8 *)Ptr) { @@ -107,6 +113,7 @@ ValidatePccMemoryIoGas ( This function validates address space for structures of types other than 0. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -114,8 +121,9 @@ STATIC VOID EFIAPI ValidatePccGas ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { switch (*(UINT8 *)Ptr) { @@ -135,6 +143,7 @@ ValidatePccGas ( This function validates doorbell address space for type 4 structure. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -142,8 +151,9 @@ STATIC VOID EFIAPI ValidatePccDoorbellGas ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { // For responder subspaces this field is optional, if not present the field @@ -158,7 +168,7 @@ ValidatePccDoorbellGas ( } } - ValidatePccGas (Ptr, Context); + ValidatePccGas (Ptr, Length, Context); } /** @@ -166,6 +176,7 @@ ValidatePccDoorbellGas ( type 4 structure. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -173,8 +184,9 @@ STATIC VOID EFIAPI ValidatePccIntAckGas ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { // If the subspace does not support interrupts or the interrupt is @@ -196,13 +208,14 @@ ValidatePccIntAckGas ( } } - ValidatePccGas (Ptr, Context); + ValidatePccGas (Ptr, Length, Context); } /** This function validates error status address space for type 4 structure. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -210,8 +223,9 @@ STATIC VOID EFIAPI ValidatePccErrStatusGas ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { // This field is ignored by the OSPM on responder channels. @@ -219,13 +233,14 @@ ValidatePccErrStatusGas ( return; } - ValidatePccGas (Ptr, Context); + ValidatePccGas (Ptr, Length, Context); } /** This function validates platform interrupt flags for type 4 structure. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -233,8 +248,9 @@ STATIC VOID EFIAPI ValidatePlatInterrupt ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { // If a responder subspace is present in the PCCT, then the global Platform diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pptt/PpttParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pptt/PpttParser.c index 5377764458..fabe057d05 100644 --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pptt/PpttParser.c +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pptt/PpttParser.c @@ -1,7 +1,7 @@ /** @file PPTT table parser - Copyright (c) 2019 - 2021, ARM Limited. All rights reserved. + Copyright (c) 2019 - 2024, Arm Limited. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent @par Reference(s): @@ -52,6 +52,7 @@ LogCacheFlagError ( This function validates the Cache Type Structure (Type 1) Cache Flags field. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -59,8 +60,9 @@ STATIC VOID EFIAPI ValidateCacheFlags ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { #if defined (MDE_CPU_ARM) || defined (MDE_CPU_AARCH64) @@ -115,6 +117,7 @@ ValidateCacheFlags ( field. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -122,8 +125,9 @@ STATIC VOID EFIAPI ValidateCacheNumberOfSets ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { UINT32 NumberOfSets; @@ -166,6 +170,7 @@ ValidateCacheNumberOfSets ( field. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -173,8 +178,9 @@ STATIC VOID EFIAPI ValidateCacheAssociativity ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { UINT8 Associativity; @@ -192,6 +198,7 @@ ValidateCacheAssociativity ( This function validates the Cache Type Structure (Type 1) Line size field. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -199,8 +206,9 @@ STATIC VOID EFIAPI ValidateCacheLineSize ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { #if defined (MDE_CPU_ARM) || defined (MDE_CPU_AARCH64) @@ -237,6 +245,7 @@ ValidateCacheLineSize ( This function validates the Cache Type Structure (Type 1) Cache ID field. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -244,8 +253,9 @@ STATIC VOID EFIAPI ValidateCacheId ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { UINT32 CacheId; @@ -276,6 +286,7 @@ ValidateCacheId ( This function validates the Cache Type Structure (Type 1) Attributes field. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -283,8 +294,9 @@ STATIC VOID EFIAPI ValidateCacheAttributes ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { // Reference: Advanced Configuration and Power Interface (ACPI) Specification diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Rsdp/RsdpParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Rsdp/RsdpParser.c index bddf276356..895258bc1d 100644 --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Rsdp/RsdpParser.c +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Rsdp/RsdpParser.c @@ -1,7 +1,7 @@ /** @file RSDP table parser - Copyright (c) 2016 - 2019, ARM Limited. All rights reserved. + Copyright (c) 2016 - 2024, Arm Limited. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent @par Reference(s): @@ -19,6 +19,7 @@ STATIC CONST UINT64 *XsdtAddress; This function validates the RSDT Address. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -26,8 +27,9 @@ STATIC VOID EFIAPI ValidateRsdtAddress ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { #if defined (MDE_CPU_ARM) || defined (MDE_CPU_AARCH64) @@ -55,6 +57,7 @@ ValidateRsdtAddress ( This function validates the XSDT Address. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -62,8 +65,9 @@ STATIC VOID EFIAPI ValidateXsdtAddress ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { #if defined (MDE_CPU_ARM) || defined (MDE_CPU_AARCH64) diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Spcr/SpcrParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Spcr/SpcrParser.c index e5267b1d04..d172a555da 100644 --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Spcr/SpcrParser.c +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Spcr/SpcrParser.c @@ -1,7 +1,7 @@ /** @file SPCR table parser - Copyright (c) 2016 - 2019, ARM Limited. All rights reserved. + Copyright (c) 2016 - 2024, Arm Limited. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent @par Reference(s): @@ -22,6 +22,7 @@ STATIC ACPI_DESCRIPTION_HEADER_INFO AcpiHdrInfo; This function validates the Interrupt Type. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -29,8 +30,9 @@ STATIC VOID EFIAPI ValidateInterruptType ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { #if defined (MDE_CPU_ARM) || defined (MDE_CPU_AARCH64) @@ -55,6 +57,7 @@ ValidateInterruptType ( This function validates the Irq. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -62,8 +65,9 @@ STATIC VOID EFIAPI ValidateIrq ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { #if defined (MDE_CPU_ARM) || defined (MDE_CPU_AARCH64) diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Srat/SratParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Srat/SratParser.c index 2980704479..d9831023ce 100644 --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Srat/SratParser.c +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Srat/SratParser.c @@ -1,7 +1,7 @@ /** @file SRAT table parser - Copyright (c) 2016 - 2020, ARM Limited. All rights reserved. + Copyright (c) 2016 - 2024, Arm Limited. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent @par Reference(s): @@ -25,6 +25,7 @@ STATIC ACPI_DESCRIPTION_HEADER_INFO AcpiHdrInfo; This function validates the Reserved field in the SRAT table header. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -32,8 +33,9 @@ STATIC VOID EFIAPI ValidateSratReserved ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { if (*(UINT32 *)Ptr != 1) { @@ -47,6 +49,7 @@ ValidateSratReserved ( Affinity Structure. @param [in] Ptr Pointer to the start of the field data. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -54,8 +57,9 @@ STATIC VOID EFIAPI ValidateSratDeviceHandleType ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { UINT8 DeviceHandleType; diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Wsmt/WsmtParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Wsmt/WsmtParser.c index 3c7252b0bf..96c2706c73 100644 --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Wsmt/WsmtParser.c +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Wsmt/WsmtParser.c @@ -1,6 +1,7 @@ /** @file WSMT table parser + Copyright (c) 2024, Arm Limited. All rights reserved. Copyright (C) 2024 Advanced Micro Devices, Inc. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent @@ -17,7 +18,8 @@ STATIC ACPI_DESCRIPTION_HEADER_INFO AcpiHdrInfo; /** This function validates the WSMT Protection flag. - @param [in] Ptr Pointer to the start of the buffer. + @param [in] Ptr Pointer to the start of the buffer. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. @@ -26,8 +28,9 @@ STATIC VOID EFIAPI ValidateWsmtProtectionFlag ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { UINT32 ProtectionFlag; @@ -49,7 +52,8 @@ ValidateWsmtProtectionFlag ( /** This function validates the reserved bits in the WSMT Protection flag. - @param [in] Ptr Pointer to the start of the buffer. + @param [in] Ptr Pointer to the start of the buffer. + @param [in] Length Length of the field. @param [in] Context Pointer to context specific information e.g. this could be a pointer to the ACPI table header. **/ @@ -57,8 +61,9 @@ STATIC VOID EFIAPI ValidateReserved ( - IN UINT8 *Ptr, - IN VOID *Context + IN UINT8 *Ptr, + IN UINT32 Length, + IN VOID *Context ) { UINT32 ProtectionFlag;