linux-user: Add support for syncfs() syscall
This patch implements Qemu user mode syncfs() syscall support. Syscall syncfs() syncs the filesystem containing file determined by the open file descriptor passed as the argument to syncfs(). The implementation consists of a straightforward invocation of host's syncfs(). Configure and strace support is included as well. Signed-off-by: Aleksandar Markovic <aleksandar.markovic@imgtec.com> Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
This commit is contained in:
parent
38860a0343
commit
5a03cd009a
18
configure
vendored
18
configure
vendored
@ -3926,6 +3926,21 @@ if compile_prog "" "" ; then
|
||||
clock_adjtime=yes
|
||||
fi
|
||||
|
||||
# syncfs probe
|
||||
syncfs=no
|
||||
cat > $TMPC <<EOF
|
||||
#include <unistd.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
return syncfs(0);
|
||||
}
|
||||
EOF
|
||||
syncfs=no
|
||||
if compile_prog "" "" ; then
|
||||
syncfs=yes
|
||||
fi
|
||||
|
||||
# Check if tools are available to build documentation.
|
||||
if test "$docs" != "no" ; then
|
||||
if has makeinfo && has pod2man; then
|
||||
@ -5214,6 +5229,9 @@ fi
|
||||
if test "$clock_adjtime" = "yes" ; then
|
||||
echo "CONFIG_CLOCK_ADJTIME=y" >> $config_host_mak
|
||||
fi
|
||||
if test "$syncfs" = "yes" ; then
|
||||
echo "CONFIG_SYNCFS=y" >> $config_host_mak
|
||||
fi
|
||||
if test "$inotify" = "yes" ; then
|
||||
echo "CONFIG_INOTIFY=y" >> $config_host_mak
|
||||
fi
|
||||
|
@ -1459,7 +1459,7 @@
|
||||
{ TARGET_NR_sync, "sync" , NULL, NULL, NULL },
|
||||
#endif
|
||||
#ifdef TARGET_NR_syncfs
|
||||
{ TARGET_NR_syncfs, "syncfs" , NULL, NULL, NULL },
|
||||
{ TARGET_NR_syncfs, "syncfs" , "%s(%d)", NULL, NULL },
|
||||
#endif
|
||||
#ifdef TARGET_NR_syscall
|
||||
{ TARGET_NR_syscall, "syscall" , NULL, NULL, NULL },
|
||||
|
@ -8090,6 +8090,11 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
|
||||
sync();
|
||||
ret = 0;
|
||||
break;
|
||||
#if defined(TARGET_NR_syncfs) && defined(CONFIG_SYNCFS)
|
||||
case TARGET_NR_syncfs:
|
||||
ret = get_errno(syncfs(arg1));
|
||||
break;
|
||||
#endif
|
||||
case TARGET_NR_kill:
|
||||
ret = get_errno(safe_kill(arg1, target_to_host_signal(arg2)));
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user