2005-06-29 22:15:45 +04:00
|
|
|
|
|
|
|
/******************************************************************************
|
|
|
|
*
|
|
|
|
* Module Name: nsdump - table dumping routines for debug
|
|
|
|
*
|
|
|
|
*****************************************************************************/
|
|
|
|
|
|
|
|
/******************************************************************************
|
|
|
|
*
|
|
|
|
* 1. Copyright Notice
|
|
|
|
*
|
|
|
|
* Some or all of this work - Copyright (c) 1999, Intel Corp. All rights
|
|
|
|
* reserved.
|
|
|
|
*
|
|
|
|
* 2. License
|
|
|
|
*
|
|
|
|
* 2.1. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
|
|
|
* copy of the source code appearing in this file ("Covered Code") a license
|
|
|
|
* under Intel's copyrights in the base code distributed originally by Intel
|
|
|
|
* ("Original Intel Code") to copy, make derivatives, distribute, use and
|
|
|
|
* display any portion of the Covered Code in any form; and
|
|
|
|
*
|
|
|
|
* 2.2. Intel grants Licensee a non-exclusive and non-transferable patent
|
|
|
|
* license (without the right to sublicense), under only those claims of Intel
|
|
|
|
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
|
|
|
* offer to sell, and import the Covered Code and derivative works thereof
|
|
|
|
* solely to the minimum extent necessary to exercise the above copyright
|
|
|
|
* license, and in no event shall the patent license extend to any additions to
|
|
|
|
* or modifications of the Original Intel Code. No other license or right is
|
|
|
|
* granted directly or by implication, estoppel or otherwise;
|
|
|
|
*
|
|
|
|
* the above copyright and patent license is granted only if the following
|
|
|
|
* conditions are met:
|
|
|
|
*
|
|
|
|
* 3. Conditions
|
|
|
|
*
|
|
|
|
* 3.1. Redistribution of source code of any substantial portion of the Covered
|
|
|
|
* Code or modification must include the above Copyright Notice, the above
|
|
|
|
* License, this list of Conditions, and the following Disclaimer and Export
|
|
|
|
* Compliance provision. In addition, Licensee must cause all Covered Code to
|
|
|
|
* which Licensee contributes to contain a file documenting the changes
|
|
|
|
* Licensee made to create that Covered Code and the date of any change.
|
|
|
|
* Licensee must include in that file the documentation of any changes made by
|
|
|
|
* any predecessor Licensee. Licensee must include a prominent statement that
|
|
|
|
* the modification is derived, directly or indirectly, from Original Intel
|
|
|
|
* Code.
|
|
|
|
*
|
|
|
|
* 3.2. Redistribution in binary form of any substantial portion of the Covered
|
|
|
|
* Code or modification must reproduce the above Copyright Notice, and the
|
|
|
|
* following Disclaimer and Export Compliance provision in the documentation
|
|
|
|
* and/or other materials provided with the distribution.
|
|
|
|
*
|
|
|
|
* 3.3. Intel retains all right, title, and interest in and to the Original
|
|
|
|
* Intel Code.
|
|
|
|
*
|
|
|
|
* 3.4. Neither the name Intel nor any other trademark owned or controlled by
|
|
|
|
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
|
|
|
* other dealings in products derived from or relating to the Covered Code
|
|
|
|
* without prior written authorization from Intel.
|
|
|
|
*
|
|
|
|
* 4. Disclaimer and Export Compliance
|
|
|
|
*
|
|
|
|
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
|
|
|
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
|
|
|
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
|
|
|
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
|
|
|
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
|
|
|
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
|
|
|
* PARTICULAR PURPOSE.
|
|
|
|
*
|
|
|
|
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
|
|
|
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
|
|
|
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
|
|
|
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
|
|
|
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
|
|
|
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
|
|
|
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
|
|
|
* LIMITED REMEDY.
|
|
|
|
*
|
|
|
|
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
|
|
|
* software or system incorporating such software without first obtaining any
|
|
|
|
* required license or other approval from the U. S. Department of Commerce or
|
|
|
|
* any other agency or department of the United States Government. In the
|
|
|
|
* event Licensee exports any such software from the United States or re-
|
|
|
|
* exports any such software from a foreign destination, Licensee shall ensure
|
|
|
|
* that the distribution and export/re-export of the software is in compliance
|
|
|
|
* with all laws, regulations, orders, or other restrictions of the U.S. Export
|
|
|
|
* Administration Regulations. Licensee agrees that neither it nor any of its
|
|
|
|
* subsidiaries will export/re-export any technical data, process, software, or
|
|
|
|
* service, directly or indirectly, to any country for which the United States
|
|
|
|
* government or any agency thereof requires an export license, other
|
|
|
|
* governmental approval, or letter of assurance, without first obtaining such
|
|
|
|
* license, approval or letter.
|
|
|
|
*
|
|
|
|
*****************************************************************************/
|
|
|
|
|
2005-06-29 22:13:11 +04:00
|
|
|
|
2005-06-29 22:15:42 +04:00
|
|
|
#define __NSDUMP_C__
|
2005-06-29 22:13:11 +04:00
|
|
|
|
2005-06-29 22:15:42 +04:00
|
|
|
#include <acpi.h>
|
|
|
|
#include <interpreter.h>
|
|
|
|
#include <namespace.h>
|
2005-06-29 22:13:11 +04:00
|
|
|
|
|
|
|
|
2005-06-29 22:15:42 +04:00
|
|
|
#define _THIS_MODULE "nsdump.c"
|
|
|
|
#define _COMPONENT NAMESPACE
|
2005-06-29 22:13:11 +04:00
|
|
|
|
|
|
|
|
2005-06-29 22:15:42 +04:00
|
|
|
static ST_KEY_DESC_TABLE KDT[] = {
|
|
|
|
{"0000", '1', "Invalid Name", "Invalid Name"},
|
|
|
|
{NULL, 'I', NULL, NULL}
|
|
|
|
};
|
2005-06-29 22:13:11 +04:00
|
|
|
|
|
|
|
|
2005-06-29 22:15:46 +04:00
|
|
|
|
|
|
|
|
2005-06-29 22:15:47 +04:00
|
|
|
/****************************************************************************
|
|
|
|
*
|
|
|
|
* FUNCTION: NsDumpOneObject
|
|
|
|
*
|
|
|
|
* PARAMETERS: NsHandle Handle Entry to be dumped
|
|
|
|
*
|
|
|
|
* DESCRIPTION: Dump a single nte
|
|
|
|
* This procedure is a UserFunction called by NsWalkNamespace.
|
|
|
|
*
|
|
|
|
***************************************************************************/
|
2005-06-29 22:15:46 +04:00
|
|
|
|
2005-06-29 22:15:47 +04:00
|
|
|
void *
|
|
|
|
NsDumpOneObject (NsHandle ObjHandle, INT32 Level, void *Context)
|
2005-06-29 22:15:46 +04:00
|
|
|
{
|
|
|
|
UINT32 DownstreamSiblingMask = 0;
|
|
|
|
INT32 LevelTmp;
|
|
|
|
NsType Type;
|
|
|
|
UINT32 WhichBit;
|
2005-06-29 22:15:47 +04:00
|
|
|
nte *Appendage = NULL;
|
|
|
|
nte *ThisEntry = (nte *) ObjHandle;
|
|
|
|
size_t Size = 0;
|
2005-06-29 22:15:46 +04:00
|
|
|
|
|
|
|
|
2005-06-29 22:15:47 +04:00
|
|
|
LevelTmp = Level;
|
|
|
|
Type = ThisEntry->Type;
|
|
|
|
WhichBit = 1;
|
2005-06-29 22:15:46 +04:00
|
|
|
|
|
|
|
|
2005-06-29 22:15:47 +04:00
|
|
|
/* Indent the object according to the level */
|
2005-06-29 22:15:46 +04:00
|
|
|
|
2005-06-29 22:15:47 +04:00
|
|
|
while (LevelTmp--)
|
2005-06-29 22:15:46 +04:00
|
|
|
{
|
|
|
|
|
2005-06-29 22:15:47 +04:00
|
|
|
/* print appropriate characters to form tree structure */
|
2005-06-29 22:15:46 +04:00
|
|
|
|
2005-06-29 22:15:47 +04:00
|
|
|
if (LevelTmp)
|
2005-06-29 22:15:46 +04:00
|
|
|
{
|
2005-06-29 22:15:47 +04:00
|
|
|
if (DownstreamSiblingMask & WhichBit)
|
|
|
|
{
|
|
|
|
DEBUG_PRINT_RAW (TRACE_TABLES, ("| "));
|
|
|
|
}
|
2005-06-29 22:15:46 +04:00
|
|
|
|
2005-06-29 22:15:47 +04:00
|
|
|
else
|
2005-06-29 22:15:46 +04:00
|
|
|
{
|
2005-06-29 22:15:47 +04:00
|
|
|
DEBUG_PRINT_RAW (TRACE_TABLES, (" "));
|
2005-06-29 22:15:46 +04:00
|
|
|
}
|
2005-06-29 22:15:47 +04:00
|
|
|
|
|
|
|
WhichBit <<= 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
{
|
|
|
|
if (NsExistDownstreamSibling (ThisEntry + 1, Size, Appendage))
|
2005-06-29 22:15:46 +04:00
|
|
|
{
|
2005-06-29 22:15:47 +04:00
|
|
|
DownstreamSiblingMask |= (1 << (Level - 1));
|
|
|
|
DEBUG_PRINT_RAW (TRACE_TABLES, ("+-"));
|
2005-06-29 22:15:46 +04:00
|
|
|
}
|
|
|
|
|
2005-06-29 22:15:47 +04:00
|
|
|
else
|
2005-06-29 22:15:46 +04:00
|
|
|
{
|
2005-06-29 22:15:47 +04:00
|
|
|
DownstreamSiblingMask &= 0xffffffff ^ (1 << (Level - 1));
|
|
|
|
DEBUG_PRINT_RAW (TRACE_TABLES, ("+-"));
|
2005-06-29 22:15:46 +04:00
|
|
|
}
|
|
|
|
|
2005-06-29 22:15:47 +04:00
|
|
|
if (ThisEntry->Scope == NULL)
|
2005-06-29 22:15:46 +04:00
|
|
|
{
|
2005-06-29 22:15:47 +04:00
|
|
|
DEBUG_PRINT_RAW (TRACE_TABLES, ("- "));
|
|
|
|
}
|
|
|
|
|
|
|
|
else if (NsExistDownstreamSibling (ThisEntry->Scope, NS_DEFAULT_TABLE_SIZE,
|
|
|
|
NEXTSEG (ThisEntry->Scope)))
|
|
|
|
{
|
|
|
|
DEBUG_PRINT_RAW (TRACE_TABLES, ("+ "));
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
{
|
|
|
|
DEBUG_PRINT_RAW (TRACE_TABLES, ("- "));
|
2005-06-29 22:15:46 +04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2005-06-29 22:15:47 +04:00
|
|
|
/* Check the integrity of our data */
|
2005-06-29 22:15:46 +04:00
|
|
|
|
2005-06-29 22:15:47 +04:00
|
|
|
if (OUTRANGE (Type, NsTypeNames))
|
2005-06-29 22:15:46 +04:00
|
|
|
{
|
2005-06-29 22:15:47 +04:00
|
|
|
Type = TYPE_DefAny; /* prints as *ERROR* */
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!NcOK ((INT32)* (char *) &ThisEntry->Name))
|
|
|
|
{
|
|
|
|
REPORT_WARNING (&KDT[0]);
|
2005-06-29 22:15:46 +04:00
|
|
|
}
|
|
|
|
|
2005-06-29 22:15:47 +04:00
|
|
|
/*
|
|
|
|
* Now we can print out the pertinent information
|
|
|
|
*/
|
2005-06-29 22:15:46 +04:00
|
|
|
|
2005-06-29 22:15:47 +04:00
|
|
|
DEBUG_PRINT_RAW (TRACE_TABLES,
|
|
|
|
("%4.4s [%s] ", &ThisEntry->Name, NsTypeNames[Type]));
|
2005-06-29 22:14:42 +04:00
|
|
|
|
2005-06-29 22:15:47 +04:00
|
|
|
DEBUG_PRINT_RAW (TRACE_TABLES, ("%p S:%p PE:%p N:%p",
|
|
|
|
ThisEntry,
|
|
|
|
ThisEntry->Scope,
|
|
|
|
ThisEntry->ParentEntry,
|
|
|
|
ThisEntry->NextEntry));
|
2005-06-29 22:13:11 +04:00
|
|
|
|
|
|
|
|
2005-06-29 22:15:47 +04:00
|
|
|
if (TYPE_Method == Type && ThisEntry->Value)
|
2005-06-29 22:13:11 +04:00
|
|
|
{
|
2005-06-29 22:15:47 +04:00
|
|
|
/* name is a Method and its AML offset/length are set */
|
2005-06-29 22:15:42 +04:00
|
|
|
|
2005-06-29 22:15:47 +04:00
|
|
|
DEBUG_PRINT_RAW (TRACE_TABLES, (" At:%04x(%04lx)\n",
|
|
|
|
((meth *) ThisEntry->Value)->Offset,
|
|
|
|
((meth *) ThisEntry->Value)->Length));
|
2005-06-29 22:13:11 +04:00
|
|
|
}
|
2005-06-29 22:15:42 +04:00
|
|
|
|
|
|
|
else
|
2005-06-29 22:13:11 +04:00
|
|
|
{
|
2005-06-29 22:15:47 +04:00
|
|
|
UINT8 *Value = ThisEntry->Value;
|
2005-06-29 22:13:11 +04:00
|
|
|
|
|
|
|
|
2005-06-29 22:15:47 +04:00
|
|
|
/* name is not a Method, or the AML offset/length are not set */
|
|
|
|
|
|
|
|
DEBUG_PRINT_RAW (TRACE_TABLES, ("\n"));
|
|
|
|
|
|
|
|
/* if debug turned on, display values */
|
2005-06-29 22:15:42 +04:00
|
|
|
|
2005-06-29 22:15:47 +04:00
|
|
|
while (Value && (DebugLevel & TRACE_VALUES))
|
2005-06-29 22:13:11 +04:00
|
|
|
{
|
2005-06-29 22:15:47 +04:00
|
|
|
UINT8 bT = ((OBJECT_DESCRIPTOR *) Value)->ValType;
|
2005-06-29 22:13:11 +04:00
|
|
|
|
|
|
|
|
2005-06-29 22:15:47 +04:00
|
|
|
DEBUG_PRINT_RAW (TRACE_TABLES,
|
|
|
|
(" %p %02x %02x %02x %02x %02x %02x",
|
|
|
|
Value, Value[0], Value[1], Value[2], Value[3], Value[4],
|
|
|
|
Value[5]));
|
|
|
|
DEBUG_PRINT_RAW (TRACE_TABLES,
|
|
|
|
(" %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x\n",
|
|
|
|
Value[6], Value[7], Value[8], Value[9], Value[10],
|
|
|
|
Value[11], Value[12], Value[13], Value[14], Value[15]));
|
|
|
|
|
|
|
|
if (bT == TYPE_String || bT == TYPE_Buffer || bT == TYPE_Package
|
|
|
|
|| bT == TYPE_FieldUnit || bT == TYPE_DefField || bT == TYPE_BankField
|
|
|
|
|| bT == TYPE_IndexField || bT == TYPE_Lvalue)
|
2005-06-29 22:13:11 +04:00
|
|
|
{
|
2005-06-29 22:15:47 +04:00
|
|
|
/*
|
|
|
|
* Get pointer to next level. ThisEntry assumes that all of
|
|
|
|
* the above-listed variants of OBJECT_DESCRIPTOR have
|
|
|
|
* compatible mappings.
|
|
|
|
*/
|
|
|
|
Value = ((OBJECT_DESCRIPTOR *)Value)->Buffer.Buffer;
|
2005-06-29 22:13:11 +04:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2005-06-29 22:15:47 +04:00
|
|
|
break;
|
2005-06-29 22:13:11 +04:00
|
|
|
}
|
|
|
|
}
|
2005-06-29 22:15:47 +04:00
|
|
|
}
|
2005-06-29 22:13:11 +04:00
|
|
|
|
2005-06-29 22:15:47 +04:00
|
|
|
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/****************************************************************************
|
|
|
|
*
|
|
|
|
* FUNCTION: NsDumpObjects
|
|
|
|
*
|
|
|
|
* PARAMETERS: Type - Object type to be dumped
|
|
|
|
* StartHandle - Where in namespace to start/end search
|
|
|
|
*
|
|
|
|
* DESCRIPTION: Dump typed objects
|
|
|
|
* Uses NsWalkNamespace in conjunction with NsDumpOneObject.
|
|
|
|
*
|
|
|
|
***************************************************************************/
|
|
|
|
|
|
|
|
static void
|
|
|
|
NsDumpObjects (NsType Type, NsHandle StartHandle)
|
|
|
|
{
|
|
|
|
NsWalkNamespace (Type, StartHandle, INT_MAX, NsDumpOneObject, NULL);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/****************************************************************************
|
|
|
|
*
|
|
|
|
* FUNCTION: NsDumpRootDevices
|
|
|
|
*
|
|
|
|
* PARAMETERS: None
|
|
|
|
*
|
|
|
|
* DESCRIPTION: Dump all objects of type "device"
|
|
|
|
*
|
|
|
|
***************************************************************************/
|
|
|
|
|
|
|
|
void
|
|
|
|
NsDumpRootDevices (void)
|
|
|
|
{
|
|
|
|
NsHandle SysBusHandle;
|
|
|
|
|
|
|
|
/* Only dump the table if tracing is enabled */
|
|
|
|
|
|
|
|
if (!(TRACE_TABLES & DebugLevel))
|
|
|
|
{
|
|
|
|
return;
|
2005-06-29 22:13:11 +04:00
|
|
|
}
|
|
|
|
|
2005-06-29 22:15:47 +04:00
|
|
|
SysBusHandle = AcpiNameToHandle (0, NS_SYSTEM_BUS);
|
2005-06-29 22:13:11 +04:00
|
|
|
|
2005-06-29 22:15:47 +04:00
|
|
|
DEBUG_PRINT (TRACE_TABLES, ("All devices in the namespace:\n"));
|
|
|
|
NsDumpObjects (TYPE_Device, SysBusHandle);
|
2005-06-29 22:13:11 +04:00
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2005-06-29 22:15:42 +04:00
|
|
|
/****************************************************************************
|
|
|
|
*
|
|
|
|
* FUNCTION: NsDumpTables
|
2005-06-29 22:13:11 +04:00
|
|
|
*
|
2005-06-29 22:15:42 +04:00
|
|
|
* PARAMETERS: NsHandle SearchBase Root of subtree to be dumped, or
|
|
|
|
* NS_ALL to dump the entire namespace
|
|
|
|
* INT32 MaxDepth Maximum depth of dump. Use INT_MAX
|
|
|
|
* for an effectively unlimited depth.
|
2005-06-29 22:13:11 +04:00
|
|
|
*
|
|
|
|
* DESCRIPTION: Dump the name space, or a portion of it.
|
|
|
|
*
|
2005-06-29 22:15:42 +04:00
|
|
|
***************************************************************************/
|
2005-06-29 22:13:11 +04:00
|
|
|
|
|
|
|
void
|
2005-06-29 22:15:42 +04:00
|
|
|
NsDumpTables (NsHandle SearchBase, INT32 MaxDepth)
|
2005-06-29 22:13:11 +04:00
|
|
|
{
|
2005-06-29 22:15:47 +04:00
|
|
|
NsHandle SearchHandle = SearchBase;
|
|
|
|
|
2005-06-29 22:13:11 +04:00
|
|
|
|
|
|
|
FUNCTION_TRACE ("NsDumpTables");
|
|
|
|
|
|
|
|
|
2005-06-29 22:15:47 +04:00
|
|
|
if (!RootObject->Scope)
|
2005-06-29 22:15:42 +04:00
|
|
|
{
|
|
|
|
/*
|
2005-06-29 22:13:11 +04:00
|
|
|
* If the name space has not been initialized,
|
|
|
|
* there is nothing to dump.
|
|
|
|
*/
|
2005-06-29 22:15:43 +04:00
|
|
|
DEBUG_PRINT (TRACE_TABLES, ("NsDumpTables: name space not initialized!\n"));
|
2005-06-29 22:15:42 +04:00
|
|
|
return;
|
2005-06-29 22:13:11 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
if (NS_ALL == SearchBase)
|
|
|
|
{
|
|
|
|
/* entire namespace */
|
|
|
|
|
2005-06-29 22:15:47 +04:00
|
|
|
SearchHandle = RootObject;
|
2005-06-29 22:15:43 +04:00
|
|
|
DEBUG_PRINT (TRACE_TABLES, ("\\\n"));
|
2005-06-29 22:13:11 +04:00
|
|
|
}
|
|
|
|
|
2005-06-29 22:15:47 +04:00
|
|
|
|
|
|
|
NsDumpObjects (TYPE_Any, SearchHandle);
|
2005-06-29 22:13:11 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2005-06-29 22:15:42 +04:00
|
|
|
/****************************************************************************
|
2005-06-29 22:13:11 +04:00
|
|
|
*
|
2005-06-29 22:15:42 +04:00
|
|
|
* FUNCTION: NsDumpEntry
|
2005-06-29 22:13:11 +04:00
|
|
|
*
|
2005-06-29 22:15:42 +04:00
|
|
|
* PARAMETERS: NsHandle Handle Entry to be dumped
|
2005-06-29 22:13:11 +04:00
|
|
|
*
|
2005-06-29 22:15:42 +04:00
|
|
|
* DESCRIPTION: Dump a single nte
|
2005-06-29 22:13:11 +04:00
|
|
|
*
|
2005-06-29 22:15:42 +04:00
|
|
|
***************************************************************************/
|
2005-06-29 22:13:11 +04:00
|
|
|
|
|
|
|
void
|
2005-06-29 22:15:42 +04:00
|
|
|
NsDumpEntry (NsHandle Handle)
|
2005-06-29 22:13:11 +04:00
|
|
|
{
|
|
|
|
|
2005-06-29 22:15:42 +04:00
|
|
|
FUNCTION_TRACE ("NsDumpEntry");
|
2005-06-29 22:14:42 +04:00
|
|
|
|
2005-06-29 22:15:47 +04:00
|
|
|
|
|
|
|
NsDumpOneObject (Handle, 1, NULL);
|
2005-06-29 22:15:42 +04:00
|
|
|
|
|
|
|
DEBUG_PRINT (TRACE_EXEC, ("leave NsDumpEntry %p\n", Handle));
|
2005-06-29 22:13:11 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
|