[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 11/14] bsd-user/sysarch: Move to using do_freebsd_arch_sysarch in
From: |
Warner Losh |
Subject: |
[PATCH 11/14] bsd-user/sysarch: Move to using do_freebsd_arch_sysarch interface |
Date: |
Wed, 22 Sep 2021 00:14:35 -0600 |
Convert the #ifdef'd i386 code to calling the i386 sysarch code we have
living in i386,x86_64/target_arch_sysarch.h do_freebsd_arch_sysarch
rather than having a separate copy. This is in preparation to remove it
entirely.
Signed-Off-By: Warner Losh <imp@bsdimp.com>
---
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 a579d52ede..9bc72501b2 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
- Re: [PATCH 04/14] bsd-user: export get_errno and is_error from syscall.c, (continued)
- [PATCH 09/14] bsd-user: Remove used from TaskState, Warner Losh, 2021/09/22
- [PATCH 13/14] bsd-user: Rename sigqueue to qemu_sigqueue, Warner Losh, 2021/09/22
- [PATCH 10/14] bsd-user: Add stop_all_tasks, Warner Losh, 2021/09/22
- [PATCH 11/14] bsd-user/sysarch: Move to using do_freebsd_arch_sysarch interface,
Warner Losh <=
- [PATCH 12/14] bsd-user/sysarch: Provide a per-arch framework for sysarch syscall, Warner Losh, 2021/09/22
- [PATCH 03/14] bsd-user: TARGET_RESET define is unused, remove it, Warner Losh, 2021/09/22
- [PATCH 08/14] bsd-user/target_os_elf: If ELF_HWCAP2 is defined, publish it, Warner Losh, 2021/09/22