Ping? Laurent
Le 02/03/2017 à 01:11, Laurent Vivier a écrit : > On ppc, advice is arg2, not arg6: > > long ppc_fadvise64_64(int fd, int advice, u32 offset_high, u32 offset_low, > u32 len_high, u32 len_low) > > Signed-off-by: Laurent Vivier <laur...@vivier.eu> > --- > linux-user/syscall.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/linux-user/syscall.c b/linux-user/syscall.c > index 2da8426..671b13a 100644 > --- a/linux-user/syscall.c > +++ b/linux-user/syscall.c > @@ -11261,6 +11261,15 @@ abi_long do_syscall(void *cpu_env, int num, abi_long > arg1, > > #ifdef TARGET_NR_fadvise64_64 > case TARGET_NR_fadvise64_64: > +#if defined(TARGET_PPC) > + /* 6 args: fd, advice, offset (high, low), len (high, low) */ > + ret = arg2; > + arg2 = arg3; > + arg3 = arg4; > + arg4 = arg5; > + arg5 = arg6; > + arg6 = ret; > +#else > /* 6 args: fd, offset (high, low), len (high, low), advice */ > if (regpairs_aligned(cpu_env)) { > /* offset is in (3,4), len in (5,6) and advice in 7 */ > @@ -11270,6 +11279,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long > arg1, > arg5 = arg6; > arg6 = arg7; > } > +#endif > ret = -host_to_target_errno(posix_fadvise(arg1, > target_offset64(arg2, > arg3), > target_offset64(arg4, > arg5), >