[ros-diffs] [cgutman] 56239: [ACPI] - Add translation code for ACPI_RESOURCE_TYPE_FIXED_IO

cgutman at svn.reactos.org cgutman at svn.reactos.org
Mon Mar 26 19:34:53 UTC 2012


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?rev=56239&r1=56238&r2=56239&view=diff
==============================================================================
--- 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;




More information about the Ros-diffs mailing list