exdump.c revision 1.3.4.2 1 1.3.4.2 rmind /******************************************************************************
2 1.3.4.2 rmind *
3 1.3.4.2 rmind * Module Name: exdump - Interpreter debug output routines
4 1.3.4.2 rmind *
5 1.3.4.2 rmind *****************************************************************************/
6 1.3.4.2 rmind
7 1.3.4.2 rmind /*
8 1.3.4.2 rmind * Copyright (C) 2000 - 2011, Intel Corp.
9 1.3.4.2 rmind * All rights reserved.
10 1.3.4.2 rmind *
11 1.3.4.2 rmind * Redistribution and use in source and binary forms, with or without
12 1.3.4.2 rmind * modification, are permitted provided that the following conditions
13 1.3.4.2 rmind * are met:
14 1.3.4.2 rmind * 1. Redistributions of source code must retain the above copyright
15 1.3.4.2 rmind * notice, this list of conditions, and the following disclaimer,
16 1.3.4.2 rmind * without modification.
17 1.3.4.2 rmind * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18 1.3.4.2 rmind * substantially similar to the "NO WARRANTY" disclaimer below
19 1.3.4.2 rmind * ("Disclaimer") and any redistribution must be conditioned upon
20 1.3.4.2 rmind * including a substantially similar Disclaimer requirement for further
21 1.3.4.2 rmind * binary redistribution.
22 1.3.4.2 rmind * 3. Neither the names of the above-listed copyright holders nor the names
23 1.3.4.2 rmind * of any contributors may be used to endorse or promote products derived
24 1.3.4.2 rmind * from this software without specific prior written permission.
25 1.3.4.2 rmind *
26 1.3.4.2 rmind * Alternatively, this software may be distributed under the terms of the
27 1.3.4.2 rmind * GNU General Public License ("GPL") version 2 as published by the Free
28 1.3.4.2 rmind * Software Foundation.
29 1.3.4.2 rmind *
30 1.3.4.2 rmind * NO WARRANTY
31 1.3.4.2 rmind * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32 1.3.4.2 rmind * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33 1.3.4.2 rmind * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34 1.3.4.2 rmind * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35 1.3.4.2 rmind * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36 1.3.4.2 rmind * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37 1.3.4.2 rmind * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38 1.3.4.2 rmind * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39 1.3.4.2 rmind * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40 1.3.4.2 rmind * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41 1.3.4.2 rmind * POSSIBILITY OF SUCH DAMAGES.
42 1.3.4.2 rmind */
43 1.3.4.2 rmind
44 1.3.4.2 rmind #define __EXDUMP_C__
45 1.3.4.2 rmind
46 1.3.4.2 rmind #include "acpi.h"
47 1.3.4.2 rmind #include "accommon.h"
48 1.3.4.2 rmind #include "acinterp.h"
49 1.3.4.2 rmind #include "amlcode.h"
50 1.3.4.2 rmind #include "acnamesp.h"
51 1.3.4.2 rmind
52 1.3.4.2 rmind
53 1.3.4.2 rmind #define _COMPONENT ACPI_EXECUTER
54 1.3.4.2 rmind ACPI_MODULE_NAME ("exdump")
55 1.3.4.2 rmind
56 1.3.4.2 rmind /*
57 1.3.4.2 rmind * The following routines are used for debug output only
58 1.3.4.2 rmind */
59 1.3.4.2 rmind #if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
60 1.3.4.2 rmind
61 1.3.4.2 rmind /* Local prototypes */
62 1.3.4.2 rmind
63 1.3.4.2 rmind static void
64 1.3.4.2 rmind AcpiExOutString (
65 1.3.4.2 rmind const char *Title,
66 1.3.4.2 rmind const char *Value);
67 1.3.4.2 rmind
68 1.3.4.2 rmind static void
69 1.3.4.2 rmind AcpiExOutPointer (
70 1.3.4.2 rmind const char *Title,
71 1.3.4.2 rmind void *Value);
72 1.3.4.2 rmind
73 1.3.4.2 rmind static void
74 1.3.4.2 rmind AcpiExDumpObject (
75 1.3.4.2 rmind ACPI_OPERAND_OBJECT *ObjDesc,
76 1.3.4.2 rmind ACPI_EXDUMP_INFO *Info);
77 1.3.4.2 rmind
78 1.3.4.2 rmind static void
79 1.3.4.2 rmind AcpiExDumpReferenceObj (
80 1.3.4.2 rmind ACPI_OPERAND_OBJECT *ObjDesc);
81 1.3.4.2 rmind
82 1.3.4.2 rmind static void
83 1.3.4.2 rmind AcpiExDumpPackageObj (
84 1.3.4.2 rmind ACPI_OPERAND_OBJECT *ObjDesc,
85 1.3.4.2 rmind UINT32 Level,
86 1.3.4.2 rmind UINT32 Index);
87 1.3.4.2 rmind
88 1.3.4.2 rmind
89 1.3.4.2 rmind /*******************************************************************************
90 1.3.4.2 rmind *
91 1.3.4.2 rmind * Object Descriptor info tables
92 1.3.4.2 rmind *
93 1.3.4.2 rmind * Note: The first table entry must be an INIT opcode and must contain
94 1.3.4.2 rmind * the table length (number of table entries)
95 1.3.4.2 rmind *
96 1.3.4.2 rmind ******************************************************************************/
97 1.3.4.2 rmind
98 1.3.4.2 rmind static ACPI_EXDUMP_INFO AcpiExDumpInteger[2] =
99 1.3.4.2 rmind {
100 1.3.4.2 rmind {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpInteger), NULL},
101 1.3.4.2 rmind {ACPI_EXD_UINT64, ACPI_EXD_OFFSET (Integer.Value), "Value"}
102 1.3.4.2 rmind };
103 1.3.4.2 rmind
104 1.3.4.2 rmind static ACPI_EXDUMP_INFO AcpiExDumpString[4] =
105 1.3.4.2 rmind {
106 1.3.4.2 rmind {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpString), NULL},
107 1.3.4.2 rmind {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (String.Length), "Length"},
108 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (String.Pointer), "Pointer"},
109 1.3.4.2 rmind {ACPI_EXD_STRING, 0, NULL}
110 1.3.4.2 rmind };
111 1.3.4.2 rmind
112 1.3.4.2 rmind static ACPI_EXDUMP_INFO AcpiExDumpBuffer[5] =
113 1.3.4.2 rmind {
114 1.3.4.2 rmind {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpBuffer), NULL},
115 1.3.4.2 rmind {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (Buffer.Length), "Length"},
116 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Buffer.Pointer), "Pointer"},
117 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Buffer.Node), "Parent Node"},
118 1.3.4.2 rmind {ACPI_EXD_BUFFER, 0, NULL}
119 1.3.4.2 rmind };
120 1.3.4.2 rmind
121 1.3.4.2 rmind static ACPI_EXDUMP_INFO AcpiExDumpPackage[5] =
122 1.3.4.2 rmind {
123 1.3.4.2 rmind {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpPackage), NULL},
124 1.3.4.2 rmind {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Package.Flags), "Flags"},
125 1.3.4.2 rmind {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (Package.Count), "Elements"},
126 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Package.Elements), "Element List"},
127 1.3.4.2 rmind {ACPI_EXD_PACKAGE, 0, NULL}
128 1.3.4.2 rmind };
129 1.3.4.2 rmind
130 1.3.4.2 rmind static ACPI_EXDUMP_INFO AcpiExDumpDevice[4] =
131 1.3.4.2 rmind {
132 1.3.4.2 rmind {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpDevice), NULL},
133 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Device.Handler), "Handler"},
134 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Device.SystemNotify), "System Notify"},
135 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Device.DeviceNotify), "Device Notify"}
136 1.3.4.2 rmind };
137 1.3.4.2 rmind
138 1.3.4.2 rmind static ACPI_EXDUMP_INFO AcpiExDumpEvent[2] =
139 1.3.4.2 rmind {
140 1.3.4.2 rmind {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpEvent), NULL},
141 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Event.OsSemaphore), "OsSemaphore"}
142 1.3.4.2 rmind };
143 1.3.4.2 rmind
144 1.3.4.2 rmind static ACPI_EXDUMP_INFO AcpiExDumpMethod[9] =
145 1.3.4.2 rmind {
146 1.3.4.2 rmind {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpMethod), NULL},
147 1.3.4.2 rmind {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Method.InfoFlags), "Info Flags"},
148 1.3.4.2 rmind {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Method.ParamCount), "Parameter Count"},
149 1.3.4.2 rmind {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Method.SyncLevel), "Sync Level"},
150 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Method.Mutex), "Mutex"},
151 1.3.4.2 rmind {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Method.OwnerId), "Owner Id"},
152 1.3.4.2 rmind {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Method.ThreadCount), "Thread Count"},
153 1.3.4.2 rmind {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (Method.AmlLength), "Aml Length"},
154 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Method.AmlStart), "Aml Start"}
155 1.3.4.2 rmind };
156 1.3.4.2 rmind
157 1.3.4.2 rmind static ACPI_EXDUMP_INFO AcpiExDumpMutex[5] =
158 1.3.4.2 rmind {
159 1.3.4.2 rmind {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpMutex), NULL},
160 1.3.4.2 rmind {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Mutex.SyncLevel), "Sync Level"},
161 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Mutex.OwnerThread), "Owner Thread"},
162 1.3.4.2 rmind {ACPI_EXD_UINT16, ACPI_EXD_OFFSET (Mutex.AcquisitionDepth), "Acquire Depth"},
163 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Mutex.OsMutex), "OsMutex"}
164 1.3.4.2 rmind };
165 1.3.4.2 rmind
166 1.3.4.2 rmind static ACPI_EXDUMP_INFO AcpiExDumpRegion[7] =
167 1.3.4.2 rmind {
168 1.3.4.2 rmind {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpRegion), NULL},
169 1.3.4.2 rmind {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Region.SpaceId), "Space Id"},
170 1.3.4.2 rmind {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Region.Flags), "Flags"},
171 1.3.4.2 rmind {ACPI_EXD_ADDRESS, ACPI_EXD_OFFSET (Region.Address), "Address"},
172 1.3.4.2 rmind {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (Region.Length), "Length"},
173 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Region.Handler), "Handler"},
174 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Region.Next), "Next"}
175 1.3.4.2 rmind };
176 1.3.4.2 rmind
177 1.3.4.2 rmind static ACPI_EXDUMP_INFO AcpiExDumpPower[5] =
178 1.3.4.2 rmind {
179 1.3.4.2 rmind {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpPower), NULL},
180 1.3.4.2 rmind {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (PowerResource.SystemLevel), "System Level"},
181 1.3.4.2 rmind {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (PowerResource.ResourceOrder), "Resource Order"},
182 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (PowerResource.SystemNotify), "System Notify"},
183 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (PowerResource.DeviceNotify), "Device Notify"}
184 1.3.4.2 rmind };
185 1.3.4.2 rmind
186 1.3.4.2 rmind static ACPI_EXDUMP_INFO AcpiExDumpProcessor[7] =
187 1.3.4.2 rmind {
188 1.3.4.2 rmind {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpProcessor), NULL},
189 1.3.4.2 rmind {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Processor.ProcId), "Processor ID"},
190 1.3.4.2 rmind {ACPI_EXD_UINT8 , ACPI_EXD_OFFSET (Processor.Length), "Length"},
191 1.3.4.2 rmind {ACPI_EXD_ADDRESS, ACPI_EXD_OFFSET (Processor.Address), "Address"},
192 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Processor.SystemNotify), "System Notify"},
193 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Processor.DeviceNotify), "Device Notify"},
194 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Processor.Handler), "Handler"}
195 1.3.4.2 rmind };
196 1.3.4.2 rmind
197 1.3.4.2 rmind static ACPI_EXDUMP_INFO AcpiExDumpThermal[4] =
198 1.3.4.2 rmind {
199 1.3.4.2 rmind {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpThermal), NULL},
200 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (ThermalZone.SystemNotify), "System Notify"},
201 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (ThermalZone.DeviceNotify), "Device Notify"},
202 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (ThermalZone.Handler), "Handler"}
203 1.3.4.2 rmind };
204 1.3.4.2 rmind
205 1.3.4.2 rmind static ACPI_EXDUMP_INFO AcpiExDumpBufferField[3] =
206 1.3.4.2 rmind {
207 1.3.4.2 rmind {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpBufferField), NULL},
208 1.3.4.2 rmind {ACPI_EXD_FIELD, 0, NULL},
209 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (BufferField.BufferObj), "Buffer Object"}
210 1.3.4.2 rmind };
211 1.3.4.2 rmind
212 1.3.4.2 rmind static ACPI_EXDUMP_INFO AcpiExDumpRegionField[3] =
213 1.3.4.2 rmind {
214 1.3.4.2 rmind {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpRegionField), NULL},
215 1.3.4.2 rmind {ACPI_EXD_FIELD, 0, NULL},
216 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Field.RegionObj), "Region Object"}
217 1.3.4.2 rmind };
218 1.3.4.2 rmind
219 1.3.4.2 rmind static ACPI_EXDUMP_INFO AcpiExDumpBankField[5] =
220 1.3.4.2 rmind {
221 1.3.4.2 rmind {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpBankField), NULL},
222 1.3.4.2 rmind {ACPI_EXD_FIELD, 0, NULL},
223 1.3.4.2 rmind {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (BankField.Value), "Value"},
224 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (BankField.RegionObj), "Region Object"},
225 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (BankField.BankObj), "Bank Object"}
226 1.3.4.2 rmind };
227 1.3.4.2 rmind
228 1.3.4.2 rmind static ACPI_EXDUMP_INFO AcpiExDumpIndexField[5] =
229 1.3.4.2 rmind {
230 1.3.4.2 rmind {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpBankField), NULL},
231 1.3.4.2 rmind {ACPI_EXD_FIELD, 0, NULL},
232 1.3.4.2 rmind {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (IndexField.Value), "Value"},
233 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (IndexField.IndexObj), "Index Object"},
234 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (IndexField.DataObj), "Data Object"}
235 1.3.4.2 rmind };
236 1.3.4.2 rmind
237 1.3.4.2 rmind static ACPI_EXDUMP_INFO AcpiExDumpReference[8] =
238 1.3.4.2 rmind {
239 1.3.4.2 rmind {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpReference), NULL},
240 1.3.4.2 rmind {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Reference.Class), "Class"},
241 1.3.4.2 rmind {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Reference.TargetType), "Target Type"},
242 1.3.4.2 rmind {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (Reference.Value), "Value"},
243 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Reference.Object), "Object Desc"},
244 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Reference.Node), "Node"},
245 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Reference.Where), "Where"},
246 1.3.4.2 rmind {ACPI_EXD_REFERENCE,0, NULL}
247 1.3.4.2 rmind };
248 1.3.4.2 rmind
249 1.3.4.2 rmind static ACPI_EXDUMP_INFO AcpiExDumpAddressHandler[6] =
250 1.3.4.2 rmind {
251 1.3.4.2 rmind {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpAddressHandler), NULL},
252 1.3.4.2 rmind {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (AddressSpace.SpaceId), "Space Id"},
253 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (AddressSpace.Next), "Next"},
254 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (AddressSpace.RegionList), "Region List"},
255 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (AddressSpace.Node), "Node"},
256 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (AddressSpace.Context), "Context"}
257 1.3.4.2 rmind };
258 1.3.4.2 rmind
259 1.3.4.2 rmind static ACPI_EXDUMP_INFO AcpiExDumpNotify[3] =
260 1.3.4.2 rmind {
261 1.3.4.2 rmind {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpNotify), NULL},
262 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Notify.Node), "Node"},
263 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Notify.Context), "Context"}
264 1.3.4.2 rmind };
265 1.3.4.2 rmind
266 1.3.4.2 rmind
267 1.3.4.2 rmind /* Miscellaneous tables */
268 1.3.4.2 rmind
269 1.3.4.2 rmind static ACPI_EXDUMP_INFO AcpiExDumpCommon[4] =
270 1.3.4.2 rmind {
271 1.3.4.2 rmind {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpCommon), NULL},
272 1.3.4.2 rmind {ACPI_EXD_TYPE , 0, NULL},
273 1.3.4.2 rmind {ACPI_EXD_UINT16, ACPI_EXD_OFFSET (Common.ReferenceCount), "Reference Count"},
274 1.3.4.2 rmind {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Common.Flags), "Flags"}
275 1.3.4.2 rmind };
276 1.3.4.2 rmind
277 1.3.4.2 rmind static ACPI_EXDUMP_INFO AcpiExDumpFieldCommon[7] =
278 1.3.4.2 rmind {
279 1.3.4.2 rmind {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpFieldCommon), NULL},
280 1.3.4.2 rmind {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (CommonField.FieldFlags), "Field Flags"},
281 1.3.4.2 rmind {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (CommonField.AccessByteWidth), "Access Byte Width"},
282 1.3.4.2 rmind {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (CommonField.BitLength), "Bit Length"},
283 1.3.4.2 rmind {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (CommonField.StartFieldBitOffset),"Field Bit Offset"},
284 1.3.4.2 rmind {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (CommonField.BaseByteOffset), "Base Byte Offset"},
285 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (CommonField.Node), "Parent Node"}
286 1.3.4.2 rmind };
287 1.3.4.2 rmind
288 1.3.4.2 rmind static ACPI_EXDUMP_INFO AcpiExDumpNode[5] =
289 1.3.4.2 rmind {
290 1.3.4.2 rmind {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpNode), NULL},
291 1.3.4.2 rmind {ACPI_EXD_UINT8, ACPI_EXD_NSOFFSET (Flags), "Flags"},
292 1.3.4.2 rmind {ACPI_EXD_UINT8, ACPI_EXD_NSOFFSET (OwnerId), "Owner Id"},
293 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_NSOFFSET (Child), "Child List"},
294 1.3.4.2 rmind {ACPI_EXD_POINTER, ACPI_EXD_NSOFFSET (Peer), "Next Peer"}
295 1.3.4.2 rmind };
296 1.3.4.2 rmind
297 1.3.4.2 rmind
298 1.3.4.2 rmind /* Dispatch table, indexed by object type */
299 1.3.4.2 rmind
300 1.3.4.2 rmind static ACPI_EXDUMP_INFO *AcpiExDumpInfo[] =
301 1.3.4.2 rmind {
302 1.3.4.2 rmind NULL,
303 1.3.4.2 rmind AcpiExDumpInteger,
304 1.3.4.2 rmind AcpiExDumpString,
305 1.3.4.2 rmind AcpiExDumpBuffer,
306 1.3.4.2 rmind AcpiExDumpPackage,
307 1.3.4.2 rmind NULL,
308 1.3.4.2 rmind AcpiExDumpDevice,
309 1.3.4.2 rmind AcpiExDumpEvent,
310 1.3.4.2 rmind AcpiExDumpMethod,
311 1.3.4.2 rmind AcpiExDumpMutex,
312 1.3.4.2 rmind AcpiExDumpRegion,
313 1.3.4.2 rmind AcpiExDumpPower,
314 1.3.4.2 rmind AcpiExDumpProcessor,
315 1.3.4.2 rmind AcpiExDumpThermal,
316 1.3.4.2 rmind AcpiExDumpBufferField,
317 1.3.4.2 rmind NULL,
318 1.3.4.2 rmind NULL,
319 1.3.4.2 rmind AcpiExDumpRegionField,
320 1.3.4.2 rmind AcpiExDumpBankField,
321 1.3.4.2 rmind AcpiExDumpIndexField,
322 1.3.4.2 rmind AcpiExDumpReference,
323 1.3.4.2 rmind NULL,
324 1.3.4.2 rmind NULL,
325 1.3.4.2 rmind AcpiExDumpNotify,
326 1.3.4.2 rmind AcpiExDumpAddressHandler,
327 1.3.4.2 rmind NULL,
328 1.3.4.2 rmind NULL,
329 1.3.4.2 rmind NULL
330 1.3.4.2 rmind };
331 1.3.4.2 rmind
332 1.3.4.2 rmind
333 1.3.4.2 rmind /*******************************************************************************
334 1.3.4.2 rmind *
335 1.3.4.2 rmind * FUNCTION: AcpiExDumpObject
336 1.3.4.2 rmind *
337 1.3.4.2 rmind * PARAMETERS: ObjDesc - Descriptor to dump
338 1.3.4.2 rmind * Info - Info table corresponding to this object
339 1.3.4.2 rmind * type
340 1.3.4.2 rmind *
341 1.3.4.2 rmind * RETURN: None
342 1.3.4.2 rmind *
343 1.3.4.2 rmind * DESCRIPTION: Walk the info table for this object
344 1.3.4.2 rmind *
345 1.3.4.2 rmind ******************************************************************************/
346 1.3.4.2 rmind
347 1.3.4.2 rmind static void
348 1.3.4.2 rmind AcpiExDumpObject (
349 1.3.4.2 rmind ACPI_OPERAND_OBJECT *ObjDesc,
350 1.3.4.2 rmind ACPI_EXDUMP_INFO *Info)
351 1.3.4.2 rmind {
352 1.3.4.2 rmind UINT8 *Target;
353 1.3.4.2 rmind char *Name;
354 1.3.4.2 rmind UINT8 Count;
355 1.3.4.2 rmind
356 1.3.4.2 rmind
357 1.3.4.2 rmind if (!Info)
358 1.3.4.2 rmind {
359 1.3.4.2 rmind AcpiOsPrintf (
360 1.3.4.2 rmind "ExDumpObject: Display not implemented for object type %s\n",
361 1.3.4.2 rmind AcpiUtGetObjectTypeName (ObjDesc));
362 1.3.4.2 rmind return;
363 1.3.4.2 rmind }
364 1.3.4.2 rmind
365 1.3.4.2 rmind /* First table entry must contain the table length (# of table entries) */
366 1.3.4.2 rmind
367 1.3.4.2 rmind Count = Info->Offset;
368 1.3.4.2 rmind
369 1.3.4.2 rmind while (Count)
370 1.3.4.2 rmind {
371 1.3.4.2 rmind Target = ACPI_ADD_PTR (UINT8, ObjDesc, Info->Offset);
372 1.3.4.2 rmind Name = __UNCONST(Info->Name);
373 1.3.4.2 rmind
374 1.3.4.2 rmind switch (Info->Opcode)
375 1.3.4.2 rmind {
376 1.3.4.2 rmind case ACPI_EXD_INIT:
377 1.3.4.2 rmind break;
378 1.3.4.2 rmind
379 1.3.4.2 rmind case ACPI_EXD_TYPE:
380 1.3.4.2 rmind
381 1.3.4.2 rmind AcpiExOutString ("Type", AcpiUtGetObjectTypeName (ObjDesc));
382 1.3.4.2 rmind break;
383 1.3.4.2 rmind
384 1.3.4.2 rmind case ACPI_EXD_UINT8:
385 1.3.4.2 rmind
386 1.3.4.2 rmind AcpiOsPrintf ("%20s : %2.2X\n", Name, *Target);
387 1.3.4.2 rmind break;
388 1.3.4.2 rmind
389 1.3.4.2 rmind case ACPI_EXD_UINT16:
390 1.3.4.2 rmind
391 1.3.4.2 rmind AcpiOsPrintf ("%20s : %4.4X\n", Name, ACPI_GET16 (Target));
392 1.3.4.2 rmind break;
393 1.3.4.2 rmind
394 1.3.4.2 rmind case ACPI_EXD_UINT32:
395 1.3.4.2 rmind
396 1.3.4.2 rmind AcpiOsPrintf ("%20s : %8.8X\n", Name, ACPI_GET32 (Target));
397 1.3.4.2 rmind break;
398 1.3.4.2 rmind
399 1.3.4.2 rmind case ACPI_EXD_UINT64:
400 1.3.4.2 rmind
401 1.3.4.2 rmind AcpiOsPrintf ("%20s : %8.8X%8.8X\n", "Value",
402 1.3.4.2 rmind ACPI_FORMAT_UINT64 (ACPI_GET64 (Target)));
403 1.3.4.2 rmind break;
404 1.3.4.2 rmind
405 1.3.4.2 rmind case ACPI_EXD_POINTER:
406 1.3.4.2 rmind case ACPI_EXD_ADDRESS:
407 1.3.4.2 rmind
408 1.3.4.2 rmind AcpiExOutPointer (Name, *ACPI_CAST_PTR (void *, Target));
409 1.3.4.2 rmind break;
410 1.3.4.2 rmind
411 1.3.4.2 rmind case ACPI_EXD_STRING:
412 1.3.4.2 rmind
413 1.3.4.2 rmind AcpiUtPrintString (ObjDesc->String.Pointer, ACPI_UINT8_MAX);
414 1.3.4.2 rmind AcpiOsPrintf ("\n");
415 1.3.4.2 rmind break;
416 1.3.4.2 rmind
417 1.3.4.2 rmind case ACPI_EXD_BUFFER:
418 1.3.4.2 rmind
419 1.3.4.2 rmind ACPI_DUMP_BUFFER (ObjDesc->Buffer.Pointer, ObjDesc->Buffer.Length);
420 1.3.4.2 rmind break;
421 1.3.4.2 rmind
422 1.3.4.2 rmind case ACPI_EXD_PACKAGE:
423 1.3.4.2 rmind
424 1.3.4.2 rmind /* Dump the package contents */
425 1.3.4.2 rmind
426 1.3.4.2 rmind AcpiOsPrintf ("\nPackage Contents:\n");
427 1.3.4.2 rmind AcpiExDumpPackageObj (ObjDesc, 0, 0);
428 1.3.4.2 rmind break;
429 1.3.4.2 rmind
430 1.3.4.2 rmind case ACPI_EXD_FIELD:
431 1.3.4.2 rmind
432 1.3.4.2 rmind AcpiExDumpObject (ObjDesc, AcpiExDumpFieldCommon);
433 1.3.4.2 rmind break;
434 1.3.4.2 rmind
435 1.3.4.2 rmind case ACPI_EXD_REFERENCE:
436 1.3.4.2 rmind
437 1.3.4.2 rmind AcpiExOutString ("Class Name",
438 1.3.4.2 rmind ACPI_CAST_PTR (char, AcpiUtGetReferenceName (ObjDesc)));
439 1.3.4.2 rmind AcpiExDumpReferenceObj (ObjDesc);
440 1.3.4.2 rmind break;
441 1.3.4.2 rmind
442 1.3.4.2 rmind default:
443 1.3.4.2 rmind
444 1.3.4.2 rmind AcpiOsPrintf ("**** Invalid table opcode [%X] ****\n",
445 1.3.4.2 rmind Info->Opcode);
446 1.3.4.2 rmind return;
447 1.3.4.2 rmind }
448 1.3.4.2 rmind
449 1.3.4.2 rmind Info++;
450 1.3.4.2 rmind Count--;
451 1.3.4.2 rmind }
452 1.3.4.2 rmind }
453 1.3.4.2 rmind
454 1.3.4.2 rmind
455 1.3.4.2 rmind /*******************************************************************************
456 1.3.4.2 rmind *
457 1.3.4.2 rmind * FUNCTION: AcpiExDumpOperand
458 1.3.4.2 rmind *
459 1.3.4.2 rmind * PARAMETERS: *ObjDesc - Pointer to entry to be dumped
460 1.3.4.2 rmind * Depth - Current nesting depth
461 1.3.4.2 rmind *
462 1.3.4.2 rmind * RETURN: None
463 1.3.4.2 rmind *
464 1.3.4.2 rmind * DESCRIPTION: Dump an operand object
465 1.3.4.2 rmind *
466 1.3.4.2 rmind ******************************************************************************/
467 1.3.4.2 rmind
468 1.3.4.2 rmind void
469 1.3.4.2 rmind AcpiExDumpOperand (
470 1.3.4.2 rmind ACPI_OPERAND_OBJECT *ObjDesc,
471 1.3.4.2 rmind UINT32 Depth)
472 1.3.4.2 rmind {
473 1.3.4.2 rmind UINT32 Length;
474 1.3.4.2 rmind UINT32 Index;
475 1.3.4.2 rmind
476 1.3.4.2 rmind
477 1.3.4.2 rmind ACPI_FUNCTION_NAME (ExDumpOperand)
478 1.3.4.2 rmind
479 1.3.4.2 rmind
480 1.3.4.2 rmind if (!((ACPI_LV_EXEC & AcpiDbgLevel) && (_COMPONENT & AcpiDbgLayer)))
481 1.3.4.2 rmind {
482 1.3.4.2 rmind return;
483 1.3.4.2 rmind }
484 1.3.4.2 rmind
485 1.3.4.2 rmind if (!ObjDesc)
486 1.3.4.2 rmind {
487 1.3.4.2 rmind /* This could be a null element of a package */
488 1.3.4.2 rmind
489 1.3.4.2 rmind ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Null Object Descriptor\n"));
490 1.3.4.2 rmind return;
491 1.3.4.2 rmind }
492 1.3.4.2 rmind
493 1.3.4.2 rmind if (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) == ACPI_DESC_TYPE_NAMED)
494 1.3.4.2 rmind {
495 1.3.4.2 rmind ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "%p Namespace Node: ", ObjDesc));
496 1.3.4.2 rmind ACPI_DUMP_ENTRY (ObjDesc, ACPI_LV_EXEC);
497 1.3.4.2 rmind return;
498 1.3.4.2 rmind }
499 1.3.4.2 rmind
500 1.3.4.2 rmind if (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) != ACPI_DESC_TYPE_OPERAND)
501 1.3.4.2 rmind {
502 1.3.4.2 rmind ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
503 1.3.4.2 rmind "%p is not a node or operand object: [%s]\n",
504 1.3.4.2 rmind ObjDesc, AcpiUtGetDescriptorName (ObjDesc)));
505 1.3.4.2 rmind ACPI_DUMP_BUFFER (ObjDesc, sizeof (ACPI_OPERAND_OBJECT));
506 1.3.4.2 rmind return;
507 1.3.4.2 rmind }
508 1.3.4.2 rmind
509 1.3.4.2 rmind /* ObjDesc is a valid object */
510 1.3.4.2 rmind
511 1.3.4.2 rmind if (Depth > 0)
512 1.3.4.2 rmind {
513 1.3.4.2 rmind ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "%*s[%u] %p ",
514 1.3.4.2 rmind Depth, " ", Depth, ObjDesc));
515 1.3.4.2 rmind }
516 1.3.4.2 rmind else
517 1.3.4.2 rmind {
518 1.3.4.2 rmind ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "%p ", ObjDesc));
519 1.3.4.2 rmind }
520 1.3.4.2 rmind
521 1.3.4.2 rmind /* Decode object type */
522 1.3.4.2 rmind
523 1.3.4.2 rmind switch (ObjDesc->Common.Type)
524 1.3.4.2 rmind {
525 1.3.4.2 rmind case ACPI_TYPE_LOCAL_REFERENCE:
526 1.3.4.2 rmind
527 1.3.4.2 rmind AcpiOsPrintf ("Reference: [%s] ", AcpiUtGetReferenceName (ObjDesc));
528 1.3.4.2 rmind
529 1.3.4.2 rmind switch (ObjDesc->Reference.Class)
530 1.3.4.2 rmind {
531 1.3.4.2 rmind case ACPI_REFCLASS_DEBUG:
532 1.3.4.2 rmind
533 1.3.4.2 rmind AcpiOsPrintf ("\n");
534 1.3.4.2 rmind break;
535 1.3.4.2 rmind
536 1.3.4.2 rmind
537 1.3.4.2 rmind case ACPI_REFCLASS_INDEX:
538 1.3.4.2 rmind
539 1.3.4.2 rmind AcpiOsPrintf ("%p\n", ObjDesc->Reference.Object);
540 1.3.4.2 rmind break;
541 1.3.4.2 rmind
542 1.3.4.2 rmind
543 1.3.4.2 rmind case ACPI_REFCLASS_TABLE:
544 1.3.4.2 rmind
545 1.3.4.2 rmind AcpiOsPrintf ("Table Index %X\n", ObjDesc->Reference.Value);
546 1.3.4.2 rmind break;
547 1.3.4.2 rmind
548 1.3.4.2 rmind
549 1.3.4.2 rmind case ACPI_REFCLASS_REFOF:
550 1.3.4.2 rmind
551 1.3.4.2 rmind AcpiOsPrintf ("%p [%s]\n", ObjDesc->Reference.Object,
552 1.3.4.2 rmind AcpiUtGetTypeName (((ACPI_OPERAND_OBJECT *)
553 1.3.4.2 rmind ObjDesc->Reference.Object)->Common.Type));
554 1.3.4.2 rmind break;
555 1.3.4.2 rmind
556 1.3.4.2 rmind
557 1.3.4.2 rmind case ACPI_REFCLASS_NAME:
558 1.3.4.2 rmind
559 1.3.4.2 rmind AcpiOsPrintf ("- [%4.4s]\n", ObjDesc->Reference.Node->Name.Ascii);
560 1.3.4.2 rmind break;
561 1.3.4.2 rmind
562 1.3.4.2 rmind
563 1.3.4.2 rmind case ACPI_REFCLASS_ARG:
564 1.3.4.2 rmind case ACPI_REFCLASS_LOCAL:
565 1.3.4.2 rmind
566 1.3.4.2 rmind AcpiOsPrintf ("%X\n", ObjDesc->Reference.Value);
567 1.3.4.2 rmind break;
568 1.3.4.2 rmind
569 1.3.4.2 rmind
570 1.3.4.2 rmind default: /* Unknown reference class */
571 1.3.4.2 rmind
572 1.3.4.2 rmind AcpiOsPrintf ("%2.2X\n", ObjDesc->Reference.Class);
573 1.3.4.2 rmind break;
574 1.3.4.2 rmind }
575 1.3.4.2 rmind break;
576 1.3.4.2 rmind
577 1.3.4.2 rmind
578 1.3.4.2 rmind case ACPI_TYPE_BUFFER:
579 1.3.4.2 rmind
580 1.3.4.2 rmind AcpiOsPrintf ("Buffer length %.2X @ %p\n",
581 1.3.4.2 rmind ObjDesc->Buffer.Length, ObjDesc->Buffer.Pointer);
582 1.3.4.2 rmind
583 1.3.4.2 rmind /* Debug only -- dump the buffer contents */
584 1.3.4.2 rmind
585 1.3.4.2 rmind if (ObjDesc->Buffer.Pointer)
586 1.3.4.2 rmind {
587 1.3.4.2 rmind Length = ObjDesc->Buffer.Length;
588 1.3.4.2 rmind if (Length > 128)
589 1.3.4.2 rmind {
590 1.3.4.2 rmind Length = 128;
591 1.3.4.2 rmind }
592 1.3.4.2 rmind
593 1.3.4.2 rmind AcpiOsPrintf ("Buffer Contents: (displaying length 0x%.2X)\n",
594 1.3.4.2 rmind Length);
595 1.3.4.2 rmind ACPI_DUMP_BUFFER (ObjDesc->Buffer.Pointer, Length);
596 1.3.4.2 rmind }
597 1.3.4.2 rmind break;
598 1.3.4.2 rmind
599 1.3.4.2 rmind
600 1.3.4.2 rmind case ACPI_TYPE_INTEGER:
601 1.3.4.2 rmind
602 1.3.4.2 rmind AcpiOsPrintf ("Integer %8.8X%8.8X\n",
603 1.3.4.2 rmind ACPI_FORMAT_UINT64 (ObjDesc->Integer.Value));
604 1.3.4.2 rmind break;
605 1.3.4.2 rmind
606 1.3.4.2 rmind
607 1.3.4.2 rmind case ACPI_TYPE_PACKAGE:
608 1.3.4.2 rmind
609 1.3.4.2 rmind AcpiOsPrintf ("Package [Len %X] ElementArray %p\n",
610 1.3.4.2 rmind ObjDesc->Package.Count, ObjDesc->Package.Elements);
611 1.3.4.2 rmind
612 1.3.4.2 rmind /*
613 1.3.4.2 rmind * If elements exist, package element pointer is valid,
614 1.3.4.2 rmind * and debug_level exceeds 1, dump package's elements.
615 1.3.4.2 rmind */
616 1.3.4.2 rmind if (ObjDesc->Package.Count &&
617 1.3.4.2 rmind ObjDesc->Package.Elements &&
618 1.3.4.2 rmind AcpiDbgLevel > 1)
619 1.3.4.2 rmind {
620 1.3.4.2 rmind for (Index = 0; Index < ObjDesc->Package.Count; Index++)
621 1.3.4.2 rmind {
622 1.3.4.2 rmind AcpiExDumpOperand (ObjDesc->Package.Elements[Index], Depth+1);
623 1.3.4.2 rmind }
624 1.3.4.2 rmind }
625 1.3.4.2 rmind break;
626 1.3.4.2 rmind
627 1.3.4.2 rmind
628 1.3.4.2 rmind case ACPI_TYPE_REGION:
629 1.3.4.2 rmind
630 1.3.4.2 rmind AcpiOsPrintf ("Region %s (%X)",
631 1.3.4.2 rmind AcpiUtGetRegionName (ObjDesc->Region.SpaceId),
632 1.3.4.2 rmind ObjDesc->Region.SpaceId);
633 1.3.4.2 rmind
634 1.3.4.2 rmind /*
635 1.3.4.2 rmind * If the address and length have not been evaluated,
636 1.3.4.2 rmind * don't print them.
637 1.3.4.2 rmind */
638 1.3.4.2 rmind if (!(ObjDesc->Region.Flags & AOPOBJ_DATA_VALID))
639 1.3.4.2 rmind {
640 1.3.4.2 rmind AcpiOsPrintf ("\n");
641 1.3.4.2 rmind }
642 1.3.4.2 rmind else
643 1.3.4.2 rmind {
644 1.3.4.2 rmind AcpiOsPrintf (" base %8.8X%8.8X Length %X\n",
645 1.3.4.2 rmind ACPI_FORMAT_NATIVE_UINT (ObjDesc->Region.Address),
646 1.3.4.2 rmind ObjDesc->Region.Length);
647 1.3.4.2 rmind }
648 1.3.4.2 rmind break;
649 1.3.4.2 rmind
650 1.3.4.2 rmind
651 1.3.4.2 rmind case ACPI_TYPE_STRING:
652 1.3.4.2 rmind
653 1.3.4.2 rmind AcpiOsPrintf ("String length %X @ %p ",
654 1.3.4.2 rmind ObjDesc->String.Length,
655 1.3.4.2 rmind ObjDesc->String.Pointer);
656 1.3.4.2 rmind
657 1.3.4.2 rmind AcpiUtPrintString (ObjDesc->String.Pointer, ACPI_UINT8_MAX);
658 1.3.4.2 rmind AcpiOsPrintf ("\n");
659 1.3.4.2 rmind break;
660 1.3.4.2 rmind
661 1.3.4.2 rmind
662 1.3.4.2 rmind case ACPI_TYPE_LOCAL_BANK_FIELD:
663 1.3.4.2 rmind
664 1.3.4.2 rmind AcpiOsPrintf ("BankField\n");
665 1.3.4.2 rmind break;
666 1.3.4.2 rmind
667 1.3.4.2 rmind
668 1.3.4.2 rmind case ACPI_TYPE_LOCAL_REGION_FIELD:
669 1.3.4.2 rmind
670 1.3.4.2 rmind AcpiOsPrintf ("RegionField: Bits=%X AccWidth=%X Lock=%X Update=%X at "
671 1.3.4.2 rmind "byte=%X bit=%X of below:\n",
672 1.3.4.2 rmind ObjDesc->Field.BitLength,
673 1.3.4.2 rmind ObjDesc->Field.AccessByteWidth,
674 1.3.4.2 rmind ObjDesc->Field.FieldFlags & AML_FIELD_LOCK_RULE_MASK,
675 1.3.4.2 rmind ObjDesc->Field.FieldFlags & AML_FIELD_UPDATE_RULE_MASK,
676 1.3.4.2 rmind ObjDesc->Field.BaseByteOffset,
677 1.3.4.2 rmind ObjDesc->Field.StartFieldBitOffset);
678 1.3.4.2 rmind
679 1.3.4.2 rmind AcpiExDumpOperand (ObjDesc->Field.RegionObj, Depth+1);
680 1.3.4.2 rmind break;
681 1.3.4.2 rmind
682 1.3.4.2 rmind
683 1.3.4.2 rmind case ACPI_TYPE_LOCAL_INDEX_FIELD:
684 1.3.4.2 rmind
685 1.3.4.2 rmind AcpiOsPrintf ("IndexField\n");
686 1.3.4.2 rmind break;
687 1.3.4.2 rmind
688 1.3.4.2 rmind
689 1.3.4.2 rmind case ACPI_TYPE_BUFFER_FIELD:
690 1.3.4.2 rmind
691 1.3.4.2 rmind AcpiOsPrintf ("BufferField: %X bits at byte %X bit %X of\n",
692 1.3.4.2 rmind ObjDesc->BufferField.BitLength,
693 1.3.4.2 rmind ObjDesc->BufferField.BaseByteOffset,
694 1.3.4.2 rmind ObjDesc->BufferField.StartFieldBitOffset);
695 1.3.4.2 rmind
696 1.3.4.2 rmind if (!ObjDesc->BufferField.BufferObj)
697 1.3.4.2 rmind {
698 1.3.4.2 rmind ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "*NULL*\n"));
699 1.3.4.2 rmind }
700 1.3.4.2 rmind else if ((ObjDesc->BufferField.BufferObj)->Common.Type !=
701 1.3.4.2 rmind ACPI_TYPE_BUFFER)
702 1.3.4.2 rmind {
703 1.3.4.2 rmind AcpiOsPrintf ("*not a Buffer*\n");
704 1.3.4.2 rmind }
705 1.3.4.2 rmind else
706 1.3.4.2 rmind {
707 1.3.4.2 rmind AcpiExDumpOperand (ObjDesc->BufferField.BufferObj, Depth+1);
708 1.3.4.2 rmind }
709 1.3.4.2 rmind break;
710 1.3.4.2 rmind
711 1.3.4.2 rmind
712 1.3.4.2 rmind case ACPI_TYPE_EVENT:
713 1.3.4.2 rmind
714 1.3.4.2 rmind AcpiOsPrintf ("Event\n");
715 1.3.4.2 rmind break;
716 1.3.4.2 rmind
717 1.3.4.2 rmind
718 1.3.4.2 rmind case ACPI_TYPE_METHOD:
719 1.3.4.2 rmind
720 1.3.4.2 rmind AcpiOsPrintf ("Method(%X) @ %p:%X\n",
721 1.3.4.2 rmind ObjDesc->Method.ParamCount,
722 1.3.4.2 rmind ObjDesc->Method.AmlStart,
723 1.3.4.2 rmind ObjDesc->Method.AmlLength);
724 1.3.4.2 rmind break;
725 1.3.4.2 rmind
726 1.3.4.2 rmind
727 1.3.4.2 rmind case ACPI_TYPE_MUTEX:
728 1.3.4.2 rmind
729 1.3.4.2 rmind AcpiOsPrintf ("Mutex\n");
730 1.3.4.2 rmind break;
731 1.3.4.2 rmind
732 1.3.4.2 rmind
733 1.3.4.2 rmind case ACPI_TYPE_DEVICE:
734 1.3.4.2 rmind
735 1.3.4.2 rmind AcpiOsPrintf ("Device\n");
736 1.3.4.2 rmind break;
737 1.3.4.2 rmind
738 1.3.4.2 rmind
739 1.3.4.2 rmind case ACPI_TYPE_POWER:
740 1.3.4.2 rmind
741 1.3.4.2 rmind AcpiOsPrintf ("Power\n");
742 1.3.4.2 rmind break;
743 1.3.4.2 rmind
744 1.3.4.2 rmind
745 1.3.4.2 rmind case ACPI_TYPE_PROCESSOR:
746 1.3.4.2 rmind
747 1.3.4.2 rmind AcpiOsPrintf ("Processor\n");
748 1.3.4.2 rmind break;
749 1.3.4.2 rmind
750 1.3.4.2 rmind
751 1.3.4.2 rmind case ACPI_TYPE_THERMAL:
752 1.3.4.2 rmind
753 1.3.4.2 rmind AcpiOsPrintf ("Thermal\n");
754 1.3.4.2 rmind break;
755 1.3.4.2 rmind
756 1.3.4.2 rmind
757 1.3.4.2 rmind default:
758 1.3.4.2 rmind /* Unknown Type */
759 1.3.4.2 rmind
760 1.3.4.2 rmind AcpiOsPrintf ("Unknown Type %X\n", ObjDesc->Common.Type);
761 1.3.4.2 rmind break;
762 1.3.4.2 rmind }
763 1.3.4.2 rmind
764 1.3.4.2 rmind return;
765 1.3.4.2 rmind }
766 1.3.4.2 rmind
767 1.3.4.2 rmind
768 1.3.4.2 rmind /*******************************************************************************
769 1.3.4.2 rmind *
770 1.3.4.2 rmind * FUNCTION: AcpiExDumpOperands
771 1.3.4.2 rmind *
772 1.3.4.2 rmind * PARAMETERS: Operands - A list of Operand objects
773 1.3.4.2 rmind * OpcodeName - AML opcode name
774 1.3.4.2 rmind * NumOperands - Operand count for this opcode
775 1.3.4.2 rmind *
776 1.3.4.2 rmind * DESCRIPTION: Dump the operands associated with the opcode
777 1.3.4.2 rmind *
778 1.3.4.2 rmind ******************************************************************************/
779 1.3.4.2 rmind
780 1.3.4.2 rmind void
781 1.3.4.2 rmind AcpiExDumpOperands (
782 1.3.4.2 rmind ACPI_OPERAND_OBJECT **Operands,
783 1.3.4.2 rmind const char *OpcodeName,
784 1.3.4.2 rmind UINT32 NumOperands)
785 1.3.4.2 rmind {
786 1.3.4.2 rmind ACPI_FUNCTION_NAME (ExDumpOperands);
787 1.3.4.2 rmind
788 1.3.4.2 rmind
789 1.3.4.2 rmind if (!OpcodeName)
790 1.3.4.2 rmind {
791 1.3.4.2 rmind OpcodeName = "UNKNOWN";
792 1.3.4.2 rmind }
793 1.3.4.2 rmind
794 1.3.4.2 rmind ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
795 1.3.4.2 rmind "**** Start operand dump for opcode [%s], %u operands\n",
796 1.3.4.2 rmind OpcodeName, NumOperands));
797 1.3.4.2 rmind
798 1.3.4.2 rmind if (NumOperands == 0)
799 1.3.4.2 rmind {
800 1.3.4.2 rmind NumOperands = 1;
801 1.3.4.2 rmind }
802 1.3.4.2 rmind
803 1.3.4.2 rmind /* Dump the individual operands */
804 1.3.4.2 rmind
805 1.3.4.2 rmind while (NumOperands)
806 1.3.4.2 rmind {
807 1.3.4.2 rmind AcpiExDumpOperand (*Operands, 0);
808 1.3.4.2 rmind Operands++;
809 1.3.4.2 rmind NumOperands--;
810 1.3.4.2 rmind }
811 1.3.4.2 rmind
812 1.3.4.2 rmind ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
813 1.3.4.2 rmind "**** End operand dump for [%s]\n", OpcodeName));
814 1.3.4.2 rmind return;
815 1.3.4.2 rmind }
816 1.3.4.2 rmind
817 1.3.4.2 rmind
818 1.3.4.2 rmind /*******************************************************************************
819 1.3.4.2 rmind *
820 1.3.4.2 rmind * FUNCTION: AcpiExOut* functions
821 1.3.4.2 rmind *
822 1.3.4.2 rmind * PARAMETERS: Title - Descriptive text
823 1.3.4.2 rmind * Value - Value to be displayed
824 1.3.4.2 rmind *
825 1.3.4.2 rmind * DESCRIPTION: Object dump output formatting functions. These functions
826 1.3.4.2 rmind * reduce the number of format strings required and keeps them
827 1.3.4.2 rmind * all in one place for easy modification.
828 1.3.4.2 rmind *
829 1.3.4.2 rmind ******************************************************************************/
830 1.3.4.2 rmind
831 1.3.4.2 rmind static void
832 1.3.4.2 rmind AcpiExOutString (
833 1.3.4.2 rmind const char *Title,
834 1.3.4.2 rmind const char *Value)
835 1.3.4.2 rmind {
836 1.3.4.2 rmind AcpiOsPrintf ("%20s : %s\n", Title, Value);
837 1.3.4.2 rmind }
838 1.3.4.2 rmind
839 1.3.4.2 rmind static void
840 1.3.4.2 rmind AcpiExOutPointer (
841 1.3.4.2 rmind const char *Title,
842 1.3.4.2 rmind void *Value)
843 1.3.4.2 rmind {
844 1.3.4.2 rmind AcpiOsPrintf ("%20s : %p\n", Title, Value);
845 1.3.4.2 rmind }
846 1.3.4.2 rmind
847 1.3.4.2 rmind
848 1.3.4.2 rmind /*******************************************************************************
849 1.3.4.2 rmind *
850 1.3.4.2 rmind * FUNCTION: AcpiExDumpNamespaceNode
851 1.3.4.2 rmind *
852 1.3.4.2 rmind * PARAMETERS: Node - Descriptor to dump
853 1.3.4.2 rmind * Flags - Force display if TRUE
854 1.3.4.2 rmind *
855 1.3.4.2 rmind * DESCRIPTION: Dumps the members of the given.Node
856 1.3.4.2 rmind *
857 1.3.4.2 rmind ******************************************************************************/
858 1.3.4.2 rmind
859 1.3.4.2 rmind void
860 1.3.4.2 rmind AcpiExDumpNamespaceNode (
861 1.3.4.2 rmind ACPI_NAMESPACE_NODE *Node,
862 1.3.4.2 rmind UINT32 Flags)
863 1.3.4.2 rmind {
864 1.3.4.2 rmind
865 1.3.4.2 rmind ACPI_FUNCTION_ENTRY ();
866 1.3.4.2 rmind
867 1.3.4.2 rmind
868 1.3.4.2 rmind if (!Flags)
869 1.3.4.2 rmind {
870 1.3.4.2 rmind if (!((ACPI_LV_OBJECTS & AcpiDbgLevel) && (_COMPONENT & AcpiDbgLayer)))
871 1.3.4.2 rmind {
872 1.3.4.2 rmind return;
873 1.3.4.2 rmind }
874 1.3.4.2 rmind }
875 1.3.4.2 rmind
876 1.3.4.2 rmind AcpiOsPrintf ("%20s : %4.4s\n", "Name", AcpiUtGetNodeName (Node));
877 1.3.4.2 rmind AcpiExOutString ("Type", AcpiUtGetTypeName (Node->Type));
878 1.3.4.2 rmind AcpiExOutPointer ("Attached Object", AcpiNsGetAttachedObject (Node));
879 1.3.4.2 rmind AcpiExOutPointer ("Parent", Node->Parent);
880 1.3.4.2 rmind
881 1.3.4.2 rmind AcpiExDumpObject (ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, Node),
882 1.3.4.2 rmind AcpiExDumpNode);
883 1.3.4.2 rmind }
884 1.3.4.2 rmind
885 1.3.4.2 rmind
886 1.3.4.2 rmind /*******************************************************************************
887 1.3.4.2 rmind *
888 1.3.4.2 rmind * FUNCTION: AcpiExDumpReferenceObj
889 1.3.4.2 rmind *
890 1.3.4.2 rmind * PARAMETERS: Object - Descriptor to dump
891 1.3.4.2 rmind *
892 1.3.4.2 rmind * DESCRIPTION: Dumps a reference object
893 1.3.4.2 rmind *
894 1.3.4.2 rmind ******************************************************************************/
895 1.3.4.2 rmind
896 1.3.4.2 rmind static void
897 1.3.4.2 rmind AcpiExDumpReferenceObj (
898 1.3.4.2 rmind ACPI_OPERAND_OBJECT *ObjDesc)
899 1.3.4.2 rmind {
900 1.3.4.2 rmind ACPI_BUFFER RetBuf;
901 1.3.4.2 rmind ACPI_STATUS Status;
902 1.3.4.2 rmind
903 1.3.4.2 rmind
904 1.3.4.2 rmind RetBuf.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
905 1.3.4.2 rmind
906 1.3.4.2 rmind if (ObjDesc->Reference.Class == ACPI_REFCLASS_NAME)
907 1.3.4.2 rmind {
908 1.3.4.2 rmind AcpiOsPrintf (" %p ", ObjDesc->Reference.Node);
909 1.3.4.2 rmind
910 1.3.4.2 rmind Status = AcpiNsHandleToPathname (ObjDesc->Reference.Node, &RetBuf);
911 1.3.4.2 rmind if (ACPI_FAILURE (Status))
912 1.3.4.2 rmind {
913 1.3.4.2 rmind AcpiOsPrintf (" Could not convert name to pathname\n");
914 1.3.4.2 rmind }
915 1.3.4.2 rmind else
916 1.3.4.2 rmind {
917 1.3.4.2 rmind AcpiOsPrintf ("%s\n", (char *) RetBuf.Pointer);
918 1.3.4.2 rmind ACPI_FREE (RetBuf.Pointer);
919 1.3.4.2 rmind }
920 1.3.4.2 rmind }
921 1.3.4.2 rmind else if (ObjDesc->Reference.Object)
922 1.3.4.2 rmind {
923 1.3.4.2 rmind if (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) == ACPI_DESC_TYPE_OPERAND)
924 1.3.4.2 rmind {
925 1.3.4.2 rmind AcpiOsPrintf (" Target: %p", ObjDesc->Reference.Object);
926 1.3.4.2 rmind if (ObjDesc->Reference.Class == ACPI_REFCLASS_TABLE)
927 1.3.4.2 rmind {
928 1.3.4.2 rmind AcpiOsPrintf (" Table Index: %X\n", ObjDesc->Reference.Value);
929 1.3.4.2 rmind }
930 1.3.4.2 rmind else
931 1.3.4.2 rmind {
932 1.3.4.2 rmind AcpiOsPrintf (" Target: %p [%s]\n", ObjDesc->Reference.Object,
933 1.3.4.2 rmind AcpiUtGetTypeName (((ACPI_OPERAND_OBJECT *)
934 1.3.4.2 rmind ObjDesc->Reference.Object)->Common.Type));
935 1.3.4.2 rmind }
936 1.3.4.2 rmind }
937 1.3.4.2 rmind else
938 1.3.4.2 rmind {
939 1.3.4.2 rmind AcpiOsPrintf (" Target: %p\n", ObjDesc->Reference.Object);
940 1.3.4.2 rmind }
941 1.3.4.2 rmind }
942 1.3.4.2 rmind }
943 1.3.4.2 rmind
944 1.3.4.2 rmind
945 1.3.4.2 rmind /*******************************************************************************
946 1.3.4.2 rmind *
947 1.3.4.2 rmind * FUNCTION: AcpiExDumpPackageObj
948 1.3.4.2 rmind *
949 1.3.4.2 rmind * PARAMETERS: ObjDesc - Descriptor to dump
950 1.3.4.2 rmind * Level - Indentation Level
951 1.3.4.2 rmind * Index - Package index for this object
952 1.3.4.2 rmind *
953 1.3.4.2 rmind * DESCRIPTION: Dumps the elements of the package
954 1.3.4.2 rmind *
955 1.3.4.2 rmind ******************************************************************************/
956 1.3.4.2 rmind
957 1.3.4.2 rmind static void
958 1.3.4.2 rmind AcpiExDumpPackageObj (
959 1.3.4.2 rmind ACPI_OPERAND_OBJECT *ObjDesc,
960 1.3.4.2 rmind UINT32 Level,
961 1.3.4.2 rmind UINT32 Index)
962 1.3.4.2 rmind {
963 1.3.4.2 rmind UINT32 i;
964 1.3.4.2 rmind
965 1.3.4.2 rmind
966 1.3.4.2 rmind /* Indentation and index output */
967 1.3.4.2 rmind
968 1.3.4.2 rmind if (Level > 0)
969 1.3.4.2 rmind {
970 1.3.4.2 rmind for (i = 0; i < Level; i++)
971 1.3.4.2 rmind {
972 1.3.4.2 rmind AcpiOsPrintf (" ");
973 1.3.4.2 rmind }
974 1.3.4.2 rmind
975 1.3.4.2 rmind AcpiOsPrintf ("[%.2d] ", Index);
976 1.3.4.2 rmind }
977 1.3.4.2 rmind
978 1.3.4.2 rmind AcpiOsPrintf ("%p ", ObjDesc);
979 1.3.4.2 rmind
980 1.3.4.2 rmind /* Null package elements are allowed */
981 1.3.4.2 rmind
982 1.3.4.2 rmind if (!ObjDesc)
983 1.3.4.2 rmind {
984 1.3.4.2 rmind AcpiOsPrintf ("[Null Object]\n");
985 1.3.4.2 rmind return;
986 1.3.4.2 rmind }
987 1.3.4.2 rmind
988 1.3.4.2 rmind /* Packages may only contain a few object types */
989 1.3.4.2 rmind
990 1.3.4.2 rmind switch (ObjDesc->Common.Type)
991 1.3.4.2 rmind {
992 1.3.4.2 rmind case ACPI_TYPE_INTEGER:
993 1.3.4.2 rmind
994 1.3.4.2 rmind AcpiOsPrintf ("[Integer] = %8.8X%8.8X\n",
995 1.3.4.2 rmind ACPI_FORMAT_UINT64 (ObjDesc->Integer.Value));
996 1.3.4.2 rmind break;
997 1.3.4.2 rmind
998 1.3.4.2 rmind
999 1.3.4.2 rmind case ACPI_TYPE_STRING:
1000 1.3.4.2 rmind
1001 1.3.4.2 rmind AcpiOsPrintf ("[String] Value: ");
1002 1.3.4.2 rmind for (i = 0; i < ObjDesc->String.Length; i++)
1003 1.3.4.2 rmind {
1004 1.3.4.2 rmind AcpiOsPrintf ("%c", ObjDesc->String.Pointer[i]);
1005 1.3.4.2 rmind }
1006 1.3.4.2 rmind AcpiOsPrintf ("\n");
1007 1.3.4.2 rmind break;
1008 1.3.4.2 rmind
1009 1.3.4.2 rmind
1010 1.3.4.2 rmind case ACPI_TYPE_BUFFER:
1011 1.3.4.2 rmind
1012 1.3.4.2 rmind AcpiOsPrintf ("[Buffer] Length %.2X = ", ObjDesc->Buffer.Length);
1013 1.3.4.2 rmind if (ObjDesc->Buffer.Length)
1014 1.3.4.2 rmind {
1015 1.3.4.2 rmind AcpiUtDumpBuffer (ACPI_CAST_PTR (UINT8, ObjDesc->Buffer.Pointer),
1016 1.3.4.2 rmind ObjDesc->Buffer.Length, DB_DWORD_DISPLAY, _COMPONENT);
1017 1.3.4.2 rmind }
1018 1.3.4.2 rmind else
1019 1.3.4.2 rmind {
1020 1.3.4.2 rmind AcpiOsPrintf ("\n");
1021 1.3.4.2 rmind }
1022 1.3.4.2 rmind break;
1023 1.3.4.2 rmind
1024 1.3.4.2 rmind
1025 1.3.4.2 rmind case ACPI_TYPE_PACKAGE:
1026 1.3.4.2 rmind
1027 1.3.4.2 rmind AcpiOsPrintf ("[Package] Contains %u Elements:\n",
1028 1.3.4.2 rmind ObjDesc->Package.Count);
1029 1.3.4.2 rmind
1030 1.3.4.2 rmind for (i = 0; i < ObjDesc->Package.Count; i++)
1031 1.3.4.2 rmind {
1032 1.3.4.2 rmind AcpiExDumpPackageObj (ObjDesc->Package.Elements[i], Level+1, i);
1033 1.3.4.2 rmind }
1034 1.3.4.2 rmind break;
1035 1.3.4.2 rmind
1036 1.3.4.2 rmind
1037 1.3.4.2 rmind case ACPI_TYPE_LOCAL_REFERENCE:
1038 1.3.4.2 rmind
1039 1.3.4.2 rmind AcpiOsPrintf ("[Object Reference] Type [%s] %2.2X",
1040 1.3.4.2 rmind AcpiUtGetReferenceName (ObjDesc),
1041 1.3.4.2 rmind ObjDesc->Reference.Class);
1042 1.3.4.2 rmind AcpiExDumpReferenceObj (ObjDesc);
1043 1.3.4.2 rmind break;
1044 1.3.4.2 rmind
1045 1.3.4.2 rmind
1046 1.3.4.2 rmind default:
1047 1.3.4.2 rmind
1048 1.3.4.2 rmind AcpiOsPrintf ("[Unknown Type] %X\n", ObjDesc->Common.Type);
1049 1.3.4.2 rmind break;
1050 1.3.4.2 rmind }
1051 1.3.4.2 rmind }
1052 1.3.4.2 rmind
1053 1.3.4.2 rmind
1054 1.3.4.2 rmind /*******************************************************************************
1055 1.3.4.2 rmind *
1056 1.3.4.2 rmind * FUNCTION: AcpiExDumpObjectDescriptor
1057 1.3.4.2 rmind *
1058 1.3.4.2 rmind * PARAMETERS: ObjDesc - Descriptor to dump
1059 1.3.4.2 rmind * Flags - Force display if TRUE
1060 1.3.4.2 rmind *
1061 1.3.4.2 rmind * DESCRIPTION: Dumps the members of the object descriptor given.
1062 1.3.4.2 rmind *
1063 1.3.4.2 rmind ******************************************************************************/
1064 1.3.4.2 rmind
1065 1.3.4.2 rmind void
1066 1.3.4.2 rmind AcpiExDumpObjectDescriptor (
1067 1.3.4.2 rmind ACPI_OPERAND_OBJECT *ObjDesc,
1068 1.3.4.2 rmind UINT32 Flags)
1069 1.3.4.2 rmind {
1070 1.3.4.2 rmind ACPI_FUNCTION_TRACE (ExDumpObjectDescriptor);
1071 1.3.4.2 rmind
1072 1.3.4.2 rmind
1073 1.3.4.2 rmind if (!ObjDesc)
1074 1.3.4.2 rmind {
1075 1.3.4.2 rmind return_VOID;
1076 1.3.4.2 rmind }
1077 1.3.4.2 rmind
1078 1.3.4.2 rmind if (!Flags)
1079 1.3.4.2 rmind {
1080 1.3.4.2 rmind if (!((ACPI_LV_OBJECTS & AcpiDbgLevel) && (_COMPONENT & AcpiDbgLayer)))
1081 1.3.4.2 rmind {
1082 1.3.4.2 rmind return_VOID;
1083 1.3.4.2 rmind }
1084 1.3.4.2 rmind }
1085 1.3.4.2 rmind
1086 1.3.4.2 rmind if (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) == ACPI_DESC_TYPE_NAMED)
1087 1.3.4.2 rmind {
1088 1.3.4.2 rmind AcpiExDumpNamespaceNode ((ACPI_NAMESPACE_NODE *) ObjDesc, Flags);
1089 1.3.4.2 rmind
1090 1.3.4.2 rmind AcpiOsPrintf ("\nAttached Object (%p):\n",
1091 1.3.4.2 rmind ((ACPI_NAMESPACE_NODE *) ObjDesc)->Object);
1092 1.3.4.2 rmind
1093 1.3.4.2 rmind AcpiExDumpObjectDescriptor (
1094 1.3.4.2 rmind ((ACPI_NAMESPACE_NODE *) ObjDesc)->Object, Flags);
1095 1.3.4.2 rmind return_VOID;
1096 1.3.4.2 rmind }
1097 1.3.4.2 rmind
1098 1.3.4.2 rmind if (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) != ACPI_DESC_TYPE_OPERAND)
1099 1.3.4.2 rmind {
1100 1.3.4.2 rmind AcpiOsPrintf (
1101 1.3.4.2 rmind "ExDumpObjectDescriptor: %p is not an ACPI operand object: [%s]\n",
1102 1.3.4.2 rmind ObjDesc, AcpiUtGetDescriptorName (ObjDesc));
1103 1.3.4.2 rmind return_VOID;
1104 1.3.4.2 rmind }
1105 1.3.4.2 rmind
1106 1.3.4.2 rmind if (ObjDesc->Common.Type > ACPI_TYPE_NS_NODE_MAX)
1107 1.3.4.2 rmind {
1108 1.3.4.2 rmind return_VOID;
1109 1.3.4.2 rmind }
1110 1.3.4.2 rmind
1111 1.3.4.2 rmind /* Common Fields */
1112 1.3.4.2 rmind
1113 1.3.4.2 rmind AcpiExDumpObject (ObjDesc, AcpiExDumpCommon);
1114 1.3.4.2 rmind
1115 1.3.4.2 rmind /* Object-specific fields */
1116 1.3.4.2 rmind
1117 1.3.4.2 rmind AcpiExDumpObject (ObjDesc, AcpiExDumpInfo[ObjDesc->Common.Type]);
1118 1.3.4.2 rmind return_VOID;
1119 1.3.4.2 rmind }
1120 1.3.4.2 rmind
1121 1.3.4.2 rmind #endif
1122 1.3.4.2 rmind
1123