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

📄 rsdump.c

📁 这个linux源代码是很全面的~基本完整了~使用c编译的~由于时间问题我没有亲自测试~但就算用来做参考资料也是非常好的
💻 C
📖 第 1 页 / 共 2 页
字号:
/******************************************************************************* * * Module Name: rsdump - Functions to display the resource structures. *              $Revision: 23 $ * ******************************************************************************//* *  Copyright (C) 2000, 2001 R. Byron Moore * *  This program is free software; you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation; either version 2 of the License, or *  (at your option) any later version. * *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. * *  You should have received a copy of the GNU General Public License *  along with this program; if not, write to the Free Software *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */#include "acpi.h"#include "acresrc.h"#define _COMPONENT          ACPI_RESOURCES	 MODULE_NAME         ("rsdump")#ifdef ACPI_DEBUG/******************************************************************************* * * FUNCTION:    Acpi_rs_dump_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_irq (	acpi_resource_data      *data){	acpi_resource_irq       *irq_data = (acpi_resource_irq *) data;	u8                      index = 0;	FUNCTION_ENTRY ();	acpi_os_printf ("IRQ Resource\n");	acpi_os_printf ("  %s Triggered\n",			 LEVEL_SENSITIVE == irq_data->edge_level ? "Level" : "Edge");	acpi_os_printf ("  Active %s\n",			 ACTIVE_LOW == irq_data->active_high_low ? "Low" : "High");	acpi_os_printf ("  %s\n",			 SHARED == irq_data->shared_exclusive ? "Shared" : "Exclusive");	acpi_os_printf ("  %X Interrupts ( ", irq_data->number_of_interrupts);	for (index = 0; index < irq_data->number_of_interrupts; index++) {		acpi_os_printf ("%X ", irq_data->interrupts[index]);	}	acpi_os_printf (")\n");	return;}/******************************************************************************* * * FUNCTION:    Acpi_rs_dump_dma * * 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_dma (	acpi_resource_data      *data){	acpi_resource_dma       *dma_data = (acpi_resource_dma *) data;	u8                      index = 0;	FUNCTION_ENTRY ();	acpi_os_printf ("DMA Resource\n");	switch (dma_data->type) {	case COMPATIBILITY:		acpi_os_printf ("  Compatibility mode\n");		break;	case TYPE_A:		acpi_os_printf ("  Type A\n");		break;	case TYPE_B:		acpi_os_printf ("  Type B\n");		break;	case TYPE_F:		acpi_os_printf ("  Type F\n");		break;	default:		acpi_os_printf ("  Invalid DMA type\n");		break;	}	acpi_os_printf ("  %sBus Master\n",			 BUS_MASTER == dma_data->bus_master ? "" : "Not a ");	switch (dma_data->transfer) {	case TRANSFER_8:		acpi_os_printf ("  8-bit only transfer\n");		break;	case TRANSFER_8_16:		acpi_os_printf ("  8 and 16-bit transfer\n");		break;	case TRANSFER_16:		acpi_os_printf ("  16 bit only transfer\n");		break;	default:		acpi_os_printf ("  Invalid transfer preference\n");		break;	}	acpi_os_printf ("  Number of Channels: %X ( ", dma_data->number_of_channels);	for (index = 0; index < dma_data->number_of_channels; index++) {		acpi_os_printf ("%X ", dma_data->channels[index]);	}	acpi_os_printf (")\n");	return;}/******************************************************************************* * * FUNCTION:    Acpi_rs_dump_start_dependent_functions * * 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_start_dependent_functions (	acpi_resource_data          *data){	acpi_resource_start_dpf     *sdf_data = (acpi_resource_start_dpf *) data;	FUNCTION_ENTRY ();	acpi_os_printf ("Start Dependent Functions Resource\n");	switch (sdf_data->compatibility_priority) {	case GOOD_CONFIGURATION:		acpi_os_printf ("  Good configuration\n");		break;	case ACCEPTABLE_CONFIGURATION:		acpi_os_printf ("  Acceptable configuration\n");		break;	case SUB_OPTIMAL_CONFIGURATION:		acpi_os_printf ("  Sub-optimal configuration\n");		break;	default:		acpi_os_printf ("  Invalid compatibility priority\n");		break;	}	switch(sdf_data->performance_robustness) {	case GOOD_CONFIGURATION:		acpi_os_printf ("  Good configuration\n");		break;	case ACCEPTABLE_CONFIGURATION:		acpi_os_printf ("  Acceptable configuration\n");		break;	case SUB_OPTIMAL_CONFIGURATION:		acpi_os_printf ("  Sub-optimal configuration\n");		break;	default:		acpi_os_printf ("  Invalid performance "				  "robustness preference\n");		break;	}	return;}/******************************************************************************* * * FUNCTION:    Acpi_rs_dump_io * * 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_io (	acpi_resource_data      *data){	acpi_resource_io        *io_data = (acpi_resource_io *) data;	FUNCTION_ENTRY ();	acpi_os_printf ("Io Resource\n");	acpi_os_printf ("  %d bit decode\n",			 DECODE_16 == io_data->io_decode ? 16 : 10);	acpi_os_printf ("  Range minimum base: %08X\n",			 io_data->min_base_address);	acpi_os_printf ("  Range maximum base: %08X\n",			 io_data->max_base_address);	acpi_os_printf ("  Alignment: %08X\n",			 io_data->alignment);	acpi_os_printf ("  Range Length: %08X\n",			 io_data->range_length);	return;}/******************************************************************************* * * FUNCTION:    Acpi_rs_dump_fixed_io * * 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_fixed_io (	acpi_resource_data      *data){	acpi_resource_fixed_io  *fixed_io_data = (acpi_resource_fixed_io *) data;	FUNCTION_ENTRY ();	acpi_os_printf ("Fixed Io Resource\n");	acpi_os_printf ("  Range base address: %08X",			 fixed_io_data->base_address);	acpi_os_printf ("  Range length: %08X",			 fixed_io_data->range_length);	return;}/******************************************************************************* * * FUNCTION:    Acpi_rs_dump_vendor_specific * * 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_vendor_specific (	acpi_resource_data      *data){	acpi_resource_vendor    *vendor_data = (acpi_resource_vendor *) data;	u16                     index = 0;	FUNCTION_ENTRY ();	acpi_os_printf ("Vendor Specific Resource\n");	acpi_os_printf ("  Length: %08X\n", vendor_data->length);	for (index = 0; index < vendor_data->length; index++) {		acpi_os_printf ("  Byte %X: %08X\n",				 index, vendor_data->reserved[index]);	}	return;}/******************************************************************************* * * FUNCTION:    Acpi_rs_dump_memory24 * * 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_memory24 (	acpi_resource_data      *data){	acpi_resource_mem24     *memory24_data = (acpi_resource_mem24 *) data;	FUNCTION_ENTRY ();	acpi_os_printf ("24-Bit Memory Range Resource\n");	acpi_os_printf ("  Read%s\n",			 READ_WRITE_MEMORY ==			 memory24_data->read_write_attribute ?			 "/Write" : " only");	acpi_os_printf ("  Range minimum base: %08X\n",			 memory24_data->min_base_address);	acpi_os_printf ("  Range maximum base: %08X\n",			 memory24_data->max_base_address);	acpi_os_printf ("  Alignment: %08X\n",			 memory24_data->alignment);	acpi_os_printf ("  Range length: %08X\n",			 memory24_data->range_length);	return;}/******************************************************************************* * * FUNCTION:    Acpi_rs_dump_memory32 * * 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_memory32 (	acpi_resource_data      *data){	acpi_resource_mem32     *memory32_data = (acpi_resource_mem32 *) data;	FUNCTION_ENTRY ();	acpi_os_printf ("32-Bit Memory Range Resource\n");	acpi_os_printf ("  Read%s\n",			 READ_WRITE_MEMORY ==			 memory32_data->read_write_attribute ?			 "/Write" : " only");	acpi_os_printf ("  Range minimum base: %08X\n",			 memory32_data->min_base_address);	acpi_os_printf ("  Range maximum base: %08X\n",			 memory32_data->max_base_address);	acpi_os_printf ("  Alignment: %08X\n",			 memory32_data->alignment);	acpi_os_printf ("  Range length: %08X\n",			 memory32_data->range_length);	return;}/******************************************************************************* * * FUNCTION:    Acpi_rs_dump_fixed_memory32 * * PARAMETERS:  Data            - pointer to the resource structure to dump. * * RETURN: * * DESCRIPTION: Prints out the various members of the Data structure type. * ******************************************************************************/voidacpi_rs_dump_fixed_memory32 (	acpi_resource_data          *data){	acpi_resource_fixed_mem32   *fixed_memory32_data = (acpi_resource_fixed_mem32 *) data;	FUNCTION_ENTRY ();	acpi_os_printf ("32-Bit Fixed Location Memory Range Resource\n");	acpi_os_printf ("  Read%s\n",			 READ_WRITE_MEMORY ==			 fixed_memory32_data->read_write_attribute ?			 "/Write" : " Only");	acpi_os_printf ("  Range base address: %08X\n",			 fixed_memory32_data->range_base_address);	acpi_os_printf ("  Range length: %08X\n",			 fixed_memory32_data->range_length);	return;}/******************************************************************************* * * FUNCTION:    Acpi_rs_dump_address16 * * 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_address16 (	acpi_resource_data      *data){	acpi_resource_address16 *address16_data = (acpi_resource_address16 *) data;	FUNCTION_ENTRY ();	acpi_os_printf ("16-Bit Address Space Resource\n");	acpi_os_printf ("  Resource Type: ");	switch (address16_data->resource_type) {	case MEMORY_RANGE:		acpi_os_printf ("Memory Range\n");		switch (address16_data->attribute.memory.cache_attribute) {		case NON_CACHEABLE_MEMORY:			acpi_os_printf ("  Type Specific: "					  "Noncacheable memory\n");			break;		case CACHABLE_MEMORY:			acpi_os_printf ("  Type Specific: "					  "Cacheable memory\n");			break;		case WRITE_COMBINING_MEMORY:			acpi_os_printf ("  Type Specific: "					  "Write-combining memory\n");			break;		case 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",			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 ("  Type Specific: "					  "Non-ISA Io Addresses\n");			break;		case ISA_ONLY_RANGES:			acpi_os_printf ("  Type Specific: "					  "ISA Io Addresses\n");			break;		case ENTIRE_RANGE:			acpi_os_printf ("  Type Specific: "					  "ISA and non-ISA Io Addresses\n");			break;		default:			acpi_os_printf ("  Type Specific: "					  "Invalid range attribute\n");			break;		}		break;	case BUS_NUMBER_RANGE:

⌨️ 快捷键说明

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