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

📄 rsdump.c

📁 linux-2.6.15.6
💻 C
📖 第 1 页 / 共 2 页
字号:
		acpi_os_printf("Bus Number Range\n");		break;	default:		acpi_os_printf("0x%2.2X\n", address16_data->resource_type);		break;	}	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. * ******************************************************************************/static void acpi_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("  Resource Type: 0x%2.2X\n",			       address32_data->resource_type);		break;	}	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. * ******************************************************************************/static void acpi_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("  Resource Type: 0x%2.2X\n",			       address64_data->resource_type);		break;	}	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));	acpi_os_printf("  Type Specific Attributes: %8.8X%8.8X\n",		       ACPI_FORMAT_UINT64(address64_data->					  type_specific_attributes));	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. * ******************************************************************************/static void acpi_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:  Resource        - pointer to the resource structure to dump. * * RETURN:      None * * DESCRIPTION: Dispatches the structure to the correct dump routine. * ******************************************************************************/void acpi_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:  route_table     - pointer to the routing table to dump. * * RETURN:      None * * DESCRIPTION: Dispatches the structures to the correct dump routine. * ******************************************************************************/void acpi_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 + -