dmtbdump.c (193529) | dmtbdump.c (197104) |
---|---|
1/****************************************************************************** 2 * 3 * Module Name: dmtbdump - Dump ACPI data tables that contain no AML code 4 * 5 *****************************************************************************/ 6 7/****************************************************************************** 8 * --- 292 unchanged lines hidden (view full) --- 301 ACPI_ASF_INFO *SubTable; 302 ACPI_DMTABLE_INFO *InfoTable; 303 ACPI_DMTABLE_INFO *DataInfoTable = NULL; 304 UINT8 *DataTable = NULL; 305 UINT32 DataCount = 0; 306 UINT32 DataLength = 0; 307 UINT32 DataOffset = 0; 308 UINT32 i; | 1/****************************************************************************** 2 * 3 * Module Name: dmtbdump - Dump ACPI data tables that contain no AML code 4 * 5 *****************************************************************************/ 6 7/****************************************************************************** 8 * --- 292 unchanged lines hidden (view full) --- 301 ACPI_ASF_INFO *SubTable; 302 ACPI_DMTABLE_INFO *InfoTable; 303 ACPI_DMTABLE_INFO *DataInfoTable = NULL; 304 UINT8 *DataTable = NULL; 305 UINT32 DataCount = 0; 306 UINT32 DataLength = 0; 307 UINT32 DataOffset = 0; 308 UINT32 i; |
309 UINT8 Type; |
|
309 310 311 /* No main table, only sub-tables */ 312 313 SubTable = ACPI_ADD_PTR (ACPI_ASF_INFO, Table, Offset); 314 while (Offset < Table->Length) 315 { 316 /* Common sub-table header */ 317 318 Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, 319 SubTable->Header.Length, AcpiDmTableInfoAsfHdr); 320 if (ACPI_FAILURE (Status)) 321 { 322 return; 323 } 324 | 310 311 312 /* No main table, only sub-tables */ 313 314 SubTable = ACPI_ADD_PTR (ACPI_ASF_INFO, Table, Offset); 315 while (Offset < Table->Length) 316 { 317 /* Common sub-table header */ 318 319 Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, 320 SubTable->Header.Length, AcpiDmTableInfoAsfHdr); 321 if (ACPI_FAILURE (Status)) 322 { 323 return; 324 } 325 |
325 switch (SubTable->Header.Type & 0x7F) /* Mask off top bit */ | 326 /* The actual type is the lower 7 bits of Type */ 327 328 Type = (UINT8) (SubTable->Header.Type & 0x7F); 329 330 switch (Type) |
326 { 327 case ACPI_ASF_TYPE_INFO: 328 InfoTable = AcpiDmTableInfoAsf0; 329 break; 330 331 case ACPI_ASF_TYPE_ALERT: 332 InfoTable = AcpiDmTableInfoAsf1; 333 DataInfoTable = AcpiDmTableInfoAsf1a; 334 DataTable = ACPI_ADD_PTR (UINT8, SubTable, sizeof (ACPI_ASF_ALERT)); | 331 { 332 case ACPI_ASF_TYPE_INFO: 333 InfoTable = AcpiDmTableInfoAsf0; 334 break; 335 336 case ACPI_ASF_TYPE_ALERT: 337 InfoTable = AcpiDmTableInfoAsf1; 338 DataInfoTable = AcpiDmTableInfoAsf1a; 339 DataTable = ACPI_ADD_PTR (UINT8, SubTable, sizeof (ACPI_ASF_ALERT)); |
335 DataCount = ((ACPI_ASF_ALERT *) SubTable)->Alerts; 336 DataLength = ((ACPI_ASF_ALERT *) SubTable)->DataLength; | 340 DataCount = ACPI_CAST_PTR (ACPI_ASF_ALERT, SubTable)->Alerts; 341 DataLength = ACPI_CAST_PTR (ACPI_ASF_ALERT, SubTable)->DataLength; |
337 DataOffset = Offset + sizeof (ACPI_ASF_ALERT); 338 break; 339 340 case ACPI_ASF_TYPE_CONTROL: 341 InfoTable = AcpiDmTableInfoAsf2; 342 DataInfoTable = AcpiDmTableInfoAsf2a; 343 DataTable = ACPI_ADD_PTR (UINT8, SubTable, sizeof (ACPI_ASF_REMOTE)); | 342 DataOffset = Offset + sizeof (ACPI_ASF_ALERT); 343 break; 344 345 case ACPI_ASF_TYPE_CONTROL: 346 InfoTable = AcpiDmTableInfoAsf2; 347 DataInfoTable = AcpiDmTableInfoAsf2a; 348 DataTable = ACPI_ADD_PTR (UINT8, SubTable, sizeof (ACPI_ASF_REMOTE)); |
344 DataCount = ((ACPI_ASF_REMOTE *) SubTable)->Controls; 345 DataLength = ((ACPI_ASF_REMOTE *) SubTable)->DataLength; | 349 DataCount = ACPI_CAST_PTR (ACPI_ASF_REMOTE, SubTable)->Controls; 350 DataLength = ACPI_CAST_PTR (ACPI_ASF_REMOTE, SubTable)->DataLength; |
346 DataOffset = Offset + sizeof (ACPI_ASF_REMOTE); 347 break; 348 349 case ACPI_ASF_TYPE_BOOT: 350 InfoTable = AcpiDmTableInfoAsf3; 351 break; 352 353 case ACPI_ASF_TYPE_ADDRESS: 354 InfoTable = AcpiDmTableInfoAsf4; 355 DataTable = ACPI_ADD_PTR (UINT8, SubTable, sizeof (ACPI_ASF_ADDRESS)); | 351 DataOffset = Offset + sizeof (ACPI_ASF_REMOTE); 352 break; 353 354 case ACPI_ASF_TYPE_BOOT: 355 InfoTable = AcpiDmTableInfoAsf3; 356 break; 357 358 case ACPI_ASF_TYPE_ADDRESS: 359 InfoTable = AcpiDmTableInfoAsf4; 360 DataTable = ACPI_ADD_PTR (UINT8, SubTable, sizeof (ACPI_ASF_ADDRESS)); |
356 DataLength = ((ACPI_ASF_ADDRESS *) SubTable)->Devices; | 361 DataLength = ACPI_CAST_PTR (ACPI_ASF_ADDRESS, SubTable)->Devices; |
357 DataOffset = Offset + sizeof (ACPI_ASF_ADDRESS); 358 break; 359 360 default: 361 AcpiOsPrintf ("\n**** Unknown ASF sub-table type %X\n", SubTable->Header.Type); 362 return; 363 } 364 365 Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, 366 SubTable->Header.Length, InfoTable); 367 if (ACPI_FAILURE (Status)) 368 { 369 return; 370 } 371 372 /* Dump variable-length extra data */ 373 | 362 DataOffset = Offset + sizeof (ACPI_ASF_ADDRESS); 363 break; 364 365 default: 366 AcpiOsPrintf ("\n**** Unknown ASF sub-table type %X\n", SubTable->Header.Type); 367 return; 368 } 369 370 Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, 371 SubTable->Header.Length, InfoTable); 372 if (ACPI_FAILURE (Status)) 373 { 374 return; 375 } 376 377 /* Dump variable-length extra data */ 378 |
374 switch (SubTable->Header.Type & 0x7F) /* Mask off top bit */ | 379 switch (Type) |
375 { 376 case ACPI_ASF_TYPE_ALERT: 377 case ACPI_ASF_TYPE_CONTROL: 378 379 for (i = 0; i < DataCount; i++) 380 { 381 AcpiOsPrintf ("\n"); 382 Status = AcpiDmDumpTable (Table->Length, DataOffset, --- 83 unchanged lines hidden (view full) --- 466 467 /* Sub-tables */ 468 469 SubTable = ACPI_ADD_PTR (ACPI_CPEP_POLLING, Table, Offset); 470 while (Offset < Table->Length) 471 { 472 AcpiOsPrintf ("\n"); 473 Status = AcpiDmDumpTable (Length, Offset, SubTable, | 380 { 381 case ACPI_ASF_TYPE_ALERT: 382 case ACPI_ASF_TYPE_CONTROL: 383 384 for (i = 0; i < DataCount; i++) 385 { 386 AcpiOsPrintf ("\n"); 387 Status = AcpiDmDumpTable (Table->Length, DataOffset, --- 83 unchanged lines hidden (view full) --- 471 472 /* Sub-tables */ 473 474 SubTable = ACPI_ADD_PTR (ACPI_CPEP_POLLING, Table, Offset); 475 while (Offset < Table->Length) 476 { 477 AcpiOsPrintf ("\n"); 478 Status = AcpiDmDumpTable (Length, Offset, SubTable, |
474 SubTable->Length, AcpiDmTableInfoCpep0); | 479 SubTable->Header.Length, AcpiDmTableInfoCpep0); |
475 if (ACPI_FAILURE (Status)) 476 { 477 return; 478 } 479 480 /* Point to next sub-table */ 481 | 480 if (ACPI_FAILURE (Status)) 481 { 482 return; 483 } 484 485 /* Point to next sub-table */ 486 |
482 Offset += SubTable->Length; 483 SubTable = ACPI_ADD_PTR (ACPI_CPEP_POLLING, SubTable, SubTable->Length); | 487 Offset += SubTable->Header.Length; 488 SubTable = ACPI_ADD_PTR (ACPI_CPEP_POLLING, SubTable, 489 SubTable->Header.Length); |
484 } 485} 486 487 488/******************************************************************************* 489 * 490 * FUNCTION: AcpiDmDumpDmar 491 * --- 53 unchanged lines hidden (view full) --- 545 case ACPI_DMAR_TYPE_RESERVED_MEMORY: 546 InfoTable = AcpiDmTableInfoDmar1; 547 ScopeOffset = sizeof (ACPI_DMAR_RESERVED_MEMORY); 548 break; 549 case ACPI_DMAR_TYPE_ATSR: 550 InfoTable = AcpiDmTableInfoDmar2; 551 ScopeOffset = sizeof (ACPI_DMAR_ATSR); 552 break; | 490 } 491} 492 493 494/******************************************************************************* 495 * 496 * FUNCTION: AcpiDmDumpDmar 497 * --- 53 unchanged lines hidden (view full) --- 551 case ACPI_DMAR_TYPE_RESERVED_MEMORY: 552 InfoTable = AcpiDmTableInfoDmar1; 553 ScopeOffset = sizeof (ACPI_DMAR_RESERVED_MEMORY); 554 break; 555 case ACPI_DMAR_TYPE_ATSR: 556 InfoTable = AcpiDmTableInfoDmar2; 557 ScopeOffset = sizeof (ACPI_DMAR_ATSR); 558 break; |
559 case ACPI_DMAR_HARDWARE_AFFINITY: 560 InfoTable = AcpiDmTableInfoDmar3; 561 ScopeOffset = sizeof (ACPI_DMAR_RHSA); 562 break; |
|
553 default: 554 AcpiOsPrintf ("\n**** Unknown DMAR sub-table type %X\n\n", SubTable->Type); 555 return; 556 } 557 558 Status = AcpiDmDumpTable (Length, Offset, SubTable, 559 SubTable->Length, InfoTable); 560 if (ACPI_FAILURE (Status)) --- 171 unchanged lines hidden (view full) --- 732 ACPI_TABLE_HEADER *Table) 733{ 734 ACPI_STATUS Status; 735 ACPI_HEST_HEADER *SubTable; 736 UINT32 Length = Table->Length; 737 UINT32 Offset = sizeof (ACPI_TABLE_HEST); 738 ACPI_DMTABLE_INFO *InfoTable; 739 UINT32 SubTableLength; | 563 default: 564 AcpiOsPrintf ("\n**** Unknown DMAR sub-table type %X\n\n", SubTable->Type); 565 return; 566 } 567 568 Status = AcpiDmDumpTable (Length, Offset, SubTable, 569 SubTable->Length, InfoTable); 570 if (ACPI_FAILURE (Status)) --- 171 unchanged lines hidden (view full) --- 742 ACPI_TABLE_HEADER *Table) 743{ 744 ACPI_STATUS Status; 745 ACPI_HEST_HEADER *SubTable; 746 UINT32 Length = Table->Length; 747 UINT32 Offset = sizeof (ACPI_TABLE_HEST); 748 ACPI_DMTABLE_INFO *InfoTable; 749 UINT32 SubTableLength; |
750 UINT32 BankCount; 751 ACPI_HEST_IA_ERROR_BANK *BankTable; |
|
740 741 742 /* Main table */ 743 744 Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoHest); 745 if (ACPI_FAILURE (Status)) 746 { 747 return; 748 } 749 750 /* Sub-tables */ 751 752 SubTable = ACPI_ADD_PTR (ACPI_HEST_HEADER, Table, Offset); 753 while (Offset < Table->Length) 754 { | 752 753 754 /* Main table */ 755 756 Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoHest); 757 if (ACPI_FAILURE (Status)) 758 { 759 return; 760 } 761 762 /* Sub-tables */ 763 764 SubTable = ACPI_ADD_PTR (ACPI_HEST_HEADER, Table, Offset); 765 while (Offset < Table->Length) 766 { |
767 BankCount = 0; |
|
755 switch (SubTable->Type) 756 { | 768 switch (SubTable->Type) 769 { |
757 case ACPI_HEST_TYPE_XPF_MACHINE_CHECK: | 770 case ACPI_HEST_TYPE_IA32_CHECK: |
758 InfoTable = AcpiDmTableInfoHest0; | 771 InfoTable = AcpiDmTableInfoHest0; |
759 SubTableLength = sizeof (ACPI_HEST_XPF_MACHINE_CHECK); | 772 SubTableLength = sizeof (ACPI_HEST_IA_MACHINE_CHECK); 773 BankCount = (ACPI_CAST_PTR (ACPI_HEST_IA_MACHINE_CHECK, 774 SubTable))->NumHardwareBanks; |
760 break; 761 | 775 break; 776 |
762 case ACPI_HEST_TYPE_XPF_CORRECTED_MACHINE_CHECK: | 777 case ACPI_HEST_TYPE_IA32_CORRECTED_CHECK: |
763 InfoTable = AcpiDmTableInfoHest1; | 778 InfoTable = AcpiDmTableInfoHest1; |
764 SubTableLength = sizeof (ACPI_HEST_XPF_CORRECTED); | 779 SubTableLength = sizeof (ACPI_HEST_IA_CORRECTED); 780 BankCount = (ACPI_CAST_PTR (ACPI_HEST_IA_CORRECTED, 781 SubTable))->NumHardwareBanks; |
765 break; 766 | 782 break; 783 |
767 case ACPI_HEST_TYPE_XPF_NON_MASKABLE_INTERRUPT: 768 InfoTable = AcpiDmTableInfoHest3; 769 SubTableLength = sizeof (ACPI_HEST_XPF_NMI); | 784 case ACPI_HEST_TYPE_IA32_NMI: 785 InfoTable = AcpiDmTableInfoHest2; 786 SubTableLength = sizeof (ACPI_HEST_IA_NMI); |
770 break; 771 | 787 break; 788 |
772 case ACPI_HEST_TYPE_IPF_CORRECTED_MACHINE_CHECK: 773 InfoTable = AcpiDmTableInfoHest4; 774 SubTableLength = sizeof (ACPI_HEST_IPF_CORRECTED); 775 break; 776 777 case ACPI_HEST_TYPE_IPF_CORRECTED_PLATFORM_ERROR: 778 InfoTable = AcpiDmTableInfoHest5; 779 SubTableLength = sizeof (ACPI_HEST_IPF_CORRECTED_PLATFORM); 780 break; 781 | |
782 case ACPI_HEST_TYPE_AER_ROOT_PORT: 783 InfoTable = AcpiDmTableInfoHest6; 784 SubTableLength = sizeof (ACPI_HEST_AER_ROOT); 785 break; 786 787 case ACPI_HEST_TYPE_AER_ENDPOINT: 788 InfoTable = AcpiDmTableInfoHest7; 789 SubTableLength = sizeof (ACPI_HEST_AER); 790 break; 791 792 case ACPI_HEST_TYPE_AER_BRIDGE: 793 InfoTable = AcpiDmTableInfoHest8; 794 SubTableLength = sizeof (ACPI_HEST_AER_BRIDGE); 795 break; 796 | 789 case ACPI_HEST_TYPE_AER_ROOT_PORT: 790 InfoTable = AcpiDmTableInfoHest6; 791 SubTableLength = sizeof (ACPI_HEST_AER_ROOT); 792 break; 793 794 case ACPI_HEST_TYPE_AER_ENDPOINT: 795 InfoTable = AcpiDmTableInfoHest7; 796 SubTableLength = sizeof (ACPI_HEST_AER); 797 break; 798 799 case ACPI_HEST_TYPE_AER_BRIDGE: 800 InfoTable = AcpiDmTableInfoHest8; 801 SubTableLength = sizeof (ACPI_HEST_AER_BRIDGE); 802 break; 803 |
797 case ACPI_HEST_TYPE_GENERIC_HARDWARE_ERROR_SOURCE: | 804 case ACPI_HEST_TYPE_GENERIC_ERROR: |
798 InfoTable = AcpiDmTableInfoHest9; 799 SubTableLength = sizeof (ACPI_HEST_GENERIC); 800 break; 801 802 default: 803 /* Cannot continue on unknown type - no length */ 804 805 AcpiOsPrintf ("\n**** Unknown HEST sub-table type %X\n", SubTable->Type); 806 return; 807 } 808 809 AcpiOsPrintf ("\n"); 810 Status = AcpiDmDumpTable (Length, Offset, SubTable, 811 SubTableLength, InfoTable); 812 if (ACPI_FAILURE (Status)) 813 { 814 return; 815 } 816 | 805 InfoTable = AcpiDmTableInfoHest9; 806 SubTableLength = sizeof (ACPI_HEST_GENERIC); 807 break; 808 809 default: 810 /* Cannot continue on unknown type - no length */ 811 812 AcpiOsPrintf ("\n**** Unknown HEST sub-table type %X\n", SubTable->Type); 813 return; 814 } 815 816 AcpiOsPrintf ("\n"); 817 Status = AcpiDmDumpTable (Length, Offset, SubTable, 818 SubTableLength, InfoTable); 819 if (ACPI_FAILURE (Status)) 820 { 821 return; 822 } 823 |
817 /* Point to next sub-table (each subtable is of fixed length) */ | 824 /* Point to end of current subtable (each subtable above is of fixed length) */ |
818 819 Offset += SubTableLength; | 825 826 Offset += SubTableLength; |
827 828 /* If there are any (fixed-length) Error Banks from above, dump them now */ 829 830 if (BankCount) 831 { 832 BankTable = ACPI_ADD_PTR (ACPI_HEST_IA_ERROR_BANK, SubTable, SubTableLength); 833 SubTableLength += BankCount * sizeof (ACPI_HEST_IA_ERROR_BANK); 834 835 while (BankCount) 836 { 837 AcpiOsPrintf ("\n"); 838 Status = AcpiDmDumpTable (Length, Offset, BankTable, 839 sizeof (ACPI_HEST_IA_ERROR_BANK), AcpiDmTableInfoHestBank); 840 if (ACPI_FAILURE (Status)) 841 { 842 return; 843 } 844 Offset += sizeof (ACPI_HEST_IA_ERROR_BANK); 845 BankTable++; 846 BankCount--; 847 } 848 } 849 850 /* Point to next sub-table */ 851 |
|
820 SubTable = ACPI_ADD_PTR (ACPI_HEST_HEADER, SubTable, SubTableLength); 821 } 822} 823 824 825/******************************************************************************* 826 * | 852 SubTable = ACPI_ADD_PTR (ACPI_HEST_HEADER, SubTable, SubTableLength); 853 } 854} 855 856 857/******************************************************************************* 858 * |
859 * FUNCTION: AcpiDmDumpIvrs 860 * 861 * PARAMETERS: Table - A IVRS table 862 * 863 * RETURN: None 864 * 865 * DESCRIPTION: Format the contents of a IVRS 866 * 867 ******************************************************************************/ 868 869static UINT8 EntrySizes[] = {4,8,16,32}; 870 871void 872AcpiDmDumpIvrs ( 873 ACPI_TABLE_HEADER *Table) 874{ 875 ACPI_STATUS Status; 876 UINT32 Offset = sizeof (ACPI_TABLE_IVRS); 877 UINT32 EntryOffset; 878 UINT32 EntryLength; 879 UINT32 EntryType; 880 ACPI_IVRS_DE_HEADER *DeviceEntry; 881 ACPI_IVRS_HEADER *SubTable; 882 ACPI_DMTABLE_INFO *InfoTable; 883 884 885 /* Main table */ 886 887 Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoIvrs); 888 if (ACPI_FAILURE (Status)) 889 { 890 return; 891 } 892 893 /* Sub-tables */ 894 895 SubTable = ACPI_ADD_PTR (ACPI_IVRS_HEADER, Table, Offset); 896 while (Offset < Table->Length) 897 { 898 /* Common sub-table header */ 899 900 AcpiOsPrintf ("\n"); 901 Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, 902 SubTable->Length, AcpiDmTableInfoIvrsHdr); 903 if (ACPI_FAILURE (Status)) 904 { 905 return; 906 } 907 908 switch (SubTable->Type) 909 { 910 case ACPI_IVRS_TYPE_HARDWARE: 911 InfoTable = AcpiDmTableInfoIvrs0; 912 break; 913 case ACPI_IVRS_TYPE_MEMORY1: 914 case ACPI_IVRS_TYPE_MEMORY2: 915 case ACPI_IVRS_TYPE_MEMORY3: 916 InfoTable = AcpiDmTableInfoIvrs1; 917 break; 918 default: 919 AcpiOsPrintf ("\n**** Unknown IVRS sub-table type %X\n", 920 SubTable->Type); 921 922 /* Attempt to continue */ 923 924 if (!SubTable->Length) 925 { 926 AcpiOsPrintf ("Invalid zero length subtable\n"); 927 return; 928 } 929 goto NextSubTable; 930 } 931 932 /* Dump the subtable */ 933 934 AcpiOsPrintf ("\n"); 935 Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, 936 SubTable->Length, InfoTable); 937 if (ACPI_FAILURE (Status)) 938 { 939 return; 940 } 941 942 /* The hardware subtable can contain multiple device entries */ 943 944 if (SubTable->Type == ACPI_IVRS_TYPE_HARDWARE) 945 { 946 EntryOffset = Offset + sizeof (ACPI_IVRS_HARDWARE); 947 DeviceEntry = ACPI_ADD_PTR (ACPI_IVRS_DE_HEADER, SubTable, 948 sizeof (ACPI_IVRS_HARDWARE)); 949 950 while (EntryOffset < (Offset + SubTable->Length)) 951 { 952 AcpiOsPrintf ("\n"); 953 /* 954 * Upper 2 bits of Type encode the length of the device entry 955 * 956 * 00 = 4 byte 957 * 01 = 8 byte 958 * 10 = 16 byte - currently no entries defined 959 * 11 = 32 byte - currently no entries defined 960 */ 961 EntryType = DeviceEntry->Type; 962 EntryLength = EntrySizes [EntryType >> 6]; 963 964 switch (EntryType) 965 { 966 /* 4-byte device entries */ 967 968 case ACPI_IVRS_TYPE_PAD4: 969 case ACPI_IVRS_TYPE_ALL: 970 case ACPI_IVRS_TYPE_SELECT: 971 case ACPI_IVRS_TYPE_START: 972 case ACPI_IVRS_TYPE_END: 973 974 InfoTable = AcpiDmTableInfoIvrs4; 975 break; 976 977 /* 8-byte entries, type A */ 978 979 case ACPI_IVRS_TYPE_ALIAS_SELECT: 980 case ACPI_IVRS_TYPE_ALIAS_START: 981 982 InfoTable = AcpiDmTableInfoIvrs8a; 983 break; 984 985 /* 8-byte entries, type B */ 986 987 case ACPI_IVRS_TYPE_PAD8: 988 case ACPI_IVRS_TYPE_EXT_SELECT: 989 case ACPI_IVRS_TYPE_EXT_START: 990 991 InfoTable = AcpiDmTableInfoIvrs8b; 992 break; 993 994 /* 8-byte entries, type C */ 995 996 case ACPI_IVRS_TYPE_SPECIAL: 997 998 InfoTable = AcpiDmTableInfoIvrs8c; 999 break; 1000 1001 default: 1002 InfoTable = AcpiDmTableInfoIvrs4; 1003 AcpiOsPrintf ( 1004 "\n**** Unknown IVRS device entry type/length: " 1005 "%.2X/%X at offset %.4X: (header below)\n", 1006 EntryType, EntryLength, EntryOffset); 1007 break; 1008 } 1009 1010 /* Dump the Device Entry */ 1011 1012 Status = AcpiDmDumpTable (Table->Length, EntryOffset, 1013 DeviceEntry, EntryLength, InfoTable); 1014 1015 EntryOffset += EntryLength; 1016 DeviceEntry = ACPI_ADD_PTR (ACPI_IVRS_DE_HEADER, DeviceEntry, 1017 EntryLength); 1018 } 1019 } 1020 1021NextSubTable: 1022 /* Point to next sub-table */ 1023 1024 Offset += SubTable->Length; 1025 SubTable = ACPI_ADD_PTR (ACPI_IVRS_HEADER, SubTable, SubTable->Length); 1026 } 1027} 1028 1029 1030/******************************************************************************* 1031 * |
|
827 * FUNCTION: AcpiDmDumpMadt 828 * 829 * PARAMETERS: Table - A MADT table 830 * 831 * RETURN: None 832 * 833 * DESCRIPTION: Format the contents of a MADT. This table type consists 834 * of an open-ended number of subtables. --- 153 unchanged lines hidden (view full) --- 988 SubTable = ACPI_ADD_PTR (ACPI_MCFG_ALLOCATION, SubTable, 989 sizeof (ACPI_MCFG_ALLOCATION)); 990 } 991} 992 993 994/******************************************************************************* 995 * | 1032 * FUNCTION: AcpiDmDumpMadt 1033 * 1034 * PARAMETERS: Table - A MADT table 1035 * 1036 * RETURN: None 1037 * 1038 * DESCRIPTION: Format the contents of a MADT. This table type consists 1039 * of an open-ended number of subtables. --- 153 unchanged lines hidden (view full) --- 1193 SubTable = ACPI_ADD_PTR (ACPI_MCFG_ALLOCATION, SubTable, 1194 sizeof (ACPI_MCFG_ALLOCATION)); 1195 } 1196} 1197 1198 1199/******************************************************************************* 1200 * |
1201 * FUNCTION: AcpiDmDumpMsct 1202 * 1203 * PARAMETERS: Table - A MSCT table 1204 * 1205 * RETURN: None 1206 * 1207 * DESCRIPTION: Format the contents of a MSCT 1208 * 1209 ******************************************************************************/ 1210 1211void 1212AcpiDmDumpMsct ( 1213 ACPI_TABLE_HEADER *Table) 1214{ 1215 ACPI_STATUS Status; 1216 UINT32 Offset = sizeof (ACPI_TABLE_MSCT); 1217 ACPI_MSCT_PROXIMITY *SubTable; 1218 1219 1220 /* Main table */ 1221 1222 Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoMsct); 1223 if (ACPI_FAILURE (Status)) 1224 { 1225 return; 1226 } 1227 1228 /* Sub-tables */ 1229 1230 SubTable = ACPI_ADD_PTR (ACPI_MSCT_PROXIMITY, Table, Offset); 1231 while (Offset < Table->Length) 1232 { 1233 /* Common sub-table header */ 1234 1235 AcpiOsPrintf ("\n"); 1236 Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, 1237 sizeof (ACPI_MSCT_PROXIMITY), AcpiDmTableInfoMsct0); 1238 if (ACPI_FAILURE (Status)) 1239 { 1240 return; 1241 } 1242 1243 /* Point to next sub-table */ 1244 1245 Offset += sizeof (ACPI_MSCT_PROXIMITY); 1246 SubTable = ACPI_ADD_PTR (ACPI_MSCT_PROXIMITY, SubTable, sizeof (ACPI_MSCT_PROXIMITY)); 1247 } 1248} 1249 1250 1251/******************************************************************************* 1252 * |
|
996 * FUNCTION: AcpiDmDumpSlit 997 * 998 * PARAMETERS: Table - An SLIT 999 * 1000 * RETURN: None 1001 * 1002 * DESCRIPTION: Format the contents of a SLIT 1003 * --- 140 unchanged lines hidden (view full) --- 1144NextSubTable: 1145 /* Point to next sub-table */ 1146 1147 Offset += SubTable->Length; 1148 SubTable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, SubTable, SubTable->Length); 1149 } 1150} 1151 | 1253 * FUNCTION: AcpiDmDumpSlit 1254 * 1255 * PARAMETERS: Table - An SLIT 1256 * 1257 * RETURN: None 1258 * 1259 * DESCRIPTION: Format the contents of a SLIT 1260 * --- 140 unchanged lines hidden (view full) --- 1401NextSubTable: 1402 /* Point to next sub-table */ 1403 1404 Offset += SubTable->Length; 1405 SubTable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, SubTable, SubTable->Length); 1406 } 1407} 1408 |
1409 1410/******************************************************************************* 1411 * 1412 * FUNCTION: AcpiDmDumpWdat 1413 * 1414 * PARAMETERS: Table - A WDAT table 1415 * 1416 * RETURN: None 1417 * 1418 * DESCRIPTION: Format the contents of a WDAT 1419 * 1420 ******************************************************************************/ 1421 1422void 1423AcpiDmDumpWdat ( 1424 ACPI_TABLE_HEADER *Table) 1425{ 1426 ACPI_STATUS Status; 1427 UINT32 Offset = sizeof (ACPI_TABLE_WDAT); 1428 ACPI_WDAT_ENTRY *SubTable; 1429 1430 1431 /* Main table */ 1432 1433 Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoWdat); 1434 if (ACPI_FAILURE (Status)) 1435 { 1436 return; 1437 } 1438 1439 /* Sub-tables */ 1440 1441 SubTable = ACPI_ADD_PTR (ACPI_WDAT_ENTRY, Table, Offset); 1442 while (Offset < Table->Length) 1443 { 1444 /* Common sub-table header */ 1445 1446 AcpiOsPrintf ("\n"); 1447 Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, 1448 sizeof (ACPI_WDAT_ENTRY), AcpiDmTableInfoWdat0); 1449 if (ACPI_FAILURE (Status)) 1450 { 1451 return; 1452 } 1453 1454 /* Point to next sub-table */ 1455 1456 Offset += sizeof (ACPI_WDAT_ENTRY); 1457 SubTable = ACPI_ADD_PTR (ACPI_WDAT_ENTRY, SubTable, sizeof (ACPI_WDAT_ENTRY)); 1458 } 1459} |
|