Fix a few critical typos/mistakes (like interruptvector/interruptlevel),
stdcall for thread's func, etc. Also added some "hacks" into hub's
thread, but at least it leads to first steps to device enumeration.
Driver (OHCI) bugchecks on my_pci_pool_allocation now (when trying to
send URB).
Modified: trunk/reactos/drivers/usb/cromwell/core/hub.c
Modified: trunk/reactos/drivers/usb/cromwell/host/ohci_main.c
Modified: trunk/reactos/drivers/usb/cromwell/linux/linux_wrapper.h
Modified: trunk/reactos/drivers/usb/cromwell/sys/linuxwrapper.c
  _____
Modified: trunk/reactos/drivers/usb/cromwell/core/hub.c
--- trunk/reactos/drivers/usb/cromwell/core/hub.c       2005-06-04
21:07:00 UTC (rev 15794)
+++ trunk/reactos/drivers/usb/cromwell/core/hub.c       2005-06-04
21:35:07 UTC (rev 15795)
@@ -1019,6 +1019,7 @@
         * safe since we delete the hub from the event list.
         * Not the most efficient, but avoids deadlocks.
         */
+       DPRINT1("hub_events() called\n");
        while (m<5) {
                m++;
@@ -1138,7 +1139,8 @@
        spin_unlock_irqrestore(&hub_event_lock, flags);
 }
-static int hub_thread(void *__hub)
+// ReactOS: STDCALL is needed here
+static int STDCALL hub_thread(void *__hub)
 {
        /*
         * This thread doesn't need any user-level access,
@@ -1149,14 +1151,25 @@
        allow_signal(SIGKILL);
        /* Send me a signal to get me die (for debugging) */
        do {
-
+
+               /* The following is just for debug */
+               inc_jiffies(1);
+        do_all_timers();
+        handle_irqs(-1);
+               /* End of debug hack*/
+
                hub_events();
+               /* The following is just for debug */
+        handle_irqs(-1);
+               /* End of debug hack*/
+
+
                //FIXME: Correct this
                //wait_event_interruptible(khubd_wait,
!list_empty(&hub_event_list)); // interruptable_sleep_on analog - below
-               while (!list_empty(&hub_event_list)) {
-                       interruptible_sleep_on(&khubd_wait);
-               }
+               //while (!list_empty(&hub_event_list)) {
+               //      interruptible_sleep_on(&khubd_wait);
+               //}
                if (current->flags & PF_FREEZE)
                        refrigerator(PF_IOTHREAD);
  _____
Modified: trunk/reactos/drivers/usb/cromwell/host/ohci_main.c
--- trunk/reactos/drivers/usb/cromwell/host/ohci_main.c 2005-06-04
21:07:00 UTC (rev 15794)
+++ trunk/reactos/drivers/usb/cromwell/host/ohci_main.c 2005-06-04
21:35:07 UTC (rev 15795)
@@ -125,7 +125,8 @@
        ohci_hcd_pci_cleanup();
 }
-NTSTATUS InitLinuxWrapper(PDEVICE_OBJECT DeviceObject)
+NTSTATUS
+InitLinuxWrapper(PDEVICE_OBJECT DeviceObject)
 {
        NTSTATUS Status;
        POHCI_DEVICE_EXTENSION DeviceExtension =
(POHCI_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
@@ -134,7 +135,7 @@
        dev = ExAllocatePoolWithTag(PagedPool, sizeof(struct pci_dev),
USB_OHCI_TAG);
        init_wrapper(dev);
-       dev->irq = DeviceExtension->InterruptLevel;
+       dev->irq = DeviceExtension->InterruptVector;
        dev->dev_ext = (PVOID)DeviceExtension;
        dev->slot_name = ExAllocatePoolWithTag(NonPagedPool, 128,
USB_OHCI_TAG); // 128 max len for slot name
@@ -151,7 +152,7 @@
        // Probe device with real id now
        ohci_pci_driver.probe(dev, pci_ids);
-       DPRINT("InitLinuxWrapper() done\n");
+       DPRINT1("InitLinuxWrapper() done\n");
        return STATUS_SUCCESS;
 }
  _____
Modified: trunk/reactos/drivers/usb/cromwell/linux/linux_wrapper.h
--- trunk/reactos/drivers/usb/cromwell/linux/linux_wrapper.h
2005-06-04 21:07:00 UTC (rev 15794)
+++ trunk/reactos/drivers/usb/cromwell/linux/linux_wrapper.h
2005-06-04 21:35:07 UTC (rev 15795)
@@ -517,7 +517,7 @@
 #define flush_scheduled_work() do {} while(0)
 #define refrigerator(x)        do {} while(0)
-#define signal_pending(x)      1  // fall through threads
+#define signal_pending(x)      0  // Don't fall through threads!
ReactOS implements this correctly
 #define complete_and_exit(a,b) return 0
 //#define kill_proc(a,b,c)     0
  _____
Modified: trunk/reactos/drivers/usb/cromwell/sys/linuxwrapper.c
--- trunk/reactos/drivers/usb/cromwell/sys/linuxwrapper.c
2005-06-04 21:07:00 UTC (rev 15794)
+++ trunk/reactos/drivers/usb/cromwell/sys/linuxwrapper.c
2005-06-04 21:35:07 UTC (rev 15795)
@@ -126,6 +126,8 @@
                             (PKSTART_ROUTINE)handler,
                                 parm);
+       DPRINT1("usbcore: Created system thread %d\n", (int)hThread);
+
     return (int)hThread; // FIXME: Correct?
 }
    
    
    
    
    
 
                    
                    
                        
                        Show replies by date