/* This function also performs validation of the ACPI table fields. */
VOID EFIAPI ParseAcpiMcfg(IN BOOLEAN Trace, IN UINT8 *Ptr, IN UINT32 AcpiTableLength, IN UINT8 AcpiTableRevision)
/* This function also performs validation of the ACPI table fields. */
VOID EFIAPI ParseAcpiMcfg(IN BOOLEAN Trace, IN UINT8 *Ptr, IN UINT32 AcpiTableLength, IN UINT8 AcpiTableRevision)
{
  UINT32  Offset;
  UINT32  PciCfgOffset;
  UINT8   *PciCfgSpacePtr;
  if (!Trace) {
    return;
  }
  Offset = ParseAcpi (
             TRUE,
             0,
             "MCFG",
             Ptr,
             AcpiTableLength,
             PARSER_PARAMS (McfgParser)
             );
  PciCfgSpacePtr = Ptr + Offset;
  while (Offset < AcpiTableLength) {
    PciCfgOffset = ParseAcpi (
                     TRUE,
                     2,
                     "PCI Configuration Space",
                     PciCfgSpacePtr,
                     (AcpiTableLength - Offset),
                     PARSER_PARAMS (PciCfgSpaceBaseAddrParser)
                     );
    PciCfgSpacePtr += PciCfgOffset;
    Offset         += PciCfgOffset;
  }
}