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

📄 rsdump.c

📁 h内核
💻 C
📖 第 1 页 / 共 2 页
字号:
			ACPI_SPARSE_TRANSLATION ==			address16_data->attribute.io.translation_attribute ?			"Sparse" : "Dense");		break;	case ACPI_BUS_NUMBER_RANGE:		acpi_os_printf ("Bus Number Range\n");		break;	default:		acpi_os_printf ("Invalid resource type. Exiting.\n");		return;	}	acpi_os_printf ("  Resource %s\n",			ACPI_CONSUMER == address16_data->producer_consumer ?			"Consumer" : "Producer");	acpi_os_printf ("  %s decode\n",			 ACPI_SUB_DECODE == address16_data->decode ?			 "Subtractive" : "Positive");	acpi_os_printf ("  Min address is %s fixed\n",			 ACPI_ADDRESS_FIXED == address16_data->min_address_fixed ?			 "" : "not");	acpi_os_printf ("  Max address is %s fixed\n",			 ACPI_ADDRESS_FIXED == address16_data->max_address_fixed ?			 "" : "not");	acpi_os_printf ("  Granularity: %08X\n",			 address16_data->granularity);	acpi_os_printf ("  Address range min: %08X\n",			 address16_data->min_address_range);	acpi_os_printf ("  Address range max: %08X\n",			 address16_data->max_address_range);	acpi_os_printf ("  Address translation offset: %08X\n",			 address16_data->address_translation_offset);	acpi_os_printf ("  Address Length: %08X\n",			 address16_data->address_length);	if (0xFF != address16_data->resource_source.index) {		acpi_os_printf ("  Resource Source Index: %X\n",				 address16_data->resource_source.index);		acpi_os_printf ("  Resource Source: %s\n",				 address16_data->resource_source.string_ptr);	}	return;}/******************************************************************************* * * FUNCTION:    acpi_rs_dump_address32 * * PARAMETERS:  Data            - pointer to the resource structure to dump. * * RETURN:      None * * DESCRIPTION: Prints out the various members of the Data structure type. * ******************************************************************************/voidacpi_rs_dump_address32 (	union acpi_resource_data        *data){	struct acpi_resource_address32 *address32_data = (struct acpi_resource_address32 *) data;	ACPI_FUNCTION_ENTRY ();	acpi_os_printf ("32-Bit Address Space Resource\n");	switch (address32_data->resource_type) {	case ACPI_MEMORY_RANGE:		acpi_os_printf ("  Resource Type: Memory Range\n");		switch (address32_data->attribute.memory.cache_attribute) {		case ACPI_NON_CACHEABLE_MEMORY:			acpi_os_printf ("  Type Specific: "					  "Noncacheable memory\n");			break;		case ACPI_CACHABLE_MEMORY:			acpi_os_printf ("  Type Specific: "					  "Cacheable memory\n");			break;		case ACPI_WRITE_COMBINING_MEMORY:			acpi_os_printf ("  Type Specific: "					  "Write-combining memory\n");			break;		case ACPI_PREFETCHABLE_MEMORY:			acpi_os_printf ("  Type Specific: "					  "Prefetchable memory\n");			break;		default:			acpi_os_printf ("  Type Specific: "					  "Invalid cache attribute\n");			break;		}		acpi_os_printf ("  Type Specific: Read%s\n",			ACPI_READ_WRITE_MEMORY ==			address32_data->attribute.memory.read_write_attribute ?			"/Write" : " Only");		break;	case ACPI_IO_RANGE:		acpi_os_printf ("  Resource Type: Io Range\n");		switch (address32_data->attribute.io.range_attribute) {		case ACPI_NON_ISA_ONLY_RANGES:			acpi_os_printf ("  Type Specific: "					  "Non-ISA Io Addresses\n");			break;		case ACPI_ISA_ONLY_RANGES:			acpi_os_printf ("  Type Specific: "					  "ISA Io Addresses\n");			break;		case ACPI_ENTIRE_RANGE:			acpi_os_printf ("  Type Specific: "					  "ISA and non-ISA Io Addresses\n");			break;		default:			acpi_os_printf ("  Type Specific: "					  "Invalid Range attribute");			break;		}		acpi_os_printf (" Type Specific: %s Translation\n",			ACPI_SPARSE_TRANSLATION ==			address32_data->attribute.io.translation_attribute ?			"Sparse" : "Dense");		break;	case ACPI_BUS_NUMBER_RANGE:		acpi_os_printf ("  Resource Type: Bus Number Range\n");		break;	default:		acpi_os_printf ("  Invalid Resource Type..exiting.\n");		return;	}	acpi_os_printf ("  Resource %s\n",			 ACPI_CONSUMER == address32_data->producer_consumer ?			 "Consumer" : "Producer");	acpi_os_printf ("  %s decode\n",			 ACPI_SUB_DECODE == address32_data->decode ?			 "Subtractive" : "Positive");	acpi_os_printf ("  Min address is %s fixed\n",			 ACPI_ADDRESS_FIXED == address32_data->min_address_fixed ?			 "" : "not ");	acpi_os_printf ("  Max address is %s fixed\n",			 ACPI_ADDRESS_FIXED == address32_data->max_address_fixed ?			 "" : "not ");	acpi_os_printf ("  Granularity: %08X\n",			 address32_data->granularity);	acpi_os_printf ("  Address range min: %08X\n",			 address32_data->min_address_range);	acpi_os_printf ("  Address range max: %08X\n",			 address32_data->max_address_range);	acpi_os_printf ("  Address translation offset: %08X\n",			 address32_data->address_translation_offset);	acpi_os_printf ("  Address Length: %08X\n",			 address32_data->address_length);	if(0xFF != address32_data->resource_source.index) {		acpi_os_printf ("  Resource Source Index: %X\n",				 address32_data->resource_source.index);		acpi_os_printf ("  Resource Source: %s\n",				 address32_data->resource_source.string_ptr);	}	return;}/******************************************************************************* * * FUNCTION:    acpi_rs_dump_address64 * * PARAMETERS:  Data            - pointer to the resource structure to dump. * * RETURN:      None * * DESCRIPTION: Prints out the various members of the Data structure type. * ******************************************************************************/voidacpi_rs_dump_address64 (	union acpi_resource_data        *data){	struct acpi_resource_address64 *address64_data = (struct acpi_resource_address64 *) data;	ACPI_FUNCTION_ENTRY ();	acpi_os_printf ("64-Bit Address Space Resource\n");	switch (address64_data->resource_type) {	case ACPI_MEMORY_RANGE:		acpi_os_printf ("  Resource Type: Memory Range\n");		switch (address64_data->attribute.memory.cache_attribute) {		case ACPI_NON_CACHEABLE_MEMORY:			acpi_os_printf ("  Type Specific: "					  "Noncacheable memory\n");			break;		case ACPI_CACHABLE_MEMORY:			acpi_os_printf ("  Type Specific: "					  "Cacheable memory\n");			break;		case ACPI_WRITE_COMBINING_MEMORY:			acpi_os_printf ("  Type Specific: "					  "Write-combining memory\n");			break;		case ACPI_PREFETCHABLE_MEMORY:			acpi_os_printf ("  Type Specific: "					  "Prefetchable memory\n");			break;		default:			acpi_os_printf ("  Type Specific: "					  "Invalid cache attribute\n");			break;		}		acpi_os_printf ("  Type Specific: Read%s\n",			ACPI_READ_WRITE_MEMORY ==			address64_data->attribute.memory.read_write_attribute ?			"/Write" : " Only");		break;	case ACPI_IO_RANGE:		acpi_os_printf ("  Resource Type: Io Range\n");		switch (address64_data->attribute.io.range_attribute) {		case ACPI_NON_ISA_ONLY_RANGES:			acpi_os_printf ("  Type Specific: "					  "Non-ISA Io Addresses\n");			break;		case ACPI_ISA_ONLY_RANGES:			acpi_os_printf ("  Type Specific: "					  "ISA Io Addresses\n");			break;		case ACPI_ENTIRE_RANGE:			acpi_os_printf ("  Type Specific: "					  "ISA and non-ISA Io Addresses\n");			break;		default:			acpi_os_printf ("  Type Specific: "					  "Invalid Range attribute");			break;		}		acpi_os_printf (" Type Specific: %s Translation\n",			ACPI_SPARSE_TRANSLATION ==			address64_data->attribute.io.translation_attribute ?			"Sparse" : "Dense");		break;	case ACPI_BUS_NUMBER_RANGE:		acpi_os_printf ("  Resource Type: Bus Number Range\n");		break;	default:		acpi_os_printf ("  Invalid Resource Type..exiting.\n");		return;	}	acpi_os_printf ("  Resource %s\n",			 ACPI_CONSUMER == address64_data->producer_consumer ?			 "Consumer" : "Producer");	acpi_os_printf ("  %s decode\n",			 ACPI_SUB_DECODE == address64_data->decode ?			 "Subtractive" : "Positive");	acpi_os_printf ("  Min address is %s fixed\n",			 ACPI_ADDRESS_FIXED == address64_data->min_address_fixed ?			 "" : "not ");	acpi_os_printf ("  Max address is %s fixed\n",			 ACPI_ADDRESS_FIXED == address64_data->max_address_fixed ?			 "" : "not ");	acpi_os_printf ("  Granularity: %8.8X%8.8X\n",			 ACPI_FORMAT_UINT64 (address64_data->granularity));	acpi_os_printf ("  Address range min: %8.8X%8.8X\n",			 ACPI_FORMAT_UINT64 (address64_data->min_address_range));	acpi_os_printf ("  Address range max: %8.8X%8.8X\n",			 ACPI_FORMAT_UINT64 (address64_data->max_address_range));	acpi_os_printf ("  Address translation offset: %8.8X%8.8X\n",			 ACPI_FORMAT_UINT64 (address64_data->address_translation_offset));	acpi_os_printf ("  Address Length: %8.8X%8.8X\n",			 ACPI_FORMAT_UINT64 (address64_data->address_length));	if(0xFF != address64_data->resource_source.index) {		acpi_os_printf ("  Resource Source Index: %X\n",				 address64_data->resource_source.index);		acpi_os_printf ("  Resource Source: %s\n",				 address64_data->resource_source.string_ptr);	}	return;}/******************************************************************************* * * FUNCTION:    acpi_rs_dump_extended_irq * * PARAMETERS:  Data            - pointer to the resource structure to dump. * * RETURN:      None * * DESCRIPTION: Prints out the various members of the Data structure type. * ******************************************************************************/voidacpi_rs_dump_extended_irq (	union acpi_resource_data        *data){	struct acpi_resource_ext_irq    *ext_irq_data = (struct acpi_resource_ext_irq *) data;	u8                              index = 0;	ACPI_FUNCTION_ENTRY ();	acpi_os_printf ("Extended IRQ Resource\n");	acpi_os_printf ("  Resource %s\n",			 ACPI_CONSUMER == ext_irq_data->producer_consumer ?			 "Consumer" : "Producer");	acpi_os_printf ("  %s\n",			 ACPI_LEVEL_SENSITIVE == ext_irq_data->edge_level ?			 "Level" : "Edge");	acpi_os_printf ("  Active %s\n",			 ACPI_ACTIVE_LOW == ext_irq_data->active_high_low ?			 "low" : "high");	acpi_os_printf ("  %s\n",			 ACPI_SHARED == ext_irq_data->shared_exclusive ?			 "Shared" : "Exclusive");	acpi_os_printf ("  Interrupts : %X ( ",			 ext_irq_data->number_of_interrupts);	for (index = 0; index < ext_irq_data->number_of_interrupts; index++) {		acpi_os_printf ("%X ", ext_irq_data->interrupts[index]);	}	acpi_os_printf (")\n");	if(0xFF != ext_irq_data->resource_source.index) {		acpi_os_printf ("  Resource Source Index: %X",				 ext_irq_data->resource_source.index);		acpi_os_printf ("  Resource Source: %s",				 ext_irq_data->resource_source.string_ptr);	}	return;}/******************************************************************************* * * FUNCTION:    acpi_rs_dump_resource_list * * PARAMETERS:  Data            - pointer to the resource structure to dump. * * RETURN:      None * * DESCRIPTION: Dispatches the structure to the correct dump routine. * ******************************************************************************/voidacpi_rs_dump_resource_list (	struct acpi_resource        *resource){	u8                          count = 0;	u8                          done = FALSE;	ACPI_FUNCTION_ENTRY ();	if (acpi_dbg_level & ACPI_LV_RESOURCES && _COMPONENT & acpi_dbg_layer) {		while (!done) {			acpi_os_printf ("Resource structure %X.\n", count++);			switch (resource->id) {			case ACPI_RSTYPE_IRQ:				acpi_rs_dump_irq (&resource->data);				break;			case ACPI_RSTYPE_DMA:				acpi_rs_dump_dma (&resource->data);				break;			case ACPI_RSTYPE_START_DPF:				acpi_rs_dump_start_depend_fns (&resource->data);				break;			case ACPI_RSTYPE_END_DPF:				acpi_os_printf ("end_dependent_functions Resource\n");				/* acpi_rs_dump_end_dependent_functions (Resource->Data);*/				break;			case ACPI_RSTYPE_IO:				acpi_rs_dump_io (&resource->data);				break;			case ACPI_RSTYPE_FIXED_IO:				acpi_rs_dump_fixed_io (&resource->data);				break;			case ACPI_RSTYPE_VENDOR:				acpi_rs_dump_vendor_specific (&resource->data);				break;			case ACPI_RSTYPE_END_TAG:				/*rs_dump_end_tag (Resource->Data);*/				acpi_os_printf ("end_tag Resource\n");				done = TRUE;				break;			case ACPI_RSTYPE_MEM24:				acpi_rs_dump_memory24 (&resource->data);				break;			case ACPI_RSTYPE_MEM32:				acpi_rs_dump_memory32 (&resource->data);				break;			case ACPI_RSTYPE_FIXED_MEM32:				acpi_rs_dump_fixed_memory32 (&resource->data);				break;			case ACPI_RSTYPE_ADDRESS16:				acpi_rs_dump_address16 (&resource->data);				break;			case ACPI_RSTYPE_ADDRESS32:				acpi_rs_dump_address32 (&resource->data);				break;			case ACPI_RSTYPE_ADDRESS64:				acpi_rs_dump_address64 (&resource->data);				break;			case ACPI_RSTYPE_EXT_IRQ:				acpi_rs_dump_extended_irq (&resource->data);				break;			default:				acpi_os_printf ("Invalid resource type\n");				break;			}			resource = ACPI_PTR_ADD (struct acpi_resource, resource, resource->length);		}	}	return;}/******************************************************************************* * * FUNCTION:    acpi_rs_dump_irq_list * * PARAMETERS:  Data            - pointer to the routing table to dump. * * RETURN:      None * * DESCRIPTION: Dispatches the structures to the correct dump routine. * ******************************************************************************/voidacpi_rs_dump_irq_list (	u8                              *route_table){	u8                              *buffer = route_table;	u8                              count = 0;	u8                              done = FALSE;	struct acpi_pci_routing_table   *prt_element;	ACPI_FUNCTION_ENTRY ();	if (acpi_dbg_level & ACPI_LV_RESOURCES && _COMPONENT & acpi_dbg_layer) {		prt_element = ACPI_CAST_PTR (struct acpi_pci_routing_table, buffer);		while (!done) {			acpi_os_printf ("PCI IRQ Routing Table structure %X.\n", count++);			acpi_os_printf ("  Address: %8.8X%8.8X\n",					 ACPI_FORMAT_UINT64 (prt_element->address));			acpi_os_printf ("  Pin: %X\n", prt_element->pin);			acpi_os_printf ("  Source: %s\n", prt_element->source);			acpi_os_printf ("  source_index: %X\n",					 prt_element->source_index);			buffer += prt_element->length;			prt_element = ACPI_CAST_PTR (struct acpi_pci_routing_table, buffer);			if(0 == prt_element->length) {				done = TRUE;			}		}	}	return;}#endif

⌨️ 快捷键说明

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