Move shareable part of USB miniport drivers to a new directory. UHCI uses it.
Modified: trunk/reactos/drivers/usb/miniport/common/cleanup.c
Modified: trunk/reactos/drivers/usb/miniport/common/close.c
Modified: trunk/reactos/drivers/usb/miniport/common/common.xml
Modified: trunk/reactos/drivers/usb/miniport/common/create.c
Modified: trunk/reactos/drivers/usb/miniport/common/fdo.c
Added: trunk/reactos/drivers/usb/miniport/common/main.c
Modified: trunk/reactos/drivers/usb/miniport/common/misc.c
Modified: trunk/reactos/drivers/usb/miniport/common/pdo.c
Deleted: trunk/reactos/drivers/usb/miniport/common/uhci.c
Deleted: trunk/reactos/drivers/usb/miniport/common/uhci.h
Added: trunk/reactos/drivers/usb/miniport/common/usbcommon.h
Added: trunk/reactos/drivers/usb/miniport/common/usbcommon_types.h
Modified: trunk/reactos/drivers/usb/miniport/linux/pci_hal.c
Modified: trunk/reactos/drivers/usb/miniport/sys/linuxwrapper.c
Modified: trunk/reactos/drivers/usb/miniport/usbuhci/uhci-hcd.c
Modified: trunk/reactos/drivers/usb/miniport/usbuhci/uhci.c
Added: trunk/reactos/drivers/usb/miniport/usbuhci/uhci.h
Modified: trunk/reactos/drivers/usb/miniport/usbuhci/usbuhci.xml

Modified: trunk/reactos/drivers/usb/miniport/common/cleanup.c
--- trunk/reactos/drivers/usb/miniport/common/cleanup.c	2005-09-10 15:36:35 UTC (rev 17781)
+++ trunk/reactos/drivers/usb/miniport/common/cleanup.c	2005-09-10 18:04:42 UTC (rev 17782)
@@ -1,21 +1,23 @@
 /*
  * COPYRIGHT:       See COPYING in the top level directory
- * PROJECT:         ReactOS UHCI controller driver (Cromwell type)
- * FILE:            drivers/usb/cromwell/uhci/cleanup.c
+ * PROJECT:         ReactOS USB miniport driver (Cromwell type)
+ * FILE:            drivers/usb/miniport/common/cleanup.c
  * PURPOSE:         IRP_MJ_CLEANUP operations
  *
- * PROGRAMMERS:     HervÚ Poussineau (hpoussin@reactos.com)
+ * PROGRAMMERS:     HervÚ Poussineau (hpoussin@reactos.org)
  */
 
 #define NDEBUG
-#include "uhci.h"
+#include <debug.h>
 
+#include "usbcommon.h"
+
 NTSTATUS STDCALL
-UhciCleanup(
+UsbMpCleanup(
 	IN PDEVICE_OBJECT DeviceObject,
 	IN PIRP Irp)
 {
-	DPRINT("UHCI: IRP_MJ_CLEANUP\n");
+	DPRINT("USBMP: IRP_MJ_CLEANUP\n");
 
 	Irp->IoStatus.Information = 0;
 	Irp->IoStatus.Status = STATUS_SUCCESS;

Modified: trunk/reactos/drivers/usb/miniport/common/close.c
--- trunk/reactos/drivers/usb/miniport/common/close.c	2005-09-10 15:36:35 UTC (rev 17781)
+++ trunk/reactos/drivers/usb/miniport/common/close.c	2005-09-10 18:04:42 UTC (rev 17782)
@@ -1,24 +1,26 @@
 /*
  * COPYRIGHT:       See COPYING in the top level directory
- * PROJECT:         ReactOS UHCI controller driver (Cromwell type)
- * FILE:            drivers/usb/cromwell/uhci/close.c
+ * PROJECT:         ReactOS USB miniport driver (Cromwell type)
+ * FILE:            drivers/usb/miniport/common/close.c
  * PURPOSE:         IRP_MJ_CLOSE operations
  *
- * PROGRAMMERS:     HervÚ Poussineau (hpoussin@reactos.com)
+ * PROGRAMMERS:     HervÚ Poussineau (hpoussin@reactos.org)
  */
 
 #define NDEBUG
-#include "uhci.h"
+#include <debug.h>
 
+#include "usbcommon.h"
+
 NTSTATUS STDCALL
-UhciClose(
+UsbMpClose(
 	IN PDEVICE_OBJECT DeviceObject,
 	IN PIRP Irp)
 {
-	POHCI_DEVICE_EXTENSION pDeviceExtension;
+	PUSBMP_DEVICE_EXTENSION pDeviceExtension;
 
-	DPRINT("UHCI: IRP_MJ_CLOSE\n");
-	pDeviceExtension = (POHCI_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
+	DPRINT("USBMP: IRP_MJ_CLOSE\n");
+	pDeviceExtension = (PUSBMP_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
 	InterlockedDecrement((PLONG)&pDeviceExtension->DeviceOpened);
 
 	Irp->IoStatus.Information = 0;

Modified: trunk/reactos/drivers/usb/miniport/common/common.xml
--- trunk/reactos/drivers/usb/miniport/common/common.xml	2005-09-10 15:36:35 UTC (rev 17781)
+++ trunk/reactos/drivers/usb/miniport/common/common.xml	2005-09-10 18:04:42 UTC (rev 17782)
@@ -2,12 +2,12 @@
 	<define name="__USE_W32API" />
 	<define name="DEBUG_MODE" />
 	<include>../linux</include>
-	<include base="usbport"></include>
+	<include base="usbport">.</include>
 	<file>cleanup.c</file>
 	<file>close.c</file>
 	<file>create.c</file>
 	<file>fdo.c</file>
+	<file>main.c</file>
 	<file>misc.c</file>
 	<file>pdo.c</file>
-	<file>uhci.c</file>
 </module>

Modified: trunk/reactos/drivers/usb/miniport/common/create.c
--- trunk/reactos/drivers/usb/miniport/common/create.c	2005-09-10 15:36:35 UTC (rev 17781)
+++ trunk/reactos/drivers/usb/miniport/common/create.c	2005-09-10 18:04:42 UTC (rev 17782)
@@ -1,27 +1,29 @@
 /*
  * COPYRIGHT:       See COPYING in the top level directory
- * PROJECT:         ReactOS UHCI controller driver (Cromwell type)
- * FILE:            drivers/usb/cromwell/uhci/create.c
+ * PROJECT:         ReactOS USB miniport driver (Cromwell type)
+ * FILE:            drivers/usb/miniport/common/create.c
  * PURPOSE:         IRP_MJ_CREATE operations
  *
- * PROGRAMMERS:     HervÚ Poussineau (hpoussin@reactos.com)
+ * PROGRAMMERS:     HervÚ Poussineau (hpoussin@reactos.org)
  */
 
 #define NDEBUG
-#include "uhci.h"
+#include <debug.h>
 
+#include "usbcommon.h"
+
 NTSTATUS STDCALL
-UhciCreate(
+UsbMpCreate(
 	IN PDEVICE_OBJECT DeviceObject,
 	IN PIRP Irp)
 {
 	PIO_STACK_LOCATION Stack;
-	POHCI_DEVICE_EXTENSION DeviceExtension;
+	PUSBMP_DEVICE_EXTENSION DeviceExtension;
 	NTSTATUS Status;
 
-	DPRINT("UHCI: IRP_MJ_CREATE\n");
+	DPRINT("USBMP: IRP_MJ_CREATE\n");
 	Stack = IoGetCurrentIrpStackLocation(Irp);
-	DeviceExtension = (POHCI_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
+	DeviceExtension = (PUSBMP_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
 
 	if (Stack->Parameters.Create.Options & FILE_DIRECTORY_FILE)
 	{

Modified: trunk/reactos/drivers/usb/miniport/common/fdo.c
--- trunk/reactos/drivers/usb/miniport/common/fdo.c	2005-09-10 15:36:35 UTC (rev 17781)
+++ trunk/reactos/drivers/usb/miniport/common/fdo.c	2005-09-10 18:04:42 UTC (rev 17782)
@@ -1,20 +1,22 @@
 /*
  * COPYRIGHT:       See COPYING in the top level directory
- * PROJECT:         ReactOS UHCI controller driver (Cromwell type)
- * FILE:            drivers/usb/cromwell/uhci/fdo.c
+ * PROJECT:         ReactOS USB miniport driver (Cromwell type)
+ * FILE:            drivers/usb/miniport/common/fdo.c
  * PURPOSE:         IRP_MJ_PNP/IRP_MJ_DEVICE_CONTROL operations for FDOs
  *
- * PROGRAMMERS:     HervÚ Poussineau (hpoussin@reactos.com),
+ * PROGRAMMERS:     HervÚ Poussineau (hpoussin@reactos.org),
  *                  James Tabor (jimtabor@adsl-64-217-116-74.dsl.hstntx.swbell.net)
  */
 
 #define NDEBUG
-#include "uhci.h"
+#include <debug.h>
 
+#include "usbcommon.h"
+
 #define IO_METHOD_FROM_CTL_CODE(ctlCode) (ctlCode&0x00000003)
 
 static VOID
-UhciGetUserBuffers(
+UsbMpGetUserBuffers(
 	IN PIRP Irp,
 	IN ULONG IoControlCode,
 	OUT PVOID* BufferIn,
@@ -47,14 +49,14 @@
 }
 
 NTSTATUS STDCALL
-UhciFdoStartDevice(
+UsbMpFdoStartDevice(
 	IN PDEVICE_OBJECT DeviceObject,
 	IN PIRP	Irp)
 {
 	PIO_STACK_LOCATION Stack = IoGetCurrentIrpStackLocation(Irp);
 	PDRIVER_OBJECT DriverObject;
-	POHCI_DRIVER_EXTENSION DriverExtension;
-	POHCI_DEVICE_EXTENSION DeviceExtension;
+	PUSBMP_DRIVER_EXTENSION DriverExtension;
+	PUSBMP_DEVICE_EXTENSION DeviceExtension;
 	PCM_RESOURCE_LIST AllocatedResources;
 
 	/*
@@ -62,7 +64,7 @@
 	*/
 	DriverObject = DeviceObject->DriverObject;
 	DriverExtension = IoGetDriverObjectExtension(DriverObject, DriverObject);
-	DeviceExtension = (POHCI_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
+	DeviceExtension = (PUSBMP_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
 
 	/*
 	* Store	some resources in the DeviceExtension.
@@ -131,7 +133,7 @@
 	}
 	
 	/* Print assigned resources */
-	DPRINT("UHCI: Interrupt Vector 0x%lx, %S base 0x%lx, Length 0x%lx\n",
+	DPRINT("USBMP: Interrupt Vector 0x%lx, %S base 0x%lx, Length 0x%lx\n",
 		DeviceExtension->InterruptVector,
 		((struct hc_driver *)(*pci_ids)->driver_data)->flags & HCD_MEMORY ? L"Memory" : L"I/O",
 		DeviceExtension->BaseAddress,
@@ -142,15 +144,15 @@
 }
 
 static NTSTATUS
-UhciFdoQueryBusRelations(
+UsbMpFdoQueryBusRelations(
 	IN PDEVICE_OBJECT DeviceObject,
 	OUT PDEVICE_RELATIONS* pDeviceRelations)
 {
-	POHCI_DEVICE_EXTENSION DeviceExtension;
+	PUSBMP_DEVICE_EXTENSION DeviceExtension;
 	PDEVICE_RELATIONS DeviceRelations;
 	NTSTATUS Status = STATUS_SUCCESS;
 	
-	DeviceExtension = (POHCI_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
+	DeviceExtension = (PUSBMP_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
 	
 	/* Handling this IRP is easy, as we only
 	 * have one child: the root hub
@@ -171,7 +173,7 @@
 }
 
 NTSTATUS STDCALL
-UhciPnpFdo(
+UsbMpPnpFdo(
 	IN PDEVICE_OBJECT DeviceObject,
 	IN PIRP Irp)
 {
@@ -189,7 +191,7 @@
 		{
 			Status = ForwardIrpAndWait(DeviceObject, Irp);
 			if (NT_SUCCESS(Status) && NT_SUCCESS(Irp->IoStatus.Status))
-				Status = UhciFdoStartDevice(DeviceObject, Irp);
+				Status = UsbMpFdoStartDevice(DeviceObject, Irp);
 			break;
 		}
 
@@ -219,18 +221,18 @@
 				case BusRelations:
 				{
 					PDEVICE_RELATIONS DeviceRelations;
-					DPRINT("UHCI: IRP_MJ_PNP / IRP_MN_QUERY_DEVICE_RELATIONS / BusRelations\n");
-					Status = UhciFdoQueryBusRelations(DeviceObject, &DeviceRelations);
+					DPRINT("USBMP: IRP_MJ_PNP / IRP_MN_QUERY_DEVICE_RELATIONS / BusRelations\n");
+					Status = UsbMpFdoQueryBusRelations(DeviceObject, &DeviceRelations);
 					Information = (ULONG_PTR)DeviceRelations;
 					break;
 				}
 				case RemovalRelations:
 				{
-					DPRINT1("UHCI: IRP_MJ_PNP / IRP_MN_QUERY_DEVICE_RELATIONS / RemovalRelations\n");
+					DPRINT1("USBMP: IRP_MJ_PNP / IRP_MN_QUERY_DEVICE_RELATIONS / RemovalRelations\n");
 					return ForwardIrpAndForget(DeviceObject, Irp);
 				}
 				default:
-					DPRINT1("UHCI: IRP_MJ_PNP / IRP_MN_QUERY_DEVICE_RELATIONS / Unknown type 0x%lx\n",
+					DPRINT1("USBMP: IRP_MJ_PNP / IRP_MN_QUERY_DEVICE_RELATIONS / Unknown type 0x%lx\n",
 						IrpSp->Parameters.QueryDeviceRelations.Type);
 					return ForwardIrpAndForget(DeviceObject, Irp);
 			}
@@ -239,7 +241,7 @@
 
 		default:
 		{
-			DPRINT1("UHCI: unknown minor function 0x%lx\n", MinorFunction);
+			DPRINT1("USBMP: unknown minor function 0x%lx\n", MinorFunction);
 			return ForwardIrpAndForget(DeviceObject, Irp);
 		}
 	}
@@ -250,32 +252,32 @@
 }
 
 NTSTATUS
-UhciDeviceControlFdo(
+UsbMpDeviceControlFdo(
 	IN PDEVICE_OBJECT DeviceObject,
 	IN PIRP Irp)
 {
 	PIO_STACK_LOCATION Stack;
 	ULONG IoControlCode;
-	POHCI_DEVICE_EXTENSION DeviceExtension;
+	PUSBMP_DEVICE_EXTENSION DeviceExtension;
 	ULONG LengthIn, LengthOut;
 	ULONG_PTR Information = 0;
 	PVOID BufferIn, BufferOut;
 	NTSTATUS Status;
 
-	DPRINT("UHCI: UsbDeviceControlFdo() called\n");
+	DPRINT("USBMP: UsbDeviceControlFdo() called\n");
 
 	Stack = IoGetCurrentIrpStackLocation(Irp);
 	LengthIn = Stack->Parameters.DeviceIoControl.InputBufferLength;
 	LengthOut = Stack->Parameters.DeviceIoControl.OutputBufferLength;
-	DeviceExtension = (POHCI_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
+	DeviceExtension = (PUSBMP_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
 	IoControlCode = Stack->Parameters.DeviceIoControl.IoControlCode;
-	UhciGetUserBuffers(Irp, IoControlCode, &BufferIn, &BufferOut);
+	UsbMpGetUserBuffers(Irp, IoControlCode, &BufferIn, &BufferOut);
 
 	switch (IoControlCode)
 	{
 		case IOCTL_GET_HCD_DRIVERKEY_NAME:
 		{
-			DPRINT("UHCI: IOCTL_GET_HCD_DRIVERKEY_NAME\n");
+			DPRINT("USBMP: IOCTL_GET_HCD_DRIVERKEY_NAME\n");
 			if (LengthOut < sizeof(USB_HCD_DRIVERKEY_NAME))
 				Status = STATUS_BUFFER_TOO_SMALL;
 			else if (BufferOut == NULL)
@@ -286,7 +288,7 @@
 				ULONG StringSize;
 				StringDescriptor = (PUSB_HCD_DRIVERKEY_NAME)BufferOut;
 				Status = IoGetDeviceProperty(
-					((POHCI_DEVICE_EXTENSION)DeviceObject->DeviceExtension)->PhysicalDeviceObject,
+					((PUSBMP_DEVICE_EXTENSION)DeviceObject->DeviceExtension)->PhysicalDeviceObject,
 					DevicePropertyDriverKeyName,
 					LengthOut - FIELD_OFFSET(USB_HCD_DRIVERKEY_NAME, DriverKeyName),
 					StringDescriptor->DriverKeyName,
@@ -302,7 +304,7 @@
 		}
 		case IOCTL_USB_GET_ROOT_HUB_NAME:
 		{
-			DPRINT("UHCI: IOCTL_USB_GET_ROOT_HUB_NAME\n");
+			DPRINT("USBMP: IOCTL_USB_GET_ROOT_HUB_NAME\n");
 			if (LengthOut < sizeof(USB_ROOT_HUB_NAME))
 				Status = STATUS_BUFFER_TOO_SMALL;
 			else if (BufferOut == NULL)
@@ -312,8 +314,8 @@
 				PUSB_ROOT_HUB_NAME StringDescriptor;
 				PUNICODE_STRING RootHubInterfaceName;
 				StringDescriptor = (PUSB_ROOT_HUB_NAME)BufferOut;
-				DeviceObject = ((POHCI_DEVICE_EXTENSION)DeviceObject->DeviceExtension)->RootHubPdo;
-				RootHubInterfaceName = &((POHCI_DEVICE_EXTENSION)DeviceObject->DeviceExtension)->HcdInterfaceName;
+				DeviceObject = ((PUSBMP_DEVICE_EXTENSION)DeviceObject->DeviceExtension)->RootHubPdo;
+				RootHubInterfaceName = &((PUSBMP_DEVICE_EXTENSION)DeviceObject->DeviceExtension)->HcdInterfaceName;
 
 				StringDescriptor->ActualLength = RootHubInterfaceName->Length + sizeof(WCHAR) + FIELD_OFFSET(USB_ROOT_HUB_NAME, RootHubName);
 				if (StringDescriptor->ActualLength <= LengthOut)
@@ -324,7 +326,7 @@
 						RootHubInterfaceName->Buffer,
 						RootHubInterfaceName->Length);
 					StringDescriptor->RootHubName[RootHubInterfaceName->Length / sizeof(WCHAR)] = UNICODE_NULL;
-					DPRINT("UHCI: IOCTL_USB_GET_ROOT_HUB_NAME returns '%S'\n", StringDescriptor->RootHubName);
+					DPRINT("USBMP: IOCTL_USB_GET_ROOT_HUB_NAME returns '%S'\n", StringDescriptor->RootHubName);
 					Information = StringDescriptor->ActualLength;
 				}
 				else
@@ -337,7 +339,7 @@
 		default:
 		{
 			/* Pass Irp to lower driver */
-			DPRINT1("UHCI: Unknown IOCTL code 0x%lx\n", Stack->Parameters.DeviceIoControl.IoControlCode);
+			DPRINT1("USBMP: Unknown IOCTL code 0x%lx\n", Stack->Parameters.DeviceIoControl.IoControlCode);
 			IoSkipCurrentIrpStackLocation(Irp);
 			return IoCallDriver(DeviceExtension->NextDeviceObject, Irp);
 		}

Copied: trunk/reactos/drivers/usb/miniport/common/main.c (from rev 17776, trunk/reactos/drivers/usb/miniport/common/uhci.c)
--- trunk/reactos/drivers/usb/miniport/common/uhci.c	2005-09-10 15:17:07 UTC (rev 17776)
+++ trunk/reactos/drivers/usb/miniport/common/main.c	2005-09-10 18:04:42 UTC (rev 17782)
@@ -0,0 +1,282 @@
+/*
+ * COPYRIGHT:       See COPYING in the top level directory
+ * PROJECT:         ReactOS USB miniport driver (Cromwell type)
+ * FILE:            drivers/usb/miniport/common/main.c
+ * PURPOSE:         Driver entry
+ *
+ * PROGRAMMERS:     Aleksey Bragin (aleksey@reactos.com)
+ *                  HervÚ Poussineau (hpoussin@reactos.org),
+ *
+ * Some parts of code are inspired (or even just copied) from
+ * ReactOS Videoport driver (drivers/video/videoprt)
+ */
+
+#define NDEBUG
+#include <debug.h>
+
+#define INITGUID
+#include "usbcommon.h"
+
+static ULONG DeviceNumber = 0; /* FIXME: what is that? */
+
+static NTSTATUS
+CreateRootHubPdo(
+	IN PDRIVER_OBJECT DriverObject,
+	IN PDEVICE_OBJECT Fdo,
+	OUT PDEVICE_OBJECT* pPdo)
+{
+	PDEVICE_OBJECT Pdo;
+	PUSBMP_DEVICE_EXTENSION DeviceExtension;
+	NTSTATUS Status;
+	
+	DPRINT("USBMP: CreateRootHubPdo()\n");
+	
+	Status = IoCreateDevice(
+		DriverObject,
+		sizeof(USBMP_DEVICE_EXTENSION),
+		NULL, /* DeviceName */
+		FILE_DEVICE_BUS_EXTENDER,
+		FILE_DEVICE_SECURE_OPEN | FILE_AUTOGENERATED_DEVICE_NAME,
+		FALSE,
+		&Pdo);
+	if (!NT_SUCCESS(Status))
+	{
+		DPRINT("USBMP: IoCreateDevice() call failed with status 0x%08x\n", Status);
+		return Status;
+	}
+	
+	Pdo->Flags |= DO_BUS_ENUMERATED_DEVICE;
+	Pdo->Flags |= DO_POWER_PAGABLE;
+	
+	// zerofill device extension
+	DeviceExtension = (PUSBMP_DEVICE_EXTENSION)Pdo->DeviceExtension;
+	RtlZeroMemory(DeviceExtension, sizeof(USBMP_DEVICE_EXTENSION));
+	
+	DeviceExtension->IsFDO = FALSE;
+	DeviceExtension->FunctionalDeviceObject = Fdo;
+	
+	Pdo->Flags &= ~DO_DEVICE_INITIALIZING;
+	
+	*pPdo = Pdo;
+	return STATUS_SUCCESS;
+}
+
+NTSTATUS STDCALL
+AddDevice(
+	IN PDRIVER_OBJECT DriverObject,
+	IN PDEVICE_OBJECT pdo)
+{
+	PDEVICE_OBJECT fdo;
+	NTSTATUS Status;
+	WCHAR DeviceBuffer[20];
+	WCHAR LinkDeviceBuffer[20];
+	UNICODE_STRING DeviceName;
+	UNICODE_STRING LinkDeviceName;
+	PUSBMP_DRIVER_EXTENSION DriverExtension;
+	PUSBMP_DEVICE_EXTENSION DeviceExtension;
+
+	DPRINT("USBMP: AddDevice called\n");
+
+	// Allocate driver extension now
+	DriverExtension = IoGetDriverObjectExtension(DriverObject, DriverObject);
+	if (DriverExtension == NULL)
+	{
+		Status = IoAllocateDriverObjectExtension(
+					DriverObject,
+					DriverObject,
+					sizeof(USBMP_DRIVER_EXTENSION),
+					(PVOID *)&DriverExtension);
+
+		if (!NT_SUCCESS(Status))
+		{
+			DPRINT("USBMP: Allocating DriverObjectExtension failed.\n");
+			return Status;
+		}
+	}
+
+	// Create a unicode device name
+//	DeviceNumber = 0; //TODO: Allocate new device number every time
+	swprintf(DeviceBuffer, L"\\Device\\USBFDO-%lu", DeviceNumber);
+	RtlInitUnicodeString(&DeviceName, DeviceBuffer);
+
+	Status = IoCreateDevice(DriverObject,
+				sizeof(USBMP_DEVICE_EXTENSION),
+				&DeviceName,
+				FILE_DEVICE_BUS_EXTENDER,
+				0,
+				FALSE,
+				&fdo);
+
+	if (!NT_SUCCESS(Status))
+	{
+		DPRINT("USBMP: IoCreateDevice call failed with status 0x%08lx\n", Status);
+		return Status;
+	}
+
+	// zerofill device extension
+	DeviceExtension = (PUSBMP_DEVICE_EXTENSION)fdo->DeviceExtension;
+	RtlZeroMemory(DeviceExtension, sizeof(USBMP_DEVICE_EXTENSION));
+	
+	/* Create root hub Pdo */
+	Status = CreateRootHubPdo(DriverObject, fdo, &DeviceExtension->RootHubPdo);
+	if (!NT_SUCCESS(Status))
+	{
+		DPRINT("USBMP: CreateRootHubPdo() failed with status 0x%08lx\n", Status);
+		IoDeleteDevice(fdo);
+		return Status;
+	}
+
+	/* Register device interface for controller */
+	Status = IoRegisterDeviceInterface(
+		pdo,
+		&GUID_DEVINTERFACE_USB_HOST_CONTROLLER,
+		NULL,
+		&DeviceExtension->HcdInterfaceName);
+	if (!NT_SUCCESS(Status))
+	{
+		DPRINT("USBMP: IoRegisterDeviceInterface() failed with status 0x%08lx\n", Status);
+		IoDeleteDevice(DeviceExtension->RootHubPdo);
+		IoDeleteDevice(fdo);
+		return Status;
+	}
+
+	DeviceExtension->NextDeviceObject = IoAttachDeviceToDeviceStack(fdo, pdo);
+
+	fdo->Flags &= ~DO_DEVICE_INITIALIZING;
+
+	// Initialize device extension
+	DeviceExtension->IsFDO = TRUE;
+	DeviceExtension->DeviceNumber = DeviceNumber;
+	DeviceExtension->PhysicalDeviceObject = pdo;
+	DeviceExtension->FunctionalDeviceObject = fdo;
+	DeviceExtension->DriverExtension = DriverExtension;
+
+	/* FIXME: do a loop to find an available number */
+	swprintf(LinkDeviceBuffer, L"\\??\\HCD%lu", 0);
+
+	RtlInitUnicodeString(&LinkDeviceName, LinkDeviceBuffer);
+
+	Status = IoCreateSymbolicLink(&LinkDeviceName, &DeviceName);
+
+	if (!NT_SUCCESS(Status))
+	{
+		DPRINT("USBMP: IoCreateSymbolicLink call failed with status 0x%08x\n", Status);
+		IoDeleteDevice(DeviceExtension->RootHubPdo);
+		IoDeleteDevice(fdo);
+		return Status;
+	}
+
+	return STATUS_SUCCESS;
+}
+
+NTSTATUS STDCALL
+IrpStub(
+	IN PDEVICE_OBJECT DeviceObject,
+	IN PIRP Irp)
+{
+	NTSTATUS Status = STATUS_NOT_SUPPORTED;
+
+	if (((PUSBMP_DEVICE_EXTENSION)DeviceObject->DeviceExtension)->IsFDO)
+	{
+		DPRINT1("USBMP: FDO stub for major function 0x%lx\n",
+			IoGetCurrentIrpStackLocation(Irp)->MajorFunction);
+#ifndef NDEBUG
+		DbgBreakPoint();
+#endif
+		return ForwardIrpAndForget(DeviceObject, Irp);
+	}
+	else
+	{
+		/* We can't forward request to the lower driver, because
+		 * we are a Pdo, so we don't have lower driver...
+		 */
+		DPRINT1("USBMP: PDO stub for major function 0x%lx\n",
+			IoGetCurrentIrpStackLocation(Irp)->MajorFunction);
+#ifndef NDEBUG
+		DbgBreakPoint();
+#endif
+	}
+
+	Status = Irp->IoStatus.Status;
+	IoCompleteRequest(Irp, IO_NO_INCREMENT);
+	return Status;
+}
+
+static NTSTATUS STDCALL
+DispatchCreate(PDEVICE_OBJECT DeviceObject, PIRP Irp)
+{
+	if (((PUSBMP_DEVICE_EXTENSION)DeviceObject->DeviceExtension)->IsFDO)
+		return UsbMpCreate(DeviceObject, Irp);
+	else
+		return IrpStub(DeviceObject, Irp);
+}
+
+static NTSTATUS STDCALL
+DispatchClose(PDEVICE_OBJECT DeviceObject, PIRP Irp)
+{
+	if (((PUSBMP_DEVICE_EXTENSION)DeviceObject->DeviceExtension)->IsFDO)
+		return UsbMpClose(DeviceObject, Irp);
+	else
+		return IrpStub(DeviceObject, Irp);
+}
+
+static NTSTATUS STDCALL
+DispatchCleanup(PDEVICE_OBJECT DeviceObject, PIRP Irp)
+{
+	if (((PUSBMP_DEVICE_EXTENSION)DeviceObject->DeviceExtension)->IsFDO)
+		return UsbMpCleanup(DeviceObject, Irp);
+	else
+		return IrpStub(DeviceObject, Irp);
+}
+
+static NTSTATUS STDCALL
+DispatchDeviceControl(PDEVICE_OBJECT DeviceObject, PIRP Irp)
+{
+	if (((PUSBMP_DEVICE_EXTENSION)DeviceObject->DeviceExtension)->IsFDO)
+		return UsbMpDeviceControlFdo(DeviceObject, Irp);
+	else
+		return UsbMpDeviceControlPdo(DeviceObject, Irp);
+}
+
+static NTSTATUS STDCALL
+DispatchPnp(PDEVICE_OBJECT DeviceObject, PIRP Irp)
+{
+	if (((PUSBMP_DEVICE_EXTENSION)DeviceObject->DeviceExtension)->IsFDO)
+		return UsbMpPnpFdo(DeviceObject, Irp);
+	else
+		return UsbMpPnpPdo(DeviceObject, Irp);
+}
+
+static NTSTATUS STDCALL 
+DispatchPower(PDEVICE_OBJECT fido, PIRP Irp)
+{
+	DPRINT1("USBMP: IRP_MJ_POWER unimplemented\n");
+	Irp->IoStatus.Information = 0;
+	Irp->IoStatus.Status = STATUS_SUCCESS;
+	IoCompleteRequest(Irp, IO_NO_INCREMENT);
+	return STATUS_SUCCESS;
+}
+
+/*
+ * Standard DriverEntry method.
+ */
+NTSTATUS STDCALL
+DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegPath)
+{
+	ULONG i;
+
+	DriverObject->DriverUnload = DriverUnload;
+	DriverObject->DriverExtension->AddDevice = AddDevice;
+
+	for (i = 0; i < IRP_MJ_MAXIMUM_FUNCTION; i++)
+		DriverObject->MajorFunction[i] = IrpStub;
+
+	DriverObject->MajorFunction[IRP_MJ_CREATE] = DispatchCreate;
+	DriverObject->MajorFunction[IRP_MJ_CLOSE] = DispatchClose;
+	DriverObject->MajorFunction[IRP_MJ_CLEANUP] = DispatchCleanup;
+	DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = DispatchDeviceControl;
+	DriverObject->MajorFunction[IRP_MJ_PNP] = DispatchPnp;
+	DriverObject->MajorFunction[IRP_MJ_POWER] = DispatchPower;
+
+	return STATUS_SUCCESS;
+}

Modified: trunk/reactos/drivers/usb/miniport/common/misc.c
--- trunk/reactos/drivers/usb/miniport/common/misc.c	2005-09-10 15:36:35 UTC (rev 17781)
+++ trunk/reactos/drivers/usb/miniport/common/misc.c	2005-09-10 18:04:42 UTC (rev 17782)
@@ -1,14 +1,16 @@
 /*
  * COPYRIGHT:       See COPYING in the top level directory
- * PROJECT:         ReactOS UHCI controller driver (Cromwell type)
- * FILE:            drivers/usb/cromwell/uhci/misc.c
+ * PROJECT:         ReactOS USB miniport driver (Cromwell type)
+ * FILE:            drivers/usb/miniport/common/misc.c
  * PURPOSE:         Misceallenous operations
  *
- * PROGRAMMERS:     HervÚ Poussineau (hpoussin@reactos.com),
+ * PROGRAMMERS:     HervÚ Poussineau (hpoussin@reactos.org),
  */
 
 #define NDEBUG
-#include "uhci.h"
+#include <debug.h>
+
+#include "usbcommon.h"
 #include <stdarg.h>
 
 NTSTATUS STDCALL
@@ -27,7 +29,7 @@
 	IN PDEVICE_OBJECT DeviceObject,
 	IN PIRP Irp)
 {
-	PDEVICE_OBJECT LowerDevice = ((POHCI_DEVICE_EXTENSION)DeviceObject->DeviceExtension)->NextDeviceObject;
+	PDEVICE_OBJECT LowerDevice = ((PUSBMP_DEVICE_EXTENSION)DeviceObject->DeviceExtension)->NextDeviceObject;
 	KEVENT Event;
 	NTSTATUS Status;
 
@@ -36,7 +38,7 @@
 	KeInitializeEvent(&Event, NotificationEvent, FALSE);
 	IoCopyCurrentIrpStackLocationToNext(Irp);
 
-	DPRINT("UHCI: Calling lower device %p [%wZ]\n", LowerDevice, &LowerDevice->DriverObject->DriverName);
+	DPRINT("USBMP: Calling lower device %p [%wZ]\n", LowerDevice, &LowerDevice->DriverObject->DriverName);
 	IoSetCompletionRoutine(Irp, ForwardIrpAndWaitCompletion, &Event, TRUE, TRUE, TRUE);
 
 	Status = IoCallDriver(LowerDevice, Irp);
@@ -55,7 +57,7 @@
 	IN PDEVICE_OBJECT DeviceObject,
 	IN PIRP Irp)
 {
-	PDEVICE_OBJECT LowerDevice = ((POHCI_DEVICE_EXTENSION)DeviceObject->DeviceExtension)->NextDeviceObject;
+	PDEVICE_OBJECT LowerDevice = ((PUSBMP_DEVICE_EXTENSION)DeviceObject->DeviceExtension)->NextDeviceObject;
 
 	ASSERT(LowerDevice);
 
@@ -67,7 +69,7 @@
  * PnP ids are ANSI-encoded in PnP device string
  * identification */
 NTSTATUS
-UhciInitMultiSzString(
+UsbMpInitMultiSzString(
 	OUT PUNICODE_STRING Destination,
 	... /* list of PCSZ */)
 {
@@ -103,7 +105,7 @@
 
 	/* Initialize destination string */
 	DestinationSize += sizeof(WCHAR); // final NULL
-	Destination->Buffer = (PWSTR)ExAllocatePoolWithTag(PagedPool, DestinationSize, USB_UHCI_TAG);
+	Destination->Buffer = (PWSTR)ExAllocatePoolWithTag(PagedPool, DestinationSize, USB_MINIPORT_TAG);
 	if (!Destination->Buffer)
 		return STATUS_INSUFFICIENT_RESOURCES;
 	Destination->Length = 0;
@@ -123,7 +125,7 @@
 		Status = RtlAnsiStringToUnicodeString(&UnicodeString, &AnsiString, FALSE);
 		if (!NT_SUCCESS(Status))
 		{
-			ExFreePoolWithTag(Destination->Buffer, USB_UHCI_TAG);
+			ExFreePoolWithTag(Destination->Buffer, USB_MINIPORT_TAG);
 			break;
 		}
 		Destination->Length += UnicodeString.Length + sizeof(WCHAR);
@@ -143,7 +145,7 @@
 }
 
 NTSTATUS
-UhciDuplicateUnicodeString(
+UsbMpDuplicateUnicodeString(
 	OUT PUNICODE_STRING Destination,
 	IN PUNICODE_STRING Source,
 	IN POOL_TYPE PoolType)

Modified: trunk/reactos/drivers/usb/miniport/common/pdo.c
--- trunk/reactos/drivers/usb/miniport/common/pdo.c	2005-09-10 15:36:35 UTC (rev 17781)
+++ trunk/reactos/drivers/usb/miniport/common/pdo.c	2005-09-10 18:04:42 UTC (rev 17782)
@@ -1,22 +1,24 @@
 /*
  * COPYRIGHT:       See COPYING in the top level directory
- * PROJECT:         ReactOS UHCI controller driver (Cromwell type)
- * FILE:            drivers/usb/cromwell/uhci/pdo.c
+ * PROJECT:         ReactOS USB miniport driver (Cromwell type)
+ * FILE:            drivers/usb/miniport/common/pdo.c
  * PURPOSE:         IRP_MJ_PNP/IRP_MJ_DEVICE_CONTROL operations for PDOs
  *
- * PROGRAMMERS:     HervÚ Poussineau (hpoussin@reactos.com),
+ * PROGRAMMERS:     HervÚ Poussineau (hpoussin@reactos.org),
  *                  James Tabor (jimtabor@adsl-64-217-116-74.dsl.hstntx.swbell.net)
  */
 
 #define NDEBUG
-#include "uhci.h"
+#include <debug.h>
 
+#include "usbcommon.h"
+
 extern struct usb_driver hub_driver;
 
 #define IO_METHOD_FROM_CTL_CODE(ctlCode) (ctlCode&0x00000003)
 
 NTSTATUS
-UhciDeviceControlPdo(
+UsbMpDeviceControlPdo(
 	IN PDEVICE_OBJECT DeviceObject,
 	IN PIRP Irp)
 {
@@ -24,7 +26,7 @@
 	ULONG_PTR Information = 0;
 	NTSTATUS Status;
 	
-	DPRINT("UHCI: UhciDeviceControlPdo() called\n");
+	DPRINT("USBMP: UsbMpDeviceControlPdo() called\n");
 	
 	Stack = IoGetCurrentIrpStackLocation(Irp);
 	Status = Irp->IoStatus.Status;
@@ -33,9 +35,9 @@
 	{
 		case IOCTL_INTERNAL_USB_GET_ROOT_USB_DEVICE:
 		{
-			POHCI_DEVICE_EXTENSION DeviceExtension;
+			PUSBMP_DEVICE_EXTENSION DeviceExtension;
 			
-			DPRINT("UHCI: IOCTL_INTERNAL_USB_GET_ROOT_USB_DEVICE\n");
+			DPRINT("USBMP: IOCTL_INTERNAL_USB_GET_ROOT_USB_DEVICE\n");
 			if (Irp->AssociatedIrp.SystemBuffer == NULL
 				|| Stack->Parameters.DeviceIoControl.OutputBufferLength != sizeof(PVOID))
 			{
@@ -44,8 +46,8 @@
 			else
 			{
 				PVOID* pRootHubPointer;
-				DeviceExtension = (POHCI_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
-				DeviceExtension = (POHCI_DEVICE_EXTENSION)DeviceExtension->FunctionalDeviceObject->DeviceExtension;
+				DeviceExtension = (PUSBMP_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
+				DeviceExtension = (PUSBMP_DEVICE_EXTENSION)DeviceExtension->FunctionalDeviceObject->DeviceExtension;
 				
 				pRootHubPointer = (PVOID*)Irp->AssociatedIrp.SystemBuffer;
 				*pRootHubPointer = (PVOID)DeviceExtension->pdev->bus; /* struct usb_device* */
@@ -56,7 +58,7 @@
 		}
 		default:
 		{
-			DPRINT1("UHCI: Unknown IOCTL code 0x%lx\n", Stack->Parameters.DeviceIoControl.IoControlCode);
+			DPRINT1("USBMP: Unknown IOCTL code 0x%lx\n", Stack->Parameters.DeviceIoControl.IoControlCode);
 			Information = Irp->IoStatus.Information;
 			Status = Irp->IoStatus.Status;
 		}
@@ -69,57 +71,57 @@
 }
 
 static NTSTATUS
-UhciPdoQueryId(
+UsbMpPdoQueryId(
 	IN PDEVICE_OBJECT DeviceObject,
 	IN PIRP Irp,
 	OUT ULONG_PTR* Information)
 {
-	POHCI_DEVICE_EXTENSION DeviceExtension;
+	PUSBMP_DEVICE_EXTENSION DeviceExtension;
 	ULONG IdType;
 	UNICODE_STRING SourceString;
 	UNICODE_STRING String;
 	NTSTATUS Status;
 
 	IdType = IoGetCurrentIrpStackLocation(Irp)->Parameters.QueryId.IdType;
-	DeviceExtension = (POHCI_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
+	DeviceExtension = (PUSBMP_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
 	RtlInitUnicodeString(&String, NULL);
 
 	switch (IdType)
 	{
 		case BusQueryDeviceID:
 		{
-			DPRINT("UHCI: IRP_MJ_PNP / IRP_MN_QUERY_ID / BusQueryDeviceID\n");
+			DPRINT("USBMP: IRP_MJ_PNP / IRP_MN_QUERY_ID / BusQueryDeviceID\n");
 			RtlInitUnicodeString(&SourceString, L"USB\\ROOT_HUB");
 			break;
 		}
 		case BusQueryHardwareIDs:
 		{
-			DPRINT("UHCI: IRP_MJ_PNP / IRP_MN_QUERY_ID / BusQueryHardwareIDs\n");
+			DPRINT("USBMP: IRP_MJ_PNP / IRP_MN_QUERY_ID / BusQueryHardwareIDs\n");
 			/* FIXME: Should return
 				USB\ROOT_HUB&VID????&PID????&REV????
 				USB\ROOT_HUB&VID????&PID????
 				USB\ROOT_HUB
 			*/
-			UhciInitMultiSzString(&SourceString, "USB\\ROOT_HUB", NULL);
+			UsbMpInitMultiSzString(&SourceString, "USB\\ROOT_HUB", NULL);
 			break;
 		}
 		case BusQueryCompatibleIDs:
-			DPRINT("UHCI: IRP_MJ_PNP / IRP_MN_QUERY_ID / BusQueryCompatibleIDs\n");
+			DPRINT("USBMP: IRP_MJ_PNP / IRP_MN_QUERY_ID / BusQueryCompatibleIDs\n");
 			/* No compatible ID */
 			*Information = 0;
 			return STATUS_NOT_SUPPORTED;
 		case BusQueryInstanceID:
 		{
-			DPRINT("UHCI: IRP_MJ_PNP / IRP_MN_QUERY_ID / BusQueryInstanceID\n");
+			DPRINT("USBMP: IRP_MJ_PNP / IRP_MN_QUERY_ID / BusQueryInstanceID\n");
 			RtlInitUnicodeString(&SourceString, L"0000"); /* FIXME */
 			break;
 		}
 		default:
-			DPRINT1("UHCI: IRP_MJ_PNP / IRP_MN_QUERY_ID / unknown query id type 0x%lx\n", IdType);
+			DPRINT1("USBMP: IRP_MJ_PNP / IRP_MN_QUERY_ID / unknown query id type 0x%lx\n", IdType);
 			return STATUS_NOT_SUPPORTED;
 	}
 
-	Status = UhciDuplicateUnicodeString(
+	Status = UsbMpDuplicateUnicodeString(
 		&String,
 		&SourceString,
 		PagedPool);
@@ -128,13 +130,13 @@
 }
 
 static NTSTATUS
-UhciPnpStartDevice(
+UsbMpPnpStartDevice(
 	IN PDEVICE_OBJECT DeviceObject)
 {
-	POHCI_DEVICE_EXTENSION DeviceExtension;
+	PUSBMP_DEVICE_EXTENSION DeviceExtension;
 	NTSTATUS Status;
 	
-	DeviceExtension = (POHCI_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
+	DeviceExtension = (PUSBMP_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
 	
 	/* Register device interface for root hub */
 	Status = IoRegisterDeviceInterface(
@@ -144,7 +146,7 @@
 		&DeviceExtension->HcdInterfaceName);
 	if (!NT_SUCCESS(Status))
 	{
-		DPRINT("UHCI: IoRegisterDeviceInterface() failed with status 0x%08lx\n", Status);
+		DPRINT("USBMP: IoRegisterDeviceInterface() failed with status 0x%08lx\n", Status);
 		return Status;
 	}
 	
@@ -152,7 +154,7 @@
 }
 
 NTSTATUS STDCALL
-UhciPnpPdo(
+UsbMpPnpPdo(
 	IN PDEVICE_OBJECT DeviceObject,
 	IN PIRP Irp)
 {
@@ -168,15 +170,15 @@
 	{
 		case IRP_MN_START_DEVICE: /* 0x00 */
 		{
-			DPRINT("UHCI: IRP_MJ_PNP / IRP_MN_START_DEVICE\n");
-			Status = UhciPnpStartDevice(DeviceObject);
+			DPRINT("USBMP: IRP_MJ_PNP / IRP_MN_START_DEVICE\n");
+			Status = UsbMpPnpStartDevice(DeviceObject);
 			break;
 		}
 		case IRP_MN_QUERY_CAPABILITIES: /* 0x09 */
 		{
 			PDEVICE_CAPABILITIES DeviceCapabilities;
 			ULONG i;
-			DPRINT("UHCI: IRP_MJ_PNP / IRP_MN_QUERY_CAPABILITIES\n");
+			DPRINT("USBMP: IRP_MJ_PNP / IRP_MN_QUERY_CAPABILITIES\n");
 
 			DeviceCapabilities = (PDEVICE_CAPABILITIES)Stack->Parameters.DeviceCapabilities.Capabilities;
 			/* FIXME: capabilities can change with connected device */
@@ -202,7 +204,7 @@
 		}
 		case IRP_MN_QUERY_RESOURCES: /* 0x0a */
 		{
-			DPRINT("UHCI: IRP_MJ_PNP / IRP_MN_QUERY_RESOURCES\n");
+			DPRINT("USBMP: IRP_MJ_PNP / IRP_MN_QUERY_RESOURCES\n");
 			/* Root buses don't need resources, except the ones of
 			 * the usb controller. This PDO is the root bus PDO, so
 			 * report no resource by not changing Information and
@@ -214,7 +216,7 @@
 		}
 		case IRP_MN_QUERY_RESOURCE_REQUIREMENTS: /* 0x0b */
 		{
-			DPRINT("UHCI: IRP_MJ_PNP / IRP_MN_QUERY_RESOURCE_REQUIREMENTS\n");
+			DPRINT("USBMP: IRP_MJ_PNP / IRP_MN_QUERY_RESOURCE_REQUIREMENTS\n");
 			/* Root buses don't need resources, except the ones of
 			 * the usb controller. This PDO is the root bus PDO, so
 			 * report no resource by not changing Information and
@@ -233,7 +235,7 @@
 				{
 					ULONG DescriptionSize;
 					PWSTR Description;
-					DPRINT("UHCI: IRP_MJ_PNP / IRP_MN_QUERY_DEVICE_TEXT / DeviceTextDescription\n");
+					DPRINT("USBMP: IRP_MJ_PNP / IRP_MN_QUERY_DEVICE_TEXT / DeviceTextDescription\n");
 					
 					Status = IoGetDeviceProperty(
 						DeviceObject,
@@ -268,7 +270,7 @@
 				}
 				default:
 				{
-					DPRINT1("UHCI: IRP_MJ_PNP / IRP_MN_QUERY_DEVICE_TEXT / unknown type 0x%lx\n",
+					DPRINT1("USBMP: IRP_MJ_PNP / IRP_MN_QUERY_DEVICE_TEXT / unknown type 0x%lx\n",
 						Stack->Parameters.QueryDeviceText.DeviceTextType);
 					Status = STATUS_NOT_SUPPORTED;
 				}
@@ -278,7 +280,7 @@
 #endif
 		case IRP_MN_QUERY_ID: /* 0x13 */
 		{
-			Status = UhciPdoQueryId(DeviceObject, Irp, &Information);
+			Status = UsbMpPdoQueryId(DeviceObject, Irp, &Information);
 			break;
 		}
 		default:
@@ -286,7 +288,7 @@
 			/* We can't forward request to the lower driver, because
 			 * we are a Pdo, so we don't have lower driver...
 			 */
-			DPRINT1("UHCI: IRP_MJ_PNP / unknown minor function 0x%lx\n", MinorFunction);
+			DPRINT1("USBMP: IRP_MJ_PNP / unknown minor function 0x%lx\n", MinorFunction);
 			Information = Irp->IoStatus.Information;
 			Status = Irp->IoStatus.Status;
 		}

Deleted: trunk/reactos/drivers/usb/miniport/common/uhci.c
--- trunk/reactos/drivers/usb/miniport/common/uhci.c	2005-09-10 15:36:35 UTC (rev 17781)
+++ trunk/reactos/drivers/usb/miniport/common/uhci.c	2005-09-10 18:04:42 UTC (rev 17782)
@@ -1,274 +0,0 @@
-/*
-   ReactOS specific functions for UHCI module
-   by Aleksey Bragin (aleksey@reactos.com)
-   and HervÚ Poussineau (hpoussin@reactos.com)
-   Some parts of code are inspired (or even just copied) from ReactOS Videoport driver
-*/
-#define NDEBUG
-#define INITGUID
-#include "uhci.h"
-
-static ULONG DeviceNumber = 0; /* FIXME: what is that? */
-
[truncated at 1000 lines; 719 more skipped]