[ros-diffs] [cgutman] 48648: [ACPI] - Read and report ACPI_RESOURCE_TYPE_FIXED_MEMORY32

cgutman at svn.reactos.org cgutman at svn.reactos.org
Sun Aug 29 18:40:34 UTC 2010


Author: cgutman
Date: Sun Aug 29 18:40:33 2010
New Revision: 48648

URL: http://svn.reactos.org/svn/reactos?rev=48648&view=rev
Log:
[ACPI]
- Read and report ACPI_RESOURCE_TYPE_FIXED_MEMORY32

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=48648&r1=48647&r2=48648&view=diff
==============================================================================
--- trunk/reactos/drivers/bus/acpi/buspdo.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/bus/acpi/buspdo.c [iso-8859-1] Sun Aug 29 18:40:33 2010
@@ -727,6 +727,7 @@
 			case ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64:
 			case ACPI_RESOURCE_TYPE_MEMORY24:
 			case ACPI_RESOURCE_TYPE_MEMORY32:
+            case ACPI_RESOURCE_TYPE_FIXED_MEMORY32:
 			case ACPI_RESOURCE_TYPE_IO:
 			{
 				NumberOfResources++;
@@ -1044,6 +1045,22 @@
 				ResourceDescriptor->u.Memory.Start.QuadPart = mem32_data->Minimum;
 				ResourceDescriptor->u.Memory.Length = mem32_data->AddressLength;
 
+				ResourceDescriptor++;
+				break;
+			}
+            case ACPI_RESOURCE_TYPE_FIXED_MEMORY32:
+            {
+                ACPI_RESOURCE_FIXED_MEMORY32 *memfixed32_data = (ACPI_RESOURCE_FIXED_MEMORY32*) &resource->Data;
+				ResourceDescriptor->Type = CmResourceTypeMemory;
+				ResourceDescriptor->ShareDisposition = CmResourceShareDeviceExclusive;
+				ResourceDescriptor->Flags = 0;
+				if (memfixed32_data->WriteProtect == ACPI_READ_ONLY_MEMORY)
+					ResourceDescriptor->Flags |= CM_RESOURCE_MEMORY_READ_ONLY;
+				else
+					ResourceDescriptor->Flags |= CM_RESOURCE_MEMORY_READ_WRITE;
+				ResourceDescriptor->u.Memory.Start.QuadPart = memfixed32_data->Address;
+				ResourceDescriptor->u.Memory.Length = memfixed32_data->AddressLength;
+                
 				ResourceDescriptor++;
 				break;
 			}
@@ -1142,6 +1159,7 @@
 			case ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64:
 			case ACPI_RESOURCE_TYPE_MEMORY24:
 			case ACPI_RESOURCE_TYPE_MEMORY32:
+            case ACPI_RESOURCE_TYPE_FIXED_MEMORY32:
 			case ACPI_RESOURCE_TYPE_IO:
 			{
 				NumberOfResources++;
@@ -1482,6 +1500,24 @@
 				RequirementDescriptor++;
 				break;
 			}
+            case ACPI_RESOURCE_TYPE_FIXED_MEMORY32:
+			{
+				ACPI_RESOURCE_FIXED_MEMORY32 *fixedmem32_data = (ACPI_RESOURCE_FIXED_MEMORY32*) &resource->Data;
+				RequirementDescriptor->Option = CurrentRes ? 0 : IO_RESOURCE_PREFERRED;
+				RequirementDescriptor->Type = CmResourceTypeMemory;
+				RequirementDescriptor->ShareDisposition = CmResourceShareDeviceExclusive;
+				RequirementDescriptor->Flags = 0;
+				if (fixedmem32_data->WriteProtect == ACPI_READ_ONLY_MEMORY)
+					RequirementDescriptor->Flags |= CM_RESOURCE_MEMORY_READ_ONLY;
+				else
+					RequirementDescriptor->Flags |= CM_RESOURCE_MEMORY_READ_WRITE;
+				RequirementDescriptor->u.Memory.MinimumAddress.QuadPart = fixedmem32_data->Address;
+				RequirementDescriptor->u.Memory.MaximumAddress.QuadPart = fixedmem32_data->Address;
+				RequirementDescriptor->u.Memory.Length = fixedmem32_data->AddressLength;
+                
+				RequirementDescriptor++;
+				break;
+			}
 			default:
 			{
 				break;




More information about the Ros-diffs mailing list