Deleted Added
sdiff udiff text old ( 151937 ) new ( 167802 )
full compact
1/*******************************************************************************
2 *
3 * Module Name: dbcmds - debug commands and output routines
4 * $Revision: 1.132 $
5 *
6 ******************************************************************************/
7
8/******************************************************************************
9 *
10 * 1. Copyright Notice
11 *
12 * Some or all of this work - Copyright (c) 1999 - 2005, Intel Corp.
13 * All rights reserved.
14 *
15 * 2. License
16 *
17 * 2.1. This is your license from Intel Corp. under its intellectual property
18 * rights. You may have additional license terms from the party that provided
19 * you this software, covering your right to use that party's intellectual
20 * property rights.

--- 175 unchanged lines hidden (view full) ---

196 {"METHODS"},
197 {"MUTEXES"},
198 {"REGIONS"},
199 {"POWERRESOURCES"},
200 {"PROCESSORS"},
201 {"THERMALZONES"},
202 {"BUFFERFIELDS"},
203 {"DDBHANDLES"},
204 {NULL} /* Must be null terminated */
205};
206
207
208/*******************************************************************************
209 *
210 * FUNCTION: AcpiDbConvertToNode
211 *

--- 62 unchanged lines hidden (view full) ---

274 * DESCRIPTION: Simulate a sleep/wake sequence
275 *
276 ******************************************************************************/
277
278ACPI_STATUS
279AcpiDbSleep (
280 char *ObjectArg)
281{
282#if ACPI_MACHINE_WIDTH == 16
283 return (AE_OK);
284#else
285 ACPI_STATUS Status;
286 UINT8 SleepState;
287
288
289 SleepState = (UINT8) ACPI_STRTOUL (ObjectArg, NULL, 0);
290
291 AcpiOsPrintf ("**** Prepare to sleep ****\n");
292 Status = AcpiEnterSleepStatePrep (SleepState);

--- 8 unchanged lines hidden (view full) ---

301 {
302 return (Status);
303 }
304
305 AcpiOsPrintf ("**** returning from sleep ****\n");
306 Status = AcpiLeaveSleepState (SleepState);
307
308 return (Status);
309#endif
310}
311
312
313/*******************************************************************************
314 *
315 * FUNCTION: AcpiDbWalkForReferences
316 *
317 * PARAMETERS: Callback from WalkNamespace

--- 82 unchanged lines hidden (view full) ---

400
401void
402AcpiDbDisplayLocks (
403 void)
404{
405 UINT32 i;
406
407
408 for (i = 0; i < MAX_MUTEX; i++)
409 {
410 AcpiOsPrintf ("%26s : %s\n", AcpiUtGetMutexName (i),
411 AcpiGbl_MutexInfo[i].ThreadId == ACPI_MUTEX_NOT_ACQUIRED
412 ? "Locked" : "Unlocked");
413 }
414}
415
416
417/*******************************************************************************
418 *
419 * FUNCTION: AcpiDbDisplayTableInfo
420 *

--- 5 unchanged lines hidden (view full) ---

426 * implementation displays all loaded tables.
427 *
428 ******************************************************************************/
429
430void
431AcpiDbDisplayTableInfo (
432 char *TableArg)
433{
434 UINT32 i;
435 ACPI_TABLE_DESC *TableDesc;
436
437
438 for (i = 0; i < NUM_ACPI_TABLE_TYPES; i++)
439 {
440 TableDesc = AcpiGbl_TableLists[i].Next;
441 while (TableDesc)
442 {
443 AcpiOsPrintf ( "%s at %p length %.5X",
444 AcpiGbl_TableData[i].Name, TableDesc->Pointer,
445 (UINT32) TableDesc->Length);
446
447 if (i != ACPI_TABLE_FACS)
448 {
449 AcpiOsPrintf (" OemID=%6s TableId=%8s OemRevision=%8.8X",
450 TableDesc->Pointer->OemId,
451 TableDesc->Pointer->OemTableId,
452 TableDesc->Pointer->OemRevision);
453 }
454 AcpiOsPrintf ("\n");
455
456 TableDesc = TableDesc->Next;
457 }
458 }
459}
460
461
462/*******************************************************************************
463 *
464 * FUNCTION: AcpiDbUnloadAcpiTable
465 *

--- 8 unchanged lines hidden (view full) ---

474 *
475 ******************************************************************************/
476
477void
478AcpiDbUnloadAcpiTable (
479 char *TableArg,
480 char *InstanceArg)
481{
482 UINT32 i;
483 ACPI_STATUS Status;
484
485
486 /* Search all tables for the target type */
487
488 for (i = 0; i < NUM_ACPI_TABLE_TYPES; i++)
489 {
490 if (!ACPI_STRNCMP (TableArg, AcpiGbl_TableData[i].Signature,
491 AcpiGbl_TableData[i].SigLength))
492 {
493 /* Found the table, unload it */
494
495 Status = AcpiUnloadTable (i);
496 if (ACPI_SUCCESS (Status))

--- 6 unchanged lines hidden (view full) ---

503 AcpiFormatException (Status), TableArg);
504 }
505
506 return;
507 }
508 }
509
510 AcpiOsPrintf ("Unknown table type [%s]\n", TableArg);
511}
512
513
514/*******************************************************************************
515 *
516 * FUNCTION: AcpiDbSetMethodBreakpoint
517 *
518 * PARAMETERS: Location - AML offset of breakpoint

--- 147 unchanged lines hidden (view full) ---

666 WalkState = AcpiDsCreateWalkState (0, Op, NULL, NULL);
667 if (!WalkState)
668 {
669 return (AE_NO_MEMORY);
670 }
671
672 Status = AcpiDsInitAmlWalk (WalkState, Op, NULL,
673 ObjDesc->Method.AmlStart,
674 ObjDesc->Method.AmlLength, NULL, 1);
675 if (ACPI_FAILURE (Status))
676 {
677 return (Status);
678 }
679
680 /* Parse the AML */
681
682 WalkState->ParseFlags &= ~ACPI_PARSE_DELETE_TREE;

--- 243 unchanged lines hidden (view full) ---

926 {
927 case 'A':
928
929 /* Set a method argument */
930
931 if (Index > ACPI_METHOD_MAX_ARG)
932 {
933 AcpiOsPrintf ("Arg%d - Invalid argument name\n", Index);
934 return;
935 }
936
937 Status = AcpiDsStoreObjectToLocal (AML_ARG_OP, Index, ObjDesc,
938 WalkState);
939 if (ACPI_FAILURE (Status))
940 {
941 return;
942 }
943
944 ObjDesc = WalkState->Arguments[Index].Object;
945
946 AcpiOsPrintf ("Arg%d: ", Index);
947 AcpiDmDisplayInternalObject (ObjDesc, WalkState);
948 break;
949
950 case 'L':
951
952 /* Set a method local */
953
954 if (Index > ACPI_METHOD_MAX_LOCAL)
955 {
956 AcpiOsPrintf ("Local%d - Invalid local variable name\n", Index);
957 return;
958 }
959
960 Status = AcpiDsStoreObjectToLocal (AML_LOCAL_OP, Index, ObjDesc,
961 WalkState);
962 if (ACPI_FAILURE (Status))
963 {
964 return;
965 }
966
967 ObjDesc = WalkState->LocalVariables[Index].Object;
968
969 AcpiOsPrintf ("Local%d: ", Index);
970 AcpiDmDisplayInternalObject (ObjDesc, WalkState);
971 break;
972
973 default:
974 break;
975 }
976}
977
978
979/*******************************************************************************
980 *
981 * FUNCTION: AcpiDbWalkForSpecificObjects
982 *
983 * PARAMETERS: Callback from WalkNamespace

--- 24 unchanged lines hidden (view full) ---

1008 Status = AcpiNsHandleToPathname (ObjHandle, &Buffer);
1009 if (ACPI_FAILURE (Status))
1010 {
1011 AcpiOsPrintf ("Could Not get pathname for object %p\n", ObjHandle);
1012 return (AE_OK);
1013 }
1014
1015 AcpiOsPrintf ("%32s", (char *) Buffer.Pointer);
1016 ACPI_MEM_FREE (Buffer.Pointer);
1017
1018 /* Dump short info about the object */
1019
1020 (void) AcpiNsDumpOneObject (ObjHandle, NestingLevel, Info, NULL);
1021 return (AE_OK);
1022}
1023
1024

--- 107 unchanged lines hidden (view full) ---

1132 else
1133 {
1134 Info.OwnerId = ACPI_OWNER_ID_MAX;
1135 Info.DebugLevel = ACPI_UINT32_MAX;
1136 Info.DisplayType = ACPI_DISPLAY_SUMMARY | ACPI_DISPLAY_SHORT;
1137
1138 AcpiOsPrintf ("%32s", (char *) Buffer.Pointer);
1139 (void) AcpiNsDumpOneObject (ObjHandle, NestingLevel, &Info, NULL);
1140 ACPI_MEM_FREE (Buffer.Pointer);
1141 }
1142
1143 return (AE_OK);
1144}
1145
1146
1147/*******************************************************************************
1148 *

--- 58 unchanged lines hidden (view full) ---

1207 }
1208
1209 AcpiDbPrepNamestring (Name);
1210
1211 if (Name[0] == '\\')
1212 {
1213 /* Validate new scope from the root */
1214
1215 Status = AcpiNsGetNodeByPath (Name, AcpiGbl_RootNode,
1216 ACPI_NS_NO_UPSEARCH, &Node);
1217 if (ACPI_FAILURE (Status))
1218 {
1219 goto ErrorExit;
1220 }
1221
1222 ACPI_STRCPY (AcpiGbl_DbScopeBuf, Name);
1223 ACPI_STRCAT (AcpiGbl_DbScopeBuf, "\\");
1224 }
1225 else
1226 {
1227 /* Validate new scope relative to old scope */
1228
1229 Status = AcpiNsGetNodeByPath (Name, AcpiGbl_DbScopeNode,
1230 ACPI_NS_NO_UPSEARCH, &Node);
1231 if (ACPI_FAILURE (Status))
1232 {
1233 goto ErrorExit;
1234 }
1235
1236 ACPI_STRCAT (AcpiGbl_DbScopeBuf, Name);
1237 ACPI_STRCAT (AcpiGbl_DbScopeBuf, "\\");
1238 }

--- 65 unchanged lines hidden (view full) ---

1304
1305 /* Check for descriptor length match */
1306
1307 if (Aml1Length != Aml2Length)
1308 {
1309 AcpiOsPrintf (
1310 "**** Length mismatch in descriptor [%.2X] type %2.2X, Offset %8.8X L1 %X L2 %X ****\n",
1311 Count, ResourceType, Offset, Aml1Length, Aml2Length);
1312 return;
1313 }
1314
1315 /* Check for descriptor byte match */
1316
1317 if (ACPI_MEMCMP (Aml1, Aml2, Aml1Length))
1318 {
1319 AcpiOsPrintf (
1320 "**** Data mismatch in descriptor [%.2X] type %2.2X, Offset %8.8X ****\n",
1321 Count, ResourceType, Offset);
1322 }
1323
1324 /* Exit on EndTag descriptor */
1325
1326 if (ResourceType == ACPI_RESOURCE_NAME_END_TAG)
1327 {
1328 return;
1329 }
1330
1331 /* Point to next descriptor in each buffer */
1332
1333 Count++;
1334 Offset += Aml1Length;
1335 Aml1 += Aml1Length;
1336 Aml2 += Aml1Length;
1337 }
1338}
1339
1340
1341/*******************************************************************************
1342 *
1343 * FUNCTION: AcpiDmTestResourceConversion
1344 *

--- 60 unchanged lines hidden (view full) ---

1405 OriginalAml = ReturnObj.Pointer;
1406
1407 AcpiDmCompareAmlResources (
1408 OriginalAml->Buffer.Pointer, OriginalAml->Buffer.Length,
1409 NewAml.Pointer, NewAml.Length);
1410
1411 /* Cleanup and exit */
1412
1413 ACPI_MEM_FREE (NewAml.Pointer);
1414Exit2:
1415 ACPI_MEM_FREE (ResourceObj.Pointer);
1416Exit1:
1417 ACPI_MEM_FREE (ReturnObj.Pointer);
1418 return (Status);
1419}
1420
1421
1422/*******************************************************************************
1423 *
1424 * FUNCTION: AcpiDbDisplayResources
1425 *

--- 4 unchanged lines hidden (view full) ---

1430 * DESCRIPTION: Display the resource objects associated with a device.
1431 *
1432 ******************************************************************************/
1433
1434void
1435AcpiDbDisplayResources (
1436 char *ObjectArg)
1437{
1438#if ACPI_MACHINE_WIDTH != 16
1439
1440 ACPI_NAMESPACE_NODE *Node;
1441 ACPI_STATUS Status;
1442 ACPI_BUFFER ReturnObj;
1443
1444
1445 AcpiDbSetOutputDestination (ACPI_DB_REDIRECTABLE_OUTPUT);
1446 AcpiDbgLevel |= ACPI_LV_RESOURCES;
1447

--- 30 unchanged lines hidden (view full) ---

1478 Status = AcpiGetIrqRoutingTable (Node, &ReturnObj);
1479 if (ACPI_FAILURE (Status))
1480 {
1481 AcpiOsPrintf ("GetIrqRoutingTable failed: %s\n",
1482 AcpiFormatException (Status));
1483 goto GetCrs;
1484 }
1485
1486 AcpiRsDumpIrqList ((UINT8 *) AcpiGbl_DbBuffer);
1487
1488
1489 /* _CRS */
1490
1491GetCrs:
1492 AcpiOsPrintf ("Evaluating _CRS\n");
1493
1494 ReturnObj.Pointer = AcpiGbl_DbBuffer;

--- 74 unchanged lines hidden (view full) ---

1569 }
1570
1571 AcpiRsDumpResourceList (ACPI_CAST_PTR (ACPI_RESOURCE, AcpiGbl_DbBuffer));
1572
1573Cleanup:
1574
1575 AcpiDbSetOutputDestination (ACPI_DB_CONSOLE_OUTPUT);
1576 return;
1577#endif
1578}
1579
1580
1581/*******************************************************************************
1582 *
1583 * FUNCTION: AcpiDbIntegrityWalk
1584 *
1585 * PARAMETERS: Callback from WalkNamespace

--- 143 unchanged lines hidden (view full) ---

1729 ACPI_INTEGER ADR;
1730 ACPI_DEVICE_ID Id;
1731 ACPI_COMPATIBLE_ID_LIST *Cid;
1732 ACPI_NAMESPACE_NODE *TempNode;
1733
1734
1735 /* Exit if there is no _PRT under this device */
1736
1737 Status = AcpiGetHandle (Node, METHOD_NAME__PRT, &TempNode);
1738 if (ACPI_FAILURE (Status))
1739 {
1740 return (AE_OK);
1741 }
1742
1743 /* Get the full path to this device object */
1744
1745 Buffer.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
1746 Status = AcpiNsHandleToPathname (ObjHandle, &Buffer);
1747 if (ACPI_FAILURE (Status))
1748 {
1749 AcpiOsPrintf ("Could Not get pathname for object %p\n", ObjHandle);
1750 return (AE_OK);
1751 }
1752
1753 /* Display the full path */
1754
1755 AcpiOsPrintf ("%-32s", (char *) Buffer.Pointer);
1756 ACPI_MEM_FREE (Buffer.Pointer);
1757
1758 /* _PRT info */
1759
1760 AcpiOsPrintf ("_PRT=%p", TempNode);
1761
1762 /* Get the _ADR value */
1763
1764 Status = AcpiUtEvaluateNumericObject (METHOD_NAME__ADR, Node, &ADR);

--- 27 unchanged lines hidden (view full) ---

1792 }
1793
1794 /* Get the _CID if present */
1795
1796 Status = AcpiUtExecute_CID (Node, &Cid);
1797 if (ACPI_SUCCESS (Status))
1798 {
1799 AcpiOsPrintf (" _CID=%s", Cid->Id[0].Value);
1800 ACPI_MEM_FREE (Cid);
1801 }
1802
1803 AcpiOsPrintf ("\n");
1804 return (AE_OK);
1805}
1806
1807
1808/*******************************************************************************

--- 22 unchanged lines hidden ---