1 /******************************************************************************
   2  *
   3  * Module Name: nsdump - table dumping routines for debug
   4  *
   5  *****************************************************************************/
   6 
   7 /*
   8  * Copyright (C) 2000 - 2014, 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 MERCHANTIBILITY 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 #define __NSDUMPDV_C__
  45 
  46 #include "acpi.h"
  47 
  48 
  49 /* TBD: This entire module is apparently obsolete and should be removed */
  50 
  51 #define _COMPONENT          ACPI_NAMESPACE
  52         ACPI_MODULE_NAME    ("nsdumpdv")
  53 
  54 #ifdef ACPI_OBSOLETE_FUNCTIONS
  55 #if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
  56 
  57 #include "acnamesp.h"
  58 
  59 /*******************************************************************************
  60  *
  61  * FUNCTION:    AcpiNsDumpOneDevice
  62  *
  63  * PARAMETERS:  Handle              - Node to be dumped
  64  *              Level               - Nesting level of the handle
  65  *              Context             - Passed into WalkNamespace
  66  *              ReturnValue         - Not used
  67  *
  68  * RETURN:      Status
  69  *
  70  * DESCRIPTION: Dump a single Node that represents a device
  71  *              This procedure is a UserFunction called by AcpiNsWalkNamespace.
  72  *
  73  ******************************************************************************/
  74 
  75 static ACPI_STATUS
  76 AcpiNsDumpOneDevice (
  77     ACPI_HANDLE             ObjHandle,
  78     UINT32                  Level,
  79     void                    *Context,
  80     void                    **ReturnValue)
  81 {
  82     ACPI_BUFFER             Buffer;
  83     ACPI_DEVICE_INFO        *Info;
  84     ACPI_STATUS             Status;
  85     UINT32                  i;
  86 
  87 
  88     ACPI_FUNCTION_NAME (NsDumpOneDevice);
  89 
  90 
  91     Status = AcpiNsDumpOneObject (ObjHandle, Level, Context, ReturnValue);
  92 
  93     Buffer.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
  94     Status = AcpiGetObjectInfo (ObjHandle, &Buffer);
  95     if (ACPI_SUCCESS (Status))
  96     {
  97         Info = Buffer.Pointer;
  98         for (i = 0; i < Level; i++)
  99         {
 100             ACPI_DEBUG_PRINT_RAW ((ACPI_DB_TABLES, " "));
 101         }
 102 
 103         ACPI_DEBUG_PRINT_RAW ((ACPI_DB_TABLES,
 104             "    HID: %s, ADR: %8.8X%8.8X, Status: %X\n",
 105             Info->HardwareId.Value, ACPI_FORMAT_UINT64 (Info->Address),
 106             Info->CurrentStatus));
 107         ACPI_FREE (Info);
 108     }
 109 
 110     return (Status);
 111 }
 112 
 113 
 114 /*******************************************************************************
 115  *
 116  * FUNCTION:    AcpiNsDumpRootDevices
 117  *
 118  * PARAMETERS:  None
 119  *
 120  * RETURN:      None
 121  *
 122  * DESCRIPTION: Dump all objects of type "device"
 123  *
 124  ******************************************************************************/
 125 
 126 void
 127 AcpiNsDumpRootDevices (
 128     void)
 129 {
 130     ACPI_HANDLE             SysBusHandle;
 131     ACPI_STATUS             Status;
 132 
 133 
 134     ACPI_FUNCTION_NAME (NsDumpRootDevices);
 135 
 136 
 137     /* Only dump the table if tracing is enabled */
 138 
 139     if (!(ACPI_LV_TABLES & AcpiDbgLevel))
 140     {
 141         return;
 142     }
 143 
 144     Status = AcpiGetHandle (NULL, METHOD_NAME__SB_, &SysBusHandle);
 145     if (ACPI_FAILURE (Status))
 146     {
 147         return;
 148     }
 149 
 150     ACPI_DEBUG_PRINT ((ACPI_DB_TABLES,
 151         "Display of all devices in the namespace:\n"));
 152 
 153     Status = AcpiNsWalkNamespace (ACPI_TYPE_DEVICE, SysBusHandle,
 154                 ACPI_UINT32_MAX, ACPI_NS_WALK_NO_UNLOCK,
 155                 AcpiNsDumpOneDevice, NULL, NULL, NULL);
 156 }
 157 
 158 #endif
 159 #endif