File indexing completed on 2025-05-11 08:24:03
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104
0105
0106
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119
0120
0121
0122
0123
0124
0125
0126
0127
0128
0129
0130
0131
0132
0133
0134
0135
0136
0137
0138
0139
0140
0141
0142
0143
0144
0145
0146
0147
0148
0149
0150
0151
0152
0153 #include "acpi.h"
0154 #include "accommon.h"
0155 #include "acnamesp.h"
0156 #include "acoutput.h"
0157
0158
0159 #define _COMPONENT ACPI_NAMESPACE
0160 ACPI_MODULE_NAME ("nsdump")
0161
0162
0163
0164 #ifdef ACPI_OBSOLETE_FUNCTIONS
0165 void
0166 AcpiNsDumpRootDevices (
0167 void);
0168
0169 static ACPI_STATUS
0170 AcpiNsDumpOneDevice (
0171 ACPI_HANDLE ObjHandle,
0172 UINT32 Level,
0173 void *Context,
0174 void **ReturnValue);
0175 #endif
0176
0177
0178 #if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
0179
0180 static ACPI_STATUS
0181 AcpiNsDumpOneObjectPath (
0182 ACPI_HANDLE ObjHandle,
0183 UINT32 Level,
0184 void *Context,
0185 void **ReturnValue);
0186
0187 static ACPI_STATUS
0188 AcpiNsGetMaxDepth (
0189 ACPI_HANDLE ObjHandle,
0190 UINT32 Level,
0191 void *Context,
0192 void **ReturnValue);
0193
0194
0195
0196
0197
0198
0199
0200
0201
0202
0203
0204
0205
0206
0207
0208 void
0209 AcpiNsPrintPathname (
0210 UINT32 NumSegments,
0211 const char *Pathname)
0212 {
0213 UINT32 i;
0214
0215
0216 ACPI_FUNCTION_NAME (NsPrintPathname);
0217
0218
0219
0220
0221 if (!ACPI_IS_DEBUG_ENABLED (ACPI_LV_NAMES, ACPI_NAMESPACE))
0222 {
0223 return;
0224 }
0225
0226
0227
0228 ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "["));
0229
0230 while (NumSegments)
0231 {
0232 for (i = 0; i < 4; i++)
0233 {
0234 isprint ((int) Pathname[i]) ?
0235 AcpiOsPrintf ("%c", Pathname[i]) :
0236 AcpiOsPrintf ("?");
0237 }
0238
0239 Pathname += ACPI_NAMESEG_SIZE;
0240 NumSegments--;
0241 if (NumSegments)
0242 {
0243 AcpiOsPrintf (".");
0244 }
0245 }
0246
0247 AcpiOsPrintf ("]\n");
0248 }
0249
0250
0251 #ifdef ACPI_OBSOLETE_FUNCTIONS
0252
0253
0254
0255
0256
0257
0258
0259
0260
0261
0262
0263
0264
0265
0266
0267
0268
0269
0270 void
0271 AcpiNsDumpPathname (
0272 ACPI_HANDLE Handle,
0273 const char *Msg,
0274 UINT32 Level,
0275 UINT32 Component)
0276 {
0277
0278 ACPI_FUNCTION_TRACE (NsDumpPathname);
0279
0280
0281
0282
0283 if (!ACPI_IS_DEBUG_ENABLED (Level, Component))
0284 {
0285 return_VOID;
0286 }
0287
0288
0289
0290 AcpiNsPrintNodePathname (Handle, Msg);
0291 AcpiOsPrintf ("\n");
0292 return_VOID;
0293 }
0294 #endif
0295
0296
0297
0298
0299
0300
0301
0302
0303
0304
0305
0306
0307
0308
0309
0310
0311
0312
0313 ACPI_STATUS
0314 AcpiNsDumpOneObject (
0315 ACPI_HANDLE ObjHandle,
0316 UINT32 Level,
0317 void *Context,
0318 void **ReturnValue)
0319 {
0320 ACPI_WALK_INFO *Info = (ACPI_WALK_INFO *) Context;
0321 ACPI_NAMESPACE_NODE *ThisNode;
0322 ACPI_OPERAND_OBJECT *ObjDesc = NULL;
0323 ACPI_OBJECT_TYPE ObjType;
0324 ACPI_OBJECT_TYPE Type;
0325 UINT32 BytesToDump;
0326 UINT32 DbgLevel;
0327 UINT32 i;
0328
0329
0330 ACPI_FUNCTION_NAME (NsDumpOneObject);
0331
0332
0333
0334
0335 if (!(AcpiDbgLevel & Info->DebugLevel))
0336 {
0337 return (AE_OK);
0338 }
0339
0340 if (!ObjHandle)
0341 {
0342 ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Null object handle\n"));
0343 return (AE_OK);
0344 }
0345
0346 ThisNode = AcpiNsValidateHandle (ObjHandle);
0347 if (!ThisNode)
0348 {
0349 ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Invalid object handle %p\n",
0350 ObjHandle));
0351 return (AE_OK);
0352 }
0353
0354 Type = ThisNode->Type;
0355 Info->Count++;
0356
0357
0358
0359 if ((Info->OwnerId != ACPI_OWNER_ID_MAX) &&
0360 (Info->OwnerId != ThisNode->OwnerId))
0361 {
0362 return (AE_OK);
0363 }
0364
0365 if (!(Info->DisplayType & ACPI_DISPLAY_SHORT))
0366 {
0367
0368
0369 AcpiOsPrintf ("%2d%*s", (UINT32) Level - 1, (int) Level * 2, " ");
0370
0371
0372
0373 if (Type > ACPI_TYPE_LOCAL_MAX)
0374 {
0375 ACPI_WARNING ((AE_INFO,
0376 "Invalid ACPI Object Type 0x%08X", Type));
0377 }
0378
0379 AcpiOsPrintf ("%4.4s", AcpiUtGetNodeName (ThisNode));
0380 }
0381
0382
0383
0384 AcpiOsPrintf (" %-12s %p %3.3X ",
0385 AcpiUtGetTypeName (Type), ThisNode, ThisNode->OwnerId);
0386
0387 DbgLevel = AcpiDbgLevel;
0388 AcpiDbgLevel = 0;
0389 ObjDesc = AcpiNsGetAttachedObject (ThisNode);
0390 AcpiDbgLevel = DbgLevel;
0391
0392
0393
0394 if (ThisNode->Flags & ANOBJ_TEMPORARY)
0395 {
0396 AcpiOsPrintf ("(T) ");
0397 }
0398
0399 switch (Info->DisplayType & ACPI_DISPLAY_MASK)
0400 {
0401 case ACPI_DISPLAY_SUMMARY:
0402
0403 if (!ObjDesc)
0404 {
0405
0406
0407 switch (Type)
0408 {
0409 case ACPI_TYPE_INTEGER:
0410 case ACPI_TYPE_PACKAGE:
0411 case ACPI_TYPE_BUFFER:
0412 case ACPI_TYPE_STRING:
0413 case ACPI_TYPE_METHOD:
0414
0415 AcpiOsPrintf ("<No attached object>");
0416 break;
0417
0418 default:
0419
0420 break;
0421 }
0422
0423 AcpiOsPrintf ("\n");
0424 return (AE_OK);
0425 }
0426
0427 switch (Type)
0428 {
0429 case ACPI_TYPE_PROCESSOR:
0430
0431 AcpiOsPrintf ("ID %02X Len %02X Addr %8.8X%8.8X\n",
0432 ObjDesc->Processor.ProcId, ObjDesc->Processor.Length,
0433 ACPI_FORMAT_UINT64 (ObjDesc->Processor.Address));
0434 break;
0435
0436 case ACPI_TYPE_DEVICE:
0437
0438 AcpiOsPrintf ("Notify Object: %p\n", ObjDesc);
0439 break;
0440
0441 case ACPI_TYPE_METHOD:
0442
0443 AcpiOsPrintf ("Args %X Len %.4X Aml %p\n",
0444 (UINT32) ObjDesc->Method.ParamCount,
0445 ObjDesc->Method.AmlLength, ObjDesc->Method.AmlStart);
0446 break;
0447
0448 case ACPI_TYPE_INTEGER:
0449
0450 AcpiOsPrintf ("= %8.8X%8.8X\n",
0451 ACPI_FORMAT_UINT64 (ObjDesc->Integer.Value));
0452 break;
0453
0454 case ACPI_TYPE_PACKAGE:
0455
0456 if (ObjDesc->Common.Flags & AOPOBJ_DATA_VALID)
0457 {
0458 AcpiOsPrintf ("Elements %.2X\n",
0459 ObjDesc->Package.Count);
0460 }
0461 else
0462 {
0463 AcpiOsPrintf ("[Length not yet evaluated]\n");
0464 }
0465 break;
0466
0467 case ACPI_TYPE_BUFFER:
0468
0469 if (ObjDesc->Common.Flags & AOPOBJ_DATA_VALID)
0470 {
0471 AcpiOsPrintf ("Len %.2X",
0472 ObjDesc->Buffer.Length);
0473
0474
0475
0476 if (ObjDesc->Buffer.Length > 0)
0477 {
0478 AcpiOsPrintf (" =");
0479 for (i = 0; (i < ObjDesc->Buffer.Length && i < 12); i++)
0480 {
0481 AcpiOsPrintf (" %2.2X", ObjDesc->Buffer.Pointer[i]);
0482 }
0483 }
0484 AcpiOsPrintf ("\n");
0485 }
0486 else
0487 {
0488 AcpiOsPrintf ("[Length not yet evaluated]\n");
0489 }
0490 break;
0491
0492 case ACPI_TYPE_STRING:
0493
0494 AcpiOsPrintf ("Len %.2X ", ObjDesc->String.Length);
0495 AcpiUtPrintString (ObjDesc->String.Pointer, 80);
0496 AcpiOsPrintf ("\n");
0497 break;
0498
0499 case ACPI_TYPE_REGION:
0500
0501 AcpiOsPrintf ("[%s]",
0502 AcpiUtGetRegionName (ObjDesc->Region.SpaceId));
0503 if (ObjDesc->Region.Flags & AOPOBJ_DATA_VALID)
0504 {
0505 AcpiOsPrintf (" Addr %8.8X%8.8X Len %.4X\n",
0506 ACPI_FORMAT_UINT64 (ObjDesc->Region.Address),
0507 ObjDesc->Region.Length);
0508 }
0509 else
0510 {
0511 AcpiOsPrintf (" [Address/Length not yet evaluated]\n");
0512 }
0513 break;
0514
0515 case ACPI_TYPE_LOCAL_REFERENCE:
0516
0517 AcpiOsPrintf ("[%s]\n", AcpiUtGetReferenceName (ObjDesc));
0518 break;
0519
0520 case ACPI_TYPE_BUFFER_FIELD:
0521
0522 if (ObjDesc->BufferField.BufferObj &&
0523 ObjDesc->BufferField.BufferObj->Buffer.Node)
0524 {
0525 AcpiOsPrintf ("Buf [%4.4s]",
0526 AcpiUtGetNodeName (
0527 ObjDesc->BufferField.BufferObj->Buffer.Node));
0528 }
0529 break;
0530
0531 case ACPI_TYPE_LOCAL_REGION_FIELD:
0532
0533 AcpiOsPrintf ("Rgn [%4.4s]",
0534 AcpiUtGetNodeName (
0535 ObjDesc->CommonField.RegionObj->Region.Node));
0536 break;
0537
0538 case ACPI_TYPE_LOCAL_BANK_FIELD:
0539
0540 AcpiOsPrintf ("Rgn [%4.4s] Bnk [%4.4s]",
0541 AcpiUtGetNodeName (
0542 ObjDesc->CommonField.RegionObj->Region.Node),
0543 AcpiUtGetNodeName (
0544 ObjDesc->BankField.BankObj->CommonField.Node));
0545 break;
0546
0547 case ACPI_TYPE_LOCAL_INDEX_FIELD:
0548
0549 AcpiOsPrintf ("Idx [%4.4s] Dat [%4.4s]",
0550 AcpiUtGetNodeName (
0551 ObjDesc->IndexField.IndexObj->CommonField.Node),
0552 AcpiUtGetNodeName (
0553 ObjDesc->IndexField.DataObj->CommonField.Node));
0554 break;
0555
0556 case ACPI_TYPE_LOCAL_ALIAS:
0557 case ACPI_TYPE_LOCAL_METHOD_ALIAS:
0558
0559 AcpiOsPrintf ("Target %4.4s (%p)\n",
0560 AcpiUtGetNodeName (ObjDesc), ObjDesc);
0561 break;
0562
0563 default:
0564
0565 AcpiOsPrintf ("Object %p\n", ObjDesc);
0566 break;
0567 }
0568
0569
0570
0571 switch (Type)
0572 {
0573 case ACPI_TYPE_BUFFER_FIELD:
0574 case ACPI_TYPE_LOCAL_REGION_FIELD:
0575 case ACPI_TYPE_LOCAL_BANK_FIELD:
0576 case ACPI_TYPE_LOCAL_INDEX_FIELD:
0577
0578 AcpiOsPrintf (" Off %.3X Len %.2X Acc %.2X\n",
0579 (ObjDesc->CommonField.BaseByteOffset * 8)
0580 + ObjDesc->CommonField.StartFieldBitOffset,
0581 ObjDesc->CommonField.BitLength,
0582 ObjDesc->CommonField.AccessByteWidth);
0583 break;
0584
0585 default:
0586
0587 break;
0588 }
0589 break;
0590
0591 case ACPI_DISPLAY_OBJECTS:
0592
0593 AcpiOsPrintf ("O:%p", ObjDesc);
0594 if (!ObjDesc)
0595 {
0596
0597
0598 AcpiOsPrintf ("\n");
0599 return (AE_OK);
0600 }
0601
0602 AcpiOsPrintf ("(R%u)", ObjDesc->Common.ReferenceCount);
0603
0604 switch (Type)
0605 {
0606 case ACPI_TYPE_METHOD:
0607
0608
0609
0610 AcpiOsPrintf (" M:%p-%X\n", ObjDesc->Method.AmlStart,
0611 ObjDesc->Method.AmlLength);
0612 break;
0613
0614 case ACPI_TYPE_INTEGER:
0615
0616 AcpiOsPrintf (" I:%8.8X8.8%X\n",
0617 ACPI_FORMAT_UINT64 (ObjDesc->Integer.Value));
0618 break;
0619
0620 case ACPI_TYPE_STRING:
0621
0622 AcpiOsPrintf (" S:%p-%X\n", ObjDesc->String.Pointer,
0623 ObjDesc->String.Length);
0624 break;
0625
0626 case ACPI_TYPE_BUFFER:
0627
0628 AcpiOsPrintf (" B:%p-%X\n", ObjDesc->Buffer.Pointer,
0629 ObjDesc->Buffer.Length);
0630 break;
0631
0632 default:
0633
0634 AcpiOsPrintf ("\n");
0635 break;
0636 }
0637 break;
0638
0639 default:
0640 AcpiOsPrintf ("\n");
0641 break;
0642 }
0643
0644
0645
0646 if (!(AcpiDbgLevel & ACPI_LV_VALUES))
0647 {
0648 return (AE_OK);
0649 }
0650
0651
0652
0653 DbgLevel = AcpiDbgLevel;
0654 AcpiDbgLevel = 0;
0655 ObjDesc = AcpiNsGetAttachedObject (ThisNode);
0656 AcpiDbgLevel = DbgLevel;
0657
0658
0659
0660 while (ObjDesc)
0661 {
0662 ObjType = ACPI_TYPE_INVALID;
0663 AcpiOsPrintf ("Attached Object %p: ", ObjDesc);
0664
0665
0666
0667 switch (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc))
0668 {
0669 case ACPI_DESC_TYPE_NAMED:
0670
0671 AcpiOsPrintf ("(Ptr to Node)\n");
0672 BytesToDump = sizeof (ACPI_NAMESPACE_NODE);
0673 ACPI_DUMP_BUFFER (ObjDesc, BytesToDump);
0674 break;
0675
0676 case ACPI_DESC_TYPE_OPERAND:
0677
0678 ObjType = ObjDesc->Common.Type;
0679
0680 if (ObjType > ACPI_TYPE_LOCAL_MAX)
0681 {
0682 AcpiOsPrintf (
0683 "(Pointer to ACPI Object type %.2X [UNKNOWN])\n",
0684 ObjType);
0685
0686 BytesToDump = 32;
0687 }
0688 else
0689 {
0690 AcpiOsPrintf (
0691 "(Pointer to ACPI Object type %.2X [%s])\n",
0692 ObjType, AcpiUtGetTypeName (ObjType));
0693
0694 BytesToDump = sizeof (ACPI_OPERAND_OBJECT);
0695 }
0696
0697 ACPI_DUMP_BUFFER (ObjDesc, BytesToDump);
0698 break;
0699
0700 default:
0701
0702 break;
0703 }
0704
0705
0706
0707 if (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) != ACPI_DESC_TYPE_OPERAND)
0708 {
0709 goto Cleanup;
0710 }
0711
0712
0713
0714 switch (ObjType)
0715 {
0716 case ACPI_TYPE_BUFFER:
0717 case ACPI_TYPE_STRING:
0718
0719
0720
0721 BytesToDump = ObjDesc->String.Length;
0722 ObjDesc = (void *) ObjDesc->String.Pointer;
0723
0724 AcpiOsPrintf ("(Buffer/String pointer %p length %X)\n",
0725 ObjDesc, BytesToDump);
0726 ACPI_DUMP_BUFFER (ObjDesc, BytesToDump);
0727 goto Cleanup;
0728
0729 case ACPI_TYPE_BUFFER_FIELD:
0730
0731 ObjDesc = (ACPI_OPERAND_OBJECT *) ObjDesc->BufferField.BufferObj;
0732 break;
0733
0734 case ACPI_TYPE_PACKAGE:
0735
0736 ObjDesc = (void *) ObjDesc->Package.Elements;
0737 break;
0738
0739 case ACPI_TYPE_METHOD:
0740
0741 ObjDesc = (void *) ObjDesc->Method.AmlStart;
0742 break;
0743
0744 case ACPI_TYPE_LOCAL_REGION_FIELD:
0745
0746 ObjDesc = (void *) ObjDesc->Field.RegionObj;
0747 break;
0748
0749 case ACPI_TYPE_LOCAL_BANK_FIELD:
0750
0751 ObjDesc = (void *) ObjDesc->BankField.RegionObj;
0752 break;
0753
0754 case ACPI_TYPE_LOCAL_INDEX_FIELD:
0755
0756 ObjDesc = (void *) ObjDesc->IndexField.IndexObj;
0757 break;
0758
0759 default:
0760
0761 goto Cleanup;
0762 }
0763 }
0764
0765 Cleanup:
0766 AcpiOsPrintf ("\n");
0767 return (AE_OK);
0768 }
0769
0770
0771
0772
0773
0774
0775
0776
0777
0778
0779
0780
0781
0782
0783
0784
0785
0786
0787
0788
0789
0790 void
0791 AcpiNsDumpObjects (
0792 ACPI_OBJECT_TYPE Type,
0793 UINT8 DisplayType,
0794 UINT32 MaxDepth,
0795 ACPI_OWNER_ID OwnerId,
0796 ACPI_HANDLE StartHandle)
0797 {
0798 ACPI_WALK_INFO Info;
0799 ACPI_STATUS Status;
0800
0801
0802 ACPI_FUNCTION_ENTRY ();
0803
0804
0805
0806
0807
0808
0809
0810
0811 Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
0812 if (ACPI_FAILURE (Status))
0813 {
0814 AcpiOsPrintf ("Could not acquire namespace mutex\n");
0815 return;
0816 }
0817
0818 Info.Count = 0;
0819 Info.DebugLevel = ACPI_LV_TABLES;
0820 Info.OwnerId = OwnerId;
0821 Info.DisplayType = DisplayType;
0822
0823 (void) AcpiNsWalkNamespace (Type, StartHandle, MaxDepth,
0824 ACPI_NS_WALK_NO_UNLOCK | ACPI_NS_WALK_TEMP_NODES,
0825 AcpiNsDumpOneObject, NULL, (void *) &Info, NULL);
0826
0827 AcpiOsPrintf ("\nNamespace node count: %u\n\n", Info.Count);
0828 (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
0829 }
0830
0831
0832
0833
0834
0835
0836
0837
0838
0839
0840
0841
0842
0843
0844
0845
0846
0847
0848
0849
0850 static ACPI_STATUS
0851 AcpiNsDumpOneObjectPath (
0852 ACPI_HANDLE ObjHandle,
0853 UINT32 Level,
0854 void *Context,
0855 void **ReturnValue)
0856 {
0857 UINT32 MaxLevel = *((UINT32 *) Context);
0858 char *Pathname;
0859 ACPI_NAMESPACE_NODE *Node;
0860 int PathIndent;
0861
0862
0863 if (!ObjHandle)
0864 {
0865 return (AE_OK);
0866 }
0867
0868 Node = AcpiNsValidateHandle (ObjHandle);
0869 if (!Node)
0870 {
0871
0872
0873 return (AE_OK);
0874 }
0875
0876 Pathname = AcpiNsGetNormalizedPathname (Node, TRUE);
0877
0878 PathIndent = 1;
0879 if (Level <= MaxLevel)
0880 {
0881 PathIndent = MaxLevel - Level + 1;
0882 }
0883
0884 AcpiOsPrintf ("%2d%*s%-12s%*s",
0885 Level, Level, " ", AcpiUtGetTypeName (Node->Type),
0886 PathIndent, " ");
0887
0888 AcpiOsPrintf ("%s\n", &Pathname[1]);
0889 ACPI_FREE (Pathname);
0890 return (AE_OK);
0891 }
0892
0893
0894 static ACPI_STATUS
0895 AcpiNsGetMaxDepth (
0896 ACPI_HANDLE ObjHandle,
0897 UINT32 Level,
0898 void *Context,
0899 void **ReturnValue)
0900 {
0901 UINT32 *MaxLevel = (UINT32 *) Context;
0902
0903
0904 if (Level > *MaxLevel)
0905 {
0906 *MaxLevel = Level;
0907 }
0908 return (AE_OK);
0909 }
0910
0911
0912
0913
0914
0915
0916
0917
0918
0919
0920
0921
0922
0923
0924
0925
0926
0927
0928
0929
0930
0931 void
0932 AcpiNsDumpObjectPaths (
0933 ACPI_OBJECT_TYPE Type,
0934 UINT8 DisplayType,
0935 UINT32 MaxDepth,
0936 ACPI_OWNER_ID OwnerId,
0937 ACPI_HANDLE StartHandle)
0938 {
0939 ACPI_STATUS Status;
0940 UINT32 MaxLevel = 0;
0941
0942
0943 ACPI_FUNCTION_ENTRY ();
0944
0945
0946
0947
0948
0949
0950
0951
0952 Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
0953 if (ACPI_FAILURE (Status))
0954 {
0955 AcpiOsPrintf ("Could not acquire namespace mutex\n");
0956 return;
0957 }
0958
0959
0960
0961 (void) AcpiNsWalkNamespace (Type, StartHandle, MaxDepth,
0962 ACPI_NS_WALK_NO_UNLOCK | ACPI_NS_WALK_TEMP_NODES,
0963 AcpiNsGetMaxDepth, NULL, (void *) &MaxLevel, NULL);
0964
0965
0966
0967 (void) AcpiNsWalkNamespace (Type, StartHandle, MaxDepth,
0968 ACPI_NS_WALK_NO_UNLOCK | ACPI_NS_WALK_TEMP_NODES,
0969 AcpiNsDumpOneObjectPath, NULL, (void *) &MaxLevel, NULL);
0970
0971 (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
0972 }
0973
0974
0975
0976
0977
0978
0979
0980
0981
0982
0983
0984
0985
0986
0987
0988 void
0989 AcpiNsDumpEntry (
0990 ACPI_HANDLE Handle,
0991 UINT32 DebugLevel)
0992 {
0993 ACPI_WALK_INFO Info;
0994
0995
0996 ACPI_FUNCTION_ENTRY ();
0997
0998
0999 Info.DebugLevel = DebugLevel;
1000 Info.OwnerId = ACPI_OWNER_ID_MAX;
1001 Info.DisplayType = ACPI_DISPLAY_SUMMARY;
1002
1003 (void) AcpiNsDumpOneObject (Handle, 1, &Info, NULL);
1004 }
1005
1006
1007 #ifdef ACPI_ASL_COMPILER
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023 void
1024 AcpiNsDumpTables (
1025 ACPI_HANDLE SearchBase,
1026 UINT32 MaxDepth)
1027 {
1028 ACPI_HANDLE SearchHandle = SearchBase;
1029
1030
1031 ACPI_FUNCTION_TRACE (NsDumpTables);
1032
1033
1034 if (!AcpiGbl_RootNode)
1035 {
1036
1037
1038
1039
1040 ACPI_DEBUG_PRINT ((ACPI_DB_TABLES,
1041 "namespace not initialized!\n"));
1042 return_VOID;
1043 }
1044
1045 if (ACPI_NS_ALL == SearchBase)
1046 {
1047
1048
1049 SearchHandle = AcpiGbl_RootNode;
1050 ACPI_DEBUG_PRINT ((ACPI_DB_TABLES, "\\\n"));
1051 }
1052
1053 AcpiNsDumpObjects (ACPI_TYPE_ANY, ACPI_DISPLAY_OBJECTS, MaxDepth,
1054 ACPI_OWNER_ID_MAX, SearchHandle);
1055 return_VOID;
1056 }
1057 #endif
1058 #endif