updated wait_for_completion, should work similar to schedule_timeout. Modified: trunk/reactos/drivers/usb/miniport/sys/linuxwrapper.c _____
Modified: trunk/reactos/drivers/usb/miniport/sys/linuxwrapper.c --- trunk/reactos/drivers/usb/miniport/sys/linuxwrapper.c 2005-09-11 11:40:43 UTC (rev 17795) +++ trunk/reactos/drivers/usb/miniport/sys/linuxwrapper.c 2005-09-11 11:59:25 UTC (rev 17796) @@ -290,29 +290,29 @@
/*---------------------------------------------------------------------- --*/ void my_wait_for_completion(struct completion *x) { - LONGLONG HH; - LONGLONG temp; +// LONGLONG HH; +// LONGLONG temp; LARGE_INTEGER delay;
- extern unsigned int LAST_USB_EVENT_TICK; + //extern unsigned int LAST_USB_EVENT_TICK;
- printk("wait for completion11, x=0x%08x\n", (DWORD)x); + printk("wait for completion, x=0x%08x\n", (DWORD)x);
int n=10; n = n*1000; // to us format
while(!x->done && (n>0)) { - KeQueryTickCount((LARGE_INTEGER *)&HH);//IoInputDword(0x8008); - temp = HH - LAST_USB_EVENT_TICK; + //KeQueryTickCount((LARGE_INTEGER *)&HH);//IoInputDword(0x8008); + //temp = HH - LAST_USB_EVENT_TICK;
//if (temp>(3579)) { - if (temp>(1000)) { - // do_all_timers(); - LAST_USB_EVENT_TICK = HH; - } + //if (temp>(1000)) { + do_all_timers(); + // LAST_USB_EVENT_TICK = HH; + //}
- // handle_irqs(-1); + handle_irqs(-1);
delay.QuadPart = -10; KeDelayExecutionThread(KernelMode, FALSE, &delay); //wait_us(1);