Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,16 @@
#include "AcpiParser.h"
#include "AcpiTableParser.h"

#define SIZE_OF_T(TYPE, Field) ((UINTN)sizeof(((TYPE *)0)->Field))

// Local variables
STATIC UINT8 *mRimtNodeType;
STATIC UINT16 *mRimtNodeLength;
STATIC EFI_ACPI_6_6_RIMT_NODE_HEADER_STRUCTURE mRimtNodeHeader;
STATIC EFI_ACPI_6_6_RIMT_STRUCTURE mRimtInfo;
STATIC CONST UINT32 *mNumberOfRimtNodes;
STATIC CONST UINT32 *mOffsetToRimtNodeArray;
STATIC EFI_ACPI_6_6_RIMT_ID_MAPPING_STRUCTURE mRimtIdMappingNode;
STATIC CONST UINT16 *mNumberOfIdMappings;
STATIC UINT8 *mIdMappingArrayOffset;
STATIC EFI_ACPI_6_6_RIMT_PCIE_ROOT_COMPLEX_NODE_STRUCTURE mRimtPcieRootComplexNode;
STATIC EFI_ACPI_6_6_RIMT_IOMMU_NODE_STRUCTURE mRimtIommuNode;
STATIC UINT8 *mRimtNodeType;
STATIC UINT16 *mRimtNodeLength;
STATIC EFI_ACPI_6_6_RIMT_STRUCTURE mRimtInfo;
STATIC CONST UINT32 *mNumberOfRimtNodes;
STATIC CONST UINT32 *mOffsetToRimtNodeArray;
STATIC CONST UINT16 *mNumberOfIdMappings;
STATIC UINT8 *mIdMappingArrayOffset;

/**
This function validates RIMT Node type.
Expand Down Expand Up @@ -94,7 +92,7 @@ RimtNodeTypeToStr (
**/
#define RIMT_PARSE_NODE_HEADER \
{ L"Type", \
sizeof(mRimtNodeHeader.Type), \
SIZE_OF_T(EFI_ACPI_6_6_RIMT_NODE_HEADER_STRUCTURE, Type), \
OFFSET_OF(EFI_ACPI_6_6_RIMT_NODE_HEADER_STRUCTURE, Type), \
NULL, \
RimtNodeTypeToStr, \
Expand All @@ -103,7 +101,7 @@ RimtNodeTypeToStr (
NULL \
}, \
{ L"Revision", \
sizeof(mRimtNodeHeader.Revision), \
SIZE_OF_T(EFI_ACPI_6_6_RIMT_NODE_HEADER_STRUCTURE, Revision),\
OFFSET_OF(EFI_ACPI_6_6_RIMT_NODE_HEADER_STRUCTURE, Revision),\
L"%d", \
NULL, \
Expand All @@ -112,7 +110,7 @@ RimtNodeTypeToStr (
NULL \
}, \
{ L"Length", \
sizeof(mRimtNodeHeader.Length), \
SIZE_OF_T(EFI_ACPI_6_6_RIMT_NODE_HEADER_STRUCTURE, Length), \
OFFSET_OF(EFI_ACPI_6_6_RIMT_NODE_HEADER_STRUCTURE, Length), \
L"%d", \
NULL, \
Expand All @@ -121,7 +119,7 @@ RimtNodeTypeToStr (
NULL \
}, \
{ L"Reserved", \
sizeof(mRimtNodeHeader.Reserved), \
SIZE_OF_T(EFI_ACPI_6_6_RIMT_NODE_HEADER_STRUCTURE, Reserved),\
OFFSET_OF(EFI_ACPI_6_6_RIMT_NODE_HEADER_STRUCTURE, Reserved),\
L"0x%x", \
NULL, \
Expand All @@ -130,7 +128,7 @@ RimtNodeTypeToStr (
NULL \
}, \
{ L"Id", \
sizeof(mRimtNodeHeader.Id), \
SIZE_OF_T(EFI_ACPI_6_6_RIMT_NODE_HEADER_STRUCTURE, Id), \
OFFSET_OF(EFI_ACPI_6_6_RIMT_NODE_HEADER_STRUCTURE, Id), \
L"%d", \
NULL, \
Expand Down Expand Up @@ -183,8 +181,8 @@ STATIC CONST ACPI_PARSER mRimtParser[] = {
PARSE_ACPI_HEADER (&mRimtInfo.Header),
{
L"Number of RIMT Nodes",
sizeof (mRimtInfo.NumberOfRimtNodes),
OFFSET_OF (EFI_ACPI_6_6_RIMT_STRUCTURE, NumberOfRimtNodes),
SIZE_OF_T (EFI_ACPI_6_6_RIMT_STRUCTURE,NumberOfRimtNodes),
OFFSET_OF (EFI_ACPI_6_6_RIMT_STRUCTURE,NumberOfRimtNodes),
L"%d",
NULL,
(VOID **)&mNumberOfRimtNodes,
Expand All @@ -193,8 +191,8 @@ STATIC CONST ACPI_PARSER mRimtParser[] = {
},
{
L"Offset to RIMT Node Array",
sizeof (mRimtInfo.OffsetToRimtNodeArray),
OFFSET_OF (EFI_ACPI_6_6_RIMT_STRUCTURE, OffsetToRimtNodeArray),
SIZE_OF_T (EFI_ACPI_6_6_RIMT_STRUCTURE,OffsetToRimtNodeArray),
OFFSET_OF (EFI_ACPI_6_6_RIMT_STRUCTURE,OffsetToRimtNodeArray),
L"0x%x",
NULL,
(VOID **)&mOffsetToRimtNodeArray,
Expand All @@ -203,8 +201,8 @@ STATIC CONST ACPI_PARSER mRimtParser[] = {
},
{
L"Reserved",
sizeof (mRimtInfo.Reserved),
OFFSET_OF (EFI_ACPI_6_6_RIMT_STRUCTURE, Reserved),
SIZE_OF_T (EFI_ACPI_6_6_RIMT_STRUCTURE,Reserved),
OFFSET_OF (EFI_ACPI_6_6_RIMT_STRUCTURE,Reserved),
L"0x%x",
NULL,
NULL,
Expand Down Expand Up @@ -342,7 +340,7 @@ STATIC CONST ACPI_PARSER RimtIommuNodeParser[] = {
RIMT_PARSE_NODE_HEADER,
{
L"Hardware ID",
sizeof (mRimtIommuNode.HardwareId),
SIZE_OF_T (EFI_ACPI_6_6_RIMT_IOMMU_NODE_STRUCTURE, HardwareId),
OFFSET_OF (EFI_ACPI_6_6_RIMT_IOMMU_NODE_STRUCTURE, HardwareId),
NULL,
RimtHardwareIdToStr,
Expand All @@ -352,7 +350,7 @@ STATIC CONST ACPI_PARSER RimtIommuNodeParser[] = {
},
{
L"Base Address",
sizeof (mRimtIommuNode.BaseAddress),
SIZE_OF_T (EFI_ACPI_6_6_RIMT_IOMMU_NODE_STRUCTURE, BaseAddress),
OFFSET_OF (EFI_ACPI_6_6_RIMT_IOMMU_NODE_STRUCTURE, BaseAddress),
L"0x%lx",
NULL,
Expand All @@ -362,7 +360,7 @@ STATIC CONST ACPI_PARSER RimtIommuNodeParser[] = {
},
{
L"Flags",
sizeof (mRimtIommuNode.Flags),
SIZE_OF_T (EFI_ACPI_6_6_RIMT_IOMMU_NODE_STRUCTURE, Flags),
OFFSET_OF (EFI_ACPI_6_6_RIMT_IOMMU_NODE_STRUCTURE, Flags),
NULL,
RIMT_GET_NODE_FLAGS_PARSER_FUNC (RimtIommuFlagParser),
Expand All @@ -372,7 +370,7 @@ STATIC CONST ACPI_PARSER RimtIommuNodeParser[] = {
},
{
L"Proximity Domain",
sizeof (mRimtIommuNode.ProximityDomain),
SIZE_OF_T (EFI_ACPI_6_6_RIMT_IOMMU_NODE_STRUCTURE, ProximityDomain),
OFFSET_OF (EFI_ACPI_6_6_RIMT_IOMMU_NODE_STRUCTURE, ProximityDomain),
L"%d",
NULL,
Expand All @@ -382,7 +380,7 @@ STATIC CONST ACPI_PARSER RimtIommuNodeParser[] = {
},
{
L"PCIe Segment number",
sizeof (mRimtIommuNode.PcieSegmentNumber),
SIZE_OF_T (EFI_ACPI_6_6_RIMT_IOMMU_NODE_STRUCTURE, PcieSegmentNumber),
OFFSET_OF (EFI_ACPI_6_6_RIMT_IOMMU_NODE_STRUCTURE, PcieSegmentNumber),
L"0x%x",
NULL,
Expand All @@ -392,7 +390,7 @@ STATIC CONST ACPI_PARSER RimtIommuNodeParser[] = {
},
{
L"PCIe B/D/F",
sizeof (mRimtIommuNode.PcieBdf),
SIZE_OF_T (EFI_ACPI_6_6_RIMT_IOMMU_NODE_STRUCTURE, PcieBdf),
OFFSET_OF (EFI_ACPI_6_6_RIMT_IOMMU_NODE_STRUCTURE, PcieBdf),
L"%d",
NULL,
Expand All @@ -402,7 +400,7 @@ STATIC CONST ACPI_PARSER RimtIommuNodeParser[] = {
},
{
L"Number of interrupt wires",
sizeof (mRimtIommuNode.NumberOfInterruptWires),
SIZE_OF_T (EFI_ACPI_6_6_RIMT_IOMMU_NODE_STRUCTURE, NumberOfInterruptWires),
OFFSET_OF (EFI_ACPI_6_6_RIMT_IOMMU_NODE_STRUCTURE, NumberOfInterruptWires),
L"0x%x",
NULL,
Expand All @@ -412,7 +410,7 @@ STATIC CONST ACPI_PARSER RimtIommuNodeParser[] = {
},
{
L"Interrupt wire array offset",
sizeof (mRimtIommuNode.InterruptWireArrayOffset),
SIZE_OF_T (EFI_ACPI_6_6_RIMT_IOMMU_NODE_STRUCTURE, InterruptWireArrayOffset),
OFFSET_OF (EFI_ACPI_6_6_RIMT_IOMMU_NODE_STRUCTURE, InterruptWireArrayOffset),
L"0x%x",
NULL,
Expand Down Expand Up @@ -491,39 +489,39 @@ An ACPI_PARSER array describing the ID Mapping Node.
STATIC CONST ACPI_PARSER RimtIdMappingNodeParser[] = {
{
L"Source ID Base",
sizeof (mRimtIdMappingNode.SourceIdBase),
SIZE_OF_T (EFI_ACPI_6_6_RIMT_ID_MAPPING_STRUCTURE, SourceIdBase),
OFFSET_OF (EFI_ACPI_6_6_RIMT_ID_MAPPING_STRUCTURE, SourceIdBase),
L"0x%x",
NULL,
NULL, NULL, NULL
},
{
L"Number of IDs",
sizeof (mRimtIdMappingNode.NumberOfIDs),
SIZE_OF_T (EFI_ACPI_6_6_RIMT_ID_MAPPING_STRUCTURE, NumberOfIDs),
OFFSET_OF (EFI_ACPI_6_6_RIMT_ID_MAPPING_STRUCTURE, NumberOfIDs),
L"%d",
NULL,
NULL, NULL, NULL
},
{
L"Destination Device ID Base",
sizeof (mRimtIdMappingNode.DestinationDeviceIdBase),
SIZE_OF_T (EFI_ACPI_6_6_RIMT_ID_MAPPING_STRUCTURE, DestinationDeviceIdBase),
OFFSET_OF (EFI_ACPI_6_6_RIMT_ID_MAPPING_STRUCTURE, DestinationDeviceIdBase),
L"%d",
NULL,
NULL, NULL, NULL
},
{
L"Destination IOMMU Offset",
sizeof (mRimtIdMappingNode.DestinationIommuOffset),
SIZE_OF_T (EFI_ACPI_6_6_RIMT_ID_MAPPING_STRUCTURE, DestinationIommuOffset),
OFFSET_OF (EFI_ACPI_6_6_RIMT_ID_MAPPING_STRUCTURE, DestinationIommuOffset),
L"0x%x",
NULL,
NULL, NULL, NULL
},
{
L"Flags",
sizeof (mRimtIdMappingNode.Flags),
SIZE_OF_T (EFI_ACPI_6_6_RIMT_ID_MAPPING_STRUCTURE, Flags),
OFFSET_OF (EFI_ACPI_6_6_RIMT_ID_MAPPING_STRUCTURE, Flags),
NULL,
RIMT_GET_NODE_FLAGS_PARSER_FUNC (RimtIdMappingFlagParser),
Expand Down Expand Up @@ -610,7 +608,7 @@ STATIC CONST ACPI_PARSER RimtPcieRcNodeParser[] = {
RIMT_PARSE_NODE_HEADER,
{
L"Flags",
sizeof (mRimtPcieRootComplexNode.Flags),
SIZE_OF_T (EFI_ACPI_6_6_RIMT_PCIE_ROOT_COMPLEX_NODE_STRUCTURE,Flags),
OFFSET_OF (EFI_ACPI_6_6_RIMT_PCIE_ROOT_COMPLEX_NODE_STRUCTURE,Flags),
NULL,
RIMT_GET_NODE_FLAGS_PARSER_FUNC (RimtPcieRcFlagParser),
Expand All @@ -620,7 +618,7 @@ STATIC CONST ACPI_PARSER RimtPcieRcNodeParser[] = {
},
{
L"Reserved",
sizeof (mRimtPcieRootComplexNode.Reserved),
SIZE_OF_T (EFI_ACPI_6_6_RIMT_PCIE_ROOT_COMPLEX_NODE_STRUCTURE,Reserved),
OFFSET_OF (EFI_ACPI_6_6_RIMT_PCIE_ROOT_COMPLEX_NODE_STRUCTURE,Reserved),
L"0x%lx",
NULL,
Expand All @@ -630,7 +628,7 @@ STATIC CONST ACPI_PARSER RimtPcieRcNodeParser[] = {
},
{
L"PCIe Segment Number",
sizeof (mRimtPcieRootComplexNode.PcieSegmentNumber),
SIZE_OF_T (EFI_ACPI_6_6_RIMT_PCIE_ROOT_COMPLEX_NODE_STRUCTURE,PcieSegmentNumber),
OFFSET_OF (EFI_ACPI_6_6_RIMT_PCIE_ROOT_COMPLEX_NODE_STRUCTURE,PcieSegmentNumber),
L"%d",
NULL,
Expand All @@ -640,7 +638,7 @@ STATIC CONST ACPI_PARSER RimtPcieRcNodeParser[] = {
},
{
L"Id Mapping Array Offset",
sizeof (mRimtPcieRootComplexNode.IdMappingArrayOffset),
SIZE_OF_T (EFI_ACPI_6_6_RIMT_PCIE_ROOT_COMPLEX_NODE_STRUCTURE,IdMappingArrayOffset),
OFFSET_OF (EFI_ACPI_6_6_RIMT_PCIE_ROOT_COMPLEX_NODE_STRUCTURE,IdMappingArrayOffset),
L"0x%x",
NULL,
Expand All @@ -650,7 +648,7 @@ STATIC CONST ACPI_PARSER RimtPcieRcNodeParser[] = {
},
{
L"Number Of Id Mappings",
sizeof (mRimtPcieRootComplexNode.NumberOfIdMappings),
SIZE_OF_T (EFI_ACPI_6_6_RIMT_PCIE_ROOT_COMPLEX_NODE_STRUCTURE,NumberOfIdMappings),
OFFSET_OF (EFI_ACPI_6_6_RIMT_PCIE_ROOT_COMPLEX_NODE_STRUCTURE,NumberOfIdMappings),
L"%d",
NULL,
Expand Down
Loading