]>
Commit | Line | Data |
---|---|---|
b643ab7e JB |
1 | From bcdec27f562b0df37546b5e8ad2eab76348062eb Mon Sep 17 00:00:00 2001 |
2 | From: Al Stone <ahs3@redhat.com> | |
3 | Date: Sat, 19 Sep 2020 15:44:06 -0600 | |
4 | Subject: [PATCH 13/45] Support DRTM in a big-endian world | |
5 | ||
6 | Signed-off-by: Al Stone <ahs3@redhat.com> | |
7 | --- | |
8 | source/common/dmtbdump1.c | 25 +++++++++++++++---------- | |
9 | source/compiler/dttable1.c | 6 ++++-- | |
10 | 2 files changed, 19 insertions(+), 12 deletions(-) | |
11 | ||
12 | Index: acpica-unix2-20220331/source/common/dmtbdump1.c | |
13 | =================================================================== | |
14 | --- acpica-unix2-20220331.orig/source/common/dmtbdump1.c | |
15 | +++ acpica-unix2-20220331/source/common/dmtbdump1.c | |
16 | @@ -1071,11 +1071,14 @@ AcpiDmDumpDrtm ( | |
17 | ACPI_DRTM_RESOURCE_LIST *DrtmRl; | |
18 | ACPI_DRTM_DPS_ID *DrtmDps; | |
19 | UINT32 Count; | |
20 | + UINT32 ResourceCount; | |
21 | + UINT32 ValidatedTableCount; | |
22 | + UINT32 TableLength = AcpiUtReadUint32 (&Table->Length); | |
23 | ||
24 | ||
25 | /* Main table */ | |
26 | ||
27 | - Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, | |
28 | + Status = AcpiDmDumpTable (TableLength, 0, Table, 0, | |
29 | AcpiDmTableInfoDrtm); | |
30 | if (ACPI_FAILURE (Status)) | |
31 | { | |
32 | @@ -1090,7 +1093,7 @@ AcpiDmDumpDrtm ( | |
33 | ||
34 | DrtmVtl = ACPI_ADD_PTR (ACPI_DRTM_VTABLE_LIST, Table, Offset); | |
35 | AcpiOsPrintf ("\n"); | |
36 | - Status = AcpiDmDumpTable (Table->Length, Offset, | |
37 | + Status = AcpiDmDumpTable (TableLength, Offset, | |
38 | DrtmVtl, ACPI_OFFSET (ACPI_DRTM_VTABLE_LIST, ValidatedTables), | |
39 | AcpiDmTableInfoDrtm0); | |
40 | if (ACPI_FAILURE (Status)) | |
41 | @@ -1103,10 +1106,11 @@ AcpiDmDumpDrtm ( | |
42 | /* Dump Validated table addresses */ | |
43 | ||
44 | Count = 0; | |
45 | - while ((Offset < Table->Length) && | |
46 | - (DrtmVtl->ValidatedTableCount > Count)) | |
47 | + ValidatedTableCount = AcpiUtReadUint32 (&DrtmVtl->ValidatedTableCount); | |
48 | + while ((Offset < TableLength) && | |
49 | + (ValidatedTableCount > Count)) | |
50 | { | |
51 | - Status = AcpiDmDumpTable (Table->Length, Offset, | |
52 | + Status = AcpiDmDumpTable (TableLength, Offset, | |
53 | ACPI_ADD_PTR (void, Table, Offset), sizeof (UINT64), | |
54 | AcpiDmTableInfoDrtm0a); | |
55 | if (ACPI_FAILURE (Status)) | |
56 | @@ -1122,7 +1126,7 @@ AcpiDmDumpDrtm ( | |
57 | ||
58 | DrtmRl = ACPI_ADD_PTR (ACPI_DRTM_RESOURCE_LIST, Table, Offset); | |
59 | AcpiOsPrintf ("\n"); | |
60 | - Status = AcpiDmDumpTable (Table->Length, Offset, | |
61 | + Status = AcpiDmDumpTable (TableLength, Offset, | |
62 | DrtmRl, ACPI_OFFSET (ACPI_DRTM_RESOURCE_LIST, Resources), | |
63 | AcpiDmTableInfoDrtm1); | |
64 | if (ACPI_FAILURE (Status)) | |
65 | @@ -1135,10 +1139,11 @@ AcpiDmDumpDrtm ( | |
66 | /* Dump the Resource List */ | |
67 | ||
68 | Count = 0; | |
69 | - while ((Offset < Table->Length) && | |
70 | - (DrtmRl->ResourceCount > Count)) | |
71 | + ResourceCount = AcpiUtReadUint32 (&DrtmRl->ResourceCount); | |
72 | + while ((Offset < TableLength) && | |
73 | + (ResourceCount > Count)) | |
74 | { | |
75 | - Status = AcpiDmDumpTable (Table->Length, Offset, | |
76 | + Status = AcpiDmDumpTable (TableLength, Offset, | |
77 | ACPI_ADD_PTR (void, Table, Offset), | |
78 | sizeof (ACPI_DRTM_RESOURCE), AcpiDmTableInfoDrtm1a); | |
79 | if (ACPI_FAILURE (Status)) | |
80 | @@ -1154,7 +1159,7 @@ AcpiDmDumpDrtm ( | |
81 | ||
82 | DrtmDps = ACPI_ADD_PTR (ACPI_DRTM_DPS_ID, Table, Offset); | |
83 | AcpiOsPrintf ("\n"); | |
84 | - (void) AcpiDmDumpTable (Table->Length, Offset, | |
85 | + (void) AcpiDmDumpTable (TableLength, Offset, | |
86 | DrtmDps, sizeof (ACPI_DRTM_DPS_ID), AcpiDmTableInfoDrtm2); | |
87 | } | |
88 | ||
89 | Index: acpica-unix2-20220331/source/compiler/dttable1.c | |
90 | =================================================================== | |
91 | --- acpica-unix2-20220331.orig/source/compiler/dttable1.c | |
92 | +++ acpica-unix2-20220331/source/compiler/dttable1.c | |
93 | @@ -1217,7 +1217,8 @@ DtCompileDrtm ( | |
94 | Count++; | |
95 | } | |
96 | ||
97 | - DrtmVtl->ValidatedTableCount = Count; | |
98 | + AcpiUtWriteUint (&DrtmVtl->ValidatedTableCount, sizeof (UINT32), | |
99 | + &Count, sizeof (UINT32)); | |
100 | DtPopSubtable (); | |
101 | ParentTable = DtPeekSubtable (); | |
102 | ||
103 | @@ -1255,7 +1256,8 @@ DtCompileDrtm ( | |
104 | Count++; | |
105 | } | |
106 | ||
107 | - DrtmRl->ResourceCount = Count; | |
108 | + AcpiUtWriteUint(&DrtmRl->ResourceCount, sizeof(UINT32), | |
109 | + &Count, sizeof(UINT32)); | |
110 | DtPopSubtable (); | |
111 | ParentTable = DtPeekSubtable (); | |
112 |