Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers...
[reactos.git] / reactos / drivers / bus / acpi / acpienum.c
diff --git a/reactos/drivers/bus/acpi/acpienum.c b/reactos/drivers/bus/acpi/acpienum.c
deleted file mode 100644 (file)
index a084b31..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * PROJECT:         ReactOS ACPI bus driver
- * FILE:            acpi/ospm/acpienum.c
- * PURPOSE:         ACPI namespace enumerator
- * PROGRAMMERS:     Casper S. Hornstrup (chorns@users.sourceforge.net)
- * UPDATE HISTORY:
- *      01-05-2001  CSH  Created
- */
-
-#include "precomp.h"
-
-#define NDEBUG
-#include <debug.h>
-
-#define HAS_CHILDREN(d)                ((d)->children.next != &((d)->children))
-#define HAS_SIBLINGS(d)                (((d)->parent) && ((d)->node.next != &(d)->parent->children))
-#define NODE_TO_DEVICE(n)      (list_entry(n, struct acpi_device, node))
-
-extern struct acpi_device              *acpi_root;
-
-NTSTATUS
-Bus_PlugInDevice (
-    struct acpi_device *Device,
-    PFDO_DEVICE_DATA            FdoData
-    )
-{
-    PDEVICE_OBJECT      pdo;
-    PPDO_DEVICE_DATA    pdoData;
-    NTSTATUS            status;
-    ULONG               index;
-       WCHAR               temp[256];
-    PLIST_ENTRY         entry;
-
-    PAGED_CODE ();
-
-    //Don't enumerate the root device
-    if (Device->handle == ACPI_ROOT_OBJECT)
-        return STATUS_SUCCESS;
-
-    /* Check we didnt add this already */
-    for (entry = FdoData->ListOfPDOs.Flink;
-        entry != &FdoData->ListOfPDOs; entry = entry->Flink)
-    {
-        struct acpi_device *CurrentDevice;
-
-        pdoData = CONTAINING_RECORD (entry, PDO_DEVICE_DATA, Link);
-
-        //dont duplicate devices
-        if (pdoData->AcpiHandle == Device->handle)
-            return STATUS_SUCCESS;
-
-        //check everything but fixed feature devices
-        if (pdoData->AcpiHandle)
-            acpi_bus_get_device(pdoData->AcpiHandle, &CurrentDevice);
-        else
-            continue;
-
-        //check if the HID matches
-        if (!strcmp(Device->pnp.hardware_id, CurrentDevice->pnp.hardware_id))
-        {
-            //check if UID exists for both and matches
-            if (Device->flags.unique_id && CurrentDevice->flags.unique_id &&
-                !strcmp(Device->pnp.unique_id, CurrentDevice->pnp.unique_id))
-            {
-                /* We have a UID on both but they're the same so we have to ignore it */
-                DPRINT1("Detected duplicate device: %hs %hs\n", Device->pnp.hardware_id, Device->pnp.unique_id);
-                return STATUS_SUCCESS;
-            }
-            else if (!Device->flags.unique_id && !CurrentDevice->flags.unique_id)
-            {
-                /* No UID so we can only legally have 1 of these devices */
-                DPRINT1("Detected duplicate device: %hs\n", Device->pnp.hardware_id);
-                return STATUS_SUCCESS;
-            }
-        }
-    }
-
-    DPRINT("Exposing PDO\n"
-           "======AcpiHandle:   %p\n"
-           "======HardwareId:     %s\n",
-           Device->handle,
-           Device->pnp.hardware_id);
-
-
-    //
-    // Create the PDO
-    //
-
-    DPRINT("FdoData->NextLowerDriver = 0x%p\n", FdoData->NextLowerDriver);
-
-    status = IoCreateDevice(FdoData->Common.Self->DriverObject,
-                              sizeof(PDO_DEVICE_DATA),
-                              NULL,
-                              FILE_DEVICE_CONTROLLER,
-                              FILE_AUTOGENERATED_DEVICE_NAME,
-                              FALSE,
-                              &pdo);
-
-    if (!NT_SUCCESS (status)) {
-        return status;
-    }
-
-    pdoData = (PPDO_DEVICE_DATA) pdo->DeviceExtension;
-       pdoData->AcpiHandle = Device->handle;
-
-    //
-    // Copy the hardware IDs
-    //
-               index = 0;
-               index += swprintf(&temp[index],
-                                                       L"ACPI\\%hs",
-                                                       Device->pnp.hardware_id);
-               temp[index++] = UNICODE_NULL;
-
-               index += swprintf(&temp[index],
-                                                       L"*%hs",
-                                                       Device->pnp.hardware_id);
-               temp[index++] = UNICODE_NULL;
-               temp[index++] = UNICODE_NULL;
-
-               pdoData->HardwareIDs = ExAllocatePoolWithTag(NonPagedPool, index*sizeof(WCHAR), 'DpcA');
-
-
-    if (!pdoData->HardwareIDs) {
-        IoDeleteDevice(pdo);
-        return STATUS_INSUFFICIENT_RESOURCES;
-    }
-
-       RtlCopyMemory (pdoData->HardwareIDs, temp, index*sizeof(WCHAR));
-    Bus_InitializePdo (pdo, FdoData);
-
-    //
-    // Device Relation changes if a new pdo is created. So let
-    // the PNP system now about that. This forces it to send bunch of pnp
-    // queries and cause the function driver to be loaded.
-    //
-
-    //IoInvalidateDeviceRelations (FdoData->UnderlyingPDO, BusRelations);
-
-    return status;
-}
-
-
-/* looks alot like acpi_bus_walk doesnt it */
-NTSTATUS
-ACPIEnumerateDevices(PFDO_DEVICE_DATA DeviceExtension)
-{
-    ULONG Count = 0;
-    struct acpi_device *Device = acpi_root;
-
-    while(Device)
-    {
-        if (Device->status.present && Device->status.enabled &&
-            Device->flags.hardware_id)
-        {
-            Bus_PlugInDevice(Device, DeviceExtension);
-            Count++;
-        }
-
-        if (HAS_CHILDREN(Device)) {
-            Device = NODE_TO_DEVICE(Device->children.next);
-            continue;
-        }
-        if (HAS_SIBLINGS(Device)) {
-            Device = NODE_TO_DEVICE(Device->node.next);
-            continue;
-        }
-        while ((Device = Device->parent)) {
-            if (HAS_SIBLINGS(Device)) {
-                Device = NODE_TO_DEVICE(Device->node.next);
-                break;
-            }
-        }
-    }
-    DPRINT("acpi device count: %d\n", Count);
-    return STATUS_SUCCESS;
-}
-
-/* EOF */