All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Vivier <laurent@vivier.eu>
To: qemu-devel@nongnu.org
Cc: Taylor Simpson <tsimpson@quicinc.com>,
	Riku Voipio <riku.voipio@iki.fi>,
	Laurent Vivier <laurent@vivier.eu>
Subject: [PULL v4 20/32] linux-user, x86_64, i386: cleanup TARGET_NR_arch_prctl
Date: Fri, 20 Mar 2020 16:23:56 +0100	[thread overview]
Message-ID: <20200320152408.182899-21-laurent@vivier.eu> (raw)
In-Reply-To: <20200320152408.182899-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>
Message-Id: <20200310103403.3284090-14-laurent@vivier.eu>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
 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 61078342f750..35f414666243 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -5545,6 +5545,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 */
@@ -5684,7 +5688,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);
@@ -5816,9 +5820,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;
@@ -5851,7 +5858,7 @@ abi_long do_arch_prctl(CPUX86State *env, int code, abi_ulong addr)
     }
     return ret;
 }
-#endif
+#endif /* defined(TARGET_ABI32 */
 
 #endif /* defined(TARGET_I386) */
 
@@ -10321,11 +10328,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.25.1



  parent reply	other threads:[~2020-03-20 15:29 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-20 15:23 [PULL v4 00/32] Linux user for 5.0 patches Laurent Vivier
2020-03-20 15:23 ` [PULL v4 01/32] linux-user: Add AT_EXECFN auxval Laurent Vivier
2020-03-20 15:23 ` [PULL v4 02/32] linux-user: do prlimit selectively Laurent Vivier
2020-03-20 15:23 ` [PULL v4 03/32] linux-user: fix socket() strace Laurent Vivier
2020-03-20 15:23 ` [PULL v4 04/32] linux-user: Update TASK_UNMAPPED_BASE for aarch64 Laurent Vivier
2020-03-20 15:23 ` [PULL v4 05/32] linux-user: Protect more syscalls Laurent Vivier
2020-03-20 15:23 ` [PULL v4 06/32] linux-user/syscall: Add support for clock_gettime64/clock_settime64 Laurent Vivier
2020-03-20 15:23 ` [PULL v4 07/32] linux-user/riscv: Update the syscall_nr's to the 5.5 kernel Laurent Vivier
2020-03-20 15:23 ` [PULL v4 08/32] linux-user: introduce parameters to generate syscall_nr.h Laurent Vivier
2020-03-20 15:23 ` [PULL v4 09/32] linux-user, alpha: add syscall table generation support Laurent Vivier
2020-03-20 15:23 ` [PULL v4 10/32] linux-user, hppa: " Laurent Vivier
2020-03-20 15:23 ` [PULL v4 11/32] linux-user, m68k: " Laurent Vivier
2020-03-20 15:23 ` [PULL v4 12/32] linux-user, xtensa: " Laurent Vivier
2020-03-20 15:23 ` [PULL v4 13/32] linux-user, sh4: " Laurent Vivier
2020-03-20 15:23 ` [PULL v4 14/32] linux-user, microblaze: " Laurent Vivier
2020-03-20 15:23 ` [PULL v4 15/32] linux-user, arm: " Laurent Vivier
2020-03-20 15:23 ` [PULL v4 16/32] linux-user, ppc: " Laurent Vivier
2020-03-20 15:23 ` [PULL v4 17/32] linux-user, s390x: remove syscall definitions for !TARGET_S390X Laurent Vivier
2020-03-20 15:23 ` [PULL v4 18/32] linux-user, s390x: add syscall table generation support Laurent Vivier
2020-03-20 15:23 ` [PULL v4 19/32] linux-user, sparc, sparc64: " Laurent Vivier
2020-03-20 15:23 ` Laurent Vivier [this message]
2020-03-20 15:23 ` [PULL v4 21/32] linux-user, i386: " Laurent Vivier
2020-03-20 15:23 ` [PULL v4 22/32] linux-user, x86_64: " Laurent Vivier
2020-03-20 15:23 ` [PULL v4 23/32] linux-user, mips: " Laurent Vivier
2020-03-20 15:24 ` [PULL v4 24/32] linux-user, mips64: " Laurent Vivier
2020-03-20 15:24 ` [PULL v4 25/32] linux-user, scripts: add a script to update syscall.tbl Laurent Vivier
2020-03-20 15:24 ` [PULL v4 26/32] linux-user: update syscall.tbl from linux 0bf999f9c5e7 Laurent Vivier
2020-03-20 15:24 ` [PULL v4 27/32] linux-user,mips: move content of mips_syscall_args Laurent Vivier
2020-03-20 15:24 ` [PULL v4 28/32] linux-user,mips: update syscall-args-o32.c.inc Laurent Vivier
2020-03-20 15:24 ` [PULL v4 29/32] scripts: add a script to generate syscall_nr.h Laurent Vivier
2020-03-20 15:24 ` [PULL v4 30/32] linux-user, aarch64: sync syscall numbers with kernel v5.5 Laurent Vivier
2020-03-20 15:24 ` [PULL v4 31/32] linux-user, nios2: " Laurent Vivier
2020-03-20 15:24 ` [PULL v4 32/32] linux-user, openrisc: " Laurent Vivier
2020-03-21 16:32 ` [PULL v4 00/32] Linux user for 5.0 patches Peter Maydell

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=20200320152408.182899-21-laurent@vivier.eu \
    --to=laurent@vivier.eu \
    --cc=qemu-devel@nongnu.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.