TianoCore EDK2 master
Loading...
Searching...
No Matches
MpamParser.c File Reference
#include <IndustryStandard/Mpam.h>
#include <Library/PrintLib.h>
#include <Library/UefiLib.h>
#include "AcpiParser.h"
#include "AcpiView.h"
#include "AcpiViewConfig.h"

Go to the source code of this file.

Functions

STATIC VOID EFIAPI MpamLengthError (IN CONST CHAR16 *ErrorMsg)
 
STATIC VOID EFIAPI ValidateReserved (IN UINT8 *Ptr, IN UINT32 Length, IN VOID *Context)
 
STATIC VOID EFIAPI ValidateReservedBits (IN UINT8 *Ptr, IN UINT32 Length, IN VOID *Context)
 
STATIC VOID EFIAPI ValidateMmioSize (IN UINT8 *Ptr, IN UINT32 Length, IN VOID *Context)
 
STATIC VOID EFIAPI DecodeLinkType (IN UINT8 *Ptr, IN UINT32 Length, IN VOID *Context)
 
STATIC VOID EFIAPI DecodeHardwareId (IN UINT8 *Ptr, IN UINT32 Length, IN VOID *Context)
 
STATIC VOID EFIAPI DecodeInterfaceType (IN UINT8 *Ptr, IN UINT32 Length, IN VOID *Context)
 
STATIC VOID EFIAPI DecodeInterruptMode (IN UINT8 *Ptr, IN UINT32 Length, IN VOID *Context)
 
STATIC VOID EFIAPI DecodeInterruptType (IN UINT8 *Ptr, IN UINT32 Length, IN VOID *Context)
 
STATIC VOID EFIAPI DecodeInterruptAffinityValid (IN UINT8 *Ptr, IN UINT32 Length, IN VOID *Context)
 
STATIC VOID EFIAPI DecodeInterruptAffinityType (IN UINT8 *Ptr, IN UINT32 Length, IN VOID *Context)
 
STATIC VOID EFIAPI DecodeLocatorType (IN UINT8 *Ptr, IN UINT32 Length, IN VOID *Context)
 
STATIC VOID EFIAPI DumpMpamMscInterruptFlags (IN CONST CHAR16 *Format OPTIONAL, IN UINT8 *Ptr, IN UINT32 Length)
 
STATIC VOID EFIAPI ParseLocator (IN CONST CHAR16 *Format OPTIONAL, IN UINT8 *Ptr, IN UINT32 Length)
 
STATIC VOID EFIAPI PrintBlockTitle (IN UINT32 Indent, IN CONST CHAR16 *Title, IN CONST UINT32 Index)
 
STATIC EFI_STATUS EFIAPI ParseInterconnectDescriptors (IN UINT8 *CONST Ptr, IN CONST UINT32 AcpiTableLength, IN OUT UINT32 *CONST Offset)
 
STATIC EFI_STATUS EFIAPI ParseInterconnectDescriptorTable (IN UINT8 *CONST Ptr, IN CONST UINT32 AcpiTableLength, IN UINT32 Offset, IN CONST UINT64 InterconnectOffset)
 
STATIC EFI_STATUS EFIAPI ParseMpamMscFunctionalDependencies (IN UINT8 *CONST Ptr, IN CONST UINT32 AcpiTableLength, IN OUT UINT32 *CONST Offset)
 
STATIC EFI_STATUS EFIAPI ParseMpamMscResources (IN UINT8 *CONST Ptr, IN CONST UINT32 AcpiTableLength, IN UINT32 Offset)
 
STATIC EFI_STATUS EFIAPI ParseMpamMscNodes (IN UINT8 *CONST Ptr, IN CONST UINT32 AcpiTableLength, IN OUT UINT32 *CONST Offset)
 
VOID EFIAPI ParseAcpiMpam (IN BOOLEAN Trace, IN UINT8 *Ptr, IN UINT32 AcpiTableLength, IN UINT8 AcpiTableRevision)
 

Variables

STATIC CONST UINT8 * MscInterfaceType
 
STATIC CONST UINT8 * ResourceLocatorType
 
STATIC UINT32 MpamMscNodeStart
 
STATIC CONST UINT16 * MpamMscNodeLength
 
STATIC CONST UINT32 * NumberOfMscResources
 
STATIC CONST UINT32 * NumberOfFunctionalDependencies
 
STATIC CONST UINT32 * NumberOfInterconnectDescriptors
 
STATIC CONST UINT64 * InterconnectTableOffset
 
STATIC ACPI_DESCRIPTION_HEADER_INFO AcpiHdrInfo
 
STATIC CONST CHAR16 * MpamMscLocatorTitles []
 
STATIC CONST ACPI_PARSER MpamMscInterruptFlagParser []
 
STATIC CONST ACPI_PARSER MpamMscProcessorCacheLocatorParser []
 
STATIC CONST ACPI_PARSER MpamMscMemoryLocatorParser []
 
STATIC CONST ACPI_PARSER MpamMscSMMULocatorParser []
 
STATIC CONST ACPI_PARSER MpamMscMemoryCacheLocatorParser []
 
STATIC CONST ACPI_PARSER MpamMscAcpiDeviceLocatorParser []
 
STATIC CONST ACPI_PARSER MpamMscInterconnectLocatorParser []
 
STATIC CONST ACPI_PARSER MpamMscGenericLocatorParser []
 
STATIC CONST ACPI_PARSER MpamParser []
 
STATIC CONST ACPI_PARSER MpamMscNodeParser []
 
STATIC CONST ACPI_PARSER MpamMscResourceParser []
 
STATIC CONST ACPI_PARSER MpamMscFunctionalDependencyParser []
 
STATIC CONST ACPI_PARSER MpamInterconnectDescriptorTableParser []
 
STATIC CONST ACPI_PARSER MpamInterconnectDescriptorParser []
 

Detailed Description

MPAM table parser

Copyright (c) 2024, Arm Limited. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent

Specification Reference:
Glossary:
  • MPAM - Memory System Resource Partitioning And Monitoring
  • MSC - Memory System Component
  • PCC - Platform Communication Channel
  • RIS - Resource Instance Selection
  • SMMU - Arm System Memory Management Unit

Definition in file MpamParser.c.

Function Documentation

◆ DecodeHardwareId()

STATIC VOID EFIAPI DecodeHardwareId ( IN UINT8 *  Ptr,
IN UINT32  Length,
IN VOID *  Context 
)

This function decodes the hardware ID field present within MPAM ACPI table. The specification states that the hardware ID has to be set to zero if not being used.

Parameters
[in]PtrPointer to the start of the field data.
[in]LengthLength of the field.
[in]ContextPointer to context specific information. For this function, context is ignored.

Definition at line 219 of file MpamParser.c.

◆ DecodeInterfaceType()

STATIC VOID EFIAPI DecodeInterfaceType ( IN UINT8 *  Ptr,
IN UINT32  Length,
IN VOID *  Context 
)

This function decodes and validates the interface type for MPAM. Valid interfaces are of MMIO and PCC type.

Parameters
[in]PtrPointer to the start of the field data.
[in]LengthLength of the field.
[in]ContextPointer to context specific information. For this function, context is ignored.

Definition at line 248 of file MpamParser.c.

◆ DecodeInterruptAffinityType()

STATIC VOID EFIAPI DecodeInterruptAffinityType ( IN UINT8 *  Ptr,
IN UINT32  Length,
IN VOID *  Context 
)

This function decodes the interrupt affinity type flag for MPAM. Interrupt affinity type could either be "Processor affinity" or "Processor container affinity"

Parameters
[in]PtrPointer to the start of the field data.
[in]LengthLength of the field.
[in]ContextPointer to context specific information. For this function, context holds the parent/double pointer to a variable holding the interrupt gsiv. Make sure to call the function accordingly.

Definition at line 380 of file MpamParser.c.

◆ DecodeInterruptAffinityValid()

STATIC VOID EFIAPI DecodeInterruptAffinityValid ( IN UINT8 *  Ptr,
IN UINT32  Length,
IN VOID *  Context 
)

This function decodes the interrupt affinity valid flag for MPAM. Interrupt affinity could be either be valid or not.

Parameters
[in]PtrPointer to the start of the field data.
[in]LengthLength of the field.
[in]ContextPointer to context specific information. For this function, context holds the parent/double pointer to a variable holding the interrupt gsiv. Make sure to call the function accordingly.

Definition at line 348 of file MpamParser.c.

◆ DecodeInterruptMode()

STATIC VOID EFIAPI DecodeInterruptMode ( IN UINT8 *  Ptr,
IN UINT32  Length,
IN VOID *  Context 
)

This function decodes the interrupt mode flag for MPAM. Interrupt mode could either be "edge triggered" or "level triggered".

Parameters
[in]PtrPointer to the start of the field data.
[in]LengthLength of the field.
[in]ContextPointer to context specific information. For this function, context holds the parent/double pointer to a variable holding the interrupt gsiv. Make sure to call the function accordingly.

Definition at line 285 of file MpamParser.c.

◆ DecodeInterruptType()

STATIC VOID EFIAPI DecodeInterruptType ( IN UINT8 *  Ptr,
IN UINT32  Length,
IN VOID *  Context 
)

This function decodes the interrupt type flag for MPAM. Interrupt type could be "wired interrupt". Other values are reserved at this point.

Parameters
[in]PtrPointer to the start of the field data.
[in]LengthLength of the field.
[in]ContextPointer to context specific information. For this function, context holds the parent/double pointer to a variable holding the interrupt gsiv. Make sure to call the function accordingly.

Definition at line 316 of file MpamParser.c.

◆ DecodeLinkType()

STATIC VOID EFIAPI DecodeLinkType ( IN UINT8 *  Ptr,
IN UINT32  Length,
IN VOID *  Context 
)

This function decodes and validates the link type for MPAM's interconnect descriptor. Valid links are of NUMA and PROC type.

Parameters
[in]PtrPointer to the start of the field data.
[in]LengthLength of the field.
[in]ContextPointer to context specific information. For this function, context is ignored.

Definition at line 179 of file MpamParser.c.

◆ DecodeLocatorType()

STATIC VOID EFIAPI DecodeLocatorType ( IN UINT8 *  Ptr,
IN UINT32  Length,
IN VOID *  Context 
)

This function decodes the locator type for a particular MPAM MSC resource.

Parameters
[in]PtrPointer to the start of the field data.
[in]LengthLength of the field.
[in]ContextPointer to context specific information. For this function, context holds the parent/double pointer to a variable holding the interrupt gsiv. Make sure to call the function accordingly.

Definition at line 410 of file MpamParser.c.

◆ DumpMpamMscInterruptFlags()

STATIC VOID EFIAPI DumpMpamMscInterruptFlags ( IN CONST CHAR16 *Format  OPTIONAL,
IN UINT8 *  Ptr,
IN UINT32  Length 
)

This function traces MPAM MSC Interrupt Flags. If no format string is specified the Format must be NULL.

Parameters
[in]FormatOptional format string for tracing the data.
[in]PtrPointer to the start of the buffer.
[in]LengthLength of the field.

Definition at line 456 of file MpamParser.c.

◆ MpamLengthError()

STATIC VOID EFIAPI MpamLengthError ( IN CONST CHAR16 *  ErrorMsg)

When the length of the table is insufficient to be parsed, this function could be used to display an appropriate error message.

Parameters
[in]ErrorMsgError message string that has to be appended to the main error log. This string could explain the reason why a insufficient length error was encountered in the first place.

Definition at line 60 of file MpamParser.c.

◆ ParseAcpiMpam()

VOID EFIAPI ParseAcpiMpam ( IN BOOLEAN  Trace,
IN UINT8 *  Ptr,
IN UINT32  AcpiTableLength,
IN UINT8  AcpiTableRevision 
)

This function parses the MPAM ACPI table's generic header. It also invokes a sub routine that would help with parsing rest of the table.

Parameters
[in]TraceIf TRUE, trace the ACPI fields.
[in]PtrPointer to the start of the buffer.
[in]AcpiTableLengthLength of the ACPI table.
[in]AcpiTableRevisionRevision of the ACPI table.

Definition at line 1197 of file MpamParser.c.

◆ ParseInterconnectDescriptors()

STATIC EFI_STATUS EFIAPI ParseInterconnectDescriptors ( IN UINT8 *CONST  Ptr,
IN CONST UINT32  AcpiTableLength,
IN OUT UINT32 *CONST  Offset 
)

This function parses the interconnect descriptor(s) associated with an interconnect type locator object.

Parameters
[in]PtrPointer to the start of the buffer.
[in]AcpiTableLengthLength of the ACPI table.
[in,out]OffsetPointer to current offset within Ptr.

Returns:

Status

EFI_SUCCESS MPAM MSC nodes were parsed properly. EFI_BAD_BUFFER_SIZE The buffer pointer provided as input is not long enough to be parsed correctly.

Definition at line 796 of file MpamParser.c.

◆ ParseInterconnectDescriptorTable()

STATIC EFI_STATUS EFIAPI ParseInterconnectDescriptorTable ( IN UINT8 *CONST  Ptr,
IN CONST UINT32  AcpiTableLength,
IN UINT32  Offset,
IN CONST UINT64  InterconnectOffset 
)

This function parses the interconnect descriptor table associated with an interconnect type locator object. It also performs necessary validation to make sure the interconnect descriptor is at a valid location.

Parameters
[in]PtrPointer to the start of the buffer.
[in]AcpiTableLengthLength of the ACPI table.
[in]OffsetPointer to current offset within Ptr.
[in]InterconnectOffsetOffset to the interconnect descriptor table.

Returns:

Status

EFI_SUCCESS MPAM MSC nodes were parsed properly. EFI_BAD_BUFFER_SIZE The buffer pointer provided as input is not long enough to be parsed correctly. EFI_INVALID_PARAMETER The Offset parameter encoded within the Ptr buffer is not valid.

Definition at line 857 of file MpamParser.c.

◆ ParseLocator()

STATIC VOID EFIAPI ParseLocator ( IN CONST CHAR16 *Format  OPTIONAL,
IN UINT8 *  Ptr,
IN UINT32  Length 
)

This function parses the locator field within the resource node for ACPI MPAM table. The parsing is based on the locator type field.

Parameters
[in]FormatOptional format string for tracing the data.
[in]PtrPointer to the start of the buffer.
[in]LengthLength of the field.

Definition at line 549 of file MpamParser.c.

◆ ParseMpamMscFunctionalDependencies()

STATIC EFI_STATUS EFIAPI ParseMpamMscFunctionalDependencies ( IN UINT8 *CONST  Ptr,
IN CONST UINT32  AcpiTableLength,
IN OUT UINT32 *CONST  Offset 
)

This function parses all the MPAM functional dependency nodes within a single resource node.

Parameters
[in]PtrPointer to the start of the buffer.
[in]AcpiTableLengthLength of the ACPI table.
[in,out]OffsetPointer to current offset within Ptr.

Returns:

Status

EFI_SUCCESS MPAM MSC nodes were parsed properly. EFI_BAD_BUFFER_SIZE The buffer pointer provided as input is not long enough to be parsed correctly.

Definition at line 936 of file MpamParser.c.

◆ ParseMpamMscNodes()

STATIC EFI_STATUS EFIAPI ParseMpamMscNodes ( IN UINT8 *CONST  Ptr,
IN CONST UINT32  AcpiTableLength,
IN OUT UINT32 *CONST  Offset 
)

This function parses all the MPAM MSC nodes within the MPAM ACPI table. It also invokes a helper function to detect and parse resource nodes that maybe present.

Parameters
[in]PtrPointer to the start of the buffer.
[in]AcpiTableLengthLength of the ACPI table.
[in,out]OffsetPointer to the current offset within Ptr.

Returns:

Status

EFI_SUCCESS MPAM MSC nodes were parsed properly. EFI_BAD_BUFFER_SIZE The buffer pointer provided as input is not long enough to be parsed correctly.

Definition at line 1136 of file MpamParser.c.

◆ ParseMpamMscResources()

STATIC EFI_STATUS EFIAPI ParseMpamMscResources ( IN UINT8 *CONST  Ptr,
IN CONST UINT32  AcpiTableLength,
IN UINT32  Offset 
)

This function parses all the MPAM resource nodes within a single MSC node within the MPAM ACPI table. It also invokes helper functions to validate and parse locators and functional dependency descriptors.

Parameters
[in]PtrPointer to the start of the buffer.
[in]AcpiTableLengthLength of the ACPI table.
[in]OffsetPointer to current offset within Ptr.

Returns:

Status

EFI_SUCCESS MPAM MSC nodes were parsed properly. EFI_BAD_BUFFER_SIZE The buffer pointer provided as input is not long enough to be parsed correctly.

Definition at line 994 of file MpamParser.c.

◆ PrintBlockTitle()

STATIC VOID EFIAPI PrintBlockTitle ( IN UINT32  Indent,
IN CONST CHAR16 *  Title,
IN CONST UINT32  Index 
)

PrintBlockTitle could be used to print the title of blocks that appear more than once in the MPAM ACPI table.

Parameters
[in]IndentNumber of spaces to add to the global table indent. The global table indent is 0 by default; however this value is updated on entry to the ParseAcpi() by adding the indent value provided to ParseAcpi() and restored back on exit. Therefore the total indent in the output is dependent on from where this function is called.
[in]TitleTitle string to be used for the block.
[in]IndexIndex of the block.

Definition at line 766 of file MpamParser.c.

◆ ValidateMmioSize()

STATIC VOID EFIAPI ValidateMmioSize ( IN UINT8 *  Ptr,
IN UINT32  Length,
IN VOID *  Context 
)

This function validates the MMIO size within the MSC node body for MPAM ACPI table. MPAM ACPI specification states that the MMIO size for an MSC having PCC type interface should be zero.

Parameters
[in]PtrPointer to the start of the field data.
[in]LengthLength of the field.
[in]ContextPointer to context specific information. For this function, context holds the parent/double pointer to a variable holding the interface type. Make sure to call the function accordingly.

Definition at line 143 of file MpamParser.c.

◆ ValidateReserved()

STATIC VOID EFIAPI ValidateReserved ( IN UINT8 *  Ptr,
IN UINT32  Length,
IN VOID *  Context 
)

This function validates reserved fields. Any reserved field within the MPAM specification must be 0.

Parameters
[in]PtrPointer to the start of the field data.
[in]LengthLength of the field.
[in]ContextPointer to context specific information. For this particular function, context holds the size of the reserved field that needs to be validated.

Definition at line 86 of file MpamParser.c.

◆ ValidateReservedBits()

STATIC VOID EFIAPI ValidateReservedBits ( IN UINT8 *  Ptr,
IN UINT32  Length,
IN VOID *  Context 
)

This function validates bit-length reserved fields. Any reserved field within the MPAM specification must be 0.

Parameters
[in]PtrPointer to the start of the field data.
[in]LengthLength of the field.
[in]ContextPointer to context specific information. For this particular function, context holds the size of the reserved field that needs to be validated.

Definition at line 116 of file MpamParser.c.

Variable Documentation

◆ AcpiHdrInfo

Definition at line 35 of file MpamParser.c.

◆ InterconnectTableOffset

STATIC CONST UINT64* InterconnectTableOffset

Definition at line 34 of file MpamParser.c.

◆ MpamInterconnectDescriptorParser

STATIC CONST ACPI_PARSER MpamInterconnectDescriptorParser[]
Initial value:
= {
{ L"Source ID", 4, 0, L"%u", NULL, NULL, NULL, NULL },
{ L"Destination ID", 4, 4, L"%u", NULL, NULL, NULL, NULL },
{ L"Link type", 1, 8, L"0x%x", NULL,
{ L"Reserved", 3, 9, NULL, DumpReserved, NULL,
}
VOID EFIAPI DumpReserved(IN CONST CHAR16 *Format OPTIONAL, IN UINT8 *Ptr, IN UINT32 Length)
Definition: AcpiParser.c:513
#define NULL
Definition: Base.h:319
STATIC VOID EFIAPI DecodeLinkType(IN UINT8 *Ptr, IN UINT32 Length, IN VOID *Context)
Definition: MpamParser.c:179
STATIC VOID EFIAPI ValidateReserved(IN UINT8 *Ptr, IN UINT32 Length, IN VOID *Context)
Definition: MpamParser.c:86

ACPI_PARSER array describing the interconnect descriptor associated with the interconnect locator type.

Definition at line 739 of file MpamParser.c.

◆ MpamInterconnectDescriptorTableParser

STATIC CONST ACPI_PARSER MpamInterconnectDescriptorTableParser[]
Initial value:
= {
{ L"Signature", 16, 0,
L"%x%x%x%x-%x%x-%x%x-%x%x-%x%x%x%x%x%x", Dump16Chars, NULL, NULL, NULL },
{ L"Number of Interconnect desc", 4, 16,L"0x%x", NULL,
(VOID **)&NumberOfInterconnectDescriptors, NULL, NULL }
}
VOID EFIAPI Dump16Chars(IN CONST CHAR16 *Format OPTIONAL, IN UINT8 *Ptr, IN UINT32 Length)
Definition: AcpiParser.c:474

ACPI_PARSER array describing the interconnect descriptor table associated with the interconnect locator type.

Definition at line 728 of file MpamParser.c.

◆ MpamMscAcpiDeviceLocatorParser

STATIC CONST ACPI_PARSER MpamMscAcpiDeviceLocatorParser[]
Initial value:
= {
{ L"ACPI hardware ID", 8, 0, L"0x%lx", NULL, NULL,
{ L"ACPI unique ID", 4, 8, L"%u", NULL, NULL,NULL,NULL }
}
STATIC VOID EFIAPI DecodeHardwareId(IN UINT8 *Ptr, IN UINT32 Length, IN VOID *Context)
Definition: MpamParser.c:219

ACPI_PARSER array describing the MPAM MSC ACPI device locator field.

Definition at line 514 of file MpamParser.c.

◆ MpamMscFunctionalDependencyParser

STATIC CONST ACPI_PARSER MpamMscFunctionalDependencyParser[]
Initial value:
= {
{ L"Producer", 4, 0, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Reserved", 4, 4, NULL, DumpReserved,
}

ACPI_PARSER array describing the MPAM MSC resource's functional dependencies.

Definition at line 718 of file MpamParser.c.

◆ MpamMscGenericLocatorParser

STATIC CONST ACPI_PARSER MpamMscGenericLocatorParser[]
Initial value:
= {
{ L"Descriptor1", 8, 0, L"%lu", NULL, NULL, NULL, NULL },
{ L"Descriptor2", 4, 8, L"%u", NULL, NULL, NULL, NULL }
}

ACPI_PARSER array describing the MPAM MSC generic resource locator field.

Definition at line 533 of file MpamParser.c.

◆ MpamMscInterconnectLocatorParser

STATIC CONST ACPI_PARSER MpamMscInterconnectLocatorParser[]
Initial value:
= {
{ L"Interconnect desc tbl offset", 8, 0, L"%lu", NULL,
(VOID **)&InterconnectTableOffset, NULL, NULL },
{ L"Reserved", 4, 8, NULL, DumpReserved,
}

ACPI_PARSER array describing the MPAM MSC interconnect locator field.

Definition at line 523 of file MpamParser.c.

◆ MpamMscInterruptFlagParser

STATIC CONST ACPI_PARSER MpamMscInterruptFlagParser[]
Initial value:
= {
{ L"Interrupt Mode", 1, 0, L"%u", NULL, NULL,
{ L"Interrupt Type", 2, 1, L"%u", NULL, NULL,
{ L"Affinity Type", 1, 3, L"%u", NULL, NULL,
{ L"Affinity Valid", 1, 4, L"%u", NULL, NULL,
{ L"Reserved", 27, 5, NULL, DumpReservedBits, NULL,
}
VOID EFIAPI DumpReservedBits(IN CONST CHAR16 *Format OPTIONAL, IN UINT8 *Ptr, IN UINT32 Length)
Definition: AcpiParser.c:615
STATIC VOID EFIAPI DecodeInterruptAffinityType(IN UINT8 *Ptr, IN UINT32 Length, IN VOID *Context)
Definition: MpamParser.c:380
STATIC VOID EFIAPI DecodeInterruptMode(IN UINT8 *Ptr, IN UINT32 Length, IN VOID *Context)
Definition: MpamParser.c:285
STATIC VOID EFIAPI ValidateReservedBits(IN UINT8 *Ptr, IN UINT32 Length, IN VOID *Context)
Definition: MpamParser.c:116
STATIC VOID EFIAPI DecodeInterruptType(IN UINT8 *Ptr, IN UINT32 Length, IN VOID *Context)
Definition: MpamParser.c:316
STATIC VOID EFIAPI DecodeInterruptAffinityValid(IN UINT8 *Ptr, IN UINT32 Length, IN VOID *Context)
Definition: MpamParser.c:348

ACPI_PARSER array describing MPAM MSC interrupt flags.

Definition at line 432 of file MpamParser.c.

◆ MpamMscLocatorTitles

STATIC CONST CHAR16* MpamMscLocatorTitles[]
Initial value:
= {
L"Processor cache",
L"Memory",
L"SMMU",
L"Memory cache",
L"ACPI device",
L"Interconnect"
}

Definition at line 39 of file MpamParser.c.

◆ MpamMscMemoryCacheLocatorParser

STATIC CONST ACPI_PARSER MpamMscMemoryCacheLocatorParser[]
Initial value:
= {
{ L"Reserved", 7, 0, NULL, DumpReserved, NULL,
{ L"Level", 1, 7, L"%u", NULL, NULL,NULL, NULL },
{ L"Reference", 4, 8, L"%u", NULL, NULL,NULL, NULL }
}

ACPI_PARSER array describing the MPAM MSC memory cache locator field.

Definition at line 504 of file MpamParser.c.

◆ MpamMscMemoryLocatorParser

STATIC CONST ACPI_PARSER MpamMscMemoryLocatorParser[]
Initial value:
= {
{ L"Proximity domain", 8, 0, L"%lu", NULL, NULL, NULL, NULL },
{ L"Reserved", 4, 8, NULL, DumpReserved, NULL,
}

ACPI_PARSER array describing the MPAM MSC memory locator field.

Definition at line 486 of file MpamParser.c.

◆ MpamMscNodeLength

STATIC CONST UINT16* MpamMscNodeLength

Definition at line 30 of file MpamParser.c.

◆ MpamMscNodeParser

STATIC CONST ACPI_PARSER MpamMscNodeParser[]

ACPI_PARSER array describing the MPAM MSC node object.

Definition at line 654 of file MpamParser.c.

◆ MpamMscNodeStart

STATIC UINT32 MpamMscNodeStart

Definition at line 29 of file MpamParser.c.

◆ MpamMscProcessorCacheLocatorParser

STATIC CONST ACPI_PARSER MpamMscProcessorCacheLocatorParser[]
Initial value:
= {
{ L"Cache reference", 8, 0, L"%lu", NULL, NULL, NULL, NULL },
{ L"Reserved", 4, 8, NULL, DumpReserved, NULL,
}

ACPI_PARSER array describing the MPAM MSC processor cache locator field.

Definition at line 477 of file MpamParser.c.

◆ MpamMscResourceParser

STATIC CONST ACPI_PARSER MpamMscResourceParser[]
Initial value:
= {
{ L"Identifier", 4, 0, L"%u", NULL,
NULL, NULL, NULL },
{ L"RIS index", 1, 4, L"%u", NULL,
NULL, NULL, NULL },
{ L"Reserved1", 2, 5, NULL, DumpReserved,
{ L"Locator type", 1, 7, L"0x%x", NULL,
(VOID **)&ResourceLocatorType,
{ L"Locator", 12, 8, NULL, ParseLocator,
NULL, NULL, NULL },
{ L"Number of func dependencies", 4, 20, L"%u", NULL,
(VOID **)&NumberOfFunctionalDependencies, NULL, NULL }
}
STATIC VOID EFIAPI ParseLocator(IN CONST CHAR16 *Format OPTIONAL, IN UINT8 *Ptr, IN UINT32 Length)
Definition: MpamParser.c:549
STATIC VOID EFIAPI DecodeLocatorType(IN UINT8 *Ptr, IN UINT32 Length, IN VOID *Context)
Definition: MpamParser.c:410

ACPI_PARSER array describing the MPAM MSC resource.

Definition at line 699 of file MpamParser.c.

◆ MpamMscSMMULocatorParser

STATIC CONST ACPI_PARSER MpamMscSMMULocatorParser[]
Initial value:
= {
{ L"SMMU interface", 8, 0, L"%lu", NULL, NULL, NULL, NULL },
{ L"Reserved", 4, 8, NULL, DumpReserved, NULL,
}

ACPI_PARSER array describing the MPAM MSC SMMU locator field.

Definition at line 495 of file MpamParser.c.

◆ MpamParser

STATIC CONST ACPI_PARSER MpamParser[]
Initial value:
= {
}

ACPI_PARSER array describing the Generic ACPI MPAM table header.

Definition at line 647 of file MpamParser.c.

◆ MscInterfaceType

STATIC CONST UINT8* MscInterfaceType

Definition at line 27 of file MpamParser.c.

◆ NumberOfFunctionalDependencies

STATIC CONST UINT32* NumberOfFunctionalDependencies

Definition at line 32 of file MpamParser.c.

◆ NumberOfInterconnectDescriptors

STATIC CONST UINT32* NumberOfInterconnectDescriptors

Definition at line 33 of file MpamParser.c.

◆ NumberOfMscResources

STATIC CONST UINT32* NumberOfMscResources

Definition at line 31 of file MpamParser.c.

◆ ResourceLocatorType

STATIC CONST UINT8* ResourceLocatorType

Definition at line 28 of file MpamParser.c.