mirror of https://github.com/xemu-project/xemu.git
linux-user: Support f_flags in statfs when available.
Signed-off-by: Shea Levy <shea@shealevy.com> Reviewed-by: Laurent Vivier <laurent@vivier.eu> Message-Id: <20180301111500.15717-1-shea@shealevy.com> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
This commit is contained in:
parent
3ff48453e8
commit
d4247ec2d7
|
@ -9545,6 +9545,11 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
|
||||||
__put_user(stfs.f_fsid.__val[1], &target_stfs->f_fsid.val[1]);
|
__put_user(stfs.f_fsid.__val[1], &target_stfs->f_fsid.val[1]);
|
||||||
__put_user(stfs.f_namelen, &target_stfs->f_namelen);
|
__put_user(stfs.f_namelen, &target_stfs->f_namelen);
|
||||||
__put_user(stfs.f_frsize, &target_stfs->f_frsize);
|
__put_user(stfs.f_frsize, &target_stfs->f_frsize);
|
||||||
|
#ifdef _STATFS_F_FLAGS
|
||||||
|
__put_user(stfs.f_flags, &target_stfs->f_flags);
|
||||||
|
#else
|
||||||
|
__put_user(0, &target_stfs->f_flags);
|
||||||
|
#endif
|
||||||
memset(target_stfs->f_spare, 0, sizeof(target_stfs->f_spare));
|
memset(target_stfs->f_spare, 0, sizeof(target_stfs->f_spare));
|
||||||
unlock_user_struct(target_stfs, arg2, 1);
|
unlock_user_struct(target_stfs, arg2, 1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -352,19 +352,6 @@ typedef struct {
|
||||||
int val[2];
|
int val[2];
|
||||||
} kernel_fsid_t;
|
} kernel_fsid_t;
|
||||||
|
|
||||||
struct kernel_statfs {
|
|
||||||
int f_type;
|
|
||||||
int f_bsize;
|
|
||||||
int f_blocks;
|
|
||||||
int f_bfree;
|
|
||||||
int f_bavail;
|
|
||||||
int f_files;
|
|
||||||
int f_ffree;
|
|
||||||
kernel_fsid_t f_fsid;
|
|
||||||
int f_namelen;
|
|
||||||
int f_spare[6];
|
|
||||||
};
|
|
||||||
|
|
||||||
struct target_dirent {
|
struct target_dirent {
|
||||||
abi_long d_ino;
|
abi_long d_ino;
|
||||||
abi_long d_off;
|
abi_long d_off;
|
||||||
|
@ -2226,7 +2213,8 @@ struct target_statfs {
|
||||||
/* Linux specials */
|
/* Linux specials */
|
||||||
target_fsid_t f_fsid;
|
target_fsid_t f_fsid;
|
||||||
int32_t f_namelen;
|
int32_t f_namelen;
|
||||||
int32_t f_spare[6];
|
int32_t f_flags;
|
||||||
|
int32_t f_spare[5];
|
||||||
};
|
};
|
||||||
#else
|
#else
|
||||||
struct target_statfs {
|
struct target_statfs {
|
||||||
|
@ -2242,7 +2230,8 @@ struct target_statfs {
|
||||||
/* Linux specials */
|
/* Linux specials */
|
||||||
target_fsid_t f_fsid;
|
target_fsid_t f_fsid;
|
||||||
abi_long f_namelen;
|
abi_long f_namelen;
|
||||||
abi_long f_spare[6];
|
abi_long f_flags;
|
||||||
|
abi_long f_spare[5];
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -2258,7 +2247,8 @@ struct target_statfs64 {
|
||||||
uint64_t f_bavail;
|
uint64_t f_bavail;
|
||||||
target_fsid_t f_fsid;
|
target_fsid_t f_fsid;
|
||||||
uint32_t f_namelen;
|
uint32_t f_namelen;
|
||||||
uint32_t f_spare[6];
|
uint32_t f_flags;
|
||||||
|
uint32_t f_spare[5];
|
||||||
};
|
};
|
||||||
#elif (defined(TARGET_PPC64) || defined(TARGET_X86_64) || \
|
#elif (defined(TARGET_PPC64) || defined(TARGET_X86_64) || \
|
||||||
defined(TARGET_SPARC64) || defined(TARGET_AARCH64) || \
|
defined(TARGET_SPARC64) || defined(TARGET_AARCH64) || \
|
||||||
|
@ -2274,7 +2264,8 @@ struct target_statfs {
|
||||||
target_fsid_t f_fsid;
|
target_fsid_t f_fsid;
|
||||||
abi_long f_namelen;
|
abi_long f_namelen;
|
||||||
abi_long f_frsize;
|
abi_long f_frsize;
|
||||||
abi_long f_spare[5];
|
abi_long f_flags;
|
||||||
|
abi_long f_spare[4];
|
||||||
};
|
};
|
||||||
|
|
||||||
struct target_statfs64 {
|
struct target_statfs64 {
|
||||||
|
@ -2288,7 +2279,8 @@ struct target_statfs64 {
|
||||||
target_fsid_t f_fsid;
|
target_fsid_t f_fsid;
|
||||||
abi_long f_namelen;
|
abi_long f_namelen;
|
||||||
abi_long f_frsize;
|
abi_long f_frsize;
|
||||||
abi_long f_spare[5];
|
abi_long f_flags;
|
||||||
|
abi_long f_spare[4];
|
||||||
};
|
};
|
||||||
#elif defined(TARGET_S390X)
|
#elif defined(TARGET_S390X)
|
||||||
struct target_statfs {
|
struct target_statfs {
|
||||||
|
@ -2302,7 +2294,9 @@ struct target_statfs {
|
||||||
kernel_fsid_t f_fsid;
|
kernel_fsid_t f_fsid;
|
||||||
int32_t f_namelen;
|
int32_t f_namelen;
|
||||||
int32_t f_frsize;
|
int32_t f_frsize;
|
||||||
int32_t f_spare[5];
|
int32_t f_flags;
|
||||||
|
int32_t f_spare[4];
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct target_statfs64 {
|
struct target_statfs64 {
|
||||||
|
@ -2316,7 +2310,8 @@ struct target_statfs64 {
|
||||||
kernel_fsid_t f_fsid;
|
kernel_fsid_t f_fsid;
|
||||||
int32_t f_namelen;
|
int32_t f_namelen;
|
||||||
int32_t f_frsize;
|
int32_t f_frsize;
|
||||||
int32_t f_spare[5];
|
int32_t f_flags;
|
||||||
|
int32_t f_spare[4];
|
||||||
};
|
};
|
||||||
#else
|
#else
|
||||||
struct target_statfs {
|
struct target_statfs {
|
||||||
|
@ -2330,7 +2325,8 @@ struct target_statfs {
|
||||||
target_fsid_t f_fsid;
|
target_fsid_t f_fsid;
|
||||||
uint32_t f_namelen;
|
uint32_t f_namelen;
|
||||||
uint32_t f_frsize;
|
uint32_t f_frsize;
|
||||||
uint32_t f_spare[5];
|
uint32_t f_flags;
|
||||||
|
uint32_t f_spare[4];
|
||||||
};
|
};
|
||||||
|
|
||||||
struct target_statfs64 {
|
struct target_statfs64 {
|
||||||
|
@ -2344,7 +2340,8 @@ struct target_statfs64 {
|
||||||
target_fsid_t f_fsid;
|
target_fsid_t f_fsid;
|
||||||
uint32_t f_namelen;
|
uint32_t f_namelen;
|
||||||
uint32_t f_frsize;
|
uint32_t f_frsize;
|
||||||
uint32_t f_spare[5];
|
uint32_t f_flags;
|
||||||
|
uint32_t f_spare[4];
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue