Author: cgutman Date: Mon Mar 26 19:34:53 2012 New Revision: 56239
URL: http://svn.reactos.org/svn/reactos?rev=56239&view=rev Log: [ACPI] - Add translation code for ACPI_RESOURCE_TYPE_FIXED_IO
Modified: trunk/reactos/drivers/bus/acpi/buspdo.c
Modified: trunk/reactos/drivers/bus/acpi/buspdo.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/bus/acpi/buspdo.c?r... ============================================================================== --- trunk/reactos/drivers/bus/acpi/buspdo.c [iso-8859-1] (original) +++ trunk/reactos/drivers/bus/acpi/buspdo.c [iso-8859-1] Mon Mar 26 19:34:53 2012 @@ -775,6 +775,7 @@ case ACPI_RESOURCE_TYPE_MEMORY24: case ACPI_RESOURCE_TYPE_MEMORY32: case ACPI_RESOURCE_TYPE_FIXED_MEMORY32: + case ACPI_RESOURCE_TYPE_FIXED_IO: case ACPI_RESOURCE_TYPE_IO: { NumberOfResources++; @@ -895,6 +896,18 @@ ResourceDescriptor++; break; } + case ACPI_RESOURCE_TYPE_FIXED_IO: + { + ACPI_RESOURCE_FIXED_IO *io_data = (ACPI_RESOURCE_FIXED_IO*) &resource->Data; + ResourceDescriptor->Type = CmResourceTypePort; + ResourceDescriptor->ShareDisposition = CmResourceShareDriverExclusive; + ResourceDescriptor->Flags = CM_RESOURCE_PORT_IO; + ResourceDescriptor->u.Port.Start.QuadPart = io_data->Address; + ResourceDescriptor->u.Port.Length = io_data->AddressLength; + + ResourceDescriptor++; + break; + } case ACPI_RESOURCE_TYPE_ADDRESS16: { ACPI_RESOURCE_ADDRESS16 *addr16_data = (ACPI_RESOURCE_ADDRESS16*) &resource->Data; @@ -1236,6 +1249,7 @@ case ACPI_RESOURCE_TYPE_MEMORY24: case ACPI_RESOURCE_TYPE_MEMORY32: case ACPI_RESOURCE_TYPE_FIXED_MEMORY32: + case ACPI_RESOURCE_TYPE_FIXED_IO: case ACPI_RESOURCE_TYPE_IO: { NumberOfResources++; @@ -1356,6 +1370,21 @@ RequirementDescriptor++; break; } + case ACPI_RESOURCE_TYPE_FIXED_IO: + { + ACPI_RESOURCE_FIXED_IO *io_data = (ACPI_RESOURCE_FIXED_IO*) &resource->Data; + RequirementDescriptor->Flags = CM_RESOURCE_PORT_IO; + RequirementDescriptor->u.Port.Length = io_data->AddressLength; + RequirementDescriptor->Option = CurrentRes ? 0 : IO_RESOURCE_PREFERRED; + RequirementDescriptor->Type = CmResourceTypePort; + RequirementDescriptor->ShareDisposition = CmResourceShareDriverExclusive; + RequirementDescriptor->u.Port.Alignment = 1; + RequirementDescriptor->u.Port.MinimumAddress.QuadPart = io_data->Address; + RequirementDescriptor->u.Port.MaximumAddress.QuadPart = io_data->Address + io_data->AddressLength - 1; + + RequirementDescriptor++; + break; + } case ACPI_RESOURCE_TYPE_ADDRESS16: { ACPI_RESOURCE_ADDRESS16 *addr16_data = (ACPI_RESOURCE_ADDRESS16*) &resource->Data;