xref: /netbsd-src/sys/external/bsd/acpica/dist/namespace/nsdumpdv.c (revision 046a29855e04359424fd074e8313af6b6be8cfb6)
128c506b8Sjruoho /******************************************************************************
228c506b8Sjruoho  *
328c506b8Sjruoho  * Module Name: nsdump - table dumping routines for debug
428c506b8Sjruoho  *
528c506b8Sjruoho  *****************************************************************************/
628c506b8Sjruoho 
7124f4c82Sjruoho /*
8*046a2985Schristos  * Copyright (C) 2000 - 2023, Intel Corp.
928c506b8Sjruoho  * All rights reserved.
1028c506b8Sjruoho  *
11124f4c82Sjruoho  * Redistribution and use in source and binary forms, with or without
12124f4c82Sjruoho  * modification, are permitted provided that the following conditions
13124f4c82Sjruoho  * are met:
14124f4c82Sjruoho  * 1. Redistributions of source code must retain the above copyright
15124f4c82Sjruoho  *    notice, this list of conditions, and the following disclaimer,
16124f4c82Sjruoho  *    without modification.
17124f4c82Sjruoho  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18124f4c82Sjruoho  *    substantially similar to the "NO WARRANTY" disclaimer below
19124f4c82Sjruoho  *    ("Disclaimer") and any redistribution must be conditioned upon
20124f4c82Sjruoho  *    including a substantially similar Disclaimer requirement for further
21124f4c82Sjruoho  *    binary redistribution.
22124f4c82Sjruoho  * 3. Neither the names of the above-listed copyright holders nor the names
23124f4c82Sjruoho  *    of any contributors may be used to endorse or promote products derived
24124f4c82Sjruoho  *    from this software without specific prior written permission.
2528c506b8Sjruoho  *
26124f4c82Sjruoho  * Alternatively, this software may be distributed under the terms of the
27124f4c82Sjruoho  * GNU General Public License ("GPL") version 2 as published by the Free
28124f4c82Sjruoho  * Software Foundation.
2928c506b8Sjruoho  *
30124f4c82Sjruoho  * NO WARRANTY
31124f4c82Sjruoho  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32124f4c82Sjruoho  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
3346a330b4Schristos  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
34124f4c82Sjruoho  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35124f4c82Sjruoho  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36124f4c82Sjruoho  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37124f4c82Sjruoho  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38124f4c82Sjruoho  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39124f4c82Sjruoho  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40124f4c82Sjruoho  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41124f4c82Sjruoho  * POSSIBILITY OF SUCH DAMAGES.
42124f4c82Sjruoho  */
4328c506b8Sjruoho 
4428c506b8Sjruoho #include "acpi.h"
4528c506b8Sjruoho 
4628c506b8Sjruoho 
4728c506b8Sjruoho /* TBD: This entire module is apparently obsolete and should be removed */
4828c506b8Sjruoho 
4928c506b8Sjruoho #define _COMPONENT          ACPI_NAMESPACE
5028c506b8Sjruoho         ACPI_MODULE_NAME    ("nsdumpdv")
5128c506b8Sjruoho 
5228c506b8Sjruoho #ifdef ACPI_OBSOLETE_FUNCTIONS
5328c506b8Sjruoho #if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
5428c506b8Sjruoho 
5528c506b8Sjruoho #include "acnamesp.h"
5628c506b8Sjruoho 
5728c506b8Sjruoho /*******************************************************************************
5828c506b8Sjruoho  *
5928c506b8Sjruoho  * FUNCTION:    AcpiNsDumpOneDevice
6028c506b8Sjruoho  *
6128c506b8Sjruoho  * PARAMETERS:  Handle              - Node to be dumped
6228c506b8Sjruoho  *              Level               - Nesting level of the handle
6328c506b8Sjruoho  *              Context             - Passed into WalkNamespace
6428c506b8Sjruoho  *              ReturnValue         - Not used
6528c506b8Sjruoho  *
6628c506b8Sjruoho  * RETURN:      Status
6728c506b8Sjruoho  *
6828c506b8Sjruoho  * DESCRIPTION: Dump a single Node that represents a device
6928c506b8Sjruoho  *              This procedure is a UserFunction called by AcpiNsWalkNamespace.
7028c506b8Sjruoho  *
7128c506b8Sjruoho  ******************************************************************************/
7228c506b8Sjruoho 
7328c506b8Sjruoho static ACPI_STATUS
AcpiNsDumpOneDevice(ACPI_HANDLE ObjHandle,UINT32 Level,void * Context,void ** ReturnValue)7428c506b8Sjruoho AcpiNsDumpOneDevice (
7528c506b8Sjruoho     ACPI_HANDLE             ObjHandle,
7628c506b8Sjruoho     UINT32                  Level,
7728c506b8Sjruoho     void                    *Context,
7828c506b8Sjruoho     void                    **ReturnValue)
7928c506b8Sjruoho {
8028c506b8Sjruoho     ACPI_BUFFER             Buffer;
8128c506b8Sjruoho     ACPI_DEVICE_INFO        *Info;
8228c506b8Sjruoho     ACPI_STATUS             Status;
8328c506b8Sjruoho     UINT32                  i;
8428c506b8Sjruoho 
8528c506b8Sjruoho 
8628c506b8Sjruoho     ACPI_FUNCTION_NAME (NsDumpOneDevice);
8728c506b8Sjruoho 
8828c506b8Sjruoho 
8928c506b8Sjruoho     Status = AcpiNsDumpOneObject (ObjHandle, Level, Context, ReturnValue);
9028c506b8Sjruoho 
9128c506b8Sjruoho     Buffer.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
9228c506b8Sjruoho     Status = AcpiGetObjectInfo (ObjHandle, &Buffer);
9328c506b8Sjruoho     if (ACPI_SUCCESS (Status))
9428c506b8Sjruoho     {
9528c506b8Sjruoho         Info = Buffer.Pointer;
9628c506b8Sjruoho         for (i = 0; i < Level; i++)
9728c506b8Sjruoho         {
9828c506b8Sjruoho             ACPI_DEBUG_PRINT_RAW ((ACPI_DB_TABLES, " "));
9928c506b8Sjruoho         }
10028c506b8Sjruoho 
10128c506b8Sjruoho         ACPI_DEBUG_PRINT_RAW ((ACPI_DB_TABLES,
102062782b3Schristos             "    HID: %s, ADR: %8.8X%8.8X\n",
103062782b3Schristos             Info->HardwareId.Value, ACPI_FORMAT_UINT64 (Info->Address)));
10428c506b8Sjruoho         ACPI_FREE (Info);
10528c506b8Sjruoho     }
10628c506b8Sjruoho 
10728c506b8Sjruoho     return (Status);
10828c506b8Sjruoho }
10928c506b8Sjruoho 
11028c506b8Sjruoho 
11128c506b8Sjruoho /*******************************************************************************
11228c506b8Sjruoho  *
11328c506b8Sjruoho  * FUNCTION:    AcpiNsDumpRootDevices
11428c506b8Sjruoho  *
11528c506b8Sjruoho  * PARAMETERS:  None
11628c506b8Sjruoho  *
11728c506b8Sjruoho  * RETURN:      None
11828c506b8Sjruoho  *
11928c506b8Sjruoho  * DESCRIPTION: Dump all objects of type "device"
12028c506b8Sjruoho  *
12128c506b8Sjruoho  ******************************************************************************/
12228c506b8Sjruoho 
12328c506b8Sjruoho void
AcpiNsDumpRootDevices(void)12428c506b8Sjruoho AcpiNsDumpRootDevices (
12528c506b8Sjruoho     void)
12628c506b8Sjruoho {
12728c506b8Sjruoho     ACPI_HANDLE             SysBusHandle;
12828c506b8Sjruoho     ACPI_STATUS             Status;
12928c506b8Sjruoho 
13028c506b8Sjruoho 
13128c506b8Sjruoho     ACPI_FUNCTION_NAME (NsDumpRootDevices);
13228c506b8Sjruoho 
13328c506b8Sjruoho 
13428c506b8Sjruoho     /* Only dump the table if tracing is enabled */
13528c506b8Sjruoho 
13628c506b8Sjruoho     if (!(ACPI_LV_TABLES & AcpiDbgLevel))
13728c506b8Sjruoho     {
13828c506b8Sjruoho         return;
13928c506b8Sjruoho     }
14028c506b8Sjruoho 
141ff4a156dSchristos     Status = AcpiGetHandle (NULL, METHOD_NAME__SB_, &SysBusHandle);
14228c506b8Sjruoho     if (ACPI_FAILURE (Status))
14328c506b8Sjruoho     {
14428c506b8Sjruoho         return;
14528c506b8Sjruoho     }
14628c506b8Sjruoho 
14728c506b8Sjruoho     ACPI_DEBUG_PRINT ((ACPI_DB_TABLES,
14828c506b8Sjruoho         "Display of all devices in the namespace:\n"));
14928c506b8Sjruoho 
15028c506b8Sjruoho     Status = AcpiNsWalkNamespace (ACPI_TYPE_DEVICE, SysBusHandle,
15128c506b8Sjruoho         ACPI_UINT32_MAX, ACPI_NS_WALK_NO_UNLOCK,
15228c506b8Sjruoho         AcpiNsDumpOneDevice, NULL, NULL, NULL);
15328c506b8Sjruoho }
15428c506b8Sjruoho 
15528c506b8Sjruoho #endif
15628c506b8Sjruoho #endif
157