Changeset 108794 in vbox for trunk/src/VBox/Devices/EFI/FirmwareNew/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
- Timestamp:
- Mar 31, 2025 11:31:09 AM (2 weeks ago)
- svn:sync-xref-src-repo-rev:
- 168237
- Location:
- trunk/src/VBox/Devices/EFI/FirmwareNew
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/EFI/FirmwareNew
-
Property svn:mergeinfo
changed from (toggle deleted branches)
to (toggle deleted branches)/vendor/edk2/current 103735-103757,103769-103776,129194-164365 /vendor/edk2/current 103735-103757,103769-103776,129194-168232
-
Property svn:mergeinfo
changed from (toggle deleted branches)
-
trunk/src/VBox/Devices/EFI/FirmwareNew/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
r105670 r108794 3 3 4 4 Copyright (c) 2021 - 2023, ARM Limited. All rights reserved.<BR> 5 Copyright (C) 2024 - 2025 Advanced Micro Devices, Inc. All rights reserved. 6 Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved.<BR> 5 7 SPDX-License-Identifier: BSD-2-Clause-Patent 6 8 … … 17 19 PrintString ( 18 20 CONST CHAR8 *Format, 19 UINT8 *Ptr 21 UINT8 *Ptr, 22 UINT32 Length 20 23 ); 21 24 … … 25 28 PrintStringPtr ( 26 29 CONST CHAR8 *Format, 27 UINT8 *Ptr 30 UINT8 *Ptr, 31 UINT32 Length 28 32 ); 29 33 … … 31 35 VOID 32 36 EFIAPI 33 PrintChar 4(37 PrintChars ( 34 38 CONST CHAR8 *Format, 35 UINT8 *Ptr 39 UINT8 *Ptr, 40 UINT32 Length 36 41 ); 37 42 … … 39 44 VOID 40 45 EFIAPI 41 PrintChar6(46 HexDump ( 42 47 CONST CHAR8 *Format, 43 UINT8 *Ptr 44 ); 45 46 STATIC 47 VOID 48 EFIAPI 49 PrintChar8 ( 50 CONST CHAR8 *Format, 51 UINT8 *Ptr 48 UINT8 *Ptr, 49 UINT32 Length 52 50 ); 53 51 … … 58 56 }; 59 57 60 /** A parser for EAr mObjPowerManagementProfileInfo.61 */ 62 STATIC CONST CM_OBJ_PARSER CmAr mPowerManagementProfileInfoParser[] = {58 /** A parser for EArchCommonObjPowerManagementProfileInfo. 59 */ 60 STATIC CONST CM_OBJ_PARSER CmArchCommonPowerManagementProfileInfoParser[] = { 63 61 { "PowerManagementProfile", 1, "0x%x", NULL } 64 62 }; … … 123 121 }; 124 122 125 /** A parser for EAr mObjSerialConsolePortInfo,126 EAr mObjSerialDebugPortInfo and EArmObjSerialPortInfo.127 */ 128 STATIC CONST CM_OBJ_PARSER CmAr mSerialPortInfoParser[] = {123 /** A parser for EArchCommonObjConsolePortInfo, 124 EArchCommonObjSerialDebugPortInfo and EArchCommonObjSerialPortInfo. 125 */ 126 STATIC CONST CM_OBJ_PARSER CmArchCommonSerialPortInfoParser[] = { 129 127 { "BaseAddress", 8, "0x%llx", NULL }, 130 128 { "Interrupt", 4, "0x%x", NULL }, … … 183 181 }; 184 182 185 /** A parser for EAr mObjPciConfigSpaceInfo.186 */ 187 STATIC CONST CM_OBJ_PARSER CmAr mPciConfigSpaceInfoParser[] = {183 /** A parser for EArchCommonObjPciConfigSpaceInfo. 184 */ 185 STATIC CONST CM_OBJ_PARSER CmArchCommonPciConfigSpaceInfoParser[] = { 188 186 { "BaseAddress", 8, "0x%llx", NULL }, 189 187 { "PciSegmentGroupNumber", 2, "0x%x", NULL }, … … 194 192 }; 195 193 196 /** A parser for EAr mObjHypervisorVendorIdentity.197 */ 198 STATIC CONST CM_OBJ_PARSER CmAr mHypervisorVendorIdParser[] = {194 /** A parser for EArchCommonObjHypervisorVendorIdentity. 195 */ 196 STATIC CONST CM_OBJ_PARSER CmArchCommonHypervisorVendorIdentityParser[] = { 199 197 { "HypervisorVendorId", 8, "0x%llx", NULL } 200 198 }; 201 199 202 /** A parser for EAr mObjFixedFeatureFlags.203 */ 204 STATIC CONST CM_OBJ_PARSER CmAr mFixedFeatureFlagsParser[] = {200 /** A parser for EArchCommonObjFixedFeatureFlags. 201 */ 202 STATIC CONST CM_OBJ_PARSER CmArchCommonFixedFeatureFlagsParser[] = { 205 203 { "Flags", 4, "0x%x", NULL } 206 204 }; … … 318 316 /** A parser for EArmObjSmmuInterruptArray. 319 317 */ 320 STATIC CONST CM_OBJ_PARSER CmAr mGenericInterruptParser[] = {318 STATIC CONST CM_OBJ_PARSER CmArchCommonGenericInterruptParser[] = { 321 319 { "Interrupt", 4, "0x%x", NULL }, 322 320 { "Flags", 4, "0x%x", NULL } 323 321 }; 324 322 325 /** A parser for EAr mObjProcHierarchyInfo.326 */ 327 STATIC CONST CM_OBJ_PARSER CmAr mProcHierarchyInfoParser[] = {323 /** A parser for EArchCommonObjProcHierarchyInfo. 324 */ 325 STATIC CONST CM_OBJ_PARSER CmArchCommonProcHierarchyInfoParser[] = { 328 326 { "Token", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL }, 329 327 { "Flags", 4, "0x%x", NULL }, 330 328 { "ParentToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL }, 331 { " GicCToken",sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },329 { "AcpiIdObjectToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL }, 332 330 { "NoOfPrivateResources", 4, "0x%x", NULL }, 333 331 { "PrivateResourcesArrayToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL }, … … 338 336 }; 339 337 340 /** A parser for EAr mObjCacheInfo.341 */ 342 STATIC CONST CM_OBJ_PARSER CmAr mCacheInfoParser[] = {338 /** A parser for EArchCommonObjCacheInfo. 339 */ 340 STATIC CONST CM_OBJ_PARSER CmArchCommonCacheInfoParser[] = { 343 341 { "Token", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL }, 344 342 { "NextLevelOfCacheToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL }, … … 351 349 }; 352 350 353 /** A parser for EArmObjProcNodeIdInfo. 354 */ 355 STATIC CONST CM_OBJ_PARSER CmArmProcNodeIdInfoParser[] = { 356 { "Token", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL }, 357 { "VendorId", 4, "0x%p", NULL }, 358 { "Level1Id", 8, "0x%x", NULL }, 359 { "Level2Id", 8, "0x%x", NULL }, 360 { "MajorRev", 2, "0x%x", NULL }, 361 { "MinorRev", 2, "0x%x", NULL }, 362 { "SpinRev", 2, "0x%x", NULL } 363 }; 364 365 /** A parser for EArmObjCmRef. 366 */ 367 STATIC CONST CM_OBJ_PARSER CmArmObjRefParser[] = { 351 /** A parser for EArchCommonObjCmRef. 352 */ 353 STATIC CONST CM_OBJ_PARSER CmArchCommonObjRefParser[] = { 368 354 { "ReferenceToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL } 369 355 }; 370 356 371 /** A parser for EAr mObjMemoryAffinityInfo.372 */ 373 STATIC CONST CM_OBJ_PARSER CmAr mMemoryAffinityInfoParser[] = {357 /** A parser for EArchCommonObjMemoryAffinityInfo. 358 */ 359 STATIC CONST CM_OBJ_PARSER CmArchCommonMemoryAffinityInfoParser[] = { 374 360 { "ProximityDomain", 4, "0x%x", NULL }, 375 361 { "BaseAddress", 8, "0x%llx", NULL }, … … 378 364 }; 379 365 380 /** A parser for EAr mObjDeviceHandleAcpi.381 */ 382 STATIC CONST CM_OBJ_PARSER CmAr mDeviceHandleAcpiParser[] = {366 /** A parser for EArchCommonObjDeviceHandleAcpi. 367 */ 368 STATIC CONST CM_OBJ_PARSER CmArchCommonDeviceHandleAcpiParser[] = { 383 369 { "Hid", 8, "0x%llx", NULL }, 384 370 { "Uid", 4, "0x%x", NULL } 385 371 }; 386 372 387 /** A parser for EAr mObjDeviceHandlePci.388 */ 389 STATIC CONST CM_OBJ_PARSER CmAr mDeviceHandlePciParser[] = {373 /** A parser for EArchCommonObjDeviceHandlePci. 374 */ 375 STATIC CONST CM_OBJ_PARSER CmArchCommonDeviceHandlePciParser[] = { 390 376 { "SegmentNumber", 2, "0x%x", NULL }, 391 377 { "BusNumber", 1, "0x%x", NULL }, … … 394 380 }; 395 381 396 /** A parser for EAr mObjGenericInitiatorAffinityInfo.397 */ 398 STATIC CONST CM_OBJ_PARSER CmAr mGenericInitiatorAffinityInfoParser[] = {382 /** A parser for EArchCommonObjGenericInitiatorAffinityInfo. 383 */ 384 STATIC CONST CM_OBJ_PARSER CmArchCommonGenericInitiatorAffinityInfoParser[] = { 399 385 { "ProximityDomain", 4, "0x%x", NULL }, 400 386 { "Flags", 4, "0x%x", NULL }, … … 430 416 }; 431 417 432 /** A parser for EAr mObjLpiInfo.433 */ 434 STATIC CONST CM_OBJ_PARSER CmAr mLpiInfoParser[] = {418 /** A parser for EArchCommonObjLpiInfo. 419 */ 420 STATIC CONST CM_OBJ_PARSER CmArchCommonLpiInfoParser[] = { 435 421 { "MinResidency", 4, "0x%x", NULL }, 436 422 { "WorstCaseWakeLatency", 4, "0x%x", NULL }, … … 453 439 }; 454 440 455 /** A parser for EAr mObjPciAddressMapInfo.456 */ 457 STATIC CONST CM_OBJ_PARSER CmAr mPciAddressMapInfoParser[] = {441 /** A parser for EArchCommonObjPciAddressMapInfo. 442 */ 443 STATIC CONST CM_OBJ_PARSER CmArchCommonPciAddressMapInfoParser[] = { 458 444 { "SpaceCode", 1, "%d", NULL }, 459 445 { "PciAddress", 8, "0x%llx", NULL }, … … 462 448 }; 463 449 464 /** A parser for EAr mObjPciInterruptMapInfo.465 */ 466 STATIC CONST CM_OBJ_PARSER Cm PciInterruptMapInfoParser[] = {467 { "PciBus", 1, "0x%x", NULL },468 { "PciDevice", 1, "0x%x", NULL },469 { "PciInterrupt", 1, "0x%x", NULL },470 { "IntcInterrupt", sizeof (CM_AR M_GENERIC_INTERRUPT),471 NULL, NULL, CmAr mGenericInterruptParser,472 ARRAY_SIZE (CmAr mGenericInterruptParser) },450 /** A parser for EArchCommonObjPciInterruptMapInfo. 451 */ 452 STATIC CONST CM_OBJ_PARSER CmArchCommonPciInterruptMapInfoParser[] = { 453 { "PciBus", 1, "0x%x", NULL }, 454 { "PciDevice", 1, "0x%x", NULL }, 455 { "PciInterrupt", 1, "0x%x", NULL }, 456 { "IntcInterrupt", sizeof (CM_ARCH_COMMON_GENERIC_INTERRUPT), 457 NULL, NULL, CmArchCommonGenericInterruptParser, 458 ARRAY_SIZE (CmArchCommonGenericInterruptParser) }, 473 459 }; 474 460 … … 492 478 }; 493 479 494 /** A parser for EAr mObjCpcInfo.495 */ 496 STATIC CONST CM_OBJ_PARSER CmAr mCpcInfoParser[] = {480 /** A parser for EArchCommonObjCpcInfo. 481 */ 482 STATIC CONST CM_OBJ_PARSER CmArchCommonCpcInfoParser[] = { 497 483 { "Revision", 4, "0x%lx", NULL }, 498 484 { "HighestPerformanceBuffer", sizeof (EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE), … … 587 573 }; 588 574 589 /** A parser for EAr mObjPccSubspaceType0Info.590 */ 591 STATIC CONST CM_OBJ_PARSER CmAr mPccSubspaceType0InfoParser[] = {575 /** A parser for EArchCommonObjPccSubspaceType0Info. 576 */ 577 STATIC CONST CM_OBJ_PARSER CmArchCommonPccSubspaceType0InfoParser[] = { 592 578 { "SubspaceId", 1, "0x%x", NULL }, 593 579 { "Type", 1, "0x%x", NULL }, … … 602 588 }; 603 589 604 /** A parser for EAr mObjPccSubspaceType1Info.605 */ 606 STATIC CONST CM_OBJ_PARSER CmAr mPccSubspaceType1InfoParser[] = {590 /** A parser for EArchCommonObjPccSubspaceType1Info. 591 */ 592 STATIC CONST CM_OBJ_PARSER CmArchCommonPccSubspaceType1InfoParser[] = { 607 593 { "GenericPccInfo", sizeof (PCC_SUBSPACE_GENERIC_INFO), 608 NULL, NULL, CmAr mPccSubspaceType0InfoParser,609 ARRAY_SIZE (CmAr mPccSubspaceType0InfoParser) },610 { "PlatIrq", sizeof (CM_AR M_GENERIC_INTERRUPT),611 NULL, NULL, CmAr mGenericInterruptParser,612 ARRAY_SIZE (CmAr mGenericInterruptParser) },613 }; 614 615 /** A parser for EAr mObjPccSubspaceType2Info.616 */ 617 STATIC CONST CM_OBJ_PARSER CmAr mPccSubspaceType2InfoParser[] = {594 NULL, NULL, CmArchCommonPccSubspaceType0InfoParser, 595 ARRAY_SIZE (CmArchCommonPccSubspaceType0InfoParser) }, 596 { "PlatIrq", sizeof (CM_ARCH_COMMON_GENERIC_INTERRUPT), 597 NULL, NULL, CmArchCommonGenericInterruptParser, 598 ARRAY_SIZE (CmArchCommonGenericInterruptParser) }, 599 }; 600 601 /** A parser for EArchCommonObjPccSubspaceType2Info. 602 */ 603 STATIC CONST CM_OBJ_PARSER CmArchCommonPccSubspaceType2InfoParser[] = { 618 604 { "GenericPccInfo", sizeof (PCC_SUBSPACE_GENERIC_INFO), 619 NULL, NULL, CmAr mPccSubspaceType0InfoParser,620 ARRAY_SIZE (CmAr mPccSubspaceType0InfoParser) },621 { "PlatIrq", sizeof (CM_AR M_GENERIC_INTERRUPT),NULL,NULL,622 CmAr mGenericInterruptParser, ARRAY_SIZE (CmArmGenericInterruptParser) },605 NULL, NULL, CmArchCommonPccSubspaceType0InfoParser, 606 ARRAY_SIZE (CmArchCommonPccSubspaceType0InfoParser) }, 607 { "PlatIrq", sizeof (CM_ARCH_COMMON_GENERIC_INTERRUPT),NULL,NULL, 608 CmArchCommonGenericInterruptParser, ARRAY_SIZE (CmArchCommonGenericInterruptParser) }, 623 609 { "PlatIrqAckReg", sizeof (PCC_MAILBOX_REGISTER_INFO), 624 610 NULL, NULL, CmArmMailboxRegisterInfoParser, … … 626 612 }; 627 613 628 /** A parser for EAr mObjPccSubspaceType3Info or EArmObjPccSubspaceType4Info.629 */ 630 STATIC CONST CM_OBJ_PARSER CmAr mPccSubspaceType34InfoParser[] = {614 /** A parser for EArchCommonObjPccSubspaceType3Info or EArchCommonObjPccSubspaceType4Info. 615 */ 616 STATIC CONST CM_OBJ_PARSER CmArchCommonPccSubspaceType34InfoParser[] = { 631 617 { "GenericPccInfo", sizeof (PCC_SUBSPACE_GENERIC_INFO), 632 NULL, NULL, CmAr mPccSubspaceType0InfoParser,633 ARRAY_SIZE (CmAr mPccSubspaceType0InfoParser) },634 { "PlatIrq", sizeof (CM_AR M_GENERIC_INTERRUPT),NULL,NULL,635 CmAr mGenericInterruptParser, ARRAY_SIZE (CmArmGenericInterruptParser) },618 NULL, NULL, CmArchCommonPccSubspaceType0InfoParser, 619 ARRAY_SIZE (CmArchCommonPccSubspaceType0InfoParser) }, 620 { "PlatIrq", sizeof (CM_ARCH_COMMON_GENERIC_INTERRUPT),NULL,NULL, 621 CmArchCommonGenericInterruptParser, ARRAY_SIZE (CmArchCommonGenericInterruptParser) }, 636 622 { "PlatIrqAckReg", sizeof (PCC_MAILBOX_REGISTER_INFO), 637 623 NULL, NULL, CmArmMailboxRegisterInfoParser, … … 648 634 }; 649 635 650 /** A parser for EAr mObjPccSubspaceType5Info.651 */ 652 STATIC CONST CM_OBJ_PARSER CmAr mPccSubspaceType5InfoParser[] = {636 /** A parser for EArchCommonObjPccSubspaceType5Info. 637 */ 638 STATIC CONST CM_OBJ_PARSER CmArchCommonPccSubspaceType5InfoParser[] = { 653 639 { "GenericPccInfo", sizeof (PCC_SUBSPACE_GENERIC_INFO), 654 NULL, NULL, CmAr mPccSubspaceType0InfoParser,655 ARRAY_SIZE (CmAr mPccSubspaceType0InfoParser) },656 { "Version", 2, "0x%x",NULL },657 { "PlatIrq", sizeof (CM_AR M_GENERIC_INTERRUPT),NULL, NULL,658 CmAr mGenericInterruptParser, ARRAY_SIZE (CmArmGenericInterruptParser) },640 NULL, NULL, CmArchCommonPccSubspaceType0InfoParser, 641 ARRAY_SIZE (CmArchCommonPccSubspaceType0InfoParser) }, 642 { "Version", 2, "0x%x",NULL }, 643 { "PlatIrq", sizeof (CM_ARCH_COMMON_GENERIC_INTERRUPT),NULL, NULL, 644 CmArchCommonGenericInterruptParser, ARRAY_SIZE (CmArchCommonGenericInterruptParser) }, 659 645 { "CmdCompleteCheckReg", sizeof (PCC_MAILBOX_REGISTER_INFO), 660 646 NULL, NULL, CmArmMailboxRegisterInfoParser, … … 671 657 }; 672 658 673 /** A parser for EAr mObjPsdInfo.674 */ 675 STATIC CONST CM_OBJ_PARSER CmAr mPsdInfoParser[] = {659 /** A parser for EArchCommonObjPsdInfo. 660 */ 661 STATIC CONST CM_OBJ_PARSER CmArchCommonPsdInfoParser[] = { 676 662 { "Revision", 1, "0x%x", NULL }, 677 663 { "DomainId", 4, "0x%x", NULL }, … … 680 666 }; 681 667 668 /** A parser for EArchCommonObjTpm2InterfaceInfo. 669 */ 670 STATIC CONST CM_OBJ_PARSER CmArchCommonTpm2InterfaceInfo[] = { 671 { "PlatformClass", sizeof (UINT16), "0x%x", NULL }, 672 { "AddressOfControlArea", sizeof (UINT64), "0x%llx", NULL }, 673 { "StartMethod", sizeof (UINT32), "0x%x", NULL }, 674 { "StartMethodParametersSize", sizeof (UINT8), "0x%x", NULL }, 675 { "StartMethodParameters", EFI_TPM2_ACPI_TABLE_START_METHOD_SPECIFIC_PARAMETERS_MAX_SIZE, NULL, HexDump }, 676 { "Laml", sizeof (UINT32), "0x%x", NULL }, 677 { "Lasa", sizeof (UINT64), "0x%llx", NULL }, 678 }; 679 680 /** A parser for EArchCommonObjSpmiInfo. 681 */ 682 STATIC CONST CM_OBJ_PARSER CmArchCommonSpmiInterfaceInfoParser[] = { 683 { "InterfaceType", sizeof (UINT8), "0x%x", NULL }, 684 { "BaseAddress", sizeof (EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE), 685 NULL, NULL, AcpiGenericAddressParser, ARRAY_SIZE (AcpiGenericAddressParser) }, 686 }; 687 688 /** A parser for EArchCommonObjSpmiInterruptDeviceInfo. 689 */ 690 STATIC CONST CM_OBJ_PARSER CmArchCommonSpmiInterruptDeviceInfoParser[] = { 691 { "InterruptType", sizeof (UINT8), "0x%x", NULL }, 692 { "GPE", sizeof (UINT8), "0x%x", NULL }, 693 { "PciDeviceFlag", sizeof (UINT8), "0x%x", NULL }, 694 { "GlobalSystemInterrupt", sizeof (UINT32), "0x%x", NULL }, 695 { "DeviceId", sizeof (UINT32), "0x%x", NULL } 696 }; 697 698 /** A parser for Arch Common namespace objects. 699 */ 700 STATIC CONST CM_OBJ_PARSER_ARRAY ArchCommonNamespaceObjectParser[] = { 701 CM_PARSER_ADD_OBJECT_RESERVED (EArchCommonObjReserved), 702 CM_PARSER_ADD_OBJECT (EArchCommonObjPowerManagementProfileInfo, CmArchCommonPowerManagementProfileInfoParser), 703 CM_PARSER_ADD_OBJECT (EArchCommonObjSerialPortInfo, CmArchCommonSerialPortInfoParser), 704 CM_PARSER_ADD_OBJECT (EArchCommonObjConsolePortInfo, CmArchCommonSerialPortInfoParser), 705 CM_PARSER_ADD_OBJECT (EArchCommonObjSerialDebugPortInfo, CmArchCommonSerialPortInfoParser), 706 CM_PARSER_ADD_OBJECT (EArchCommonObjHypervisorVendorIdentity, CmArchCommonHypervisorVendorIdentityParser), 707 CM_PARSER_ADD_OBJECT (EArchCommonObjFixedFeatureFlags, CmArchCommonFixedFeatureFlagsParser), 708 CM_PARSER_ADD_OBJECT (EArchCommonObjCmRef, CmArchCommonObjRefParser), 709 CM_PARSER_ADD_OBJECT (EArchCommonObjPciConfigSpaceInfo, CmArchCommonPciConfigSpaceInfoParser), 710 CM_PARSER_ADD_OBJECT (EArchCommonObjPciAddressMapInfo, CmArchCommonPciAddressMapInfoParser), 711 CM_PARSER_ADD_OBJECT (EArchCommonObjPciInterruptMapInfo, CmArchCommonPciInterruptMapInfoParser), 712 CM_PARSER_ADD_OBJECT (EArchCommonObjMemoryAffinityInfo, CmArchCommonMemoryAffinityInfoParser), 713 CM_PARSER_ADD_OBJECT (EArchCommonObjDeviceHandleAcpi, CmArchCommonDeviceHandleAcpiParser), 714 CM_PARSER_ADD_OBJECT (EArchCommonObjDeviceHandlePci, CmArchCommonDeviceHandlePciParser), 715 CM_PARSER_ADD_OBJECT (EArchCommonObjGenericInitiatorAffinityInfo,CmArchCommonGenericInitiatorAffinityInfoParser), 716 CM_PARSER_ADD_OBJECT (EArchCommonObjLpiInfo, CmArchCommonLpiInfoParser), 717 CM_PARSER_ADD_OBJECT (EArchCommonObjProcHierarchyInfo, CmArchCommonProcHierarchyInfoParser), 718 CM_PARSER_ADD_OBJECT (EArchCommonObjCacheInfo, CmArchCommonCacheInfoParser), 719 CM_PARSER_ADD_OBJECT (EArchCommonObjCpcInfo, CmArchCommonCpcInfoParser), 720 CM_PARSER_ADD_OBJECT (EArchCommonObjPccSubspaceType0Info, CmArchCommonPccSubspaceType0InfoParser), 721 CM_PARSER_ADD_OBJECT (EArchCommonObjPccSubspaceType1Info, CmArchCommonPccSubspaceType1InfoParser), 722 CM_PARSER_ADD_OBJECT (EArchCommonObjPccSubspaceType2Info, CmArchCommonPccSubspaceType2InfoParser), 723 CM_PARSER_ADD_OBJECT (EArchCommonObjPccSubspaceType3Info, CmArchCommonPccSubspaceType34InfoParser), 724 CM_PARSER_ADD_OBJECT (EArchCommonObjPccSubspaceType4Info, CmArchCommonPccSubspaceType34InfoParser), 725 CM_PARSER_ADD_OBJECT (EArchCommonObjPccSubspaceType5Info, CmArchCommonPccSubspaceType5InfoParser), 726 CM_PARSER_ADD_OBJECT (EArchCommonObjPsdInfo, CmArchCommonPsdInfoParser), 727 CM_PARSER_ADD_OBJECT (EArchCommonObjTpm2InterfaceInfo, CmArchCommonTpm2InterfaceInfo), 728 CM_PARSER_ADD_OBJECT (EArchCommonObjSpmiInterfaceInfo, CmArchCommonSpmiInterfaceInfoParser), 729 CM_PARSER_ADD_OBJECT (EArchCommonObjSpmiInterruptDeviceInfo, CmArchCommonSpmiInterruptDeviceInfoParser), 730 CM_PARSER_ADD_OBJECT_RESERVED (EArchCommonObjMax) 731 }; 732 682 733 /** A parser for Arm namespace objects. 683 734 */ 684 735 STATIC CONST CM_OBJ_PARSER_ARRAY ArmNamespaceObjectParser[] = { 685 { "EArmObjReserved", NULL, 0 }, 686 { "EArmObjBootArchInfo", CmArmBootArchInfoParser, 687 ARRAY_SIZE (CmArmBootArchInfoParser) }, 688 { "EArmObjCpuInfo", NULL, 0 }, 689 { "EArmObjPowerManagementProfileInfo", CmArmPowerManagementProfileInfoParser, 690 ARRAY_SIZE (CmArmPowerManagementProfileInfoParser) }, 691 { "EArmObjGicCInfo", CmArmGicCInfoParser, ARRAY_SIZE (CmArmGicCInfoParser) }, 692 { "EArmObjGicDInfo", CmArmGicDInfoParser, ARRAY_SIZE (CmArmGicDInfoParser) }, 693 { "EArmObjGicMsiFrameInfo", CmArmGicMsiFrameInfoParser, 694 ARRAY_SIZE (CmArmGicMsiFrameInfoParser) }, 695 { "EArmObjGicRedistributorInfo", CmArmGicRedistInfoParser, 696 ARRAY_SIZE (CmArmGicRedistInfoParser) }, 697 { "EArmObjGicItsInfo", CmArmGicItsInfoParser, 698 ARRAY_SIZE (CmArmGicItsInfoParser) }, 699 { "EArmObjSerialConsolePortInfo", CmArmSerialPortInfoParser, 700 ARRAY_SIZE (CmArmSerialPortInfoParser) }, 701 { "EArmObjSerialDebugPortInfo", CmArmSerialPortInfoParser, 702 ARRAY_SIZE (CmArmSerialPortInfoParser) }, 703 { "EArmObjGenericTimerInfo", CmArmGenericTimerInfoParser, 704 ARRAY_SIZE (CmArmGenericTimerInfoParser) }, 705 { "EArmObjPlatformGTBlockInfo", CmArmGTBlockInfoParser, 706 ARRAY_SIZE (CmArmGTBlockInfoParser) }, 707 { "EArmObjGTBlockTimerFrameInfo", CmArmGTBlockTimerFrameInfoParser, 708 ARRAY_SIZE (CmArmGTBlockTimerFrameInfoParser) }, 709 { "EArmObjPlatformGenericWatchdogInfo", CmArmGenericWatchdogInfoParser, 710 ARRAY_SIZE (CmArmGenericWatchdogInfoParser) }, 711 { "EArmObjPciConfigSpaceInfo", CmArmPciConfigSpaceInfoParser, 712 ARRAY_SIZE (CmArmPciConfigSpaceInfoParser) }, 713 { "EArmObjHypervisorVendorIdentity", CmArmHypervisorVendorIdParser, 714 ARRAY_SIZE (CmArmHypervisorVendorIdParser) }, 715 { "EArmObjFixedFeatureFlags", CmArmFixedFeatureFlagsParser, 716 ARRAY_SIZE (CmArmFixedFeatureFlagsParser) }, 717 { "EArmObjItsGroup", CmArmItsGroupNodeParser, 718 ARRAY_SIZE (CmArmItsGroupNodeParser) }, 719 { "EArmObjNamedComponent", CmArmNamedComponentNodeParser, 720 ARRAY_SIZE (CmArmNamedComponentNodeParser) }, 721 { "EArmObjRootComplex", CmArmRootComplexNodeParser, 722 ARRAY_SIZE (CmArmRootComplexNodeParser) }, 723 { "EArmObjSmmuV1SmmuV2", CmArmSmmuV1SmmuV2NodeParser, 724 ARRAY_SIZE (CmArmSmmuV1SmmuV2NodeParser) }, 725 { "EArmObjSmmuV3", CmArmSmmuV3NodeParser, 726 ARRAY_SIZE (CmArmSmmuV3NodeParser) }, 727 { "EArmObjPmcg", CmArmPmcgNodeParser, ARRAY_SIZE (CmArmPmcgNodeParser) }, 728 { "EArmObjGicItsIdentifierArray", CmArmGicItsIdentifierParser, 729 ARRAY_SIZE (CmArmGicItsIdentifierParser) }, 730 { "EArmObjIdMappingArray", CmArmIdMappingParser, 731 ARRAY_SIZE (CmArmIdMappingParser) }, 732 { "EArmObjSmmuInterruptArray", CmArmGenericInterruptParser, 733 ARRAY_SIZE (CmArmGenericInterruptParser) }, 734 { "EArmObjProcHierarchyInfo", CmArmProcHierarchyInfoParser, 735 ARRAY_SIZE (CmArmProcHierarchyInfoParser) }, 736 { "EArmObjCacheInfo", CmArmCacheInfoParser, 737 ARRAY_SIZE (CmArmCacheInfoParser) }, 738 { "EArmObjProcNodeIdInfo", CmArmProcNodeIdInfoParser, 739 ARRAY_SIZE (CmArmProcNodeIdInfoParser) }, 740 { "EArmObjCmRef", CmArmObjRefParser, ARRAY_SIZE (CmArmObjRefParser) }, 741 { "EArmObjMemoryAffinityInfo", CmArmMemoryAffinityInfoParser, 742 ARRAY_SIZE (CmArmMemoryAffinityInfoParser) }, 743 { "EArmObjDeviceHandleAcpi", CmArmDeviceHandleAcpiParser, 744 ARRAY_SIZE (CmArmDeviceHandleAcpiParser) }, 745 { "EArmObjDeviceHandlePci", CmArmDeviceHandlePciParser, 746 ARRAY_SIZE (CmArmDeviceHandlePciParser) }, 747 { "EArmObjGenericInitiatorAffinityInfo", 748 CmArmGenericInitiatorAffinityInfoParser, 749 ARRAY_SIZE (CmArmGenericInitiatorAffinityInfoParser) }, 750 { "EArmObjSerialPortInfo", CmArmSerialPortInfoParser, 751 ARRAY_SIZE (CmArmSerialPortInfoParser) }, 752 { "EArmObjCmn600Info", CmArmCmn600InfoParser, 753 ARRAY_SIZE (CmArmCmn600InfoParser) }, 754 { "EArmObjLpiInfo", CmArmLpiInfoParser, 755 ARRAY_SIZE (CmArmLpiInfoParser) }, 756 { "EArmObjPciAddressMapInfo", CmArmPciAddressMapInfoParser, 757 ARRAY_SIZE (CmArmPciAddressMapInfoParser) }, 758 { "EArmObjPciInterruptMapInfo", CmPciInterruptMapInfoParser, 759 ARRAY_SIZE (CmPciInterruptMapInfoParser) }, 760 { "EArmObjRmr", CmArmRmrInfoParser, 761 ARRAY_SIZE (CmArmRmrInfoParser) }, 762 { "EArmObjMemoryRangeDescriptor", CmArmMemoryRangeDescriptorInfoParser, 763 ARRAY_SIZE (CmArmMemoryRangeDescriptorInfoParser) }, 764 { "EArmObjCpcInfo", CmArmCpcInfoParser, 765 ARRAY_SIZE (CmArmCpcInfoParser) }, 766 { "EArmObjPccSubspaceType0Info", CmArmPccSubspaceType0InfoParser, 767 ARRAY_SIZE (CmArmPccSubspaceType0InfoParser) }, 768 { "EArmObjPccSubspaceType1Info", CmArmPccSubspaceType1InfoParser, 769 ARRAY_SIZE (CmArmPccSubspaceType1InfoParser) }, 770 { "EArmObjPccSubspaceType2Info", CmArmPccSubspaceType2InfoParser, 771 ARRAY_SIZE (CmArmPccSubspaceType2InfoParser) }, 772 { "EArmObjPccSubspaceType3Info", CmArmPccSubspaceType34InfoParser, 773 ARRAY_SIZE (CmArmPccSubspaceType34InfoParser) }, 774 { "EArmObjPccSubspaceType4Info", CmArmPccSubspaceType34InfoParser, 775 ARRAY_SIZE (CmArmPccSubspaceType34InfoParser) }, 776 { "EArmObjPccSubspaceType5Info", CmArmPccSubspaceType5InfoParser, 777 ARRAY_SIZE (CmArmPccSubspaceType5InfoParser) }, 778 { "EArmObjEtInfo", CmArmEtInfo, 779 ARRAY_SIZE (CmArmEtInfo) }, 780 { "EArmObjPsdInfo", CmArmPsdInfoParser, 781 ARRAY_SIZE (CmArmPsdInfoParser) }, 782 { "EArmObjMax", NULL, 0 }, 736 CM_PARSER_ADD_OBJECT_RESERVED (EArmObjReserved), 737 CM_PARSER_ADD_OBJECT (EArmObjBootArchInfo, CmArmBootArchInfoParser), 738 CM_PARSER_ADD_OBJECT (EArmObjGicCInfo, CmArmGicCInfoParser), 739 CM_PARSER_ADD_OBJECT (EArmObjGicDInfo, CmArmGicDInfoParser), 740 CM_PARSER_ADD_OBJECT (EArmObjGicMsiFrameInfo, CmArmGicMsiFrameInfoParser), 741 CM_PARSER_ADD_OBJECT (EArmObjGicRedistributorInfo, CmArmGicRedistInfoParser), 742 CM_PARSER_ADD_OBJECT (EArmObjGicItsInfo, CmArmGicItsInfoParser), 743 CM_PARSER_ADD_OBJECT (EArmObjGenericTimerInfo, CmArmGenericTimerInfoParser), 744 CM_PARSER_ADD_OBJECT (EArmObjPlatformGTBlockInfo, CmArmGTBlockInfoParser), 745 CM_PARSER_ADD_OBJECT (EArmObjGTBlockTimerFrameInfo, CmArmGTBlockTimerFrameInfoParser), 746 CM_PARSER_ADD_OBJECT (EArmObjPlatformGenericWatchdogInfo,CmArmGenericWatchdogInfoParser), 747 CM_PARSER_ADD_OBJECT (EArmObjItsGroup, CmArmItsGroupNodeParser), 748 CM_PARSER_ADD_OBJECT (EArmObjNamedComponent, CmArmNamedComponentNodeParser), 749 CM_PARSER_ADD_OBJECT (EArmObjRootComplex, CmArmRootComplexNodeParser), 750 CM_PARSER_ADD_OBJECT (EArmObjSmmuV1SmmuV2, CmArmSmmuV1SmmuV2NodeParser), 751 CM_PARSER_ADD_OBJECT (EArmObjSmmuV3, CmArmSmmuV3NodeParser), 752 CM_PARSER_ADD_OBJECT (EArmObjPmcg, CmArmPmcgNodeParser), 753 CM_PARSER_ADD_OBJECT (EArmObjGicItsIdentifierArray, CmArmGicItsIdentifierParser), 754 CM_PARSER_ADD_OBJECT (EArmObjIdMappingArray, CmArmIdMappingParser), 755 CM_PARSER_ADD_OBJECT (EArmObjSmmuInterruptArray, CmArchCommonGenericInterruptParser), 756 CM_PARSER_ADD_OBJECT (EArmObjCmn600Info, CmArmCmn600InfoParser), 757 CM_PARSER_ADD_OBJECT (EArmObjRmr, CmArmRmrInfoParser), 758 CM_PARSER_ADD_OBJECT (EArmObjMemoryRangeDescriptor, CmArmMemoryRangeDescriptorInfoParser), 759 CM_PARSER_ADD_OBJECT (EArmObjEtInfo, CmArmEtInfo), 760 CM_PARSER_ADD_OBJECT_RESERVED (EArmObjMax) 761 }; 762 763 /** A parser for EX64ObjFadtSciInterrupt. 764 */ 765 STATIC CONST CM_OBJ_PARSER CmX64ObjFadtSciInterruptParser[] = { 766 { "SciInterrupt", 2, "0x%x", NULL } 767 }; 768 769 /** A parser for EX64ObjFadtSciCmdInfo. 770 */ 771 STATIC CONST CM_OBJ_PARSER CmX64ObjFadtSciCmdInfoParser[] = { 772 { "SciCmd", 4, "0x%x", NULL }, 773 { "AcpiEnable", 1, "0x%x", NULL }, 774 { "AcpiDisable", 1, "0x%x", NULL }, 775 { "S4BiosReq", 1, "0x%x", NULL }, 776 { "PstateCnt", 1, "0x%x", NULL }, 777 { "CstCnt", 1, "0x%x", NULL } 778 }; 779 780 /** A parser for EX64ObjFadtPmBlockInfo. 781 */ 782 STATIC CONST CM_OBJ_PARSER CmX64ObjFadtPmBlockInfoParser[] = { 783 { "Pm1aEvtBlk", 4, "0x%x", NULL }, 784 { "Pm1bEvtBlk", 4, "0x%x", NULL }, 785 { "Pm1aCntBlk", 4, "0x%x", NULL }, 786 { "Pm1bCntBlk", 4, "0x%x", NULL }, 787 { "Pm2CntBlk", 4, "0x%x", NULL }, 788 { "PmTmrBlk", 4, "0x%x", NULL }, 789 { "Pm1EvtLen", 1, "0x%x", NULL }, 790 { "Pm1CntLen", 1, "0x%x", NULL }, 791 { "Pm2CntLen", 1, "0x%x", NULL }, 792 { "PmTmrLen", 1, "0x%x", NULL } 793 }; 794 795 /** A parser for EX64ObjFadtGpeBlockInfo. 796 */ 797 STATIC CONST CM_OBJ_PARSER CmX64ObjFadtGpeBlockInfoParser[] = { 798 { "Gpe0Blk", 4, "0x%x", NULL }, 799 { "Gpe1Blk", 4, "0x%x", NULL }, 800 { "Gpe0BlkLen", 1, "0x%x", NULL }, 801 { "Gpe1BlkLen", 1, "0x%x", NULL }, 802 { "Gpe1Base", 1, "0x%x", NULL } 803 }; 804 805 /** A parser for EX64ObjFadtXpmBlockInfo. 806 */ 807 STATIC CONST CM_OBJ_PARSER CmX64ObjFadtXpmBlockInfoParser[] = { 808 { "XPm1aEvtBlk", sizeof (EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE), 809 NULL, NULL, AcpiGenericAddressParser, 810 ARRAY_SIZE (AcpiGenericAddressParser) }, 811 { "XPm1bEvtBlk", sizeof (EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE), 812 NULL, NULL, AcpiGenericAddressParser, 813 ARRAY_SIZE (AcpiGenericAddressParser) }, 814 { "XPm1aCntBlk", sizeof (EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE), 815 NULL, NULL, AcpiGenericAddressParser, 816 ARRAY_SIZE (AcpiGenericAddressParser) }, 817 { "XPm1bCntBlk", sizeof (EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE), 818 NULL, NULL, AcpiGenericAddressParser, 819 ARRAY_SIZE (AcpiGenericAddressParser) }, 820 { "XPm2CntBlk", sizeof (EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE), 821 NULL, NULL, AcpiGenericAddressParser, 822 ARRAY_SIZE (AcpiGenericAddressParser) }, 823 { "XPmTmrBlk", sizeof (EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE), 824 NULL, NULL, AcpiGenericAddressParser, 825 ARRAY_SIZE (AcpiGenericAddressParser) } 826 }; 827 828 /** A parser for EX64ObjFadtXgpeBlockInfo. 829 */ 830 STATIC CONST CM_OBJ_PARSER CmX64ObjFadtXgpeBlockInfoParser[] = { 831 { "XGpe0Blk", sizeof (EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE), 832 NULL, NULL, AcpiGenericAddressParser, 833 ARRAY_SIZE (AcpiGenericAddressParser) }, 834 { "XGpe1Blk", sizeof (EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE), 835 NULL, NULL, AcpiGenericAddressParser, 836 ARRAY_SIZE (AcpiGenericAddressParser) } 837 }; 838 839 /** A parser for EX64ObjFadtSleepBlockInfo. 840 */ 841 STATIC CONST CM_OBJ_PARSER CmX64ObjFadtSleepBlockInfoParser[] = { 842 { "SleepControlReg", sizeof (EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE), 843 NULL, NULL, AcpiGenericAddressParser, 844 ARRAY_SIZE (AcpiGenericAddressParser) }, 845 { "SleepStatusReg", sizeof (EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE), 846 NULL, NULL, AcpiGenericAddressParser, 847 ARRAY_SIZE (AcpiGenericAddressParser) } 848 }; 849 850 /** A parser for EX64ObjFadtResetBlockInfo. 851 */ 852 STATIC CONST CM_OBJ_PARSER CmX64ObjFadtResetBlockInfoParser[] = { 853 { "ResetReg", sizeof (EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE), 854 NULL, NULL, AcpiGenericAddressParser, 855 ARRAY_SIZE (AcpiGenericAddressParser) }, 856 { "ResetValue", 1, "0x%x",NULL } 857 }; 858 859 /** A parser for EX64ObjFadtMiscInfo. 860 */ 861 STATIC CONST CM_OBJ_PARSER CmX64ObjFadtMiscInfoParser[] = { 862 { "PLvl2Lat", 2, "0x%x", NULL }, 863 { "PLvl3Lat", 2, "0x%x", NULL }, 864 { "FlushSize", 2, "0x%x", NULL }, 865 { "FlushStride", 2, "0x%x", NULL }, 866 { "DutyOffset", 1, "0x%x", NULL }, 867 { "DutyWidth", 1, "0x%x", NULL }, 868 { "DayAlrm", 1, "0x%x", NULL }, 869 { "MonAlrm", 1, "0x%x", NULL }, 870 { "Century", 1, "0x%x", NULL } 871 }; 872 873 /** A parser for EX64ObjWsmtFlagsInfo. 874 */ 875 STATIC CONST CM_OBJ_PARSER CmX64ObjWsmtFlagsInfoParser[] = { 876 { "WsmtFlags", 4, "0x%x", NULL } 877 }; 878 879 /** A parser for EX64ObjHpetInfo. 880 */ 881 STATIC CONST CM_OBJ_PARSER CmX64ObjHpetInfoParser[] = { 882 { "BaseAddressLower32Bit", 4, "0x%x", NULL }, 883 { "MainCounterMinimumClockTickInPeriodicMode", 2, "0x%x", NULL }, 884 { "PageProtectionAndOemAttribute", 1, "0x%x", NULL } 885 }; 886 887 /** A parser for EX64ObjMadtInfo. 888 */ 889 STATIC CONST CM_OBJ_PARSER CmX64ObjMadtInfoParser[] = { 890 { "LocalApicAddress", 4, "0x%x", NULL }, 891 { "Flags", 4, "0x%x", NULL }, 892 { "ApicMode", sizeof (LOCAL_APIC_MODE), "0x%x", NULL } 893 }; 894 895 /** A parser for CmArchCommonLocalApicX2ApicInfoParser. 896 */ 897 STATIC CONST CM_OBJ_PARSER CmX64ObjLocalApicX2ApicInfoParser[] = { 898 { "ApicId", 4, "0x%x", NULL }, 899 { "Flags", 4, "0x%x", NULL }, 900 { "AcpiProcessorUid", 4, "0x%x", NULL } 901 }; 902 903 /** A parser for CmX64IoApicInfoParser. 904 */ 905 STATIC CONST CM_OBJ_PARSER CmX64IoApicInfoParser[] = { 906 { "IoApicId", 1, "0x%x", NULL }, 907 { "IoApicAddress", 4, "0x%x", NULL }, 908 { "GlobalSystemInterruptBase", 4, "0x%x", NULL } 909 }; 910 911 /** A parser for CmX64IntrSourceOverrideInfoParser. 912 */ 913 STATIC CONST CM_OBJ_PARSER CmX64IntrSourceOverrideInfoParser[] = { 914 { "Bus", 1, "0x%x", NULL }, 915 { "Source", 1, "0x%x", NULL }, 916 { "GlobalSystemInterrupt", 4, "0x%x", NULL }, 917 { "Flags", 2, "0x%x", NULL } 918 }; 919 920 /** A parser for CmX64LocalApicNmiInfo. 921 */ 922 STATIC CONST CM_OBJ_PARSER CmX64LocalApicNmiInfo[] = { 923 { "Flags", 2, "0x%x", NULL }, 924 { "AcpiProcessorUid", 4, "0x%x", NULL }, 925 { "LocalApicLint", 1, "0x%x", NULL } 926 }; 927 928 /** A parser for EX64ObjFacsInfo. 929 */ 930 STATIC CONST CM_OBJ_PARSER CmX64ObjFacsInfoParser[] = { 931 { "FirmwareWakingVector", 4, "0x%x", NULL }, 932 { "Flags", 4, "0x%x", NULL }, 933 { "XFirmwareWakingVector", 8, "0x%llx", NULL }, 934 { "OspmFlags", 4, "0x%x", NULL } 935 }; 936 937 /** A parser for CmX64LocalApicX2ApicAffinityInfo. 938 */ 939 STATIC CONST CM_OBJ_PARSER CmX64LocalApicX2ApicAffinityInfo[] = { 940 { "ApicMode", sizeof (LOCAL_APIC_MODE), "0x%x", NULL }, 941 { "ApicId", 4, "0x%x", NULL }, 942 { "ProximityDomain", 4, "0x%x", NULL }, 943 { "Flags", 4, "0x%x", NULL }, 944 { "ClockDomain", 4, "0x%x", NULL } 945 }; 946 947 /** A parser for X64 namespace objects. 948 */ 949 STATIC CONST CM_OBJ_PARSER_ARRAY X64NamespaceObjectParser[] = { 950 CM_PARSER_ADD_OBJECT_RESERVED (EX64ObjReserved), 951 CM_PARSER_ADD_OBJECT (EX64ObjFadtSciInterrupt, CmX64ObjFadtSciInterruptParser), 952 CM_PARSER_ADD_OBJECT (EX64ObjFadtSciCmdInfo, CmX64ObjFadtSciCmdInfoParser), 953 CM_PARSER_ADD_OBJECT (EX64ObjFadtPmBlockInfo, CmX64ObjFadtPmBlockInfoParser), 954 CM_PARSER_ADD_OBJECT (EX64ObjFadtGpeBlockInfo, CmX64ObjFadtGpeBlockInfoParser), 955 CM_PARSER_ADD_OBJECT (EX64ObjFadtXpmBlockInfo, CmX64ObjFadtXpmBlockInfoParser), 956 CM_PARSER_ADD_OBJECT (EX64ObjFadtXgpeBlockInfo, CmX64ObjFadtXgpeBlockInfoParser), 957 CM_PARSER_ADD_OBJECT (EX64ObjFadtSleepBlockInfo, CmX64ObjFadtSleepBlockInfoParser), 958 CM_PARSER_ADD_OBJECT (EX64ObjFadtResetBlockInfo, CmX64ObjFadtResetBlockInfoParser), 959 CM_PARSER_ADD_OBJECT (EX64ObjFadtMiscInfo, CmX64ObjFadtMiscInfoParser), 960 CM_PARSER_ADD_OBJECT (EX64ObjWsmtFlagsInfo, CmX64ObjWsmtFlagsInfoParser), 961 CM_PARSER_ADD_OBJECT (EX64ObjHpetInfo, CmX64ObjHpetInfoParser), 962 CM_PARSER_ADD_OBJECT (EX64ObjMadtInfo, CmX64ObjMadtInfoParser), 963 CM_PARSER_ADD_OBJECT (EX64ObjLocalApicX2ApicInfo, CmX64ObjLocalApicX2ApicInfoParser), 964 CM_PARSER_ADD_OBJECT (EX64ObjIoApicInfo, CmX64IoApicInfoParser), 965 CM_PARSER_ADD_OBJECT (EX64ObjIntrSourceOverrideInfo, CmX64IntrSourceOverrideInfoParser), 966 CM_PARSER_ADD_OBJECT (EX64ObjLocalApicX2ApicNmiInfo, CmX64LocalApicNmiInfo), 967 CM_PARSER_ADD_OBJECT (EX64ObjFacsInfo, CmX64ObjFacsInfoParser), 968 CM_PARSER_ADD_OBJECT (EX64ObjLocalApicX2ApicAffinityInfo,CmX64LocalApicX2ApicAffinityInfo), 969 CM_PARSER_ADD_OBJECT_RESERVED (EX64ObjMax) 783 970 }; 784 971 … … 786 973 */ 787 974 STATIC CONST CM_OBJ_PARSER StdObjCfgMgrInfoParser[] = { 788 { "Revision", 4, "0x%x", 789 { "OemId[6]", 6, "%c%c%c%c%c%c", PrintChar6}975 { "Revision", 4, "0x%x", NULL }, 976 { "OemId[6]", 6, NULL, PrintChars } 790 977 }; 791 978 … … 793 980 */ 794 981 STATIC CONST CM_OBJ_PARSER StdObjAcpiTableInfoParser[] = { 795 { "AcpiTableSignature", 4, "%c%c%c%c", PrintChar4},796 { "AcpiTableRevision", 1, "%d", 797 { "TableGeneratorId", sizeof (ACPI_TABLE_GENERATOR_ID), "0x%x", 798 { "AcpiTableData", sizeof (EFI_ACPI_DESCRIPTION_HEADER *), "0x%p", 799 { "OemTableId", 8, "%c%c%c%c%c%c%c%c", PrintChar8},800 { "OemRevision", 4, "0x%x", 801 { "MinorRevision", 1, "0x%x", 982 { "AcpiTableSignature", 4, NULL, PrintChars }, 983 { "AcpiTableRevision", 1, "%d", NULL }, 984 { "TableGeneratorId", sizeof (ACPI_TABLE_GENERATOR_ID), "0x%x", NULL }, 985 { "AcpiTableData", sizeof (EFI_ACPI_DESCRIPTION_HEADER *), "0x%p", NULL }, 986 { "OemTableId", 8, NULL, PrintChars }, 987 { "OemRevision", 4, "0x%x", NULL }, 988 { "MinorRevision", 1, "0x%x", NULL }, 802 989 }; 803 990 … … 812 999 */ 813 1000 STATIC CONST CM_OBJ_PARSER_ARRAY StdNamespaceObjectParser[] = { 814 { "EStdObjCfgMgrInfo", StdObjCfgMgrInfoParser, 815 ARRAY_SIZE (StdObjCfgMgrInfoParser) }, 816 { "EStdObjAcpiTableList", StdObjAcpiTableInfoParser, 817 ARRAY_SIZE (StdObjAcpiTableInfoParser) }, 818 { "EStdObjSmbiosTableList", StdObjSmbiosTableInfoParser, 819 ARRAY_SIZE (StdObjSmbiosTableInfoParser) }, 820 { "EStdObjMax", NULL, 0} 1001 CM_PARSER_ADD_OBJECT (EStdObjCfgMgrInfo, StdObjCfgMgrInfoParser), 1002 CM_PARSER_ADD_OBJECT (EStdObjAcpiTableList, StdObjAcpiTableInfoParser), 1003 CM_PARSER_ADD_OBJECT (EStdObjSmbiosTableList, StdObjSmbiosTableInfoParser), 1004 CM_PARSER_ADD_OBJECT_RESERVED (EStdObjMax) 821 1005 }; 822 1006 … … 827 1011 @param [in] Format Format to print the Ptr. 828 1012 @param [in] Ptr Pointer to the string. 1013 @param [in] Length Length of the field 829 1014 **/ 830 1015 STATIC … … 833 1018 PrintString ( 834 1019 IN CONST CHAR8 *Format, 835 IN UINT8 *Ptr 1020 IN UINT8 *Ptr, 1021 IN UINT32 Length 836 1022 ) 837 1023 { … … 841 1027 } 842 1028 843 DEBUG ((DEBUG_ ERROR, "%a", Ptr));1029 DEBUG ((DEBUG_INFO, "%a", Ptr)); 844 1030 } 845 1031 … … 850 1036 @param [in] Format Format to print the string. 851 1037 @param [in] Ptr Pointer to the string pointer. 1038 @param [in] Length Length of the field 852 1039 **/ 853 1040 STATIC … … 856 1043 PrintStringPtr ( 857 1044 IN CONST CHAR8 *Format, 858 IN UINT8 *Ptr 1045 IN UINT8 *Ptr, 1046 IN UINT32 Length 859 1047 ) 860 1048 { … … 872 1060 } 873 1061 874 PrintString (Format, String );1062 PrintString (Format, String, Length); 875 1063 } 876 1064 877 /** Print 4characters.1065 /** Print characters. 878 1066 879 1067 @param [in] Format Format to print the Ptr. 880 1068 @param [in] Ptr Pointer to the characters. 1069 @param [in] Length Length of the field 881 1070 **/ 882 1071 STATIC 883 1072 VOID 884 1073 EFIAPI 885 PrintChar 4(1074 PrintChars ( 886 1075 IN CONST CHAR8 *Format, 887 IN UINT8 *Ptr 1076 IN UINT8 *Ptr, 1077 IN UINT32 Length 888 1078 ) 889 1079 { 890 DEBUG (( 891 DEBUG_ERROR, 892 (Format != NULL) ? Format : "%c%c%c%c", 893 Ptr[0], 894 Ptr[1], 895 Ptr[2], 896 Ptr[3] 897 )); 1080 UINT32 Index; 1081 1082 for (Index = 0; Index < Length; Index++) { 1083 DEBUG ((DEBUG_INFO, "%c", Ptr[Index])); 1084 } 898 1085 } 899 1086 900 /** Print 6 characters.1087 /** Dump data in Hex format 901 1088 902 1089 @param [in] Format Format to print the Ptr. 903 @param [in] Ptr Pointer to the characters. 1090 @param [in] Ptr Pointer to the string. 1091 @param [in] Length Length of the field 904 1092 **/ 905 1093 STATIC 906 1094 VOID 907 1095 EFIAPI 908 PrintChar6 ( 909 IN CONST CHAR8 *Format, 910 IN UINT8 *Ptr 1096 HexDump ( 1097 IN CONST CHAR8 *Format, 1098 IN UINT8 *Ptr, 1099 IN UINT32 Length 911 1100 ) 912 1101 { 913 DEBUG (( 914 DEBUG_ERROR, 915 (Format != NULL) ? Format : "%c%c%c%c%c%c", 916 Ptr[0], 917 Ptr[1], 918 Ptr[2], 919 Ptr[3], 920 Ptr[4], 921 Ptr[5] 922 )); 923 } 924 925 /** Print 8 characters. 926 927 @param [in] Format Format to print the Ptr. 928 @param [in] Ptr Pointer to the characters. 929 **/ 930 STATIC 931 VOID 932 EFIAPI 933 PrintChar8 ( 934 IN CONST CHAR8 *Format, 935 IN UINT8 *Ptr 936 ) 937 { 938 DEBUG (( 939 DEBUG_ERROR, 940 (Format != NULL) ? Format : "%c%c%c%c%c%c%c%c", 941 Ptr[0], 942 Ptr[1], 943 Ptr[2], 944 Ptr[3], 945 Ptr[4], 946 Ptr[5], 947 Ptr[6], 948 Ptr[7] 949 )); 1102 UINT32 Index; 1103 1104 for (Index = 0; Index < Length; Index++) { 1105 DEBUG ((DEBUG_INFO, "0x%02x ", *Ptr++)); 1106 } 950 1107 } 951 1108 … … 989 1146 if (*RemainingSize < 0) { 990 1147 DEBUG (( 991 DEBUG_ INFO,1148 DEBUG_ERROR, 992 1149 "\nERROR: %a: Buffer overrun\n", 993 1150 Parser[Index].NameStr … … 1009 1166 )); 1010 1167 if (Parser[Index].PrintFormatter != NULL) { 1011 Parser[Index].PrintFormatter (Parser[Index].Format, Data );1168 Parser[Index].PrintFormatter (Parser[Index].Format, Data, Parser[Index].Length); 1012 1169 } else if (Parser[Index].Format != NULL) { 1013 1170 switch (Parser[Index].Length) { … … 1112 1269 ParserArray = &ArmNamespaceObjectParser[ObjId]; 1113 1270 break; 1271 1272 case EObjNameSpaceArchCommon: 1273 if (ObjId >= EArchCommonObjMax) { 1274 ASSERT (0); 1275 return; 1276 } 1277 1278 if (ObjId >= ARRAY_SIZE (ArchCommonNamespaceObjectParser)) { 1279 DEBUG ((DEBUG_ERROR, "ObjId 0x%x is missing from the ArchCommonNamespaceObjectParser array\n", ObjId)); 1280 ASSERT (0); 1281 return; 1282 } 1283 1284 ParserArray = &ArchCommonNamespaceObjectParser[ObjId]; 1285 break; 1286 1287 case EObjNameSpaceX64: 1288 if (ObjId >= EX64ObjMax) { 1289 ASSERT (0); 1290 return; 1291 } 1292 1293 if (ObjId >= ARRAY_SIZE (X64NamespaceObjectParser)) { 1294 DEBUG ((DEBUG_ERROR, "ObjId 0x%x is missing from the X64NamespaceObjectParser array\n", ObjId)); 1295 ASSERT (0); 1296 return; 1297 } 1298 1299 ParserArray = &X64NamespaceObjectParser[ObjId]; 1300 break; 1301 1114 1302 default: 1115 1303 // Not supported … … 1132 1320 ObjectCount 1133 1321 )); 1322 1323 ASSERT (ObjId == ParserArray->ObjectId); 1324 1134 1325 if (ParserArray->Parser == NULL) { 1135 1326 DEBUG ((DEBUG_ERROR, "Parser not implemented\n"));
Note:
See TracChangeset
for help on using the changeset viewer.