Author: tfaber Date: Sat Nov 12 00:07:42 2011 New Revision: 54354
URL: http://svn.reactos.org/svn/reactos?rev=54354&view=rev Log: [USBDRV] - Get rid of some inline assembly
Modified: trunk/reactos/drivers/usb/nt4compat/usbdrv/usb.c
Modified: trunk/reactos/drivers/usb/nt4compat/usbdrv/usb.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/usb/nt4compat/usbdr... ============================================================================== --- trunk/reactos/drivers/usb/nt4compat/usbdrv/usb.c [iso-8859-1] (original) +++ trunk/reactos/drivers/usb/nt4compat/usbdrv/usb.c [iso-8859-1] Sat Nov 12 00:07:42 2011 @@ -982,31 +982,17 @@ __inline BOOLEAN usb_query_clicks(PLARGE_INTEGER clicks) { - BOOLEAN ret_val; + BOOLEAN ret_val = FALSE; + int cpu_info[4]; //so we have to use intel's cpu??? - ret_val = FALSE; - -#ifdef _MSC_VER - __asm - { - push ebx; - push eax; - mov eax, 1; //read version - cpuid; - test edx, 0x10; //timer stamp - jz LBL_OUT; - // cpuid //serialization - rdtsc; - mov ebx, dword ptr[clicks]; - mov dword ptr[ebx], eax; - mov dword ptr[ebx + 4], edx; - mov dword ptr[ret_val], TRUE; -LBL_OUT: - pop eax; - pop ebx; - } -#else - ret_val = FALSE; + +#if defined(_M_IX86) || defined(_M_AMD64) + __cpuid(cpu_info, 1); + if (cpu_info[3] & 0x10) // Time Stamp Counter (TSC) bit + { + clicks->QuadPart = __rdtsc(); + ret_val = TRUE; + } #endif return ret_val; }