📄 rsdump.c
字号:
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 + -