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

📄 rsdump.c

📁 Linux内核源代码 为压缩文件 是<<Linux内核>>一书中的源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
	case MEMORY_RANGE:		acpi_os_printf ("Memory Range\n");		switch (address16_data->attribute.memory.cache_attribute)		{		case NON_CACHEABLE_MEMORY:			acpi_os_printf ("\t\t_type Specific: "					  "Noncacheable memory\n");			break;		case CACHABLE_MEMORY:			acpi_os_printf ("\t\t_type Specific: "					  "Cacheable memory\n");			break;		case WRITE_COMBINING_MEMORY:			acpi_os_printf ("\t\t_type Specific: "					  "Write-combining memory\n");			break;		case PREFETCHABLE_MEMORY:			acpi_os_printf ("\t\t_type Specific: "					  "Prefetchable memory\n");			break;		default:			acpi_os_printf ("\t\t_type Specific: "					  "Invalid cache attribute\n");			break;		}		acpi_os_printf ("\t\t_type Specific: Read%s\n",			READ_WRITE_MEMORY ==			address16_data->attribute.memory.read_write_attribute ?			"/Write" : " Only");		break;	case IO_RANGE:		acpi_os_printf ("I/O Range\n");		switch (address16_data->attribute.io.range_attribute)		{		case NON_ISA_ONLY_RANGES:			acpi_os_printf ("\t\t_type Specific: "					  "Non-ISA Io Addresses\n");			break;		case ISA_ONLY_RANGES:			acpi_os_printf ("\t\t_type Specific: "					  "ISA Io Addresses\n");			break;		case ENTIRE_RANGE:			acpi_os_printf ("\t\t_type Specific: "					  "ISA and non-ISA Io Addresses\n");			break;		default:			acpi_os_printf ("\t\t_type Specific: "					  "Invalid range attribute\n");			break;		}		break;	case BUS_NUMBER_RANGE:		acpi_os_printf ("Bus Number Range\n");		break;	default:		acpi_os_printf ("Invalid resource type. Exiting.\n");		return;	}	acpi_os_printf ("\t\t_resource %s\n",			CONSUMER == address16_data->producer_consumer ?			"Consumer" : "Producer");	acpi_os_printf ("\t\t%s decode\n",			 SUB_DECODE == address16_data->decode ?			 "Subtractive" : "Positive");	acpi_os_printf ("\t\t_min address is %s fixed\n",			 ADDRESS_FIXED == address16_data->min_address_fixed ?			 "" : "not");	acpi_os_printf ("\t\t_max address is %s fixed\n",			 ADDRESS_FIXED == address16_data->max_address_fixed ?			 "" : "not");	acpi_os_printf ("\t\t_granularity: %08X\n",			 address16_data->granularity);	acpi_os_printf ("\t\t_address range min: %08X\n",			 address16_data->min_address_range);	acpi_os_printf ("\t\t_address range max: %08X\n",			 address16_data->max_address_range);	acpi_os_printf ("\t\t_address translation offset: %08X\n",			 address16_data->address_translation_offset);	acpi_os_printf ("\t\t_address Length: %08X\n",			 address16_data->address_length);	if (0xFF != address16_data->resource_source_index) {		acpi_os_printf ("\t\t_resource Source Index: %X\n",				 address16_data->resource_source_index);		acpi_os_printf ("\t\t_resource Source: %s\n",				 address16_data->resource_source);	}	return;}/******************************************************************************* * * FUNCTION:    Acpi_rs_dump_address32 * * PARAMETERS:  Data            - pointer to the resource structure to dump. * * RETURN: * * DESCRIPTION: Prints out the various members of the Data structure type. * ******************************************************************************/voidacpi_rs_dump_address32 (	RESOURCE_DATA           *data){	ADDRESS32_RESOURCE      *address32_data = (ADDRESS32_RESOURCE*) data;	acpi_os_printf ("\t32-Bit Address Space Resource\n");	switch (address32_data->resource_type)	{	case MEMORY_RANGE:		acpi_os_printf ("\t\t_resource Type: Memory Range\n");		switch (address32_data->attribute.memory.cache_attribute)		{		case NON_CACHEABLE_MEMORY:			acpi_os_printf ("\t\t_type Specific: "					  "Noncacheable memory\n");			break;		case CACHABLE_MEMORY:			acpi_os_printf ("\t\t_type Specific: "					  "Cacheable memory\n");			break;		case WRITE_COMBINING_MEMORY:			acpi_os_printf ("\t\t_type Specific: "					  "Write-combining memory\n");			break;		case PREFETCHABLE_MEMORY:			acpi_os_printf ("\t\t_type Specific: "					  "Prefetchable memory\n");			break;		default:			acpi_os_printf ("\t\t_type Specific: "					  "Invalid cache attribute\n");			break;		}		acpi_os_printf ("\t\t_type Specific: Read%s\n",			READ_WRITE_MEMORY ==			address32_data->attribute.memory.read_write_attribute ?			"/Write" : " Only");		break;	case IO_RANGE:		acpi_os_printf ("\t\t_resource Type: Io Range\n");		switch (address32_data->attribute.io.range_attribute)			{			case NON_ISA_ONLY_RANGES:				acpi_os_printf ("\t\t_type Specific: "						  "Non-ISA Io Addresses\n");				break;			case ISA_ONLY_RANGES:				acpi_os_printf ("\t\t_type Specific: "						  "ISA Io Addresses\n");				break;			case ENTIRE_RANGE:				acpi_os_printf ("\t\t_type Specific: "						  "ISA and non-ISA Io Addresses\n");				break;			default:				acpi_os_printf ("\t\t_type Specific: "						  "Invalid Range attribute");				break;			}		break;	case BUS_NUMBER_RANGE:		acpi_os_printf ("\t\t_resource Type: Bus Number Range\n");		break;	default:		acpi_os_printf ("\t\t_invalid Resource Type..exiting.\n");		return;	}	acpi_os_printf ("\t\t_resource %s\n",			 CONSUMER == address32_data->producer_consumer ?			 "Consumer" : "Producer");	acpi_os_printf ("\t\t%s decode\n",			 SUB_DECODE == address32_data->decode ?			 "Subtractive" : "Positive");	acpi_os_printf ("\t\t_min address is %s fixed\n",			 ADDRESS_FIXED == address32_data->min_address_fixed ?			 "" : "not ");	acpi_os_printf ("\t\t_max address is %s fixed\n",			 ADDRESS_FIXED == address32_data->max_address_fixed ?			 "" : "not ");	acpi_os_printf ("\t\t_granularity: %08X\n",			 address32_data->granularity);	acpi_os_printf ("\t\t_address range min: %08X\n",			 address32_data->min_address_range);	acpi_os_printf ("\t\t_address range max: %08X\n",			 address32_data->max_address_range);	acpi_os_printf ("\t\t_address translation offset: %08X\n",			 address32_data->address_translation_offset);	acpi_os_printf ("\t\t_address Length: %08X\n",			 address32_data->address_length);	if(0xFF != address32_data->resource_source_index) {		acpi_os_printf ("\t\t_resource Source Index: %X\n",				 address32_data->resource_source_index);		acpi_os_printf ("\t\t_resource Source: %s\n",				 address32_data->resource_source);	}	return;}/******************************************************************************* * * FUNCTION:    Acpi_rs_dump_extended_irq * * PARAMETERS:  Data            - pointer to the resource structure to dump. * * RETURN: * * DESCRIPTION: Prints out the various members of the Data structure type. * ******************************************************************************/voidacpi_rs_dump_extended_irq (	RESOURCE_DATA           *data){	EXTENDED_IRQ_RESOURCE   *ext_irq_data = (EXTENDED_IRQ_RESOURCE*) data;	u8                      index = 0;	acpi_os_printf ("\t_extended IRQ Resource\n");	acpi_os_printf ("\t\t_resource %s\n",			 CONSUMER == ext_irq_data->producer_consumer ?			 "Consumer" : "Producer");	acpi_os_printf ("\t\t%s\n",			 LEVEL_SENSITIVE == ext_irq_data->edge_level ?			 "Level" : "Edge");	acpi_os_printf ("\t\t_active %s\n",			 ACTIVE_LOW == ext_irq_data->active_high_low ?			 "low" : "high");	acpi_os_printf ("\t\t%s\n",			 SHARED == ext_irq_data->shared_exclusive ?			 "Shared" : "Exclusive");	acpi_os_printf ("\t\t_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 ("\t\t_resource Source Index: %X",				 ext_irq_data->resource_source_index);		acpi_os_printf ("\t\t_resource Source: %s",				 ext_irq_data->resource_source);	}	return;}/******************************************************************************* * * FUNCTION:    Acpi_rs_dump_resource_list * * PARAMETERS:  Data            - pointer to the resource structure to dump. * * RETURN: * * DESCRIPTION: Dispatches the structure to the correct dump routine. * ******************************************************************************/voidacpi_rs_dump_resource_list (	RESOURCE            *resource){	u8                  count = 0;	u8                  done = FALSE;	if (acpi_dbg_level & TRACE_RESOURCES && _COMPONENT & acpi_dbg_layer) {		while (!done) {			acpi_os_printf ("\t_resource structure %x.\n", count++);			switch (resource->id)			{			case irq:				acpi_rs_dump_irq (&resource->data);				break;			case dma:				acpi_rs_dump_dma (&resource->data);				break;			case start_dependent_functions:				acpi_rs_dump_start_dependent_functions (&resource->data);				break;			case end_dependent_functions:				acpi_os_printf ("\t_end_dependent_functions Resource\n");				/* Acpi_rs_dump_end_dependent_functions (Resource->Data);*/				break;			case io:				acpi_rs_dump_io (&resource->data);				break;			case fixed_io:				acpi_rs_dump_fixed_io (&resource->data);				break;			case vendor_specific:				acpi_rs_dump_vendor_specific (&resource->data);				break;			case end_tag:				/*Rs_dump_end_tag (Resource->Data);*/				acpi_os_printf ("\t_end_tag Resource\n");				done = TRUE;				break;			case memory24:				acpi_rs_dump_memory24 (&resource->data);				break;			case memory32:				acpi_rs_dump_memory32 (&resource->data);				break;			case fixed_memory32:				acpi_rs_dump_fixed_memory32 (&resource->data);				break;			case address16:				acpi_rs_dump_address16 (&resource->data);				break;			case address32:				acpi_rs_dump_address32 (&resource->data);				break;			case extended_irq:				acpi_rs_dump_extended_irq (&resource->data);				break;			default:				acpi_os_printf ("Invalid resource type\n");				break;			}			resource = (RESOURCE *) ((NATIVE_UINT) resource +					 (NATIVE_UINT) resource->length);		}	}	return;}/******************************************************************************* * * FUNCTION:    Acpi_rs_dump_irq_list * * PARAMETERS:  Data            - pointer to the routing table to dump. * * RETURN: * * 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;	PCI_ROUTING_TABLE   *prt_element;	if (acpi_dbg_level & TRACE_RESOURCES && _COMPONENT & acpi_dbg_layer) {		prt_element = (PCI_ROUTING_TABLE *)buffer;		while (!done) {			acpi_os_printf ("\t_pCI IRQ Routing Table structure %X.\n", count++);			acpi_os_printf ("\t\t_address: %X\n",					 prt_element->data.address);			acpi_os_printf ("\t\t_pin: %X\n", prt_element->data.pin);			acpi_os_printf ("\t\t_source: %s\n", prt_element->data.source);			acpi_os_printf ("\t\t_source_index: %X\n",					 prt_element->data.source_index);			buffer += prt_element->length;			prt_element = (PCI_ROUTING_TABLE *)buffer;			if(0 == prt_element->length) {				done = TRUE;			}		}	}	return;}

⌨️ 快捷键说明

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