X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=os-linux.h;h=1ed3d3b650b206921c0c22a5b1e3c656820d228e;hp=657a679e23486e0e8e319d3cc10dd8f8a7c635f4;hb=2c187c0fcaab8a4c6d1ba67d2ad2460b5fb42109;hpb=b6959b55efa7f464dbb7e7f2021dd67d297219bd diff --git a/os-linux.h b/os-linux.h index 657a679e..1ed3d3b6 100644 --- a/os-linux.h +++ b/os-linux.h @@ -20,13 +20,6 @@ #define FIO_HAVE_ODIRECT #define FIO_HAVE_HUGETLB -/* - * Only for x86 currently - */ -#if defined(__i386__) -#define FIO_HAVE_SYSLET -#endif - #define OS_MAP_ANON (MAP_ANONYMOUS) typedef cpu_set_t os_cpu_mask_t; @@ -39,7 +32,7 @@ typedef struct drand48_data os_random_state_t; posix_fadvise((fd), (off_t)(off), (len), (advice)) #define fio_setaffinity(td) \ - sched_setaffinity((td)->pid, sizeof((td)->cpumask), &(td)->cpumask) + sched_setaffinity((td)->pid, sizeof((td)->o.cpumask), &(td)->o.cpumask) #define fio_getaffinity(pid, ptr) \ sched_getaffinity((pid), sizeof(cpu_set_t), (ptr)) @@ -81,27 +74,30 @@ static inline int vmsplice(int fd, const struct iovec *iov, #define SPLICE_DEF_SIZE (64*1024) #ifdef FIO_HAVE_SYSLET + +struct syslet_uatom; +struct async_head_user; + /* * syslet stuff */ -static inline long async_register(void *uah, unsigned int len) +static inline struct syslet_uatom * +async_exec(struct syslet_uatom *atom, struct async_head_user *ahu) { - return syscall(__NR_async_register, uah, len); + return (void *) syscall(__NR_async_exec, atom, ahu); } -static inline void *async_exec(void *data) +static inline long +async_wait(unsigned long min_wait_events, unsigned long user_ring_idx, + struct async_head_user *ahu) { - return (void *) syscall(__NR_async_exec, data); + return syscall(__NR_async_wait, min_wait_events, + user_ring_idx, ahu); } -static inline long async_wait(unsigned long min_events) +static inline long async_thread(void *event, struct async_head_user *ahu) { - return syscall(__NR_async_wait, min_events); -} - -static inline long async_unregister(void *uah, unsigned int len) -{ - return syscall(__NR_async_unregister, uah, len); + return syscall(__NR_async_thread, event, ahu); } static inline long umem_add(unsigned long *uptr, unsigned long inc) @@ -128,10 +124,7 @@ enum { static inline int blockdev_invalidate_cache(int fd) { - if (!ioctl(fd, BLKFLSBUF)) - return 0; - - return errno; + return ioctl(fd, BLKFLSBUF); } static inline int blockdev_size(int fd, unsigned long long *bytes)