⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nsdump.c

📁 内核linux2.4.20,可跟rtlinux3.2打补丁 组成实时linux系统,编译内核
💻 C
📖 第 1 页 / 共 2 页
字号:
			return (AE_OK);		}		ACPI_DEBUG_PRINT_RAW ((ACPI_DB_TABLES, "(R%d)",				obj_desc->common.reference_count));		switch (type) {		case ACPI_TYPE_METHOD:			/* Name is a Method and its AML offset/length are set */			ACPI_DEBUG_PRINT_RAW ((ACPI_DB_TABLES, " M:%p-%X\n",					 obj_desc->method.aml_start,					 obj_desc->method.aml_length));			break;		case ACPI_TYPE_INTEGER:			ACPI_DEBUG_PRINT_RAW ((ACPI_DB_TABLES, " N:%X%X\n",					 HIDWORD(obj_desc->integer.value),					 LODWORD(obj_desc->integer.value)));			break;		case ACPI_TYPE_STRING:			ACPI_DEBUG_PRINT_RAW ((ACPI_DB_TABLES, " S:%p-%X\n",					 obj_desc->string.pointer,					 obj_desc->string.length));			break;		case ACPI_TYPE_BUFFER:			ACPI_DEBUG_PRINT_RAW ((ACPI_DB_TABLES, " B:%p-%X\n",					 obj_desc->buffer.pointer,					 obj_desc->buffer.length));			break;		default:			ACPI_DEBUG_PRINT_RAW ((ACPI_DB_TABLES, "\n"));			break;		}		break;	}	/* If debug turned off, done */	if (!(acpi_dbg_level & ACPI_LV_VALUES)) {		return (AE_OK);	}	/* If there is an attached object, display it */	obj_desc = this_node->object;	/* Dump attached objects */	while (obj_desc) {		obj_type = INTERNAL_TYPE_INVALID;		/* Decode the type of attached object and dump the contents */		ACPI_DEBUG_PRINT_RAW ((ACPI_DB_TABLES, "        Attached Object %p: ", obj_desc));		if (VALID_DESCRIPTOR_TYPE (obj_desc, ACPI_DESC_TYPE_NAMED)) {			ACPI_DEBUG_PRINT_RAW ((ACPI_DB_TABLES, "(Ptr to Node)\n"));			bytes_to_dump = sizeof (acpi_namespace_node);		}		else if (VALID_DESCRIPTOR_TYPE (obj_desc, ACPI_DESC_TYPE_INTERNAL)) {			obj_type = obj_desc->common.type;			if (obj_type > INTERNAL_TYPE_MAX) {				ACPI_DEBUG_PRINT_RAW ((ACPI_DB_TABLES, "(Ptr to ACPI Object type %X [UNKNOWN])\n", obj_type));				bytes_to_dump = 32;			}			else {				ACPI_DEBUG_PRINT_RAW ((ACPI_DB_TABLES, "(Ptr to ACPI Object type %2.2X [%s])\n",						   obj_type, acpi_ut_get_type_name (obj_type)));				bytes_to_dump = sizeof (acpi_operand_object);			}		}		else {			ACPI_DEBUG_PRINT_RAW ((ACPI_DB_TABLES, "(String or Buffer - not descriptor)\n"));			bytes_to_dump = 16;		}		DUMP_BUFFER (obj_desc, bytes_to_dump);		/* If value is NOT an internal object, we are done */		if (VALID_DESCRIPTOR_TYPE (obj_desc, ACPI_DESC_TYPE_NAMED)) {			goto cleanup;		}		/*		 * Valid object, get the pointer to next level, if any		 */		switch (obj_type) {		case ACPI_TYPE_STRING:			obj_desc = (acpi_operand_object *) obj_desc->string.pointer;			break;		case ACPI_TYPE_BUFFER:			obj_desc = (acpi_operand_object *) obj_desc->buffer.pointer;			break;		case ACPI_TYPE_BUFFER_FIELD:			obj_desc = (acpi_operand_object *) obj_desc->buffer_field.buffer_obj;			break;		case ACPI_TYPE_PACKAGE:			obj_desc = (acpi_operand_object *) obj_desc->package.elements;			break;		case ACPI_TYPE_METHOD:			obj_desc = (acpi_operand_object *) obj_desc->method.aml_start;			break;		case INTERNAL_TYPE_REGION_FIELD:			obj_desc = (acpi_operand_object *) obj_desc->field.region_obj;			break;		case INTERNAL_TYPE_BANK_FIELD:			obj_desc = (acpi_operand_object *) obj_desc->bank_field.region_obj;			break;		case INTERNAL_TYPE_INDEX_FIELD:			obj_desc = (acpi_operand_object *) obj_desc->index_field.index_obj;			break;	   default:			goto cleanup;		}		obj_type = INTERNAL_TYPE_INVALID;    /* Terminate loop after next pass */	}cleanup:	ACPI_DEBUG_PRINT_RAW ((ACPI_DB_TABLES, "\n"));	return (AE_OK);}/******************************************************************************* * * FUNCTION:    Acpi_ns_dump_objects * * PARAMETERS:  Type                - Object type to be dumped *              Max_depth           - Maximum depth of dump.  Use ACPI_UINT32_MAX *                                    for an effectively unlimited depth. *              Owner_id            - Dump only objects owned by this ID.  Use *                                    ACPI_UINT32_MAX to match all owners. *              Start_handle        - Where in namespace to start/end search * * DESCRIPTION: Dump typed objects within the loaded namespace. *              Uses Acpi_ns_walk_namespace in conjunction with Acpi_ns_dump_one_object. * ******************************************************************************/voidacpi_ns_dump_objects (	acpi_object_type8       type,	u8                      display_type,	u32                     max_depth,	u32                     owner_id,	acpi_handle             start_handle){	acpi_walk_info          info;	FUNCTION_ENTRY ();	info.debug_level = ACPI_LV_TABLES;	info.owner_id = owner_id;	info.display_type = display_type;	acpi_ns_walk_namespace (type, start_handle, max_depth, NS_WALK_NO_UNLOCK, acpi_ns_dump_one_object,			   (void *) &info, NULL);}#ifndef _ACPI_ASL_COMPILER/******************************************************************************* * * FUNCTION:    Acpi_ns_dump_one_device * * PARAMETERS:  Handle              - Node to be dumped *              Level               - Nesting level of the handle *              Context             - Passed into Walk_namespace * * DESCRIPTION: Dump a single Node that represents a device *              This procedure is a User_function called by Acpi_ns_walk_namespace. * ******************************************************************************/acpi_statusacpi_ns_dump_one_device (	acpi_handle             obj_handle,	u32                     level,	void                    *context,	void                    **return_value){	acpi_device_info        info;	acpi_status             status;	u32                     i;	PROC_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, HIDWORD(info.address), LODWORD(info.address), info.current_status));	}	return (status);}/******************************************************************************* * * FUNCTION:    Acpi_ns_dump_root_devices * * PARAMETERS:  None * * DESCRIPTION: Dump all objects of type "device" * ******************************************************************************/voidacpi_ns_dump_root_devices (void){	acpi_handle             sys_bus_handle;	PROC_NAME ("Ns_dump_root_devices");	/* Only dump the table if tracing is enabled */	if (!(ACPI_LV_TABLES & acpi_dbg_level)) {		return;	}	acpi_get_handle (0, NS_SYSTEM_BUS, &sys_bus_handle);	ACPI_DEBUG_PRINT ((ACPI_DB_TABLES, "Display of all devices in the namespace:\n"));	acpi_ns_walk_namespace (ACPI_TYPE_DEVICE, sys_bus_handle, ACPI_UINT32_MAX, NS_WALK_NO_UNLOCK,			   acpi_ns_dump_one_device, NULL, NULL);}#endif/******************************************************************************* * * FUNCTION:    Acpi_ns_dump_tables * * PARAMETERS:  Search_base         - Root of subtree to be dumped, or *                                    NS_ALL to dump the entire namespace *              Max_depth           - Maximum depth of dump.  Use INT_MAX *                                    for an effectively unlimited depth. * * DESCRIPTION: Dump the name space, or a portion of it. * ******************************************************************************/voidacpi_ns_dump_tables (	acpi_handle             search_base,	u32                     max_depth){	acpi_handle             search_handle = search_base;	FUNCTION_TRACE ("Ns_dump_tables");	if (!acpi_gbl_root_node) {		/*		 * If the name space has not been initialized,		 * there is nothing to dump.		 */		ACPI_DEBUG_PRINT ((ACPI_DB_TABLES, "name space not initialized!\n"));		return_VOID;	}	if (NS_ALL == search_base) {		/*  entire namespace    */		search_handle = acpi_gbl_root_node;		ACPI_DEBUG_PRINT ((ACPI_DB_TABLES, "\\\n"));	}	acpi_ns_dump_objects (ACPI_TYPE_ANY, ACPI_DISPLAY_OBJECTS, max_depth,			ACPI_UINT32_MAX, search_handle);	return_VOID;}/******************************************************************************* * * FUNCTION:    Acpi_ns_dump_entry * * PARAMETERS:  Handle              - Node to be dumped *              Debug_level         - Output level * * DESCRIPTION: Dump a single Node * ******************************************************************************/voidacpi_ns_dump_entry (	acpi_handle             handle,	u32                     debug_level){	acpi_walk_info          info;	FUNCTION_ENTRY ();	info.debug_level = debug_level;	info.owner_id = ACPI_UINT32_MAX;	acpi_ns_dump_one_object (handle, 1, &info, NULL);}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -