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

📄 exregion.c

📁 h内核
💻 C
📖 第 1 页 / 共 2 页
字号:
 *              handler_context     - Pointer to Handler's context *              region_context      - Pointer to context specific to the *                                    accessed region * * RETURN:      Status * * DESCRIPTION: Handler for the System IO address space (Op Region) * ******************************************************************************/acpi_statusacpi_ex_system_io_space_handler (	u32                             function,	acpi_physical_address           address,	u32                             bit_width,	acpi_integer                    *value,	void                            *handler_context,	void                            *region_context){	acpi_status                     status = AE_OK;	u32                             value32;	ACPI_FUNCTION_TRACE ("ex_system_io_space_handler");	ACPI_DEBUG_PRINT ((ACPI_DB_INFO,			"system_iO %d (%d width) Address=%8.8X%8.8X\n", function, bit_width,			ACPI_FORMAT_UINT64 (address)));	/* Decode the function parameter */	switch (function) {	case ACPI_READ:		status = acpi_os_read_port ((acpi_io_address) address, &value32, bit_width);		*value = value32;		break;	case ACPI_WRITE:		status = acpi_os_write_port ((acpi_io_address) address, (u32) *value, bit_width);		break;	default:		status = AE_BAD_PARAMETER;		break;	}	return_ACPI_STATUS (status);}/******************************************************************************* * * FUNCTION:    acpi_ex_pci_config_space_handler * * PARAMETERS:  Function            - Read or Write operation *              Address             - Where in the space to read or write *              bit_width           - Field width in bits (8, 16, or 32) *              Value               - Pointer to in or out value *              handler_context     - Pointer to Handler's context *              region_context      - Pointer to context specific to the *                                    accessed region * * RETURN:      Status * * DESCRIPTION: Handler for the PCI Config address space (Op Region) * ******************************************************************************/acpi_statusacpi_ex_pci_config_space_handler (	u32                             function,	acpi_physical_address           address,	u32                             bit_width,	acpi_integer                    *value,	void                            *handler_context,	void                            *region_context){	acpi_status                     status = AE_OK;	struct acpi_pci_id              *pci_id;	u16                             pci_register;	ACPI_FUNCTION_TRACE ("ex_pci_config_space_handler");	/*	 *  The arguments to acpi_os(Read|Write)pci_configuration are:	 *	 *  pci_segment is the PCI bus segment range 0-31	 *  pci_bus     is the PCI bus number range 0-255	 *  pci_device  is the PCI device number range 0-31	 *  pci_function is the PCI device function number	 *  pci_register is the Config space register range 0-255 bytes	 *	 *  Value - input value for write, output address for read	 *	 */	pci_id      = (struct acpi_pci_id *) region_context;	pci_register = (u16) (u32) address;	ACPI_DEBUG_PRINT ((ACPI_DB_INFO,		"pci_config %d (%d) Seg(%04x) Bus(%04x) Dev(%04x) Func(%04x) Reg(%04x)\n",		function, bit_width, pci_id->segment, pci_id->bus, pci_id->device,		pci_id->function, pci_register));	switch (function) {	case ACPI_READ:		*value = 0;		status = acpi_os_read_pci_configuration (pci_id, pci_register, value, bit_width);		break;	case ACPI_WRITE:		status = acpi_os_write_pci_configuration (pci_id, pci_register, *value, bit_width);		break;	default:		status = AE_BAD_PARAMETER;		break;	}	return_ACPI_STATUS (status);}/******************************************************************************* * * FUNCTION:    acpi_ex_cmos_space_handler * * PARAMETERS:  Function            - Read or Write operation *              Address             - Where in the space to read or write *              bit_width           - Field width in bits (8, 16, or 32) *              Value               - Pointer to in or out value *              handler_context     - Pointer to Handler's context *              region_context      - Pointer to context specific to the *                                    accessed region * * RETURN:      Status * * DESCRIPTION: Handler for the CMOS address space (Op Region) * ******************************************************************************/acpi_statusacpi_ex_cmos_space_handler (	u32                             function,	acpi_physical_address           address,	u32                             bit_width,	acpi_integer                    *value,	void                            *handler_context,	void                            *region_context){	acpi_status                     status = AE_OK;	ACPI_FUNCTION_TRACE ("ex_cmos_space_handler");	return_ACPI_STATUS (status);}/******************************************************************************* * * FUNCTION:    acpi_ex_pci_bar_space_handler * * PARAMETERS:  Function            - Read or Write operation *              Address             - Where in the space to read or write *              bit_width           - Field width in bits (8, 16, or 32) *              Value               - Pointer to in or out value *              handler_context     - Pointer to Handler's context *              region_context      - Pointer to context specific to the *                                    accessed region * * RETURN:      Status * * DESCRIPTION: Handler for the PCI bar_target address space (Op Region) * ******************************************************************************/acpi_statusacpi_ex_pci_bar_space_handler (	u32                             function,	acpi_physical_address           address,	u32                             bit_width,	acpi_integer                    *value,	void                            *handler_context,	void                            *region_context){	acpi_status                     status = AE_OK;	ACPI_FUNCTION_TRACE ("ex_pci_bar_space_handler");	return_ACPI_STATUS (status);}/******************************************************************************* * * FUNCTION:    acpi_ex_data_table_space_handler * * PARAMETERS:  Function            - Read or Write operation *              Address             - Where in the space to read or write *              bit_width           - Field width in bits (8, 16, or 32) *              Value               - Pointer to in or out value *              handler_context     - Pointer to Handler's context *              region_context      - Pointer to context specific to the *                                    accessed region * * RETURN:      Status * * DESCRIPTION: Handler for the Data Table address space (Op Region) * ******************************************************************************/acpi_statusacpi_ex_data_table_space_handler (	u32                             function,	acpi_physical_address           address,	u32                             bit_width,	acpi_integer                    *value,	void                            *handler_context,	void                            *region_context){	acpi_status                     status = AE_OK;	u32                             byte_width = ACPI_DIV_8 (bit_width);	u32                             i;	char                            *logical_addr_ptr;	ACPI_FUNCTION_TRACE ("ex_data_table_space_handler");	logical_addr_ptr = ACPI_PHYSADDR_TO_PTR (address);   /* Perform the memory read or write */	switch (function) {	case ACPI_READ:		for (i = 0; i < byte_width; i++) {			((char *) value) [i] = logical_addr_ptr[i];		}		break;	case ACPI_WRITE:	default:		return_ACPI_STATUS (AE_SUPPORT);	}	return_ACPI_STATUS (status);}

⌨️ 快捷键说明

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