/******************************************************************************* * * FUNCTION: acpi_ns_dump_one_device * * PARAMETERS: Handle - Node to be dumped * Level - Nesting level of the handle * Context - Passed into walk_namespace * return_value - Not used * * RETURN: Status * * DESCRIPTION: Dump a single Node that represents a device * This procedure is a user_function called by acpi_ns_walk_namespace. * ******************************************************************************/ static acpi_status acpi_ns_dump_one_device(acpi_handle obj_handle, u32 level, void *context, void **return_value) { struct acpi_device_info *info; acpi_status status; u32 i; ACPI_FUNCTION_NAME(ns_dump_one_device); status = acpi_ns_dump_one_object(obj_handle, level, context, return_value); status = acpi_get_object_info(obj_handle, &info); if (ACPI_SUCCESS(status)) { for (i = 0; i < level; i++) { ACPI_DEBUG_PRINT_RAW((ACPI_DB_TABLES, " ")); } ACPI_DEBUG_PRINT_RAW((ACPI_DB_TABLES, " HID: %s, ADR: %8.8X%8.8X, Status: %X\n", info->hardware_id.string, ACPI_FORMAT_UINT64(info->address), info->current_status)); ACPI_FREE(info); } return (status); }
static acpi_status acpi_db_walk_for_specific_objects(acpi_handle obj_handle, u32 nesting_level, void *context, void **return_value) { struct acpi_walk_info *info = (struct acpi_walk_info *)context; struct acpi_buffer buffer; acpi_status status; info->count++; /* Get and display the full pathname to this object */ buffer.length = ACPI_ALLOCATE_LOCAL_BUFFER; status = acpi_ns_handle_to_pathname(obj_handle, &buffer, TRUE); if (ACPI_FAILURE(status)) { acpi_os_printf("Could Not get pathname for object %p\n", obj_handle); return (AE_OK); } acpi_os_printf("%32s", (char *)buffer.pointer); ACPI_FREE(buffer.pointer); /* Dump short info about the object */ (void)acpi_ns_dump_one_object(obj_handle, nesting_level, info, NULL); return (AE_OK); }
acpi_status acpi_ns_dump_one_device ( acpi_handle obj_handle, u32 level, void *context, void **return_value) { struct acpi_buffer buffer; struct acpi_device_info *info; acpi_status status; u32 i; ACPI_FUNCTION_NAME ("ns_dump_one_device"); status = acpi_ns_dump_one_object (obj_handle, level, context, return_value); buffer.length = ACPI_ALLOCATE_LOCAL_BUFFER; status = acpi_get_object_info (obj_handle, &buffer); if (ACPI_SUCCESS (status)) { info = buffer.pointer; for (i = 0; i < level; i++) { ACPI_DEBUG_PRINT_RAW ((ACPI_DB_TABLES, " ")); } ACPI_DEBUG_PRINT_RAW ((ACPI_DB_TABLES, " HID: %s, ADR: %8.8X%8.8X, Status: %X\n", info->hardware_id.value, ACPI_FORMAT_UINT64 (info->address), info->current_status)); ACPI_MEM_FREE (info); } return (status); }
void acpi_ns_dump_entry(acpi_handle handle, u32 debug_level) { struct acpi_walk_info info; ACPI_FUNCTION_ENTRY(); info.debug_level = debug_level; info.owner_id = ACPI_OWNER_ID_MAX; info.display_type = ACPI_DISPLAY_SUMMARY; (void)acpi_ns_dump_one_object(handle, 1, &info, NULL); }
static acpi_status acpi_db_walk_and_match_name(acpi_handle obj_handle, u32 nesting_level, void *context, void **return_value) { acpi_status status; char *requested_name = (char *)context; u32 i; struct acpi_buffer buffer; struct acpi_walk_info info; /* Check for a name match */ for (i = 0; i < 4; i++) { /* Wildcard support */ if ((requested_name[i] != '?') && (requested_name[i] != ((struct acpi_namespace_node *) obj_handle)->name.ascii[i])) { /* No match, just exit */ return (AE_OK); } } /* Get the full pathname to this object */ buffer.length = ACPI_ALLOCATE_LOCAL_BUFFER; status = acpi_ns_handle_to_pathname(obj_handle, &buffer, TRUE); if (ACPI_FAILURE(status)) { acpi_os_printf("Could Not get pathname for object %p\n", obj_handle); } else { info.owner_id = ACPI_OWNER_ID_MAX; info.debug_level = ACPI_UINT32_MAX; info.display_type = ACPI_DISPLAY_SUMMARY | ACPI_DISPLAY_SHORT; acpi_os_printf("%32s", (char *)buffer.pointer); (void)acpi_ns_dump_one_object(obj_handle, nesting_level, &info, NULL); ACPI_FREE(buffer.pointer); } return (AE_OK); }