mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-28 21:03:54 -06:00
linux-user: Implement sync_file_range{,2} syscalls
Implement the missing syscalls sync_file_range and sync_file_range2. The latter in particular is used by newer versions of apt on Ubuntu for ARM. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
This commit is contained in:
parent
2a704b137f
commit
c727f47d59
3 changed files with 47 additions and 0 deletions
|
@ -7364,6 +7364,29 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
|
|||
case TARGET_NR_fallocate:
|
||||
ret = get_errno(fallocate(arg1, arg2, arg3, arg4));
|
||||
break;
|
||||
#endif
|
||||
#if defined(CONFIG_SYNC_FILE_RANGE)
|
||||
#if defined(TARGET_NR_sync_file_range)
|
||||
case TARGET_NR_sync_file_range:
|
||||
#if TARGET_ABI_BITS == 32
|
||||
ret = get_errno(sync_file_range(arg1, target_offset64(arg2, arg3),
|
||||
target_offset64(arg4, arg5), arg6));
|
||||
#else
|
||||
ret = get_errno(sync_file_range(arg1, arg2, arg3, arg4));
|
||||
#endif
|
||||
break;
|
||||
#endif
|
||||
#if defined(TARGET_NR_sync_file_range2)
|
||||
case TARGET_NR_sync_file_range2:
|
||||
/* This is like sync_file_range but the arguments are reordered */
|
||||
#if TARGET_ABI_BITS == 32
|
||||
ret = get_errno(sync_file_range(arg1, target_offset64(arg3, arg4),
|
||||
target_offset64(arg5, arg6), arg2));
|
||||
#else
|
||||
ret = get_errno(sync_file_range(arg1, arg3, arg4, arg2));
|
||||
#endif
|
||||
break;
|
||||
#endif
|
||||
#endif
|
||||
default:
|
||||
unimplemented:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue