0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #include <acpi/acpi.h>
0011
0012
0013
0014 #define _COMPONENT ACPI_NAMESPACE
0015 ACPI_MODULE_NAME("nsdumpdv")
0016 #ifdef ACPI_OBSOLETE_FUNCTIONS
0017 #if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
0018 #include "acnamesp.h"
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034 static acpi_status
0035 acpi_ns_dump_one_device(acpi_handle obj_handle,
0036 u32 level, void *context, void **return_value)
0037 {
0038 struct acpi_buffer buffer;
0039 struct acpi_device_info *info;
0040 acpi_status status;
0041 u32 i;
0042
0043 ACPI_FUNCTION_NAME(ns_dump_one_device);
0044
0045 status =
0046 acpi_ns_dump_one_object(obj_handle, level, context, return_value);
0047
0048 buffer.length = ACPI_ALLOCATE_LOCAL_BUFFER;
0049 status = acpi_get_object_info(obj_handle, &buffer);
0050 if (ACPI_SUCCESS(status)) {
0051 info = buffer.pointer;
0052 for (i = 0; i < level; i++) {
0053 ACPI_DEBUG_PRINT_RAW((ACPI_DB_TABLES, " "));
0054 }
0055
0056 ACPI_DEBUG_PRINT_RAW((ACPI_DB_TABLES,
0057 " HID: %s, ADR: %8.8X%8.8X\n",
0058 info->hardware_id.value,
0059 ACPI_FORMAT_UINT64(info->address)));
0060 ACPI_FREE(info);
0061 }
0062
0063 return (status);
0064 }
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078 void acpi_ns_dump_root_devices(void)
0079 {
0080 acpi_handle sys_bus_handle;
0081 acpi_status status;
0082
0083 ACPI_FUNCTION_NAME(ns_dump_root_devices);
0084
0085
0086
0087 if (!(ACPI_LV_TABLES & acpi_dbg_level)) {
0088 return;
0089 }
0090
0091 status = acpi_get_handle(NULL, METHOD_NAME__SB_, &sys_bus_handle);
0092 if (ACPI_FAILURE(status)) {
0093 return;
0094 }
0095
0096 ACPI_DEBUG_PRINT((ACPI_DB_TABLES,
0097 "Display of all devices in the namespace:\n"));
0098
0099 status = acpi_ns_walk_namespace(ACPI_TYPE_DEVICE, sys_bus_handle,
0100 ACPI_UINT32_MAX, ACPI_NS_WALK_NO_UNLOCK,
0101 acpi_ns_dump_one_device, NULL, NULL,
0102 NULL);
0103 }
0104
0105 #endif
0106 #endif