4 #ifndef __NR_sys_io_uring_setup
5 #define __NR_sys_io_uring_setup 387
7 #ifndef __NR_sys_io_uring_enter
8 #define __NR_sys_io_uring_enter 388
10 #ifndef __NR_sys_io_uring_register
11 #define __NR_sys_io_uring_register 389
14 static inline void do_cpuid(unsigned int *eax, unsigned int *ebx,
15 unsigned int *ecx, unsigned int *edx)
17 asm volatile("xchgl %%ebx, %1\ncpuid\nxchgl %%ebx, %1"
18 : "=a" (*eax), "=r" (*ebx), "=c" (*ecx), "=d" (*edx)
23 #include "arch-x86-common.h" /* IWYU pragma: export */
25 #define FIO_ARCH (arch_x86)
27 #define FIO_HUGE_PAGE 4194304
29 #define nop __asm__ __volatile__("rep;nop": : :"memory")
30 #define read_barrier() __asm__ __volatile__("": : :"memory")
31 #define write_barrier() __asm__ __volatile__("": : :"memory")
33 static inline unsigned long arch_ffz(unsigned long bitmask)
35 __asm__("bsfl %1,%0" :"=r" (bitmask) :"r" (~bitmask));
39 static inline unsigned long long get_cpu_clock(void)
41 unsigned long long ret;
43 __asm__ __volatile__("rdtsc" : "=A" (ret));
48 #define ARCH_HAVE_CPU_CLOCK
49 #define ARCH_HAVE_IOURING