#define _GNU_SOURCE #include #include #include "syscall.h" // works same in x86_64 && aarch64 #define __SYSCALL_LL_E(x) (x) #define __SYSCALL_LL_O(x) (x) int sync_file_range(int fd, off_t pos, off_t len, unsigned flags) { #if defined(SYS_sync_file_range2) return syscall(SYS_sync_file_range2, fd, flags, __SYSCALL_LL_E(pos), __SYSCALL_LL_E(len)); #elif defined(SYS_sync_file_range) return __syscall(SYS_sync_file_range, fd, __SYSCALL_LL_O(pos), __SYSCALL_LL_E(len), flags); #else return __syscall_ret(-ENOSYS); #endif }