linux-user/syscall.c: eliminate other explicit LFS usages
Since we alwasy build with LFS enabled, and with -D_FILE_OFFSET_BITS=64 in particular, there is no need to use 64bit versions of various system calls and constants, regular ones will do just fine. Eliminate a few last uses of the following constructs in linux-user/syscall.c: off64_t ftruncate64() lseek64() pread64() pwrite64() This way it can be built on systems where the 64bit variants of everything is not defined (since the system always uses 64bit variants), such as on recent MUSL. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2215 Signed-off-by: Michael Tokarev <mjt@tls.msk.ru> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
ac1bbe8ca4
commit
99174ce39e
@ -7265,7 +7265,7 @@ static inline abi_long target_truncate64(CPUArchState *cpu_env, const char *arg1
|
|||||||
arg2 = arg3;
|
arg2 = arg3;
|
||||||
arg3 = arg4;
|
arg3 = arg4;
|
||||||
}
|
}
|
||||||
return get_errno(truncate64(arg1, target_offset64(arg2, arg3)));
|
return get_errno(truncate(arg1, target_offset64(arg2, arg3)));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -7279,7 +7279,7 @@ static inline abi_long target_ftruncate64(CPUArchState *cpu_env, abi_long arg1,
|
|||||||
arg2 = arg3;
|
arg2 = arg3;
|
||||||
arg3 = arg4;
|
arg3 = arg4;
|
||||||
}
|
}
|
||||||
return get_errno(ftruncate64(arg1, target_offset64(arg2, arg3)));
|
return get_errno(ftruncate(arg1, target_offset64(arg2, arg3)));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -8664,7 +8664,7 @@ static int do_getdents(abi_long dirfd, abi_long arg2, abi_long count)
|
|||||||
void *tdirp;
|
void *tdirp;
|
||||||
int hlen, hoff, toff;
|
int hlen, hoff, toff;
|
||||||
int hreclen, treclen;
|
int hreclen, treclen;
|
||||||
off64_t prev_diroff = 0;
|
off_t prev_diroff = 0;
|
||||||
|
|
||||||
hdirp = g_try_malloc(count);
|
hdirp = g_try_malloc(count);
|
||||||
if (!hdirp) {
|
if (!hdirp) {
|
||||||
@ -8717,7 +8717,7 @@ static int do_getdents(abi_long dirfd, abi_long arg2, abi_long count)
|
|||||||
* Return what we have, resetting the file pointer to the
|
* Return what we have, resetting the file pointer to the
|
||||||
* location of the first record not returned.
|
* location of the first record not returned.
|
||||||
*/
|
*/
|
||||||
lseek64(dirfd, prev_diroff, SEEK_SET);
|
lseek(dirfd, prev_diroff, SEEK_SET);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -8751,7 +8751,7 @@ static int do_getdents64(abi_long dirfd, abi_long arg2, abi_long count)
|
|||||||
void *tdirp;
|
void *tdirp;
|
||||||
int hlen, hoff, toff;
|
int hlen, hoff, toff;
|
||||||
int hreclen, treclen;
|
int hreclen, treclen;
|
||||||
off64_t prev_diroff = 0;
|
off_t prev_diroff = 0;
|
||||||
|
|
||||||
hdirp = g_try_malloc(count);
|
hdirp = g_try_malloc(count);
|
||||||
if (!hdirp) {
|
if (!hdirp) {
|
||||||
@ -8793,7 +8793,7 @@ static int do_getdents64(abi_long dirfd, abi_long arg2, abi_long count)
|
|||||||
* Return what we have, resetting the file pointer to the
|
* Return what we have, resetting the file pointer to the
|
||||||
* location of the first record not returned.
|
* location of the first record not returned.
|
||||||
*/
|
*/
|
||||||
lseek64(dirfd, prev_diroff, SEEK_SET);
|
lseek(dirfd, prev_diroff, SEEK_SET);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -11524,7 +11524,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
|
|||||||
return -TARGET_EFAULT;
|
return -TARGET_EFAULT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ret = get_errno(pread64(arg1, p, arg3, target_offset64(arg4, arg5)));
|
ret = get_errno(pread(arg1, p, arg3, target_offset64(arg4, arg5)));
|
||||||
unlock_user(p, arg2, ret);
|
unlock_user(p, arg2, ret);
|
||||||
return ret;
|
return ret;
|
||||||
case TARGET_NR_pwrite64:
|
case TARGET_NR_pwrite64:
|
||||||
@ -11541,7 +11541,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
|
|||||||
return -TARGET_EFAULT;
|
return -TARGET_EFAULT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ret = get_errno(pwrite64(arg1, p, arg3, target_offset64(arg4, arg5)));
|
ret = get_errno(pwrite(arg1, p, arg3, target_offset64(arg4, arg5)));
|
||||||
unlock_user(p, arg2, 0);
|
unlock_user(p, arg2, 0);
|
||||||
return ret;
|
return ret;
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user