From: "Sami Mujawar" <sami.mujawar@arm.com>
To: Rohit Mathew <Rohit.Mathew@arm.com>, devel@edk2.groups.io
Cc: James Morse <james.Morse@arm.com>,
Thomas Abraham <thomas.abraham@arm.com>,
Zhichao Gao <zhichao.gao@intel.com>, "nd@arm.com" <nd@arm.com>
Subject: Re: [edk2-devel] [PATCH v5 2/6] ShellPkg/AcpiView: Update field-validator prototype
Date: Tue, 5 Dec 2023 11:47:13 +0000 [thread overview]
Message-ID: <97994f97-55bd-41a2-a31a-c650dd2d7ebb@arm.com> (raw)
In-Reply-To: <20231002171550.901005-1-Rohit.Mathew@arm.com>
Hi Rohit,
Thank you for this patch.
I haev a minor suggestion to marked inline as [SAMI] which involves
moving the Length as the second parameter in the validator function.
Unfortunately this would mean changes across the entire patch. But I
think it provides better grouping of parameters.
With that addressed,
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
Regards,
Sami Mujawar
On 02/10/2023 06:15 pm, Rohit Mathew wrote:
> As of now, the field-validator implemented by FNPTR_FIELD_VALIDATOR
> function pointer takes two parameters, the pointer to the field and a
> context pointer. For cases where the validator has to have access to the
> length of the field, there is no clean way to currently do it. In order
> to resolve this, this commit updates the field-validator's prototype to
> take the length of the field as a third parameter.
>
> This enhancement allows field validators to perform more comprehensive
> validation, especially when the length of the field is critical to the
> validation logic. This change should improve the overall robustness and
> flexibility of AcpiView.
>
> Signed-off-by: Rohit Mathew<Rohit.Mathew@arm.com>
> Cc: James Morse<james.Morse@arm.com>
> Cc: Sami Mujawar<sami.mujawar@arm.com>
> Cc: Thomas Abraham<thomas.abraham@arm.com>
> Cc: Zhichao Gao<zhichao.gao@intel.com>
> ---
> ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.c | 6 +--
> ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h | 5 +-
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Aest/AestParser.c | 32 +++++++----
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dbg2/Dbg2Parser.c | 8 +--
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Erst/ErstParser.c | 20 ++++---
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Fadt/FadtParser.c | 20 ++++---
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Gtdt/GtdtParser.c | 14 +++--
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Hmat/HmatParser.c | 8 +--
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Iort/IortParser.c | 32 +++++++----
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.c | 14 +++--
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pcct/PcctParser.c | 56 +++++++++++++-------
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pptt/PpttParser.c | 38 ++++++++-----
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Rsdp/RsdpParser.c | 14 +++--
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Spcr/SpcrParser.c | 14 +++--
> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Srat/SratParser.c | 14 +++--
> 15 files changed, 190 insertions(+), 105 deletions(-)
>
> diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.c
> index eac9286176..6823ba60cf 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 - 2023, Arm Limited. All rights reserved.
> Copyright (c) 2022, AMD Incorporated. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent
> **/
> @@ -616,7 +616,7 @@ ParseAcpi (
> if (GetConsistencyChecking () &&
> (Parser[Index].FieldValidator != NULL))
> {
> - Parser[Index].FieldValidator (Ptr, Parser[Index].Context);
> + Parser[Index].FieldValidator (Ptr, Parser[Index].Context, Parser[Index].Length);
> }
>
> Print (L"\n");
> @@ -927,7 +927,7 @@ ParseAcpiBitFields (
> if (GetConsistencyChecking () &&
> (Parser[Index].FieldValidator != NULL))
> {
> - Parser[Index].FieldValidator ((UINT8 *)&Data, Parser[Index].Context);
> + Parser[Index].FieldValidator ((UINT8 *)&Data, Parser[Index].Context, Parser[Index].Length);
> }
>
> Print (L"\n");
> diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h
> index 4b4397961b..6d8b44d94a 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 - 2023, Arm Limited. All rights reserved.
> Copyright (c) 2022, AMD Incorporated. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent
> **/
> @@ -237,8 +237,9 @@ typedef VOID (EFIAPI *FNPTR_PRINT_FORMATTER)(CONST CHAR16 *Format, UINT8 *Ptr);
> @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.
> + @param [in] Length Length of the field.
> **/
> -typedef VOID (EFIAPI *FNPTR_FIELD_VALIDATOR)(UINT8 *Ptr, VOID *Context);
> +typedef VOID (EFIAPI *FNPTR_FIELD_VALIDATOR)(UINT8 *Ptr, VOID *Context, UINT32 Length);
[SAMI] I would prefer the Length field to be the second parameter.
>
> /**
> 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..a37927b107 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) 2023, Arm Limited.
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @par Reference(s):
> @@ -35,13 +35,15 @@ STATIC UINT8 *ProcessorResourceType;
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateProcessorFlags (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> // If the global or shared node flag is set then the ACPI Processor ID
> @@ -61,13 +63,15 @@ ValidateProcessorFlags (
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateGicInterfaceType (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> UINT32 GicInterfaceType;
> @@ -85,13 +89,15 @@ ValidateGicInterfaceType (
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateInterfaceType (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> if (*Ptr > 1) {
> @@ -106,13 +112,15 @@ ValidateInterfaceType (
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateInterruptType (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> if (*Ptr > 1) {
> @@ -127,13 +135,15 @@ ValidateInterruptType (
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateInterruptFlags (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> if ((*Ptr & 0xfe) != 0) {
> diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dbg2/Dbg2Parser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Dbg2/Dbg2Parser.c
> index d25d4d84f8..4400b55553 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 - 2023, ARM Limited. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @par Reference(s):
> @@ -32,13 +32,15 @@ STATIC ACPI_DESCRIPTION_HEADER_INFO AcpiHdrInfo;
> @param [in] Ptr Pointer to the start of the buffer.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateNameSpaceStrLen (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> UINT16 NameSpaceStrLen;
> diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Erst/ErstParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Erst/ErstParser.c
> index f3ae09309c..f9f08732ca 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 - 2023, ARM Limited. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @par Reference(s):
> @@ -72,13 +72,15 @@ STATIC CONST CHAR16 *ErstInstructionTable[] = {
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateErstAction (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> if (*Ptr > EFI_ACPI_6_4_ERST_GET_EXECUTE_OPERATION_TIMINGS) {
> @@ -93,13 +95,15 @@ ValidateErstAction (
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateErstInstruction (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> if (*Ptr > EFI_ACPI_6_4_ERST_MOVE_DATA) {
> @@ -114,13 +118,15 @@ ValidateErstInstruction (
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateErstFlags (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> if ((*Ptr & 0xfe) != 0) {
> diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Fadt/FadtParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Fadt/FadtParser.c
> index abc58d6552..f03b99ebde 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 - 2023, ARM Limited. All rights reserved.
> Copyright (c) 2022, AMD Incorporated. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @@ -59,13 +59,15 @@ GetAcpiXsdtHeaderInfo (
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateFirmwareCtrl (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> #if defined (MDE_CPU_ARM) || defined (MDE_CPU_AARCH64)
> @@ -85,13 +87,15 @@ ValidateFirmwareCtrl (
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateXFirmwareCtrl (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> #if defined (MDE_CPU_ARM) || defined (MDE_CPU_AARCH64)
> @@ -111,13 +115,15 @@ ValidateXFirmwareCtrl (
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateFlags (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> #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..29bd781465 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 - 2023, ARM Limited. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @par Reference(s):
> @@ -32,13 +32,15 @@ STATIC ACPI_DESCRIPTION_HEADER_INFO AcpiHdrInfo;
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateGtBlockTimerCount (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> UINT32 BlockTimerCount;
> @@ -61,13 +63,15 @@ ValidateGtBlockTimerCount (
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateGtFrameNumber (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> UINT8 FrameNumber;
> diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Hmat/HmatParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Hmat/HmatParser.c
> index 2a1357c853..de8e9cf01f 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) 2023, Arm Limited.
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @par Reference(s):
> @@ -56,13 +56,15 @@ STATIC CONST CHAR16 *SllbiNames[] = {
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateCacheAttributes (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> EFI_ACPI_6_4_HMAT_STRUCTURE_MEMORY_SIDE_CACHE_INFO_CACHE_ATTRIBUTES *
> diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Iort/IortParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Iort/IortParser.c
> index 599cf0ee8f..122e087eed 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 - 2023, Arm Limited. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @par Reference(s):
> @@ -48,13 +48,15 @@ STATIC CONST UINT32 *RmrMemDescOffset;
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateItsIdMappingCount (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> if (*(UINT32 *)Ptr != 0) {
> @@ -70,13 +72,15 @@ ValidateItsIdMappingCount (
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidatePmcgIdMappingCount (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> if (*(UINT32 *)Ptr > 1) {
> @@ -91,13 +95,15 @@ ValidatePmcgIdMappingCount (
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateItsIdArrayReference (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> if (*(UINT32 *)Ptr != 0) {
> @@ -113,13 +119,15 @@ ValidateItsIdArrayReference (
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidatePhysicalRange (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> UINT64 Value;
> @@ -137,13 +145,15 @@ ValidatePhysicalRange (
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateRmrMemDescCount (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> if (*(UINT32 *)Ptr == 0) {
> diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.c
> index 41edcb9ffd..3633329bea 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 - 2020, ARM Limited. All rights reserved.
> + Copyright (c) 2016 - 2023, ARM Limited. All rights reserved.
> Copyright (c) 2022, AMD Incorporated. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @@ -30,13 +30,15 @@ STATIC ACPI_DESCRIPTION_HEADER_INFO AcpiHdrInfo;
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateGICDSystemVectorBase (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> if (*(UINT32 *)Ptr != 0) {
> @@ -53,13 +55,15 @@ ValidateGICDSystemVectorBase (
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateSpeOverflowInterrupt (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> UINT16 SpeOverflowInterrupt;
> diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pcct/PcctParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pcct/PcctParser.c
> index 8ad39090af..5d350ae16d 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) 2023, Arm Limited.
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @par Reference(s):
> @@ -30,13 +30,15 @@ STATIC UINT8 *ExtendedPccSubspaceInterruptFlags;
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateRangeLength4 (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> if (*(UINT32 *)Ptr < MIN_EXT_PCC_SUBSPACE_MEM_RANGE_LEN) {
> @@ -56,13 +58,15 @@ ValidateRangeLength4 (
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateRangeLength8 (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> if (*(UINT64 *)Ptr <= MIN_MEMORY_RANGE_LENGTH) {
> @@ -82,13 +86,15 @@ ValidateRangeLength8 (
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidatePccMemoryIoGas (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> switch (*(UINT8 *)Ptr) {
> @@ -109,13 +115,15 @@ ValidatePccMemoryIoGas (
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidatePccGas (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> switch (*(UINT8 *)Ptr) {
> @@ -137,13 +145,15 @@ ValidatePccGas (
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidatePccDoorbellGas (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> // For responder subspaces this field is optional, if not present the field
> @@ -158,7 +168,7 @@ ValidatePccDoorbellGas (
> }
> }
>
> - ValidatePccGas (Ptr, Context);
> + ValidatePccGas (Ptr, Context, Length);
> }
>
> /**
> @@ -168,13 +178,15 @@ ValidatePccDoorbellGas (
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidatePccIntAckGas (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> // If the subspace does not support interrupts or the interrupt is
> @@ -196,7 +208,7 @@ ValidatePccIntAckGas (
> }
> }
>
> - ValidatePccGas (Ptr, Context);
> + ValidatePccGas (Ptr, Context, Length);
> }
>
> /**
> @@ -205,13 +217,15 @@ ValidatePccIntAckGas (
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidatePccErrStatusGas (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> // This field is ignored by the OSPM on responder channels.
> @@ -219,7 +233,7 @@ ValidatePccErrStatusGas (
> return;
> }
>
> - ValidatePccGas (Ptr, Context);
> + ValidatePccGas (Ptr, Context, Length);
> }
>
> /**
> @@ -228,13 +242,15 @@ ValidatePccErrStatusGas (
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidatePlatInterrupt (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> // 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..a079d2498f 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 - 2023, ARM Limited. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @par Reference(s):
> @@ -54,13 +54,15 @@ LogCacheFlagError (
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateCacheFlags (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> #if defined (MDE_CPU_ARM) || defined (MDE_CPU_AARCH64)
> @@ -117,13 +119,15 @@ ValidateCacheFlags (
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateCacheNumberOfSets (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> UINT32 NumberOfSets;
> @@ -168,13 +172,15 @@ ValidateCacheNumberOfSets (
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateCacheAssociativity (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> UINT8 Associativity;
> @@ -194,13 +200,15 @@ ValidateCacheAssociativity (
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateCacheLineSize (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> #if defined (MDE_CPU_ARM) || defined (MDE_CPU_AARCH64)
> @@ -239,13 +247,15 @@ ValidateCacheLineSize (
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateCacheId (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> UINT32 CacheId;
> @@ -278,13 +288,15 @@ ValidateCacheId (
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateCacheAttributes (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> // 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..8d58392b08 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 - 2023, ARM Limited. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @par Reference(s):
> @@ -21,13 +21,15 @@ STATIC CONST UINT64 *XsdtAddress;
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateRsdtAddress (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> #if defined (MDE_CPU_ARM) || defined (MDE_CPU_AARCH64)
> @@ -57,13 +59,15 @@ ValidateRsdtAddress (
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateXsdtAddress (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> #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..60522dd408 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 - 2023, ARM Limited. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @par Reference(s):
> @@ -24,13 +24,15 @@ STATIC ACPI_DESCRIPTION_HEADER_INFO AcpiHdrInfo;
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateInterruptType (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> #if defined (MDE_CPU_ARM) || defined (MDE_CPU_AARCH64)
> @@ -57,13 +59,15 @@ ValidateInterruptType (
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateIrq (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> #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..76534ccee3 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 - 2023, ARM Limited. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> @par Reference(s):
> @@ -27,13 +27,15 @@ STATIC ACPI_DESCRIPTION_HEADER_INFO AcpiHdrInfo;
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateSratReserved (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> if (*(UINT32 *)Ptr != 1) {
> @@ -49,13 +51,15 @@ ValidateSratReserved (
> @param [in] Ptr Pointer to the start of the field data.
> @param [in] Context Pointer to context specific information e.g. this
> could be a pointer to the ACPI table header.
> + @param [in] Length Length of the field.
> **/
> STATIC
> VOID
> EFIAPI
> ValidateSratDeviceHandleType (
> - IN UINT8 *Ptr,
> - IN VOID *Context
> + IN UINT8 *Ptr,
> + IN VOID *Context,
> + IN UINT32 Length
> )
> {
> UINT8 DeviceHandleType;
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#112075): https://edk2.groups.io/g/devel/message/112075
Mute This Topic: https://groups.io/mt/101716935/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
prev parent reply other threads:[~2023-12-05 11:47 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-02 17:15 [edk2-devel] [PATCH v5 2/6] ShellPkg/AcpiView: Update field-validator prototype Rohit Mathew
2023-12-05 11:47 ` Sami Mujawar [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=97994f97-55bd-41a2-a31a-c650dd2d7ebb@arm.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox