[ACPI]
[reactos.git] / reactos / drivers / bus / acpi / main.c
index 746a0b1..b58c097 100644 (file)
@@ -22,6 +22,7 @@ extern struct acpi_device *sleep_button;
 extern struct acpi_device *power_button;
 
 UNICODE_STRING ProcessorHardwareIds = {0, 0, NULL};
+LPWSTR ProcessorIdString = NULL;
 LPWSTR ProcessorNameString = NULL;
 
 
@@ -36,8 +37,8 @@ Bus_AddDevice(
     NTSTATUS            status;
     PDEVICE_OBJECT      deviceObject = NULL;
     PFDO_DEVICE_DATA    deviceData = NULL;
-    PWCHAR              deviceName = NULL;
 #ifndef NDEBUG
+    PWCHAR              deviceName = NULL;
     ULONG               nameLength;
 #endif
 
@@ -123,8 +124,7 @@ Bus_AddDevice(
         goto End;
     }
 
-    deviceName = ExAllocatePoolWithTag (NonPagedPool,
-                            nameLength, 'IPCA');
+    deviceName = ExAllocatePoolWithTag(NonPagedPool, nameLength, 'MpcA');
 
     if (NULL == deviceName) {
         DPRINT1("AddDevice: no memory to alloc for deviceName(0x%x)\n", nameLength);
@@ -159,9 +159,11 @@ Bus_AddDevice(
     deviceObject->Flags &= ~DO_DEVICE_INITIALIZING;
 
 End:
+#ifndef NDEBUG
     if (deviceName){
-        ExFreePoolWithTag(deviceName, 'IPCA');
+        ExFreePoolWithTag(deviceName, 'MpcA');
     }
+#endif
     if (!NT_SUCCESS(status) && deviceObject){
         if (deviceData && deviceData->NextLowerDriver){
             IoDetachDevice (deviceData->NextLowerDriver);
@@ -376,7 +378,7 @@ AcpiRegQueryValue(IN HANDLE KeyHandle,
         BufferLength += FIELD_OFFSET(KEY_VALUE_PARTIAL_INFORMATION, Data);
 
         /* Allocate memory for the value */
-        ValueInfo = ExAllocatePoolWithTag(PagedPool, BufferLength, 'IPCA');
+        ValueInfo = ExAllocatePoolWithTag(PagedPool, BufferLength, 'MpcA');
         if (ValueInfo == NULL)
             return STATUS_NO_MEMORY;
     }
@@ -436,7 +438,7 @@ AcpiRegQueryValue(IN HANDLE KeyHandle,
     /* Free the memory and return status */
     if (ValueInfo != NULL)
     {
-        ExFreePoolWithTag(ValueInfo, 'IPCA');
+        ExFreePoolWithTag(ValueInfo, 'MpcA');
     }
 
     return Status;
@@ -487,7 +489,7 @@ GetProcessorInformation(VOID)
 
     /* Allocate a buffer large enough to be zero terminated */
     Length += sizeof(UNICODE_NULL);
-    ProcessorIdentifier = ExAllocatePoolWithTag(PagedPool, Length, 'IPCA');
+    ProcessorIdentifier = ExAllocatePoolWithTag(PagedPool, Length, 'IpcA');
     if (ProcessorIdentifier == NULL)
     {
         DPRINT1("Failed to allocate 0x%lx bytes\n", Length);
@@ -522,7 +524,7 @@ GetProcessorInformation(VOID)
 
     /* Allocate a buffer large enough to be zero terminated */
     Length += sizeof(UNICODE_NULL);
-    ProcessorNameString = ExAllocatePoolWithTag(PagedPool, Length, 'IPCA');
+    ProcessorNameString = ExAllocatePoolWithTag(PagedPool, Length, 'IpcA');
     if (ProcessorNameString == NULL)
     {
         DPRINT1("Failed to allocate 0x%lx bytes\n", Length);
@@ -557,7 +559,7 @@ GetProcessorInformation(VOID)
 
     /* Allocate a buffer large enough to be zero terminated */
     Length += sizeof(UNICODE_NULL);
-    ProcessorVendorIdentifier = ExAllocatePoolWithTag(PagedPool, Length, 'IPCA');
+    ProcessorVendorIdentifier = ExAllocatePoolWithTag(PagedPool, Length, 'IpcA');
     if (ProcessorVendorIdentifier == NULL)
     {
         DPRINT1("Failed to allocate 0x%lx bytes\n", Length);
@@ -617,7 +619,7 @@ GetProcessorInformation(VOID)
                          1) * sizeof(WCHAR);
 
     /* Allocate a buffer to the data */
-    HardwareIdsBuffer = ExAllocatePoolWithTag(PagedPool, HardwareIdsLength, 'IPCA');
+    HardwareIdsBuffer = ExAllocatePoolWithTag(PagedPool, HardwareIdsLength, 'IpcA');
     if (HardwareIdsBuffer == NULL)
     {
         Status = STATUS_INSUFFICIENT_RESOURCES;
@@ -651,20 +653,29 @@ GetProcessorInformation(VOID)
     ProcessorHardwareIds.MaximumLength = ProcessorHardwareIds.Length;
     ProcessorHardwareIds.Buffer = HardwareIdsBuffer;
 
+    Length = (5 + VendorIdentifierLength + 3 + Level1Length + 1) * sizeof(WCHAR);
+    ProcessorIdString = ExAllocatePoolWithTag(PagedPool, Length, 'IpcA');
+    if (ProcessorIdString != NULL)
+    {
+        Length = swprintf(ProcessorIdString, L"ACPI\\%s_-_%.*s", ProcessorVendorIdentifier, Level1Length, ProcessorIdentifier);
+        ProcessorIdString[Length++] = UNICODE_NULL;
+        DPRINT("ProcessorIdString: %S\n", ProcessorIdString);
+    }
+
 done:
     if (ProcessorHandle != NULL)
         ZwClose(ProcessorHandle);
 
     if (ProcessorIdentifier != NULL)
-        ExFreePoolWithTag(ProcessorIdentifier, 'IPCA');
+        ExFreePoolWithTag(ProcessorIdentifier, 'IpcA');
 
     if (ProcessorVendorIdentifier != NULL)
-        ExFreePoolWithTag(ProcessorVendorIdentifier, 'IPCA');
+        ExFreePoolWithTag(ProcessorVendorIdentifier, 'IpcA');
 
     if (!NT_SUCCESS(Status))
     {
         if (HardwareIdsBuffer != NULL)
-            ExFreePoolWithTag(HardwareIdsBuffer, 'IPCA');
+            ExFreePoolWithTag(HardwareIdsBuffer, 'IpcA');
     }
 
     return Status;