TianoCore EDK2 master
Loading...
Searching...
No Matches
MadtParser.c File Reference
#include <IndustryStandard/Acpi.h>
#include <Library/UefiLib.h>
#include "AcpiParser.h"
#include "AcpiTableParser.h"
#include "AcpiViewConfig.h"
#include "MadtParser.h"

Go to the source code of this file.

Functions

STATIC VOID EFIAPI ValidateGICDSystemVectorBase (IN UINT8 *Ptr, IN UINT32 Length, IN VOID *Context)
 
STATIC VOID EFIAPI ValidateSpeOverflowInterrupt (IN UINT8 *Ptr, IN UINT32 Length, IN VOID *Context)
 
STATIC VOID EFIAPI ValidateTrbeInterrupt (IN UINT8 *Ptr, IN UINT32 Length, IN VOID *Context)
 
STATIC VOID EFIAPI DumpValue (IN CONST CHAR16 *Format, IN UINT8 *Ptr, IN UINT32 Length OPTIONAL)
 
STATIC VOID EFIAPI DumpGicCFlags (IN CONST CHAR16 *Format OPTIONAL, IN UINT8 *Ptr, IN UINT32 Length OPTIONAL)
 
VOID EFIAPI DumpLocalApicBitFlags (IN CONST CHAR16 *Format OPTIONAL, IN UINT8 *Ptr, IN UINT32 Length)
 
VOID EFIAPI ParseAcpiMadt (IN BOOLEAN Trace, IN UINT8 *Ptr, IN UINT32 AcpiTableLength, IN UINT8 AcpiTableRevision)
 

Variables

STATIC CONST UINT8 * MadtInterruptControllerType
 
STATIC CONST UINT8 * MadtInterruptControllerLength
 
STATIC ACPI_DESCRIPTION_HEADER_INFO AcpiHdrInfo
 
STATIC CONST ACPI_PARSER GICCFlagParser []
 
STATIC CONST ACPI_PARSER GicCParser []
 
STATIC CONST ACPI_PARSER GicDParser []
 
STATIC CONST ACPI_PARSER GicMSIFrameParser []
 
STATIC CONST ACPI_PARSER GicRParser []
 
STATIC CONST ACPI_PARSER GicITSParser []
 
STATIC CONST ACPI_PARSER IoApic []
 
STATIC CONST ACPI_PARSER InterruptSourceOverride []
 
STATIC CONST ACPI_PARSER LocalApicFlags []
 
STATIC CONST ACPI_PARSER ProcessorLocalApic []
 
STATIC CONST ACPI_PARSER ProcessorLocalX2Apic []
 
STATIC CONST ACPI_PARSER LocalX2ApicNmi []
 
STATIC CONST ACPI_PARSER CorePic []
 
STATIC CONST ACPI_PARSER LegacyIoPic []
 
STATIC CONST ACPI_PARSER HyperTransportPic []
 
STATIC CONST ACPI_PARSER ExtendIoPic []
 
STATIC CONST ACPI_PARSER MsiPic []
 
STATIC CONST ACPI_PARSER BridgeIoPic []
 
STATIC CONST ACPI_PARSER LpcPic []
 
STATIC CONST ACPI_PARSER MadtParser []
 
STATIC CONST ACPI_PARSER MadtInterruptControllerHeaderParser []
 

Detailed Description

MADT table parser

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

Reference(s):
  • ACPI 6.3 Specification - January 2019
  • Arm Generic Interrupt Controller Architecture Specification, GIC architecture version 3 and version 4, issue E
  • Arm Server Base System Architecture 5.0

Definition in file MadtParser.c.

Function Documentation

◆ DumpGicCFlags()

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

This function dumps the GICC Flags fields. Format string is unused.

Parameters
[in]FormatUnused
[in]PtrPointer to the start of the buffer.
[in]LengthLength of the field.

Definition at line 198 of file MadtParser.c.

◆ DumpLocalApicBitFlags()

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

This function traces Bit Flags fields. 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 342 of file MadtParser.c.

◆ DumpValue()

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

This function dumps the GICC Flags fields. Format string is 2 fields separated by a \0 mapping to 0 or > 0 of the buffer field bit.

Parameters
[in]FormatFormat string that is the list of strings to map values to.
[in]PtrPointer to the start of the buffer.
[in]LengthLength of the field.

Definition at line 162 of file MadtParser.c.

◆ ParseAcpiMadt()

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

This function parses the ACPI MADT table. When trace is enabled this function parses the MADT table and traces the ACPI table fields.

This function currently parses the following Interrupt Controller Structures:

  • GICC
  • GICD
  • GIC MSI Frame
  • GICR
  • GIC ITS

This function also performs validation of the ACPI table fields.

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 530 of file MadtParser.c.

◆ ValidateGICDSystemVectorBase()

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

This function validates the System Vector Base in the GICD.

Parameters
[in]PtrPointer to the start of the field data.
[in]LengthLength of the field.
[in]ContextPointer to context specific information e.g. this could be a pointer to the ACPI table header.

Definition at line 39 of file MadtParser.c.

◆ ValidateSpeOverflowInterrupt()

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

This function validates the SPE Overflow Interrupt in the GICC.

Parameters
[in]PtrPointer to the start of the field data.
[in]LengthLength of the field.
[in]ContextPointer to context specific information e.g. this could be a pointer to the ACPI table header.

Definition at line 64 of file MadtParser.c.

◆ ValidateTrbeInterrupt()

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

This function validates the TRBE Interrupt in the GICC.

Parameters
[in]PtrPointer to the start of the field data.
[in]LengthLength of the field.
[in]ContextPointer to context specific information e.g. this could be a pointer to the ACPI table header.

Definition at line 116 of file MadtParser.c.

Variable Documentation

◆ AcpiHdrInfo

Definition at line 26 of file MadtParser.c.

◆ BridgeIoPic

STATIC CONST ACPI_PARSER BridgeIoPic[]
Initial value:
= {
{ L"Type", 1, 0, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Length", 1, 1, L"%d", NULL, NULL, NULL, NULL },
{ L"Version", 1, 2, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Base Address", 8, 3, L"0x%lx", NULL, NULL, NULL, NULL },
{ L"Size", 2, 11, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Hardware ID", 2, 13, L"0x%x", NULL, NULL, NULL, NULL },
{ L"GSI base", 2, 15, L"0x%x", NULL, NULL, NULL, NULL }
}
#define NULL
Definition: Base.h:319

An ACPI_PARSER array describing the Bridge I/O Programmable Interrupt Controller (BIO PIC) Structure.

Definition at line 466 of file MadtParser.c.

◆ CorePic

Initial value:
= {
{ L"Type", 1, 0, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Length", 1, 1, L"%d", NULL, NULL, NULL, NULL },
{ L"Version", 1, 2, L"0x%x", NULL, NULL, NULL, NULL },
{ L"ACPI Processor ID", 4, 3, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Physical Processor ID", 4, 7, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Flags", 4, 11, L"0x%x", NULL, NULL, NULL, NULL }
}

An ACPI_PARSER array describing the Core Pragrammable Interrupt Controller (CORE PIC) Structure.

Definition at line 405 of file MadtParser.c.

◆ ExtendIoPic

STATIC CONST ACPI_PARSER ExtendIoPic[]
Initial value:
= {
{ L"Type", 1, 0, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Length", 1, 1, L"%d", NULL, NULL, NULL, NULL },
{ L"Version", 1, 2, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Cascade Vector", 1, 3, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Node", 1, 4, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Node Map", 8, 5, L"0x%lx", NULL, NULL, NULL, NULL }
}

An ACPI_PARSER array describing the Extend I/0 Programmable Interrupt Controller (EIO PIC) Structure.

Definition at line 442 of file MadtParser.c.

◆ GICCFlagParser

STATIC CONST ACPI_PARSER GICCFlagParser[]
Initial value:
= {
{ L"Enabled", 1, 0, L"%d", NULL, NULL, NULL, NULL },
{ L"Performance Inter. Mode", 1, 1, L"Level Triggered\0Edge Triggered", DumpValue, NULL, NULL, NULL },
{ L"VGIC Maintenance Inter. Mode", 1, 2, L"Level Triggered\0Edge Triggered", DumpValue, NULL, NULL, NULL },
{ L"Online Capable", 1, 3, L"%d", NULL, NULL, NULL, NULL },
{ L"Reserved", 28, 4, L"%d", NULL, NULL, NULL, NULL }
}
STATIC VOID EFIAPI DumpValue(IN CONST CHAR16 *Format, IN UINT8 *Ptr, IN UINT32 Length OPTIONAL)
Definition: MadtParser.c:162

Definition at line 179 of file MadtParser.c.

◆ GicCParser

STATIC CONST ACPI_PARSER GicCParser[]
Initial value:
= {
{ L"Type", 1, 0, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Length", 1, 1, L"%d", NULL, NULL, NULL, NULL },
{ L"Reserved", 2, 2, L"0x%x", NULL, NULL, NULL, NULL },
{ L"CPU Interface Number", 4, 4, L"0x%x", NULL, NULL, NULL, NULL },
{ L"ACPI Processor UID", 4, 8, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Flags", 4, 12, NULL, DumpGicCFlags, NULL, NULL, NULL },
{ L"Parking Protocol Version", 4, 16, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Performance Interrupt GSIV", 4, 20, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Parked Address", 8, 24, L"0x%lx", NULL, NULL, NULL, NULL },
{ L"Physical Base Address", 8, 32, L"0x%lx", NULL, NULL, NULL, NULL },
{ L"GICV", 8, 40, L"0x%lx", NULL, NULL, NULL, NULL },
{ L"GICH", 8, 48, L"0x%lx", NULL, NULL, NULL, NULL },
{ L"VGIC Maintenance interrupt", 4, 56, L"0x%x", NULL, NULL, NULL, NULL },
{ L"GICR Base Address", 8, 60, L"0x%lx", NULL, NULL, NULL, NULL },
{ L"MPIDR", 8, 68, L"0x%lx", NULL, NULL, NULL, NULL },
{ L"Processor Power Efficiency Class", 1, 76, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Reserved", 1, 77, L"0x%x", NULL, NULL, NULL, NULL },
{ L"SPE overflow Interrupt", 2, 78, L"0x%x", NULL, NULL,
{ L"TRBE Interrupt", 2, 80, L"0x%x", NULL, NULL,
}
STATIC VOID EFIAPI ValidateSpeOverflowInterrupt(IN UINT8 *Ptr, IN UINT32 Length, IN VOID *Context)
Definition: MadtParser.c:64
STATIC VOID EFIAPI DumpGicCFlags(IN CONST CHAR16 *Format OPTIONAL, IN UINT8 *Ptr, IN UINT32 Length OPTIONAL)
Definition: MadtParser.c:198
STATIC VOID EFIAPI ValidateTrbeInterrupt(IN UINT8 *Ptr, IN UINT32 Length, IN VOID *Context)
Definition: MadtParser.c:116

An ACPI_PARSER array describing the GICC Interrupt Controller Structure.

Definition at line 218 of file MadtParser.c.

◆ GicDParser

STATIC CONST ACPI_PARSER GicDParser[]
Initial value:
= {
{ L"Type", 1, 0, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Length", 1, 1, L"%d", NULL, NULL, NULL, NULL },
{ L"Reserved", 2, 2, L"0x%x", NULL, NULL, NULL, NULL },
{ L"GIC ID", 4, 4, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Physical Base Address", 8, 8, L"0x%lx", NULL, NULL, NULL, NULL },
{ L"System Vector Base", 4, 16, L"0x%x", NULL, NULL,
{ L"GIC Version", 1, 20, L"%d", NULL, NULL, NULL, NULL },
{ L"Reserved", 3, 21, L"%x %x %x", Dump3Chars, NULL, NULL, NULL }
}
VOID EFIAPI Dump3Chars(IN CONST CHAR16 *Format OPTIONAL, IN UINT8 *Ptr, IN UINT32 Length)
Definition: AcpiParser.c:326
STATIC VOID EFIAPI ValidateGICDSystemVectorBase(IN UINT8 *Ptr, IN UINT32 Length, IN VOID *Context)
Definition: MadtParser.c:39

An ACPI_PARSER array describing the GICD Interrupt Controller Structure.

Definition at line 247 of file MadtParser.c.

◆ GicITSParser

STATIC CONST ACPI_PARSER GicITSParser[]
Initial value:
= {
{ L"Type", 1, 0, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Length", 1, 1, L"%d", NULL, NULL, NULL, NULL },
{ L"Reserved", 2, 2, L"0x%x", NULL, NULL, NULL, NULL },
{ L"GIC ITS ID", 4, 4, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Physical Base Address", 8, 8, L"0x%lx", NULL, NULL, NULL, NULL },
{ L"Reserved", 4, 16, L"0x%x", NULL, NULL, NULL, NULL }
}

An ACPI_PARSER array describing the GIC ITS Interrupt Controller Structure.

Definition at line 292 of file MadtParser.c.

◆ GicMSIFrameParser

STATIC CONST ACPI_PARSER GicMSIFrameParser[]
Initial value:
= {
{ L"Type", 1, 0, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Length", 1, 1, L"%d", NULL, NULL, NULL, NULL },
{ L"Reserved", 2, 2, L"0x%x", NULL, NULL, NULL, NULL },
{ L"MSI Frame ID", 4, 4, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Physical Base Address", 8, 8, L"0x%lx", NULL, NULL, NULL, NULL },
{ L"Flags", 4, 16, L"0x%x", NULL, NULL, NULL, NULL },
{ L"SPI Count", 2, 20, L"%d", NULL, NULL, NULL, NULL },
{ L"SPI Base", 2, 22, L"0x%x", NULL, NULL, NULL, NULL }
}

An ACPI_PARSER array describing the MSI Frame Interrupt Controller Structure.

Definition at line 263 of file MadtParser.c.

◆ GicRParser

STATIC CONST ACPI_PARSER GicRParser[]
Initial value:
= {
{ L"Type", 1, 0, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Length", 1, 1, L"%d", NULL, NULL, NULL, NULL },
{ L"Reserved", 2, 2, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Discovery Range Base Address", 8, 4, L"0x%lx", NULL, NULL, NULL,
NULL },
{ L"Discovery Range Length", 4, 12, L"0x%x", NULL, NULL, NULL, NULL }
}

An ACPI_PARSER array describing the GICR Interrupt Controller Structure.

Definition at line 279 of file MadtParser.c.

◆ HyperTransportPic

STATIC CONST ACPI_PARSER HyperTransportPic[]
Initial value:
= {
{ L"Type", 1, 0, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Length", 1, 1, L"%d", NULL, NULL, NULL, NULL },
{ L"Version", 1, 2, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Base Address", 8, 3, L"0x%lx", NULL, NULL, NULL, NULL },
{ L"Size", 2, 11, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Cascade Vector", 8, 13, L"0x%lx", NULL, NULL, NULL, NULL }
}

An ACPI_PARSER array describing the HyperTransport Programmable Interrupt Controller (HT PIC) Structure.

Definition at line 430 of file MadtParser.c.

◆ InterruptSourceOverride

STATIC CONST ACPI_PARSER InterruptSourceOverride[]
Initial value:
= {
{ L"Type", 1, 0, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Length", 1, 1, L"%d", NULL, NULL, NULL, NULL },
{ L"Bus", 1, 2, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Source", 1, 3, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Global System Interrupt", 4, 4, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Flags", 2, 8, L"0x%x", NULL, NULL, NULL, NULL }
}

An ACPI_PARSER array describing the Interrupt Source Override Structure.

Definition at line 317 of file MadtParser.c.

◆ IoApic

Initial value:
= {
{ L"Type", 1, 0, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Length", 1, 1, L"%d", NULL, NULL, NULL, NULL },
{ L"I/O APIC ID", 1, 2, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Reserved", 1, 3, L"0x%x", NULL, NULL, NULL, NULL },
{ L"I/O APIC Address", 4, 4, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Global System Interrupt Base", 4, 8, L"0x%x", NULL, NULL, NULL, NULL }
}

An ACPI_PARSER array describing the IO APIC Structure.

Definition at line 305 of file MadtParser.c.

◆ LegacyIoPic

STATIC CONST ACPI_PARSER LegacyIoPic[]
Initial value:
= {
{ L"Type", 1, 0, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Length", 1, 1, L"%d", NULL, NULL, NULL, NULL },
{ L"Version", 1, 2, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Base Address", 8, 3, L"0x%lx", NULL, NULL, NULL, NULL },
{ L"Size", 2, 11, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Cascade Vector", 2, 13, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Cascade vector mapping", 8, 15, L"0x%lx", NULL, NULL, NULL, NULL }
}

An ACPI_PARSER array describing the Leagcy I/O Programmable Interrupt Controller (LIO PIC) Structure.

Definition at line 417 of file MadtParser.c.

◆ LocalApicFlags

STATIC CONST ACPI_PARSER LocalApicFlags[]
Initial value:
= {
{ L"Enabled", 1, 0, L"%d", NULL, NULL, NULL, NULL },
{ L"Online Capable", 1, 1, L"%d", NULL, NULL, NULL, NULL },
{ L"Reserved", 30, 2, L"%d", NULL, NULL, NULL, NULL }
}

Definition at line 326 of file MadtParser.c.

◆ LocalX2ApicNmi

STATIC CONST ACPI_PARSER LocalX2ApicNmi[]
Initial value:
= {
{ L"Type", 1, 0, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Length", 1, 1, L"%d", NULL, NULL, NULL, NULL },
{ L"Flags", 2, 2, L"0x%x", NULL, NULL, NULL, NULL },
{ L"ACPI Processor UID", 4, 4, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Local x2APIC LINT#", 1, 8, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Reserved", 3, 9, L"0x%x%x%x", Dump3Chars, NULL, NULL, NULL }
}

An ACPI_PARSER array describing the Local x2APIC NMI Structure.

Definition at line 392 of file MadtParser.c.

◆ LpcPic

Initial value:
= {
{ L"Type", 1, 0, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Length", 1, 1, L"%d", NULL, NULL, NULL, NULL },
{ L"Version", 1, 2, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Base Address", 8, 3, L"0x%lx", NULL, NULL, NULL, NULL },
{ L"Size", 2, 11, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Cascade vector", 2, 13, L"0x%x", NULL, NULL, NULL, NULL }
}

An ACPI_PARSER array describing the LPC Programmable Interrupt Controller (LPC PIC) Structure.

Definition at line 479 of file MadtParser.c.

◆ MadtInterruptControllerHeaderParser

STATIC CONST ACPI_PARSER MadtInterruptControllerHeaderParser[]
Initial value:
= {
{ NULL, 1, 0, NULL, NULL, (VOID **)&MadtInterruptControllerType, NULL, NULL },
{ L"Length", 1, 1, NULL, NULL, (VOID **)&MadtInterruptControllerLength, NULL,
NULL },
{ L"Reserved", 2, 2, NULL, NULL, NULL, NULL, NULL }
}

An ACPI_PARSER array describing the MADT Interrupt Controller Structure Header Structure.

Definition at line 501 of file MadtParser.c.

◆ MadtInterruptControllerLength

STATIC CONST UINT8* MadtInterruptControllerLength

Definition at line 25 of file MadtParser.c.

◆ MadtInterruptControllerType

STATIC CONST UINT8* MadtInterruptControllerType

Definition at line 24 of file MadtParser.c.

◆ MadtParser

STATIC CONST ACPI_PARSER MadtParser[]
Initial value:
= {
PARSE_ACPI_HEADER (&AcpiHdrInfo),
{ L"Local Interrupt Controller Address",4, 36, L"0x%x", NULL, NULL, NULL,
NULL },
{ L"Flags", 4, 40, L"0x%x", NULL, NULL, NULL,NULL}
}
#define PARSE_ACPI_HEADER(Info)
Definition: AcpiParser.h:501

An ACPI_PARSER array describing the ACPI MADT Table.

Definition at line 491 of file MadtParser.c.

◆ MsiPic

Initial value:
= {
{ L"Type", 1, 0, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Length", 1, 1, L"%d", NULL, NULL, NULL, NULL },
{ L"Version", 1, 2, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Message Address", 8, 3, L"0x%lx", NULL, NULL, NULL, NULL },
{ L"Start", 4, 11, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Count", 4, 15, L"0x%x", NULL, NULL, NULL, NULL }
}

An ACPI_PARSER array describing the MSI Programmable Interrupt Controller (MSI PIC) Structure.

Definition at line 454 of file MadtParser.c.

◆ ProcessorLocalApic

STATIC CONST ACPI_PARSER ProcessorLocalApic[]
Initial value:
= {
{ L"Type", 1, 0, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Length", 1, 1, L"%d", NULL, NULL, NULL, NULL },
{ L"ACPI Processor UID", 1, 2, L"0x%x", NULL, NULL, NULL, NULL },
{ L"APIC ID", 1, 3, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Flags", 4, 4, NULL, DumpLocalApicBitFlags, NULL, NULL, NULL }
}
VOID EFIAPI DumpLocalApicBitFlags(IN CONST CHAR16 *Format OPTIONAL, IN UINT8 *Ptr, IN UINT32 Length)
Definition: MadtParser.c:342

An ACPI_PARSER array describing the Processor Local APIC Structure.

Definition at line 367 of file MadtParser.c.

◆ ProcessorLocalX2Apic

STATIC CONST ACPI_PARSER ProcessorLocalX2Apic[]
Initial value:
= {
{ L"Type", 1, 0, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Length", 1, 1, L"%d", NULL, NULL, NULL, NULL },
{ L"Reserved", 2, 2, L"0x%x", NULL, NULL, NULL, NULL },
{ L"X2APIC ID", 4, 4, L"0x%x", NULL, NULL, NULL, NULL },
{ L"Flags", 4, 8, NULL, DumpLocalApicBitFlags, NULL, NULL, NULL },
{ L"ACPI Processor UID", 4, 12, L"0x%x", NULL, NULL, NULL, NULL }
}

An ACPI_PARSER array describing the Processor Local x2APIC Structure.

Definition at line 379 of file MadtParser.c.