All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Vivier <laurent@vivier.eu>
To: qemu-devel@nongnu.org
Cc: Cornelia Huck <cohuck@redhat.com>,
	Riku Voipio <riku.voipio@iki.fi>,
	Richard Henderson <richard.henderson@linaro.org>,
	Taylor Simpson <tsimpson@quicinc.com>,
	Laurent Vivier <laurent@vivier.eu>,
	qemu-s390x@nongnu.org,
	Aleksandar Markovic <amarkovic@wavecomp.com>,
	Aleksandar Rikalo <aleksandar.rikalo@rt-rk.com>,
	Aurelien Jarno <aurelien@aurel32.net>
Subject: [PATCH v4 13/21] linux-user, x86_64, i386: cleanup TARGET_NR_arch_prctl
Date: Tue, 10 Mar 2020 11:33:55 +0100	[thread overview]
Message-ID: <20200310103403.3284090-14-laurent@vivier.eu> (raw)
In-Reply-To: <20200310103403.3284090-1-laurent@vivier.eu>

Define do_arch_prctl() for i386 and x86_64, but return -TARGET_ENOSYS
for i386.

Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Taylor Simpson <tsimpson@quicinc.com>
---
 linux-user/i386/target_cpu.h |  4 ++--
 linux-user/syscall.c         | 19 +++++++++++--------
 2 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/linux-user/i386/target_cpu.h b/linux-user/i386/target_cpu.h
index 0b44530854c8..2207d24c2eb0 100644
--- a/linux-user/i386/target_cpu.h
+++ b/linux-user/i386/target_cpu.h
@@ -33,6 +33,8 @@ static inline void cpu_clone_regs_parent(CPUX86State *env, unsigned flags)
 {
 }
 
+abi_long do_arch_prctl(CPUX86State *env, int code, abi_ulong addr);
+
 #if defined(TARGET_ABI32)
 abi_long do_set_thread_area(CPUX86State *env, abi_ulong ptr);
 
@@ -42,8 +44,6 @@ static inline void cpu_set_tls(CPUX86State *env, target_ulong newtls)
     cpu_x86_load_seg(env, R_GS, env->segs[R_GS].selector);
 }
 #else
-abi_long do_arch_prctl(CPUX86State *env, int code, abi_ulong addr);
-
 static inline void cpu_set_tls(CPUX86State *env, target_ulong newtls)
 {
     do_arch_prctl(env, TARGET_ARCH_SET_FS, newtls);
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index f50a16070815..0eede7620664 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -5498,6 +5498,10 @@ static bitmask_transtbl mmap_flags_tbl[] = {
     { 0, 0, 0, 0 }
 };
 
+/*
+ * NOTE: TARGET_ABI32 is defined for TARGET_I386 (but not for TARGET_X86_64)
+ *       TARGET_I386 is defined if TARGET_X86_64 is defined
+ */
 #if defined(TARGET_I386)
 
 /* NOTE: there is really one LDT for all the threads */
@@ -5637,7 +5641,7 @@ static abi_long do_modify_ldt(CPUX86State *env, int func, abi_ulong ptr,
     return ret;
 }
 
-#if defined(TARGET_I386) && defined(TARGET_ABI32)
+#if defined(TARGET_ABI32)
 abi_long do_set_thread_area(CPUX86State *env, abi_ulong ptr)
 {
     uint64_t *gdt_table = g2h(env->gdt.base);
@@ -5769,9 +5773,12 @@ static abi_long do_get_thread_area(CPUX86State *env, abi_ulong ptr)
     unlock_user_struct(target_ldt_info, ptr, 1);
     return 0;
 }
-#endif /* TARGET_I386 && TARGET_ABI32 */
 
-#ifndef TARGET_ABI32
+abi_long do_arch_prctl(CPUX86State *env, int code, abi_ulong addr)
+{
+    return -ENOSYS;
+}
+#else
 abi_long do_arch_prctl(CPUX86State *env, int code, abi_ulong addr)
 {
     abi_long ret = 0;
@@ -5804,7 +5811,7 @@ abi_long do_arch_prctl(CPUX86State *env, int code, abi_ulong addr)
     }
     return ret;
 }
-#endif
+#endif /* defined(TARGET_ABI32 */
 
 #endif /* defined(TARGET_I386) */
 
@@ -10247,11 +10254,7 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1,
         break;
 #ifdef TARGET_NR_arch_prctl
     case TARGET_NR_arch_prctl:
-#if defined(TARGET_I386) && !defined(TARGET_ABI32)
         return do_arch_prctl(cpu_env, arg1, arg2);
-#else
-#error unreachable
-#endif
 #endif
 #ifdef TARGET_NR_pread64
     case TARGET_NR_pread64:
-- 
2.24.1



  parent reply	other threads:[~2020-03-10 10:38 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-10 10:33 [PATCH v4 00/21] linux-user: generate syscall_nr.sh Laurent Vivier
2020-03-10 10:33 ` [PATCH v4 01/21] linux-user: introduce parameters to generate syscall_nr.h Laurent Vivier
2020-03-10 10:33 ` [PATCH v4 02/21] linux-user, alpha: add syscall table generation support Laurent Vivier
2020-03-10 10:33 ` [PATCH v4 03/21] linux-user, hppa: " Laurent Vivier
2020-03-11 17:21   ` [PATCH v4 03/21] linux-user,hppa: " Richard Henderson
2020-03-10 10:33 ` [PATCH v4 04/21] linux-user, m68k: " Laurent Vivier
2020-03-10 10:33 ` [PATCH v4 05/21] linux-user, xtensa: " Laurent Vivier
2020-03-10 10:33 ` [PATCH v4 06/21] linux-user, sh4: " Laurent Vivier
2020-03-10 10:33 ` [PATCH v4 07/21] linux-user, microblaze: " Laurent Vivier
2020-03-10 10:33 ` [PATCH v4 08/21] linux-user, arm: " Laurent Vivier
2020-03-11 17:26   ` [PATCH v4 08/21] linux-user,arm: " Richard Henderson
2020-03-10 10:33 ` [PATCH v4 09/21] linux-user, ppc: " Laurent Vivier
2020-03-10 10:33 ` [PATCH v4 10/21] linux-user, s390x: remove syscall definitions for !TARGET_S390X Laurent Vivier
2020-03-10 10:33 ` [PATCH v4 11/21] linux-user, s390x: add syscall table generation support Laurent Vivier
2020-03-10 10:33 ` [PATCH v4 12/21] linux-user, sparc, sparc64: " Laurent Vivier
2020-03-10 10:33 ` Laurent Vivier [this message]
2020-03-10 10:33 ` [PATCH v4 14/21] linux-user, i386: " Laurent Vivier
2020-03-10 10:33 ` [PATCH v4 15/21] linux-user, x86_64: " Laurent Vivier
2020-03-10 10:33 ` [PATCH v4 16/21] linux-user, mips: " Laurent Vivier
2020-03-10 10:33 ` [PATCH v4 17/21] linux-user, mips64: " Laurent Vivier
2020-03-10 10:34 ` [PATCH v4 18/21] linux-user, scripts: add a script to update syscall.tbl Laurent Vivier
2020-03-11 17:41   ` [PATCH v4 18/21] linux-user,scripts: " Richard Henderson
2020-03-10 10:34 ` [PATCH v4 19/21] linux-user: update syscall.tbl from linux 0bf999f9c5e7 Laurent Vivier
2020-03-10 10:34 ` [PATCH v4 20/21] linux-user,mips: move content of mips_syscall_args Laurent Vivier
2020-03-10 10:34 ` [PATCH v4 21/21] linux-user,mips: update syscall-args-o32.c.inc Laurent Vivier
2020-03-10 11:15 ` [PATCH v4 00/21] linux-user: generate syscall_nr.sh Peter Maydell
2020-03-10 11:26   ` Laurent Vivier
2020-03-10 11:25 ` no-reply
2020-03-13 21:53 ` Laurent Vivier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200310103403.3284090-14-laurent@vivier.eu \
    --to=laurent@vivier.eu \
    --cc=aleksandar.rikalo@rt-rk.com \
    --cc=amarkovic@wavecomp.com \
    --cc=aurelien@aurel32.net \
    --cc=cohuck@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=riku.voipio@iki.fi \
    --cc=tsimpson@quicinc.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.