On Fri, Oct 8, 2021 at 6:15 PM Warner Losh <i...@bsdimp.com> wrote: > > do_freebsd_arch_sysarch() exists in $ARCH/target_arch_sysarch.h for x86. > Call it from do_freebsd_sysarch() and remove the mostly duplicate > version in syscall.c. Future changes will move it to os-sys.c and > support other architectures. > > Signed-off-by: Warner Losh <i...@bsdimp.com> > Reviewed-by: Richard Henderson <richard.hender...@linaro.org> > --- > bsd-user/syscall.c | 45 +-------------------------------------------- > 1 file changed, 1 insertion(+), 44 deletions(-) > > diff --git a/bsd-user/syscall.c b/bsd-user/syscall.c > index 2fd2ba8330..d3b9f431e2 100644 > --- a/bsd-user/syscall.c > +++ b/bsd-user/syscall.c > @@ -91,50 +91,7 @@ static abi_long do_obreak(abi_ulong new_brk) > #if defined(TARGET_I386) > static abi_long do_freebsd_sysarch(CPUX86State *env, int op, abi_ulong parms) > { > - abi_long ret = 0; > - abi_ulong val; > - int idx; > - > - switch (op) { > -#ifdef TARGET_ABI32 > - case TARGET_FREEBSD_I386_SET_GSBASE: > - case TARGET_FREEBSD_I386_SET_FSBASE: > - if (op == TARGET_FREEBSD_I386_SET_GSBASE) > -#else > - case TARGET_FREEBSD_AMD64_SET_GSBASE: > - case TARGET_FREEBSD_AMD64_SET_FSBASE: > - if (op == TARGET_FREEBSD_AMD64_SET_GSBASE) > -#endif > - idx = R_GS; > - else > - idx = R_FS; > - if (get_user(val, parms, abi_ulong)) > - return -TARGET_EFAULT; > - cpu_x86_load_seg(env, idx, 0); > - env->segs[idx].base = val; > - break; > -#ifdef TARGET_ABI32 > - case TARGET_FREEBSD_I386_GET_GSBASE: > - case TARGET_FREEBSD_I386_GET_FSBASE: > - if (op == TARGET_FREEBSD_I386_GET_GSBASE) > -#else > - case TARGET_FREEBSD_AMD64_GET_GSBASE: > - case TARGET_FREEBSD_AMD64_GET_FSBASE: > - if (op == TARGET_FREEBSD_AMD64_GET_GSBASE) > -#endif > - idx = R_GS; > - else > - idx = R_FS; > - val = env->segs[idx].base; > - if (put_user(val, parms, abi_ulong)) > - return -TARGET_EFAULT; > - break; > - /* XXX handle the others... */ > - default: > - ret = -TARGET_EINVAL; > - break; > - } > - return ret; > + do_freebsd_arch_sysarch(env, op, parms); > } > #endif > > -- > 2.32.0 >
Reviewed-by: Kyle Evans <kev...@freebsd.org>