1 #ifndef FIO_ARCH_X86_COMMON
2 #define FIO_ARCH_X86_COMMON
4 static inline void do_cpuid(unsigned int *eax, unsigned int *ebx,
5 unsigned int *ecx, unsigned int *edx)
7 unsigned int id = *eax;
15 : "=r" (*eax), "=r" (*ebx), "=r" (*ecx), "=r" (*edx)
17 : "eax", "ebx", "ecx", "edx");
20 #define ARCH_HAVE_INIT
21 extern int tsc_reliable;
22 static inline int arch_init(char *envp[])
24 unsigned int eax, ebx, ecx, edx;
30 do_cpuid(&eax, &ebx, &ecx, &edx);
31 if (!(edx & (1U << 4)))
35 * Check for constant rate and synced (across cores) TSC
38 do_cpuid(&eax, &ebx, &ecx, &edx);
39 tsc_reliable = edx & (1U << 8);