mirror of https://github.com/xemu-project/xemu.git
linux-user: Handle O_SYNC, O_NOATIME, O_CLOEXEC, O_PATH
Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <rth@twiddle.net>
This commit is contained in:
parent
4eeea4f3f1
commit
afc8763f9d
|
@ -371,10 +371,20 @@ UNUSED static struct flags open_flags[] = {
|
|||
FLAG_TARGET(O_NOCTTY),
|
||||
FLAG_TARGET(O_NOFOLLOW),
|
||||
FLAG_TARGET(O_NONBLOCK), /* also O_NDELAY */
|
||||
FLAG_TARGET(O_SYNC),
|
||||
FLAG_TARGET(O_DSYNC),
|
||||
FLAG_TARGET(__O_SYNC),
|
||||
FLAG_TARGET(O_TRUNC),
|
||||
#ifdef O_DIRECT
|
||||
FLAG_TARGET(O_DIRECT),
|
||||
#endif
|
||||
#ifdef O_NOATIME
|
||||
FLAG_TARGET(O_NOATIME),
|
||||
#endif
|
||||
#ifdef O_CLOEXEC
|
||||
FLAG_TARGET(O_CLOEXEC),
|
||||
#endif
|
||||
#ifdef O_PATH
|
||||
FLAG_TARGET(O_PATH),
|
||||
#endif
|
||||
FLAG_END,
|
||||
};
|
||||
|
|
|
@ -261,13 +261,26 @@ static bitmask_transtbl fcntl_flags_tbl[] = {
|
|||
{ TARGET_O_TRUNC, TARGET_O_TRUNC, O_TRUNC, O_TRUNC, },
|
||||
{ TARGET_O_APPEND, TARGET_O_APPEND, O_APPEND, O_APPEND, },
|
||||
{ TARGET_O_NONBLOCK, TARGET_O_NONBLOCK, O_NONBLOCK, O_NONBLOCK, },
|
||||
{ TARGET_O_SYNC, TARGET_O_DSYNC, O_SYNC, O_DSYNC, },
|
||||
{ TARGET_O_SYNC, TARGET_O_SYNC, O_SYNC, O_SYNC, },
|
||||
{ TARGET_FASYNC, TARGET_FASYNC, FASYNC, FASYNC, },
|
||||
{ TARGET_O_DIRECTORY, TARGET_O_DIRECTORY, O_DIRECTORY, O_DIRECTORY, },
|
||||
{ TARGET_O_NOFOLLOW, TARGET_O_NOFOLLOW, O_NOFOLLOW, O_NOFOLLOW, },
|
||||
{ TARGET_O_LARGEFILE, TARGET_O_LARGEFILE, O_LARGEFILE, O_LARGEFILE, },
|
||||
#if defined(O_DIRECT)
|
||||
{ TARGET_O_DIRECT, TARGET_O_DIRECT, O_DIRECT, O_DIRECT, },
|
||||
#endif
|
||||
#if defined(O_NOATIME)
|
||||
{ TARGET_O_NOATIME, TARGET_O_NOATIME, O_NOATIME, O_NOATIME },
|
||||
#endif
|
||||
#if defined(O_CLOEXEC)
|
||||
{ TARGET_O_CLOEXEC, TARGET_O_CLOEXEC, O_CLOEXEC, O_CLOEXEC },
|
||||
#endif
|
||||
#if defined(O_PATH)
|
||||
{ TARGET_O_PATH, TARGET_O_PATH, O_PATH, O_PATH },
|
||||
#endif
|
||||
/* Don't terminate the list prematurely on 64-bit host+guest. */
|
||||
#if TARGET_O_LARGEFILE != 0 || O_LARGEFILE != 0
|
||||
{ TARGET_O_LARGEFILE, TARGET_O_LARGEFILE, O_LARGEFILE, O_LARGEFILE, },
|
||||
#endif
|
||||
{ 0, 0, 0, 0 }
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue