ReactOS 0.4.15-dev-7906-g1b85a5f
exdump.c
Go to the documentation of this file.
1/******************************************************************************
2 *
3 * Module Name: exdump - Interpreter debug output routines
4 *
5 *****************************************************************************/
6
7/*
8 * Copyright (C) 2000 - 2022, Intel Corp.
9 * All rights reserved.
10 *
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions
13 * are met:
14 * 1. Redistributions of source code must retain the above copyright
15 * notice, this list of conditions, and the following disclaimer,
16 * without modification.
17 * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18 * substantially similar to the "NO WARRANTY" disclaimer below
19 * ("Disclaimer") and any redistribution must be conditioned upon
20 * including a substantially similar Disclaimer requirement for further
21 * binary redistribution.
22 * 3. Neither the names of the above-listed copyright holders nor the names
23 * of any contributors may be used to endorse or promote products derived
24 * from this software without specific prior written permission.
25 *
26 * Alternatively, this software may be distributed under the terms of the
27 * GNU General Public License ("GPL") version 2 as published by the Free
28 * Software Foundation.
29 *
30 * NO WARRANTY
31 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
34 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35 * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41 * POSSIBILITY OF SUCH DAMAGES.
42 */
43
44#include "acpi.h"
45#include "accommon.h"
46#include "acinterp.h"
47#include "amlcode.h"
48#include "acnamesp.h"
49
50
51#define _COMPONENT ACPI_EXECUTER
52 ACPI_MODULE_NAME ("exdump")
53
54/*
55 * The following routines are used for debug output only
56 */
57#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
58
59/* Local prototypes */
60
61static void
62AcpiExOutString (
63 const char *Title,
64 const char *Value);
65
66static void
67AcpiExOutPointer (
68 const char *Title,
69 const void *Value);
70
71static void
72AcpiExDumpObject (
73 ACPI_OPERAND_OBJECT *ObjDesc,
75
76static void
77AcpiExDumpReferenceObj (
78 ACPI_OPERAND_OBJECT *ObjDesc);
79
80static void
81AcpiExDumpPackageObj (
82 ACPI_OPERAND_OBJECT *ObjDesc,
85
86
87/*******************************************************************************
88 *
89 * Object Descriptor info tables
90 *
91 * Note: The first table entry must be an INIT opcode and must contain
92 * the table length (number of table entries)
93 *
94 ******************************************************************************/
95
96static ACPI_EXDUMP_INFO AcpiExDumpInteger[2] =
97{
98 {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpInteger), NULL},
99 {ACPI_EXD_UINT64, ACPI_EXD_OFFSET (Integer.Value), "Value"}
100};
101
102static ACPI_EXDUMP_INFO AcpiExDumpString[4] =
103{
104 {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpString), NULL},
105 {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (String.Length), "Length"},
106 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (String.Pointer), "Pointer"},
108};
109
110static ACPI_EXDUMP_INFO AcpiExDumpBuffer[5] =
111{
112 {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpBuffer), NULL},
113 {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (Buffer.Length), "Length"},
114 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Buffer.Pointer), "Pointer"},
115 {ACPI_EXD_NODE, ACPI_EXD_OFFSET (Buffer.Node), "Parent Node"},
117};
118
119static ACPI_EXDUMP_INFO AcpiExDumpPackage[6] =
120{
121 {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpPackage), NULL},
122 {ACPI_EXD_NODE, ACPI_EXD_OFFSET (Package.Node), "Parent Node"},
123 {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Package.Flags), "Flags"},
124 {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (Package.Count), "Element Count"},
125 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Package.Elements), "Element List"},
127};
128
129static ACPI_EXDUMP_INFO AcpiExDumpDevice[4] =
130{
131 {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpDevice), NULL},
132 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Device.NotifyList[0]), "System Notify"},
133 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Device.NotifyList[1]), "Device Notify"},
134 {ACPI_EXD_HDLR_LIST,ACPI_EXD_OFFSET (Device.Handler), "Handler"}
135};
136
137static ACPI_EXDUMP_INFO AcpiExDumpEvent[2] =
138{
139 {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpEvent), NULL},
140 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Event.OsSemaphore), "OsSemaphore"}
141};
142
143static ACPI_EXDUMP_INFO AcpiExDumpMethod[9] =
144{
145 {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpMethod), NULL},
146 {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Method.InfoFlags), "Info Flags"},
147 {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Method.ParamCount), "Parameter Count"},
148 {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Method.SyncLevel), "Sync Level"},
149 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Method.Mutex), "Mutex"},
150 {ACPI_EXD_UINT16, ACPI_EXD_OFFSET (Method.OwnerId), "Owner Id"},
151 {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Method.ThreadCount), "Thread Count"},
152 {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (Method.AmlLength), "Aml Length"},
153 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Method.AmlStart), "Aml Start"}
154};
155
156static ACPI_EXDUMP_INFO AcpiExDumpMutex[6] =
157{
158 {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpMutex), NULL},
159 {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Mutex.SyncLevel), "Sync Level"},
160 {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Mutex.OriginalSyncLevel), "Original Sync Level"},
161 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Mutex.OwnerThread), "Owner Thread"},
162 {ACPI_EXD_UINT16, ACPI_EXD_OFFSET (Mutex.AcquisitionDepth), "Acquire Depth"},
163 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Mutex.OsMutex), "OsMutex"}
164};
165
166static ACPI_EXDUMP_INFO AcpiExDumpRegion[8] =
167{
168 {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpRegion), NULL},
169 {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Region.SpaceId), "Space Id"},
170 {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Region.Flags), "Flags"},
171 {ACPI_EXD_NODE, ACPI_EXD_OFFSET (Region.Node), "Parent Node"},
172 {ACPI_EXD_ADDRESS, ACPI_EXD_OFFSET (Region.Address), "Address"},
173 {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (Region.Length), "Length"},
174 {ACPI_EXD_HDLR_LIST,ACPI_EXD_OFFSET (Region.Handler), "Handler"},
175 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Region.Next), "Next"}
176};
177
178static ACPI_EXDUMP_INFO AcpiExDumpPower[6] =
179{
180 {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpPower), NULL},
181 {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (PowerResource.SystemLevel), "System Level"},
182 {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (PowerResource.ResourceOrder), "Resource Order"},
183 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (PowerResource.NotifyList[0]), "System Notify"},
184 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (PowerResource.NotifyList[1]), "Device Notify"},
185 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (PowerResource.Handler), "Handler"}
186};
187
188static ACPI_EXDUMP_INFO AcpiExDumpProcessor[7] =
189{
190 {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpProcessor), NULL},
191 {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Processor.ProcId), "Processor ID"},
192 {ACPI_EXD_UINT8 , ACPI_EXD_OFFSET (Processor.Length), "Length"},
193 {ACPI_EXD_ADDRESS, ACPI_EXD_OFFSET (Processor.Address), "Address"},
194 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Processor.NotifyList[0]), "System Notify"},
195 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Processor.NotifyList[1]), "Device Notify"},
196 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Processor.Handler), "Handler"}
197};
198
199static ACPI_EXDUMP_INFO AcpiExDumpThermal[4] =
200{
201 {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpThermal), NULL},
202 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (ThermalZone.NotifyList[0]), "System Notify"},
203 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (ThermalZone.NotifyList[1]), "Device Notify"},
204 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (ThermalZone.Handler), "Handler"}
205};
206
207static ACPI_EXDUMP_INFO AcpiExDumpBufferField[3] =
208{
209 {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpBufferField), NULL},
210 {ACPI_EXD_FIELD, 0, NULL},
211 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (BufferField.BufferObj), "Buffer Object"}
212};
213
214static ACPI_EXDUMP_INFO AcpiExDumpRegionField[5] =
215{
216 {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpRegionField), NULL},
217 {ACPI_EXD_FIELD, 0, NULL},
218 {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Field.AccessLength), "AccessLength"},
219 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Field.RegionObj), "Region Object"},
220 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Field.ResourceBuffer), "ResourceBuffer"}
221};
222
223static ACPI_EXDUMP_INFO AcpiExDumpBankField[5] =
224{
225 {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpBankField), NULL},
226 {ACPI_EXD_FIELD, 0, NULL},
227 {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (BankField.Value), "Value"},
228 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (BankField.RegionObj), "Region Object"},
229 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (BankField.BankObj), "Bank Object"}
230};
231
232static ACPI_EXDUMP_INFO AcpiExDumpIndexField[5] =
233{
234 {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpBankField), NULL},
235 {ACPI_EXD_FIELD, 0, NULL},
236 {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (IndexField.Value), "Value"},
237 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (IndexField.IndexObj), "Index Object"},
238 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (IndexField.DataObj), "Data Object"}
239};
240
241static ACPI_EXDUMP_INFO AcpiExDumpReference[9] =
242{
243 {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpReference), NULL},
244 {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Reference.Class), "Class"},
245 {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Reference.TargetType), "Target Type"},
246 {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (Reference.Value), "Value"},
247 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Reference.Object), "Object Desc"},
248 {ACPI_EXD_NODE, ACPI_EXD_OFFSET (Reference.Node), "Node"},
249 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Reference.Where), "Where"},
250 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Reference.IndexPointer), "Index Pointer"},
252};
253
254static ACPI_EXDUMP_INFO AcpiExDumpAddressHandler[6] =
255{
256 {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpAddressHandler), NULL},
257 {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (AddressSpace.SpaceId), "Space Id"},
259 {ACPI_EXD_RGN_LIST, ACPI_EXD_OFFSET (AddressSpace.RegionList), "Region List"},
261 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (AddressSpace.Context), "Context"}
262};
263
264static ACPI_EXDUMP_INFO AcpiExDumpNotify[7] =
265{
266 {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpNotify), NULL},
267 {ACPI_EXD_NODE, ACPI_EXD_OFFSET (Notify.Node), "Node"},
268 {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (Notify.HandlerType), "Handler Type"},
269 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Notify.Handler), "Handler"},
270 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Notify.Context), "Context"},
271 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Notify.Next[0]), "Next System Notify"},
272 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Notify.Next[1]), "Next Device Notify"}
273};
274
275static ACPI_EXDUMP_INFO AcpiExDumpExtra[6] =
276{
277 {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpExtra), NULL},
278 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Extra.Method_REG), "_REG Method"},
279 {ACPI_EXD_NODE, ACPI_EXD_OFFSET (Extra.ScopeNode), "Scope Node"},
280 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Extra.RegionContext), "Region Context"},
281 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Extra.AmlStart), "Aml Start"},
282 {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (Extra.AmlLength), "Aml Length"}
283};
284
285static ACPI_EXDUMP_INFO AcpiExDumpData[3] =
286{
287 {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpData), NULL},
288 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Data.Handler), "Handler"},
289 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Data.Pointer), "Raw Data"}
290};
291
292/* Miscellaneous tables */
293
294static ACPI_EXDUMP_INFO AcpiExDumpCommon[5] =
295{
296 {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpCommon), NULL},
297 {ACPI_EXD_TYPE , 0, NULL},
298 {ACPI_EXD_UINT16, ACPI_EXD_OFFSET (Common.ReferenceCount), "Reference Count"},
299 {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Common.Flags), "Flags"},
300 {ACPI_EXD_LIST, ACPI_EXD_OFFSET (Common.NextObject), "Object List"}
301};
302
303static ACPI_EXDUMP_INFO AcpiExDumpFieldCommon[7] =
304{
305 {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpFieldCommon), NULL},
306 {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (CommonField.FieldFlags), "Field Flags"},
307 {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (CommonField.AccessByteWidth), "Access Byte Width"},
308 {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (CommonField.BitLength), "Bit Length"},
309 {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (CommonField.StartFieldBitOffset),"Field Bit Offset"},
310 {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (CommonField.BaseByteOffset), "Base Byte Offset"},
311 {ACPI_EXD_NODE, ACPI_EXD_OFFSET (CommonField.Node), "Parent Node"}
312};
313
314static ACPI_EXDUMP_INFO AcpiExDumpNode[7] =
315{
316 {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpNode), NULL},
319 {ACPI_EXD_LIST, ACPI_EXD_NSOFFSET (Object), "Object List"},
322 {ACPI_EXD_NODE, ACPI_EXD_NSOFFSET (Peer), "Peer"}
323};
324
325
326/* Dispatch table, indexed by object type */
327
328static ACPI_EXDUMP_INFO *AcpiExDumpInfo[] =
329{
330 NULL,
331 AcpiExDumpInteger,
332 AcpiExDumpString,
333 AcpiExDumpBuffer,
334 AcpiExDumpPackage,
335 NULL,
336 AcpiExDumpDevice,
337 AcpiExDumpEvent,
338 AcpiExDumpMethod,
339 AcpiExDumpMutex,
340 AcpiExDumpRegion,
341 AcpiExDumpPower,
342 AcpiExDumpProcessor,
343 AcpiExDumpThermal,
344 AcpiExDumpBufferField,
345 NULL,
346 NULL,
347 AcpiExDumpRegionField,
348 AcpiExDumpBankField,
349 AcpiExDumpIndexField,
350 AcpiExDumpReference,
351 NULL,
352 NULL,
353 AcpiExDumpNotify,
354 AcpiExDumpAddressHandler,
355 NULL,
356 NULL,
357 NULL,
358 AcpiExDumpExtra,
359 AcpiExDumpData
360};
361
362
363/*******************************************************************************
364 *
365 * FUNCTION: AcpiExDumpObject
366 *
367 * PARAMETERS: ObjDesc - Descriptor to dump
368 * Info - Info table corresponding to this object
369 * type
370 *
371 * RETURN: None
372 *
373 * DESCRIPTION: Walk the info table for this object
374 *
375 ******************************************************************************/
376
377static void
378AcpiExDumpObject (
379 ACPI_OPERAND_OBJECT *ObjDesc,
381{
382 UINT8 *Target;
383 const char *Name;
384 UINT8 Count;
389
390
391 if (!Info)
392 {
394 "ExDumpObject: Display not implemented for object type %s\n",
395 AcpiUtGetObjectTypeName (ObjDesc));
396 return;
397 }
398
399 /* First table entry must contain the table length (# of table entries) */
400
401 Count = Info->Offset;
402
403 while (Count)
404 {
405 if (!ObjDesc)
406 {
407 return;
408 }
409
410 Target = ACPI_ADD_PTR (UINT8, ObjDesc, Info->Offset);
411 Name = Info->Name;
412
413 switch (Info->Opcode)
414 {
415 case ACPI_EXD_INIT:
416
417 break;
418
419 case ACPI_EXD_TYPE:
420
421 AcpiOsPrintf ("%20s : %2.2X [%s]\n", "Type",
422 ObjDesc->Common.Type,
423 AcpiUtGetObjectTypeName (ObjDesc));
424 break;
425
426 case ACPI_EXD_UINT8:
427
428 AcpiOsPrintf ("%20s : %2.2X\n", Name, *Target);
429 break;
430
431 case ACPI_EXD_UINT16:
432
433 AcpiOsPrintf ("%20s : %4.4X\n", Name, ACPI_GET16 (Target));
434 break;
435
436 case ACPI_EXD_UINT32:
437
438 AcpiOsPrintf ("%20s : %8.8X\n", Name, ACPI_GET32 (Target));
439 break;
440
441 case ACPI_EXD_UINT64:
442
443 AcpiOsPrintf ("%20s : %8.8X%8.8X\n", "Value",
445 break;
446
447 case ACPI_EXD_POINTER:
448 case ACPI_EXD_ADDRESS:
449
450 AcpiExOutPointer (Name, *ACPI_CAST_PTR (void *, Target));
451 break;
452
453 case ACPI_EXD_STRING:
454
455 AcpiUtPrintString (ObjDesc->String.Pointer, ACPI_UINT8_MAX);
456 AcpiOsPrintf ("\n");
457 break;
458
459 case ACPI_EXD_BUFFER:
460
462 ObjDesc->Buffer.Pointer, ObjDesc->Buffer.Length);
463 break;
464
465 case ACPI_EXD_PACKAGE:
466
467 /* Dump the package contents */
468
469 AcpiOsPrintf ("\nPackage Contents:\n");
470 AcpiExDumpPackageObj (ObjDesc, 0, 0);
471 break;
472
473 case ACPI_EXD_FIELD:
474
475 AcpiExDumpObject (ObjDesc, AcpiExDumpFieldCommon);
476 break;
477
479
480 AcpiExOutString ("Class Name", AcpiUtGetReferenceName (ObjDesc));
481 AcpiExDumpReferenceObj (ObjDesc);
482 break;
483
484 case ACPI_EXD_LIST:
485
486 Start = *ACPI_CAST_PTR (void *, Target);
487 Next = Start;
488
489 AcpiOsPrintf ("%20s : %p ", Name, Next);
490 if (Next)
491 {
492 AcpiOsPrintf ("%s (Type %2.2X)",
493 AcpiUtGetObjectTypeName (Next), Next->Common.Type);
494
495 while (Next->Common.NextObject)
496 {
497 if ((Next->Common.Type == ACPI_TYPE_LOCAL_DATA) &&
498 !Data)
499 {
500 Data = Next;
501 }
502
503 Next = Next->Common.NextObject;
504 AcpiOsPrintf ("->%p(%s %2.2X)", Next,
505 AcpiUtGetObjectTypeName (Next), Next->Common.Type);
506
507 if ((Next == Start) || (Next == Data))
508 {
510 "\n**** Error: Object list appears to be circular linked");
511 break;
512 }
513 }
514 }
515 else
516 {
517 AcpiOsPrintf ("- No attached objects");
518 }
519
520 AcpiOsPrintf ("\n");
521 break;
522
524
525 Start = *ACPI_CAST_PTR (void *, Target);
526 Next = Start;
527
528 AcpiOsPrintf ("%20s : %p", Name, Next);
529 if (Next)
530 {
531 AcpiOsPrintf ("(%s %2.2X)",
533 Next->AddressSpace.SpaceId);
534
535 while (Next->AddressSpace.Next)
536 {
537 if ((Next->Common.Type == ACPI_TYPE_LOCAL_DATA) &&
538 !Data)
539 {
540 Data = Next;
541 }
542
543 Next = Next->AddressSpace.Next;
544 AcpiOsPrintf ("->%p(%s %2.2X)", Next,
546 Next->AddressSpace.SpaceId);
547
548 if ((Next == Start) || (Next == Data))
549 {
551 "\n**** Error: Handler list appears to be circular linked");
552 break;
553 }
554 }
555 }
556
557 AcpiOsPrintf ("\n");
558 break;
559
561
562 Start = *ACPI_CAST_PTR (void *, Target);
563 Next = Start;
564
565 AcpiOsPrintf ("%20s : %p", Name, Next);
566 if (Next)
567 {
568 AcpiOsPrintf ("(%s %2.2X)",
569 AcpiUtGetObjectTypeName (Next), Next->Common.Type);
570
571 while (Next->Region.Next)
572 {
573 if ((Next->Common.Type == ACPI_TYPE_LOCAL_DATA) &&
574 !Data)
575 {
576 Data = Next;
577 }
578
579 Next = Next->Region.Next;
580 AcpiOsPrintf ("->%p(%s %2.2X)", Next,
581 AcpiUtGetObjectTypeName (Next), Next->Common.Type);
582
583 if ((Next == Start) || (Next == Data))
584 {
586 "\n**** Error: Region list appears to be circular linked");
587 break;
588 }
589 }
590 }
591
592 AcpiOsPrintf ("\n");
593 break;
594
595 case ACPI_EXD_NODE:
596
598
599 AcpiOsPrintf ("%20s : %p", Name, Node);
600 if (Node)
601 {
602 AcpiOsPrintf (" [%4.4s]", Node->Name.Ascii);
603 }
604 AcpiOsPrintf ("\n");
605 break;
606
607 default:
608
609 AcpiOsPrintf ("**** Invalid table opcode [%X] ****\n",
610 Info->Opcode);
611 return;
612 }
613
614 Info++;
615 Count--;
616 }
617}
618
619
620/*******************************************************************************
621 *
622 * FUNCTION: AcpiExDumpOperand
623 *
624 * PARAMETERS: *ObjDesc - Pointer to entry to be dumped
625 * Depth - Current nesting depth
626 *
627 * RETURN: None
628 *
629 * DESCRIPTION: Dump an operand object
630 *
631 ******************************************************************************/
632
633void
635 ACPI_OPERAND_OBJECT *ObjDesc,
637{
640
641
642 ACPI_FUNCTION_NAME (ExDumpOperand);
643
644
645 /* Check if debug output enabled */
646
648 {
649 return;
650 }
651
652 if (!ObjDesc)
653 {
654 /* This could be a null element of a package */
655
656 ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Null Object Descriptor\n"));
657 return;
658 }
659
661 {
662 ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "%p Namespace Node: ", ObjDesc));
663 ACPI_DUMP_ENTRY (ObjDesc, ACPI_LV_EXEC);
664 return;
665 }
666
668 {
670 "%p is not a node or operand object: [%s]\n",
671 ObjDesc, AcpiUtGetDescriptorName (ObjDesc)));
672 ACPI_DUMP_BUFFER (ObjDesc, sizeof (ACPI_OPERAND_OBJECT));
673 return;
674 }
675
676 /* ObjDesc is a valid object */
677
678 if (Depth > 0)
679 {
680 ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "%*s[%u] %p Refs=%u ",
681 Depth, " ", Depth, ObjDesc, ObjDesc->Common.ReferenceCount));
682 }
683 else
684 {
685 ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "%p Refs=%u ",
686 ObjDesc, ObjDesc->Common.ReferenceCount));
687 }
688
689 /* Decode object type */
690
691 switch (ObjDesc->Common.Type)
692 {
694
695 AcpiOsPrintf ("Reference: [%s] ",
696 AcpiUtGetReferenceName (ObjDesc));
697
698 switch (ObjDesc->Reference.Class)
699 {
701
702 AcpiOsPrintf ("\n");
703 break;
704
706
707 AcpiOsPrintf ("%p\n", ObjDesc->Reference.Object);
708 break;
709
711
712 AcpiOsPrintf ("Table Index %X\n", ObjDesc->Reference.Value);
713 break;
714
716
717 AcpiOsPrintf ("%p [%s]\n", ObjDesc->Reference.Object,
719 ObjDesc->Reference.Object)->Common.Type));
720 break;
721
723
725 AcpiOsPrintf ("- [%4.4s] (Node %p)\n",
726 ObjDesc->Reference.Node->Name.Ascii,
727 ObjDesc->Reference.Node);
728 break;
729
732
733 AcpiOsPrintf ("%X\n", ObjDesc->Reference.Value);
734 break;
735
736 default: /* Unknown reference class */
737
738 AcpiOsPrintf ("%2.2X\n", ObjDesc->Reference.Class);
739 break;
740 }
741 break;
742
743 case ACPI_TYPE_BUFFER:
744
745 AcpiOsPrintf ("Buffer length %.2X @ %p\n",
746 ObjDesc->Buffer.Length, ObjDesc->Buffer.Pointer);
747
748 /* Debug only -- dump the buffer contents */
749
750 if (ObjDesc->Buffer.Pointer)
751 {
752 Length = ObjDesc->Buffer.Length;
753 if (Length > 128)
754 {
755 Length = 128;
756 }
757
759 "Buffer Contents: (displaying length 0x%.2X)\n", Length);
760 ACPI_DUMP_BUFFER (ObjDesc->Buffer.Pointer, Length);
761 }
762 break;
763
765
766 AcpiOsPrintf ("Integer %8.8X%8.8X\n",
767 ACPI_FORMAT_UINT64 (ObjDesc->Integer.Value));
768 break;
769
771
772 AcpiOsPrintf ("Package [Len %X] ElementArray %p\n",
773 ObjDesc->Package.Count, ObjDesc->Package.Elements);
774
775 /*
776 * If elements exist, package element pointer is valid,
777 * and debug_level exceeds 1, dump package's elements.
778 */
779 if (ObjDesc->Package.Count &&
780 ObjDesc->Package.Elements &&
781 AcpiDbgLevel > 1)
782 {
783 for (Index = 0; Index < ObjDesc->Package.Count; Index++)
784 {
786 ObjDesc->Package.Elements[Index], Depth + 1);
787 }
788 }
789 break;
790
791 case ACPI_TYPE_REGION:
792
793 AcpiOsPrintf ("Region %s (%X)",
795 ObjDesc->Region.SpaceId);
796
797 /*
798 * If the address and length have not been evaluated,
799 * don't print them.
800 */
801 if (!(ObjDesc->Region.Flags & AOPOBJ_DATA_VALID))
802 {
803 AcpiOsPrintf ("\n");
804 }
805 else
806 {
807 AcpiOsPrintf (" base %8.8X%8.8X Length %X\n",
809 ObjDesc->Region.Length);
810 }
811 break;
812
813 case ACPI_TYPE_STRING:
814
815 AcpiOsPrintf ("String length %X @ %p ",
816 ObjDesc->String.Length,
817 ObjDesc->String.Pointer);
818
819 AcpiUtPrintString (ObjDesc->String.Pointer, ACPI_UINT8_MAX);
820 AcpiOsPrintf ("\n");
821 break;
822
824
825 AcpiOsPrintf ("BankField\n");
826 break;
827
829
830 AcpiOsPrintf ("RegionField: Bits=%X AccWidth=%X Lock=%X Update=%X at "
831 "byte=%X bit=%X of below:\n",
832 ObjDesc->Field.BitLength,
833 ObjDesc->Field.AccessByteWidth,
834 ObjDesc->Field.FieldFlags & AML_FIELD_LOCK_RULE_MASK,
835 ObjDesc->Field.FieldFlags & AML_FIELD_UPDATE_RULE_MASK,
836 ObjDesc->Field.BaseByteOffset,
837 ObjDesc->Field.StartFieldBitOffset);
838
839 AcpiExDumpOperand (ObjDesc->Field.RegionObj, Depth + 1);
840 break;
841
843
844 AcpiOsPrintf ("IndexField\n");
845 break;
846
848
849 AcpiOsPrintf ("BufferField: %X bits at byte %X bit %X of\n",
850 ObjDesc->BufferField.BitLength,
851 ObjDesc->BufferField.BaseByteOffset,
852 ObjDesc->BufferField.StartFieldBitOffset);
853
854 if (!ObjDesc->BufferField.BufferObj)
855 {
856 ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "*NULL*\n"));
857 }
858 else if ((ObjDesc->BufferField.BufferObj)->Common.Type !=
860 {
861 AcpiOsPrintf ("*not a Buffer*\n");
862 }
863 else
864 {
866 }
867 break;
868
869 case ACPI_TYPE_EVENT:
870
871 AcpiOsPrintf ("Event\n");
872 break;
873
874 case ACPI_TYPE_METHOD:
875
876 AcpiOsPrintf ("Method(%X) @ %p:%X\n",
877 ObjDesc->Method.ParamCount,
878 ObjDesc->Method.AmlStart,
879 ObjDesc->Method.AmlLength);
880 break;
881
882 case ACPI_TYPE_MUTEX:
883
884 AcpiOsPrintf ("Mutex\n");
885 break;
886
887 case ACPI_TYPE_DEVICE:
888
889 AcpiOsPrintf ("Device\n");
890 break;
891
892 case ACPI_TYPE_POWER:
893
894 AcpiOsPrintf ("Power\n");
895 break;
896
898
899 AcpiOsPrintf ("Processor\n");
900 break;
901
903
904 AcpiOsPrintf ("Thermal\n");
905 break;
906
907 default:
908
909 /* Unknown Type */
910
911 AcpiOsPrintf ("Unknown Type %X\n", ObjDesc->Common.Type);
912 break;
913 }
914
915 return;
916}
917
918
919/*******************************************************************************
920 *
921 * FUNCTION: AcpiExDumpOperands
922 *
923 * PARAMETERS: Operands - A list of Operand objects
924 * OpcodeName - AML opcode name
925 * NumOperands - Operand count for this opcode
926 *
927 * DESCRIPTION: Dump the operands associated with the opcode
928 *
929 ******************************************************************************/
930
931void
933 ACPI_OPERAND_OBJECT **Operands,
934 const char *OpcodeName,
935 UINT32 NumOperands)
936{
937 ACPI_FUNCTION_TRACE (ExDumpOperands);
938
939
940 if (!OpcodeName)
941 {
942 OpcodeName = "UNKNOWN";
943 }
944
946 "**** Start operand dump for opcode [%s], %u operands\n",
947 OpcodeName, NumOperands));
948
949 if (NumOperands == 0)
950 {
951 NumOperands = 1;
952 }
953
954 /* Dump the individual operands */
955
956 while (NumOperands)
957 {
958 AcpiExDumpOperand (*Operands, 0);
959 Operands++;
960 NumOperands--;
961 }
962
964 "**** End operand dump for [%s]\n", OpcodeName));
966}
967
968
969/*******************************************************************************
970 *
971 * FUNCTION: AcpiExOut* functions
972 *
973 * PARAMETERS: Title - Descriptive text
974 * Value - Value to be displayed
975 *
976 * DESCRIPTION: Object dump output formatting functions. These functions
977 * reduce the number of format strings required and keeps them
978 * all in one place for easy modification.
979 *
980 ******************************************************************************/
981
982static void
983AcpiExOutString (
984 const char *Title,
985 const char *Value)
986{
987 AcpiOsPrintf ("%20s : %s\n", Title, Value);
988}
989
990static void
991AcpiExOutPointer (
992 const char *Title,
993 const void *Value)
994{
995 AcpiOsPrintf ("%20s : %p\n", Title, Value);
996}
997
998
999/*******************************************************************************
1000 *
1001 * FUNCTION: AcpiExDumpNamespaceNode
1002 *
1003 * PARAMETERS: Node - Descriptor to dump
1004 * Flags - Force display if TRUE
1005 *
1006 * DESCRIPTION: Dumps the members of the given.Node
1007 *
1008 ******************************************************************************/
1009
1010void
1013 UINT32 Flags)
1014{
1015
1017
1018
1019 if (!Flags)
1020 {
1021 /* Check if debug output enabled */
1022
1024 {
1025 return;
1026 }
1027 }
1028
1029 AcpiOsPrintf ("%20s : %4.4s\n", "Name", AcpiUtGetNodeName (Node));
1030 AcpiOsPrintf ("%20s : %2.2X [%s]\n", "Type",
1031 Node->Type, AcpiUtGetTypeName (Node->Type));
1032
1033 AcpiExDumpObject (ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, Node),
1034 AcpiExDumpNode);
1035}
1036
1037
1038/*******************************************************************************
1039 *
1040 * FUNCTION: AcpiExDumpReferenceObj
1041 *
1042 * PARAMETERS: Object - Descriptor to dump
1043 *
1044 * DESCRIPTION: Dumps a reference object
1045 *
1046 ******************************************************************************/
1047
1048static void
1049AcpiExDumpReferenceObj (
1050 ACPI_OPERAND_OBJECT *ObjDesc)
1051{
1052 ACPI_BUFFER RetBuf;
1054
1055
1057
1058 if (ObjDesc->Reference.Class == ACPI_REFCLASS_NAME)
1059 {
1060 AcpiOsPrintf (" %p ", ObjDesc->Reference.Node);
1061
1063 &RetBuf, TRUE);
1064 if (ACPI_FAILURE (Status))
1065 {
1066 AcpiOsPrintf (" Could not convert name to pathname: %s\n",
1068 }
1069 else
1070 {
1071 AcpiOsPrintf ("%s: %s\n",
1073 (char *) RetBuf.Pointer);
1074 ACPI_FREE (RetBuf.Pointer);
1075 }
1076 }
1077 else if (ObjDesc->Reference.Object)
1078 {
1080 {
1081 AcpiOsPrintf ("%22s %p", "Target :",
1082 ObjDesc->Reference.Object);
1083 if (ObjDesc->Reference.Class == ACPI_REFCLASS_TABLE)
1084 {
1085 AcpiOsPrintf (" Table Index: %X\n",
1086 ObjDesc->Reference.Value);
1087 }
1088 else
1089 {
1090 AcpiOsPrintf (" [%s]\n",
1092 ObjDesc->Reference.Object)->Common.Type));
1093 }
1094 }
1095 else
1096 {
1097 AcpiOsPrintf (" Target: %p\n", ObjDesc->Reference.Object);
1098 }
1099 }
1100}
1101
1102
1103/*******************************************************************************
1104 *
1105 * FUNCTION: AcpiExDumpPackageObj
1106 *
1107 * PARAMETERS: ObjDesc - Descriptor to dump
1108 * Level - Indentation Level
1109 * Index - Package index for this object
1110 *
1111 * DESCRIPTION: Dumps the elements of the package
1112 *
1113 ******************************************************************************/
1114
1115static void
1116AcpiExDumpPackageObj (
1117 ACPI_OPERAND_OBJECT *ObjDesc,
1118 UINT32 Level,
1119 UINT32 Index)
1120{
1121 UINT32 i;
1122
1123
1124 /* Indentation and index output */
1125
1126 if (Level > 0)
1127 {
1128 for (i = 0; i < Level; i++)
1129 {
1130 AcpiOsPrintf (" ");
1131 }
1132
1133 AcpiOsPrintf ("[%.2d] ", Index);
1134 }
1135
1136 AcpiOsPrintf ("%p ", ObjDesc);
1137
1138 /* Null package elements are allowed */
1139
1140 if (!ObjDesc)
1141 {
1142 AcpiOsPrintf ("[Null Object]\n");
1143 return;
1144 }
1145
1146 /* Packages may only contain a few object types */
1147
1148 switch (ObjDesc->Common.Type)
1149 {
1150 case ACPI_TYPE_INTEGER:
1151
1152 AcpiOsPrintf ("[Integer] = %8.8X%8.8X\n",
1153 ACPI_FORMAT_UINT64 (ObjDesc->Integer.Value));
1154 break;
1155
1156 case ACPI_TYPE_STRING:
1157
1158 AcpiOsPrintf ("[String] Value: ");
1159 AcpiUtPrintString (ObjDesc->String.Pointer, ACPI_UINT8_MAX);
1160 AcpiOsPrintf ("\n");
1161 break;
1162
1163 case ACPI_TYPE_BUFFER:
1164
1165 AcpiOsPrintf ("[Buffer] Length %.2X = ", ObjDesc->Buffer.Length);
1166 if (ObjDesc->Buffer.Length)
1167 {
1169 ACPI_CAST_PTR (UINT8, ObjDesc->Buffer.Pointer),
1170 ObjDesc->Buffer.Length, DB_DWORD_DISPLAY, _COMPONENT);
1171 }
1172 else
1173 {
1174 AcpiOsPrintf ("\n");
1175 }
1176 break;
1177
1178 case ACPI_TYPE_PACKAGE:
1179
1180 AcpiOsPrintf ("[Package] Contains %u Elements:\n",
1181 ObjDesc->Package.Count);
1182
1183 for (i = 0; i < ObjDesc->Package.Count; i++)
1184 {
1185 AcpiExDumpPackageObj (
1186 ObjDesc->Package.Elements[i], Level + 1, i);
1187 }
1188 break;
1189
1191
1192 AcpiOsPrintf ("[Object Reference] Class [%s]",
1193 AcpiUtGetReferenceName (ObjDesc));
1194 AcpiExDumpReferenceObj (ObjDesc);
1195 break;
1196
1197 default:
1198
1199 AcpiOsPrintf ("[%s] Type: %2.2X\n",
1200 AcpiUtGetTypeName (ObjDesc->Common.Type), ObjDesc->Common.Type);
1201 break;
1202 }
1203}
1204
1205
1206/*******************************************************************************
1207 *
1208 * FUNCTION: AcpiExDumpObjectDescriptor
1209 *
1210 * PARAMETERS: ObjDesc - Descriptor to dump
1211 * Flags - Force display if TRUE
1212 *
1213 * DESCRIPTION: Dumps the members of the object descriptor given.
1214 *
1215 ******************************************************************************/
1216
1217void
1219 ACPI_OPERAND_OBJECT *ObjDesc,
1220 UINT32 Flags)
1221{
1222 ACPI_FUNCTION_TRACE (ExDumpObjectDescriptor);
1223
1224
1225 if (!ObjDesc)
1226 {
1228 }
1229
1230 if (!Flags)
1231 {
1232 /* Check if debug output enabled */
1233
1235 {
1237 }
1238 }
1239
1241 {
1243
1244 ObjDesc = ((ACPI_NAMESPACE_NODE *) ObjDesc)->Object;
1245 if (!ObjDesc)
1246 {
1248 }
1249
1250 AcpiOsPrintf ("\nAttached Object %p", ObjDesc);
1252 {
1253 AcpiOsPrintf (" - Namespace Node");
1254 }
1255
1256 AcpiOsPrintf (":\n");
1257 goto DumpObject;
1258 }
1259
1261 {
1262 AcpiOsPrintf (
1263 "%p is not an ACPI operand object: [%s]\n",
1264 ObjDesc, AcpiUtGetDescriptorName (ObjDesc));
1266 }
1267
1268 /* Validate the object type */
1269
1270 if (ObjDesc->Common.Type > ACPI_TYPE_LOCAL_MAX)
1271 {
1272 AcpiOsPrintf ("Not a known object type: %2.2X\n",
1273 ObjDesc->Common.Type);
1275 }
1276
1277
1278DumpObject:
1279
1280 if (!ObjDesc)
1281 {
1283 }
1284
1285 /* Common Fields */
1286
1287 AcpiExDumpObject (ObjDesc, AcpiExDumpCommon);
1288
1289 /* Object-specific fields */
1290
1291 AcpiExDumpObject (ObjDesc, AcpiExDumpInfo[ObjDesc->Common.Type]);
1292
1293 if (ObjDesc->Common.Type == ACPI_TYPE_REGION)
1294 {
1295 ObjDesc = ObjDesc->Common.NextObject;
1296 if (ObjDesc->Common.Type > ACPI_TYPE_LOCAL_MAX)
1297 {
1298 AcpiOsPrintf (
1299 "Secondary object is not a known object type: %2.2X\n",
1300 ObjDesc->Common.Type);
1301
1303 }
1304
1305 AcpiOsPrintf ("\nExtra attached Object (%p):\n", ObjDesc);
1306 AcpiExDumpObject (ObjDesc, AcpiExDumpInfo[ObjDesc->Common.Type]);
1307 }
1308
1310}
1311
1312#endif
unsigned char UINT8
unsigned int UINT32
#define ACPI_FAILURE(a)
Definition: acexcep.h:95
#define ACPI_EXD_HDLR_LIST
Definition: acinterp.h:93
#define ACPI_EXD_TYPE
Definition: acinterp.h:79
#define ACPI_EXD_OFFSET(f)
Definition: acinterp.h:52
#define ACPI_EXD_BUFFER
Definition: acinterp.h:88
void AcpiExDumpOperands(ACPI_OPERAND_OBJECT **Operands, const char *OpcodeName, UINT32 NumOpcodes)
#define ACPI_EXD_POINTER
Definition: acinterp.h:85
#define ACPI_EXD_PACKAGE
Definition: acinterp.h:89
#define ACPI_EXD_UINT64
Definition: acinterp.h:83
#define ACPI_EXD_TABLE_SIZE(name)
Definition: acinterp.h:54
#define ACPI_EXD_INIT
Definition: acinterp.h:78
#define ACPI_EXD_UINT32
Definition: acinterp.h:82
#define ACPI_EXD_UINT16
Definition: acinterp.h:81
#define ACPI_EXD_NODE
Definition: acinterp.h:95
#define ACPI_EXD_NSOFFSET(f)
Definition: acinterp.h:53
#define ACPI_EXD_STRING
Definition: acinterp.h:87
void AcpiExDumpOperand(ACPI_OPERAND_OBJECT *ObjDesc, UINT32 Depth)
void AcpiExDumpNamespaceNode(ACPI_NAMESPACE_NODE *Node, UINT32 Flags)
#define ACPI_EXD_UINT8
Definition: acinterp.h:80
#define ACPI_EXD_LIST
Definition: acinterp.h:92
#define ACPI_EXD_ADDRESS
Definition: acinterp.h:86
#define ACPI_EXD_FIELD
Definition: acinterp.h:90
#define ACPI_EXD_RGN_LIST
Definition: acinterp.h:94
void AcpiExDumpObjectDescriptor(ACPI_OPERAND_OBJECT *Object, UINT32 Flags)
#define ACPI_EXD_REFERENCE
Definition: acinterp.h:91
#define ACPI_GET16(ptr)
Definition: acmacros.h:58
#define ACPI_GET32(ptr)
Definition: acmacros.h:59
#define ACPI_FORMAT_UINT64(i)
Definition: acmacros.h:71
#define ACPI_GET_DESCRIPTOR_TYPE(d)
Definition: acmacros.h:414
#define ACPI_GET64(ptr)
Definition: acmacros.h:60
ACPI_STATUS AcpiNsHandleToPathname(ACPI_HANDLE TargetHandle, ACPI_BUFFER *Buffer, BOOLEAN NoTrailing)
Definition: nsnames.c:187
#define ACPI_DESC_TYPE_OPERAND
Definition: acobject.h:576
#define ACPI_DESC_TYPE_NAMED
Definition: acobject.h:577
@ ACPI_REFCLASS_TABLE
Definition: acobject.h:463
@ ACPI_REFCLASS_NAME
Definition: acobject.h:464
@ ACPI_REFCLASS_ARG
Definition: acobject.h:460
@ ACPI_REFCLASS_INDEX
Definition: acobject.h:462
@ ACPI_REFCLASS_LOCAL
Definition: acobject.h:459
@ ACPI_REFCLASS_REFOF
Definition: acobject.h:461
@ ACPI_REFCLASS_DEBUG
Definition: acobject.h:465
#define AOPOBJ_DATA_VALID
Definition: acobject.h:96
#define ACPI_DEBUG_PRINT(pl)
Definition: acoutput.h:475
#define ACPI_MODULE_NAME(Name)
Definition: acoutput.h:216
#define ACPI_FUNCTION_ENTRY()
Definition: acoutput.h:484
#define ACPI_LV_EXEC
Definition: acoutput.h:101
#define ACPI_LV_OBJECTS
Definition: acoutput.h:107
#define ACPI_IS_DEBUG_ENABLED(Level, Component)
Definition: acoutput.h:490
#define ACPI_DB_EXEC
Definition: acoutput.h:165
#define ACPI_FUNCTION_TRACE(a)
Definition: acoutput.h:480
#define ACPI_DUMP_BUFFER(a, b)
Definition: acoutput.h:489
#define return_VOID
Definition: acoutput.h:495
#define ACPI_DUMP_ENTRY(a, b)
Definition: acoutput.h:487
#define ACPI_FUNCTION_NAME(a)
Definition: acoutput.h:479
void ACPI_INTERNAL_VAR_XFACE AcpiOsPrintf(const char *Format,...)
Definition: osl.c:851
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn UINT32 *TableIdx UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 ACPI_BUFFER *RetPathPtr ACPI_OBJECT_HANDLER void *Data ACPI_OBJECT_HANDLER void **Data ACPI_STRING ACPI_OBJECT_LIST ACPI_BUFFER *ReturnObjectBuffer ACPI_DEVICE_INFO **ReturnBuffer ACPI_HANDLE Parent
Definition: acpixf.h:732
#define ACPI_TYPE_LOCAL_REFERENCE
Definition: actypes.h:719
#define ACPI_TYPE_BUFFER_FIELD
Definition: actypes.h:701
#define ACPI_TYPE_STRING
Definition: actypes.h:689
#define ACPI_TYPE_LOCAL_BANK_FIELD
Definition: actypes.h:717
#define ACPI_TYPE_EVENT
Definition: actypes.h:694
#define ACPI_TYPE_PROCESSOR
Definition: actypes.h:699
#define ACPI_TYPE_LOCAL_DATA
Definition: actypes.h:736
#define ACPI_TYPE_MUTEX
Definition: actypes.h:696
#define ACPI_TYPE_BUFFER
Definition: actypes.h:690
#define ACPI_TYPE_REGION
Definition: actypes.h:697
#define ACPI_FREE(a)
Definition: actypes.h:386
#define ACPI_TYPE_INTEGER
Definition: actypes.h:688
#define ACPI_TYPE_LOCAL_REGION_FIELD
Definition: actypes.h:716
#define ACPI_TYPE_POWER
Definition: actypes.h:698
UINT32 ACPI_STATUS
Definition: actypes.h:460
#define ACPI_ADD_PTR(t, a, b)
Definition: actypes.h:546
#define ACPI_TYPE_DEVICE
Definition: actypes.h:693
#define ACPI_CAST_PTR(t, p)
Definition: actypes.h:544
#define ACPI_ALLOCATE_LOCAL_BUFFER
Definition: actypes.h:1047
#define ACPI_TYPE_PACKAGE
Definition: actypes.h:691
#define ACPI_UINT8_MAX
Definition: actypes.h:64
#define ACPI_TYPE_LOCAL_INDEX_FIELD
Definition: actypes.h:718
#define ACPI_TYPE_METHOD
Definition: actypes.h:695
#define ACPI_TYPE_LOCAL_MAX
Definition: actypes.h:738
#define ACPI_TYPE_THERMAL
Definition: actypes.h:700
const char * AcpiUtGetReferenceName(ACPI_OPERAND_OBJECT *Object)
Definition: utdecode.c:426
const char * AcpiUtGetRegionName(UINT8 SpaceId)
Definition: utdecode.c:125
const char * AcpiUtGetTypeName(ACPI_OBJECT_TYPE Type)
Definition: utdecode.c:250
void AcpiUtRepairName(char *Name)
Definition: utstring.c:183
const char * AcpiUtGetNodeName(void *Object)
Definition: utdecode.c:306
void AcpiUtPrintString(char *String, UINT16 MaxLength)
Definition: utstring.c:69
void AcpiUtDebugDumpBuffer(UINT8 *Buffer, UINT32 Count, UINT32 Display, UINT32 ComponentId)
Definition: utbuffer.c:219
const char * AcpiUtGetObjectTypeName(ACPI_OPERAND_OBJECT *ObjDesc)
Definition: utdecode.c:264
const char * AcpiUtGetDescriptorName(void *Object)
Definition: utdecode.c:382
#define DB_DWORD_DISPLAY
Definition: acutils.h:188
#define AML_FIELD_UPDATE_RULE_MASK
Definition: amlcode.h:444
#define AML_FIELD_LOCK_RULE_MASK
Definition: amlcode.h:443
struct NameRec_ * Name
Definition: cdprocs.h:460
Definition: bufpool.h:45
Definition: Mutex.h:16
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
BOOL WINAPI SHIM_OBJ_NAME() Notify(DWORD fdwReason, PVOID ptr)
union node Node
Definition: types.h:1255
static const WCHAR Title[]
Definition: oid.c:1259
#define _COMPONENT
Definition: exdump.c:51
_Must_inspect_result_ _In_opt_ PVOID OwnerId
Definition: fsrtlfuncs.h:907
Status
Definition: gdiplustypes.h:25
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
int Count
Definition: noreturn.cpp:7
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
void * Pointer
Definition: actypes.h:1054
ACPI_SIZE Length
Definition: actypes.h:1053
ACPI_NAME_UNION Name
Definition: aclocal.h:191
ACPI_OBJECT_COMMON_HEADER UINT8 SpaceId
Definition: acobject.h:412
union acpi_operand_object * Next
Definition: acobject.h:420
union acpi_operand_object * BufferObj
Definition: acobject.h:386
UINT8 * AmlStart
Definition: acobject.h:221
union acpi_operand_object ** Elements
Definition: acobject.h:161
ACPI_NAMESPACE_NODE * Node
Definition: acobject.h:447
ACPI_OBJECT_COMMON_HEADER UINT8 Class
Definition: acobject.h:443
union acpi_operand_object * RegionObj
Definition: acobject.h:346
ACPI_OBJECT_COMMON_HEADER UINT8 SpaceId
Definition: acobject.h:202
ACPI_PHYSICAL_ADDRESS Address
Definition: acobject.h:206
union acpi_operand_object * Next
Definition: acobject.h:205
char Ascii[4]
Definition: actbl.h:394
ACPI_OBJECT_REGION_FIELD Field
Definition: acobject.h:534
ACPI_OBJECT_METHOD Method
Definition: acobject.h:525
ACPI_OBJECT_ADDR_HANDLER AddressSpace
Definition: acobject.h:539
ACPI_OBJECT_BUFFER_FIELD BufferField
Definition: acobject.h:535
ACPI_OBJECT_REGION Region
Definition: acobject.h:527
ACPI_OBJECT_INTEGER Integer
Definition: acobject.h:520
ACPI_OBJECT_REFERENCE Reference
Definition: acobject.h:540
ACPI_OBJECT_COMMON Common
Definition: acobject.h:519
ACPI_OBJECT_PACKAGE Package
Definition: acobject.h:523
ACPI_OBJECT_STRING String
Definition: acobject.h:521
ACPI_OBJECT_BUFFER Buffer
Definition: acobject.h:522
Definition: dlist.c:348
@ Start
Definition: partlist.h:33
const char * AcpiFormatException(ACPI_STATUS Status)
Definition: utexcep.c:70
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
Definition: wdfchildlist.h:690
_Must_inspect_result_ _In_ WDFDEVICE Device
Definition: wdfchildlist.h:474
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
_In_ WDFCOLLECTION _In_ ULONG Index
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
Definition: wdfdevice.h:2433
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFDEVICE Child
Definition: wdffdo.h:536
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413
_In_ WDFIOTARGET Target
Definition: wdfrequest.h:306
_IRQL_requires_same_ typedef _In_ ULONG _In_ UCHAR Level
Definition: wmitypes.h:56
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
_In_opt_ PALLOCATE_FUNCTION _In_opt_ PFREE_FUNCTION _In_ ULONG _In_ SIZE_T _In_ ULONG _In_ USHORT Depth
Definition: exfuncs.h:819
_In_ ULONG _In_ PHYSICAL_ADDRESS _Inout_ PULONG AddressSpace
Definition: iofuncs.h:2274
_In_ UCHAR Processor
Definition: kefuncs.h:670