[ros-diffs] [cgutman] 53501: [ACPI] - Assign unique IDs to all special case devices (thermal zones, power resources, processors, power/sleep buttons)

cgutman at svn.reactos.org cgutman at svn.reactos.org
Tue Aug 30 20:35:33 UTC 2011


Author: cgutman
Date: Tue Aug 30 20:35:31 2011
New Revision: 53501

URL: http://svn.reactos.org/svn/reactos?rev=53501&view=rev
Log:
[ACPI]
- Assign unique IDs to all special case devices (thermal zones, power resources, processors, power/sleep buttons)

Modified:
    trunk/reactos/drivers/bus/acpi/busmgr/bus.c

Modified: trunk/reactos/drivers/bus/acpi/busmgr/bus.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/bus/acpi/busmgr/bus.c?rev=53501&r1=53500&r2=53501&view=diff
==============================================================================
--- trunk/reactos/drivers/bus/acpi/busmgr/bus.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/bus/acpi/busmgr/bus.c [iso-8859-1] Tue Aug 30 20:35:31 2011
@@ -60,7 +60,8 @@
 KEVENT AcpiEventQueue;
 KDPC event_dpc;
 
-int ProcessorCount;
+int ProcessorCount, PowerDeviceCount, PowerButtonCount, FixedPowerButtonCount;
+int FixedSleepButtonCount, SleepButtonCount, ThermalZoneCount;
 
 static int
 acpi_device_register (
@@ -1146,7 +1147,7 @@
 	char			*uid = NULL;
 	ACPI_DEVICE_ID_LIST *cid_list = NULL;
 	int			i = 0;
-	char			processor_uid[5];
+	char			static_uid_buffer[5];
 
 	if (!child)
 		return_VALUE(AE_BAD_PARAMETER);
@@ -1271,10 +1272,12 @@
 		break;
 	case ACPI_BUS_TYPE_POWER:
 		hid = ACPI_POWER_HID;
+        uid = static_uid_buffer;
+		sprintf(uid, "%d", (PowerDeviceCount++));
 		break;
 	case ACPI_BUS_TYPE_PROCESSOR:
 		hid = ACPI_PROCESSOR_HID;
-		uid = processor_uid;
+		uid = static_uid_buffer;
 		sprintf(uid, "%d", (ProcessorCount++));
 		break;
 	case ACPI_BUS_TYPE_SYSTEM:
@@ -1282,18 +1285,28 @@
 		break;
 	case ACPI_BUS_TYPE_THERMAL:
 		hid = ACPI_THERMAL_HID;
+        uid = static_uid_buffer;
+		sprintf(uid, "%d", (ThermalZoneCount++));
 		break;
 	case ACPI_BUS_TYPE_POWER_BUTTON:
 		hid = ACPI_BUTTON_HID_POWER;
+        uid = static_uid_buffer;
+		sprintf(uid, "%d", (PowerButtonCount++));
 		break;
 	case ACPI_BUS_TYPE_POWER_BUTTONF:
 		hid = ACPI_BUTTON_HID_POWERF;
+        uid = static_uid_buffer;
+		sprintf(uid, "%d", (FixedPowerButtonCount++));
 		break;
 	case ACPI_BUS_TYPE_SLEEP_BUTTON:
 		hid = ACPI_BUTTON_HID_SLEEP;
+        uid = static_uid_buffer;
+		sprintf(uid, "%d", (SleepButtonCount++));
 		break;
 	case ACPI_BUS_TYPE_SLEEP_BUTTONF:
 		hid = ACPI_BUTTON_HID_SLEEPF;
+        uid = static_uid_buffer;
+		sprintf(uid, "%d", (FixedSleepButtonCount++));
 		break;
 	}
 




More information about the Ros-diffs mailing list