From nobody Thu Oct 16 02:16:36 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1754335957; cv=none; d=zohomail.com; s=zohoarc; b=Zn4XNs6Pt+RQuAAsnpwTBu2NBFQnDjbSM6pkoRkGqyN0iEzgXo0VxbtAplBpfuDWrLTmR41TAd52ExCh6nj9gLlk9GKikai2vS4l57TDta3MbPx3zCcva1wmKrpffSyF5vaT2Bv6JmXeG1QZMFNFwXFRMgd1/i1kUbPvCmcTnv4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1754335957; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=yfTTelpTcteJYO0V1khDH/E5iXRKqsCNylTRL6GqPYE=; b=C//TMAmmbcXFeKrvNQ4RWAX3cLB7Z8CIYP1OkO9A8eZ27TUYhWX8dJEDCtLqmRrwpObXqewKreu9eTuuFYVfRq82lNa/LgTJUg2xkJiV9KDCmZq56Jm406IHVax5rW7iHLNFKqlqHOSY8JPsjEZo5U0ni1WiE2Cizf6DP6J9yUc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1754335957494330.72264922243687; Mon, 4 Aug 2025 12:32:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uj0um-0001hi-3o; Mon, 04 Aug 2025 15:32:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uj06P-00016W-CA for qemu-devel@nongnu.org; Mon, 04 Aug 2025 14:40:07 -0400 Received: from mail-pf1-x42c.google.com ([2607:f8b0:4864:20::42c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uj06K-0000rq-5y for qemu-devel@nongnu.org; Mon, 04 Aug 2025 14:40:04 -0400 Received: by mail-pf1-x42c.google.com with SMTP id d2e1a72fcca58-76b77a97a04so2734363b3a.1 for ; Mon, 04 Aug 2025 11:39:58 -0700 (PDT) Received: from pc.. ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-76bd78875cesm9940171b3a.15.2025.08.04.11.39.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Aug 2025 11:39:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1754332797; x=1754937597; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=yfTTelpTcteJYO0V1khDH/E5iXRKqsCNylTRL6GqPYE=; b=Ya5aBFt0oip85h++hOwwsXDqms/7xZ9DZGjlPIYgI0JacCTzzk2SvpgDeA2J+5V54t Fxw2fc4j2Nuzebqa/QpQbNnv4awdb3ou6P/oY2nTDWOEYKQT9cVF3b7uqEzrz5DDpsEU 793fPVEXqYldMM/1nvppZuG17ieNY6dBk9wYJDrPRxoNPPp1+McIQcnvbZrr4o6MuDz7 Wq3OVfVA+DO4nAR0IeP8ZAbdLBMCM/H1O9RbT6aJAvVe5vHBhts9nK3bgRitsp0inBSH DTg84w7Uj5uwII3OXPLKJUrMyvZxKJOmpjWci+IwtMHo0g/bQ2wOmUv9iMy9NKjp7WSE AQRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754332797; x=1754937597; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=yfTTelpTcteJYO0V1khDH/E5iXRKqsCNylTRL6GqPYE=; b=WqmC4uBCzGD2gPEhlCy5gihEPe/sCGkmxwwlrEZzxr3bnYVy+RL4+bmf7M/lyTLrzX i25Y7hMOg0aPdK2Apv/egyxW1JqCBuq084LZiFtpJqe8dpd/CzAzcvoMk9g7/JEtP7fF haGiUPzPds2HI9xQSJRllvAhwOCobyrL+elipSAF0fOpTP6o9d9CRLdQVv2ChtCZG5EQ nn3BJB3ye3RB+ZAAXPNV/WOKna0MdiICXvf0/Zy8phm7a5TL0jOd+/ql+r56e1JjFD60 OywiUwgxuUoM79oaySSOMYLPqiCogahRCQJ28J6t3fRT5GiLnnrBAjnYmowmHeubRBxT +rQA== X-Gm-Message-State: AOJu0Yx8ur9pMjgatMOoFdWVZqXfCwe9bY+qDtOH5d30pGp5j0pZO2fr SK121ezK0GLJHfZqwY8I2DoJ+iV1UllpYJ7uPLVfmkeuXxFnap7VS6BxIBhNH1NTgXRa28PnP3C T/1KF X-Gm-Gg: ASbGnct1l86qrMajN5vGIQwTmDXpjtjHNl3slSgtQaubEQom6p4s46THpACGzKP8uE1 LjGEzH5G2LuQendmhkuZjUI7NvmYzOj/cTpbP+LrMk3D0l7iPFsnMPZ5alK7Hwux3BlGCdvlBOC tTn+m06AzAEel4Z16SqSd2opSFrd21wC/ocj+/HIVHLIM/AXsUHVllqY5FmsTRXC+gAysk1BReT FpLJTNg3afVcHcXEuINWOxpMSzgjToA/gTjc/aj/cZFHJ5c3Jd3tnXrN57fFHg4L60Oa+bOQpHJ BwUGwzgS9dG/V/zQeyiWdoEpc2qHH4l7NKtigDx5sYB8eC0z1eOsALqal3o1oeAWPhSXEflKrkQ sdJbjknGlpH8XecP6AWkA37v+BLPkrzyP X-Google-Smtp-Source: AGHT+IEUSc/xc1C4dOAkm3v9y9DfQF56B1A2+Php1e/38BI2u4XYRkNVBQIlSd1kUdzUHoDmXYfJ1A== X-Received: by 2002:a05:6a20:244f:b0:240:d12:775c with SMTP id adf61e73a8af0-2400d12a143mr6869195637.36.1754332797414; Mon, 04 Aug 2025 11:39:57 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, philmd@linaro.org, Weiwei Li , Palmer Dabbelt , richard.henderson@linaro.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Peter Maydell , Liu Zhiwei , qemu-arm@nongnu.org, Alistair Francis , Daniel Henrique Barboza , Pierrick Bouvier Subject: [PATCH v3 01/12] semihosting/syscalls: compile once in system and per target for user mode Date: Mon, 4 Aug 2025 11:39:39 -0700 Message-ID: <20250804183950.3147154-2-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250804183950.3147154-1-pierrick.bouvier@linaro.org> References: <20250804183950.3147154-1-pierrick.bouvier@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::42c; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pf1-x42c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1754335960578124100 Content-Type: text/plain; charset="utf-8" We replace target_ulong mechanically by uint64_t. We can't compile (easily) this code once for user, as it relies on various target/function types, so leave it in specific_ss for user mode. Reviewed-by: Richard Henderson Signed-off-by: Pierrick Bouvier --- include/semihosting/syscalls.h | 30 ++++++------ semihosting/arm-compat-semi.c | 1 + semihosting/syscalls.c | 89 +++++++++++++++++----------------- semihosting/meson.build | 4 +- 4 files changed, 63 insertions(+), 61 deletions(-) diff --git a/include/semihosting/syscalls.h b/include/semihosting/syscalls.h index 6627c45fb28..03aa45b7bb9 100644 --- a/include/semihosting/syscalls.h +++ b/include/semihosting/syscalls.h @@ -9,7 +9,7 @@ #ifndef SEMIHOSTING_SYSCALLS_H #define SEMIHOSTING_SYSCALLS_H =20 -#include "exec/cpu-defs.h" +#include "exec/vaddr.h" #include "gdbstub/syscalls.h" =20 /* @@ -24,23 +24,23 @@ typedef struct GuestFD GuestFD; =20 void semihost_sys_open(CPUState *cs, gdb_syscall_complete_cb complete, - target_ulong fname, target_ulong fname_len, + vaddr fname, uint64_t fname_len, int gdb_flags, int mode); =20 void semihost_sys_close(CPUState *cs, gdb_syscall_complete_cb complete, int fd); =20 void semihost_sys_read(CPUState *cs, gdb_syscall_complete_cb complete, - int fd, target_ulong buf, target_ulong len); + int fd, vaddr buf, uint64_t len); =20 void semihost_sys_read_gf(CPUState *cs, gdb_syscall_complete_cb complete, - GuestFD *gf, target_ulong buf, target_ulong len); + GuestFD *gf, vaddr buf, uint64_t len); =20 void semihost_sys_write(CPUState *cs, gdb_syscall_complete_cb complete, - int fd, target_ulong buf, target_ulong len); + int fd, vaddr buf, uint64_t len); =20 void semihost_sys_write_gf(CPUState *cs, gdb_syscall_complete_cb complete, - GuestFD *gf, target_ulong buf, target_ulong len= ); + GuestFD *gf, vaddr buf, uint64_t len); =20 void semihost_sys_lseek(CPUState *cs, gdb_syscall_complete_cb complete, int fd, int64_t off, int gdb_whence); @@ -50,27 +50,27 @@ void semihost_sys_isatty(CPUState *cs, gdb_syscall_comp= lete_cb complete, =20 void semihost_sys_flen(CPUState *cs, gdb_syscall_complete_cb fstat_cb, gdb_syscall_complete_cb flen_cb, - int fd, target_ulong fstat_addr); + int fd, vaddr fstat_addr); =20 void semihost_sys_fstat(CPUState *cs, gdb_syscall_complete_cb complete, - int fd, target_ulong addr); + int fd, vaddr addr); =20 void semihost_sys_stat(CPUState *cs, gdb_syscall_complete_cb complete, - target_ulong fname, target_ulong fname_len, - target_ulong addr); + vaddr fname, uint64_t fname_len, + vaddr addr); =20 void semihost_sys_remove(CPUState *cs, gdb_syscall_complete_cb complete, - target_ulong fname, target_ulong fname_len); + vaddr fname, uint64_t fname_len); =20 void semihost_sys_rename(CPUState *cs, gdb_syscall_complete_cb complete, - target_ulong oname, target_ulong oname_len, - target_ulong nname, target_ulong nname_len); + vaddr oname, uint64_t oname_len, + vaddr nname, uint64_t nname_len); =20 void semihost_sys_system(CPUState *cs, gdb_syscall_complete_cb complete, - target_ulong cmd, target_ulong cmd_len); + vaddr cmd, uint64_t cmd_len); =20 void semihost_sys_gettimeofday(CPUState *cs, gdb_syscall_complete_cb compl= ete, - target_ulong tv_addr, target_ulong tz_addr); + vaddr tv_addr, vaddr tz_addr); =20 void semihost_sys_poll_one(CPUState *cs, gdb_syscall_complete_cb complete, int fd, GIOCondition cond, int timeout); diff --git a/semihosting/arm-compat-semi.c b/semihosting/arm-compat-semi.c index 86e5260e504..40dc778529d 100644 --- a/semihosting/arm-compat-semi.c +++ b/semihosting/arm-compat-semi.c @@ -34,6 +34,7 @@ #include "qemu/osdep.h" #include "qemu/timer.h" #include "exec/gdbstub.h" +#include "cpu.h" #include "gdbstub/syscalls.h" #include "semihosting/semihost.h" #include "semihosting/console.h" diff --git a/semihosting/syscalls.c b/semihosting/syscalls.c index f6451d9bb0e..f072d919193 100644 --- a/semihosting/syscalls.c +++ b/semihosting/syscalls.c @@ -8,7 +8,6 @@ =20 #include "qemu/osdep.h" #include "qemu/log.h" -#include "cpu.h" #include "gdbstub/syscalls.h" #include "semihosting/guestfd.h" #include "semihosting/syscalls.h" @@ -23,7 +22,7 @@ /* * Validate or compute the length of the string (including terminator). */ -static int validate_strlen(CPUState *cs, target_ulong str, target_ulong tl= en) +static int validate_strlen(CPUState *cs, uint64_t str, uint64_t tlen) { CPUArchState *env G_GNUC_UNUSED =3D cpu_env(cs); char c; @@ -52,7 +51,7 @@ static int validate_strlen(CPUState *cs, target_ulong str= , target_ulong tlen) } =20 static int validate_lock_user_string(char **pstr, CPUState *cs, - target_ulong tstr, target_ulong tlen) + uint64_t tstr, uint64_t tlen) { int ret =3D validate_strlen(cs, tstr, tlen); CPUArchState *env G_GNUC_UNUSED =3D cpu_env(cs); @@ -72,7 +71,7 @@ static int validate_lock_user_string(char **pstr, CPUStat= e *cs, * big-endian. Until we do something with gdb, also produce the * same big-endian result from the host. */ -static int copy_stat_to_user(CPUState *cs, target_ulong addr, +static int copy_stat_to_user(CPUState *cs, uint64_t addr, const struct stat *s) { CPUArchState *env G_GNUC_UNUSED =3D cpu_env(cs); @@ -129,7 +128,7 @@ static void gdb_open_cb(CPUState *cs, uint64_t ret, int= err) } =20 static void gdb_open(CPUState *cs, gdb_syscall_complete_cb complete, - target_ulong fname, target_ulong fname_len, + uint64_t fname, uint64_t fname_len, int gdb_flags, int mode) { int len =3D validate_strlen(cs, fname, fname_len); @@ -151,14 +150,14 @@ static void gdb_close(CPUState *cs, gdb_syscall_compl= ete_cb complete, } =20 static void gdb_read(CPUState *cs, gdb_syscall_complete_cb complete, - GuestFD *gf, target_ulong buf, target_ulong len) + GuestFD *gf, uint64_t buf, uint64_t len) { gdb_do_syscall(complete, "read,%x,%lx,%lx", (uint32_t)gf->hostfd, (uint64_t)buf, (uint64_t)len); } =20 static void gdb_write(CPUState *cs, gdb_syscall_complete_cb complete, - GuestFD *gf, target_ulong buf, target_ulong len) + GuestFD *gf, uint64_t buf, uint64_t len) { gdb_do_syscall(complete, "write,%x,%lx,%lx", (uint32_t)gf->hostfd, (uint64_t)buf, (uint64_t)len); @@ -178,15 +177,15 @@ static void gdb_isatty(CPUState *cs, gdb_syscall_comp= lete_cb complete, } =20 static void gdb_fstat(CPUState *cs, gdb_syscall_complete_cb complete, - GuestFD *gf, target_ulong addr) + GuestFD *gf, uint64_t addr) { gdb_do_syscall(complete, "fstat,%x,%lx", (uint32_t)gf->hostfd, (uint64_t)addr); } =20 static void gdb_stat(CPUState *cs, gdb_syscall_complete_cb complete, - target_ulong fname, target_ulong fname_len, - target_ulong addr) + uint64_t fname, uint64_t fname_len, + uint64_t addr) { int len =3D validate_strlen(cs, fname, fname_len); if (len < 0) { @@ -199,7 +198,7 @@ static void gdb_stat(CPUState *cs, gdb_syscall_complete= _cb complete, } =20 static void gdb_remove(CPUState *cs, gdb_syscall_complete_cb complete, - target_ulong fname, target_ulong fname_len) + uint64_t fname, uint64_t fname_len) { int len =3D validate_strlen(cs, fname, fname_len); if (len < 0) { @@ -211,8 +210,8 @@ static void gdb_remove(CPUState *cs, gdb_syscall_comple= te_cb complete, } =20 static void gdb_rename(CPUState *cs, gdb_syscall_complete_cb complete, - target_ulong oname, target_ulong oname_len, - target_ulong nname, target_ulong nname_len) + uint64_t oname, uint64_t oname_len, + uint64_t nname, uint64_t nname_len) { int olen, nlen; =20 @@ -233,7 +232,7 @@ static void gdb_rename(CPUState *cs, gdb_syscall_comple= te_cb complete, } =20 static void gdb_system(CPUState *cs, gdb_syscall_complete_cb complete, - target_ulong cmd, target_ulong cmd_len) + uint64_t cmd, uint64_t cmd_len) { int len =3D validate_strlen(cs, cmd, cmd_len); if (len < 0) { @@ -245,7 +244,7 @@ static void gdb_system(CPUState *cs, gdb_syscall_comple= te_cb complete, } =20 static void gdb_gettimeofday(CPUState *cs, gdb_syscall_complete_cb complet= e, - target_ulong tv_addr, target_ulong tz_addr) + uint64_t tv_addr, uint64_t tz_addr) { gdb_do_syscall(complete, "gettimeofday,%lx,%lx", (uint64_t)tv_addr, (uint64_t)tz_addr); @@ -256,7 +255,7 @@ static void gdb_gettimeofday(CPUState *cs, gdb_syscall_= complete_cb complete, */ =20 static void host_open(CPUState *cs, gdb_syscall_complete_cb complete, - target_ulong fname, target_ulong fname_len, + uint64_t fname, uint64_t fname_len, int gdb_flags, int mode) { CPUArchState *env G_GNUC_UNUSED =3D cpu_env(cs); @@ -316,7 +315,7 @@ static void host_close(CPUState *cs, gdb_syscall_comple= te_cb complete, } =20 static void host_read(CPUState *cs, gdb_syscall_complete_cb complete, - GuestFD *gf, target_ulong buf, target_ulong len) + GuestFD *gf, uint64_t buf, uint64_t len) { CPUArchState *env G_GNUC_UNUSED =3D cpu_env(cs); void *ptr =3D lock_user(VERIFY_WRITE, buf, len, 0); @@ -337,7 +336,7 @@ static void host_read(CPUState *cs, gdb_syscall_complet= e_cb complete, } =20 static void host_write(CPUState *cs, gdb_syscall_complete_cb complete, - GuestFD *gf, target_ulong buf, target_ulong len) + GuestFD *gf, uint64_t buf, uint64_t len) { CPUArchState *env G_GNUC_UNUSED =3D cpu_env(cs); void *ptr =3D lock_user(VERIFY_READ, buf, len, 1); @@ -395,7 +394,7 @@ static void host_flen(CPUState *cs, gdb_syscall_complet= e_cb complete, } =20 static void host_fstat(CPUState *cs, gdb_syscall_complete_cb complete, - GuestFD *gf, target_ulong addr) + GuestFD *gf, uint64_t addr) { struct stat buf; int ret; @@ -410,8 +409,8 @@ static void host_fstat(CPUState *cs, gdb_syscall_comple= te_cb complete, } =20 static void host_stat(CPUState *cs, gdb_syscall_complete_cb complete, - target_ulong fname, target_ulong fname_len, - target_ulong addr) + uint64_t fname, uint64_t fname_len, + uint64_t addr) { CPUArchState *env G_GNUC_UNUSED =3D cpu_env(cs); struct stat buf; @@ -440,7 +439,7 @@ static void host_stat(CPUState *cs, gdb_syscall_complet= e_cb complete, } =20 static void host_remove(CPUState *cs, gdb_syscall_complete_cb complete, - target_ulong fname, target_ulong fname_len) + uint64_t fname, uint64_t fname_len) { CPUArchState *env G_GNUC_UNUSED =3D cpu_env(cs); char *p; @@ -458,8 +457,8 @@ static void host_remove(CPUState *cs, gdb_syscall_compl= ete_cb complete, } =20 static void host_rename(CPUState *cs, gdb_syscall_complete_cb complete, - target_ulong oname, target_ulong oname_len, - target_ulong nname, target_ulong nname_len) + uint64_t oname, uint64_t oname_len, + uint64_t nname, uint64_t nname_len) { CPUArchState *env G_GNUC_UNUSED =3D cpu_env(cs); char *ostr, *nstr; @@ -484,7 +483,7 @@ static void host_rename(CPUState *cs, gdb_syscall_compl= ete_cb complete, } =20 static void host_system(CPUState *cs, gdb_syscall_complete_cb complete, - target_ulong cmd, target_ulong cmd_len) + uint64_t cmd, uint64_t cmd_len) { CPUArchState *env G_GNUC_UNUSED =3D cpu_env(cs); char *p; @@ -502,7 +501,7 @@ static void host_system(CPUState *cs, gdb_syscall_compl= ete_cb complete, } =20 static void host_gettimeofday(CPUState *cs, gdb_syscall_complete_cb comple= te, - target_ulong tv_addr, target_ulong tz_addr) + uint64_t tv_addr, uint64_t tz_addr) { CPUArchState *env G_GNUC_UNUSED =3D cpu_env(cs); struct gdb_timeval *p; @@ -547,10 +546,10 @@ static void host_poll_one(CPUState *cs, gdb_syscall_c= omplete_cb complete, */ =20 static void staticfile_read(CPUState *cs, gdb_syscall_complete_cb complete, - GuestFD *gf, target_ulong buf, target_ulong le= n) + GuestFD *gf, uint64_t buf, uint64_t len) { CPUArchState *env G_GNUC_UNUSED =3D cpu_env(cs); - target_ulong rest =3D gf->staticfile.len - gf->staticfile.off; + uint64_t rest =3D gf->staticfile.len - gf->staticfile.off; void *ptr; =20 if (len > rest) { @@ -605,7 +604,7 @@ static void staticfile_flen(CPUState *cs, gdb_syscall_c= omplete_cb complete, */ =20 static void console_read(CPUState *cs, gdb_syscall_complete_cb complete, - GuestFD *gf, target_ulong buf, target_ulong len) + GuestFD *gf, uint64_t buf, uint64_t len) { CPUArchState *env G_GNUC_UNUSED =3D cpu_env(cs); char *ptr; @@ -622,7 +621,7 @@ static void console_read(CPUState *cs, gdb_syscall_comp= lete_cb complete, } =20 static void console_write(CPUState *cs, gdb_syscall_complete_cb complete, - GuestFD *gf, target_ulong buf, target_ulong len) + GuestFD *gf, uint64_t buf, uint64_t len) { CPUArchState *env G_GNUC_UNUSED =3D cpu_env(cs); char *ptr =3D lock_user(VERIFY_READ, buf, len, 1); @@ -638,7 +637,7 @@ static void console_write(CPUState *cs, gdb_syscall_com= plete_cb complete, } =20 static void console_fstat(CPUState *cs, gdb_syscall_complete_cb complete, - GuestFD *gf, target_ulong addr) + GuestFD *gf, uint64_t addr) { static const struct stat tty_buf =3D { .st_mode =3D 020666, /* S_IFCHR, ugo+rw */ @@ -683,7 +682,7 @@ static void console_poll_one(CPUState *cs, gdb_syscall_= complete_cb complete, */ =20 void semihost_sys_open(CPUState *cs, gdb_syscall_complete_cb complete, - target_ulong fname, target_ulong fname_len, + vaddr fname, uint64_t fname_len, int gdb_flags, int mode) { if (use_gdb_syscalls()) { @@ -719,7 +718,7 @@ void semihost_sys_close(CPUState *cs, gdb_syscall_compl= ete_cb complete, int fd) } =20 void semihost_sys_read_gf(CPUState *cs, gdb_syscall_complete_cb complete, - GuestFD *gf, target_ulong buf, target_ulong len) + GuestFD *gf, vaddr buf, uint64_t len) { /* * Bound length for 64-bit guests on 32-bit hosts, not overflowing ssi= ze_t. @@ -748,7 +747,7 @@ void semihost_sys_read_gf(CPUState *cs, gdb_syscall_com= plete_cb complete, } =20 void semihost_sys_read(CPUState *cs, gdb_syscall_complete_cb complete, - int fd, target_ulong buf, target_ulong len) + int fd, vaddr buf, uint64_t len) { GuestFD *gf =3D get_guestfd(fd); =20 @@ -760,7 +759,7 @@ void semihost_sys_read(CPUState *cs, gdb_syscall_comple= te_cb complete, } =20 void semihost_sys_write_gf(CPUState *cs, gdb_syscall_complete_cb complete, - GuestFD *gf, target_ulong buf, target_ulong len) + GuestFD *gf, vaddr buf, uint64_t len) { /* * Bound length for 64-bit guests on 32-bit hosts, not overflowing ssi= ze_t. @@ -790,7 +789,7 @@ void semihost_sys_write_gf(CPUState *cs, gdb_syscall_co= mplete_cb complete, } =20 void semihost_sys_write(CPUState *cs, gdb_syscall_complete_cb complete, - int fd, target_ulong buf, target_ulong len) + int fd, vaddr buf, uint64_t len) { GuestFD *gf =3D get_guestfd(fd); =20 @@ -856,7 +855,7 @@ void semihost_sys_isatty(CPUState *cs, gdb_syscall_comp= lete_cb complete, int fd) =20 void semihost_sys_flen(CPUState *cs, gdb_syscall_complete_cb fstat_cb, gdb_syscall_complete_cb flen_cb, int fd, - target_ulong fstat_addr) + vaddr fstat_addr) { GuestFD *gf =3D get_guestfd(fd); =20 @@ -881,7 +880,7 @@ void semihost_sys_flen(CPUState *cs, gdb_syscall_comple= te_cb fstat_cb, } =20 void semihost_sys_fstat(CPUState *cs, gdb_syscall_complete_cb complete, - int fd, target_ulong addr) + int fd, vaddr addr) { GuestFD *gf =3D get_guestfd(fd); =20 @@ -906,8 +905,8 @@ void semihost_sys_fstat(CPUState *cs, gdb_syscall_compl= ete_cb complete, } =20 void semihost_sys_stat(CPUState *cs, gdb_syscall_complete_cb complete, - target_ulong fname, target_ulong fname_len, - target_ulong addr) + vaddr fname, uint64_t fname_len, + vaddr addr) { if (use_gdb_syscalls()) { gdb_stat(cs, complete, fname, fname_len, addr); @@ -917,7 +916,7 @@ void semihost_sys_stat(CPUState *cs, gdb_syscall_comple= te_cb complete, } =20 void semihost_sys_remove(CPUState *cs, gdb_syscall_complete_cb complete, - target_ulong fname, target_ulong fname_len) + vaddr fname, uint64_t fname_len) { if (use_gdb_syscalls()) { gdb_remove(cs, complete, fname, fname_len); @@ -927,8 +926,8 @@ void semihost_sys_remove(CPUState *cs, gdb_syscall_comp= lete_cb complete, } =20 void semihost_sys_rename(CPUState *cs, gdb_syscall_complete_cb complete, - target_ulong oname, target_ulong oname_len, - target_ulong nname, target_ulong nname_len) + vaddr oname, uint64_t oname_len, + vaddr nname, uint64_t nname_len) { if (use_gdb_syscalls()) { gdb_rename(cs, complete, oname, oname_len, nname, nname_len); @@ -938,7 +937,7 @@ void semihost_sys_rename(CPUState *cs, gdb_syscall_comp= lete_cb complete, } =20 void semihost_sys_system(CPUState *cs, gdb_syscall_complete_cb complete, - target_ulong cmd, target_ulong cmd_len) + vaddr cmd, uint64_t cmd_len) { if (use_gdb_syscalls()) { gdb_system(cs, complete, cmd, cmd_len); @@ -948,7 +947,7 @@ void semihost_sys_system(CPUState *cs, gdb_syscall_comp= lete_cb complete, } =20 void semihost_sys_gettimeofday(CPUState *cs, gdb_syscall_complete_cb compl= ete, - target_ulong tv_addr, target_ulong tz_addr) + vaddr tv_addr, vaddr tz_addr) { if (use_gdb_syscalls()) { gdb_gettimeofday(cs, complete, tv_addr, tz_addr); diff --git a/semihosting/meson.build b/semihosting/meson.build index b1ab2506c6e..77200a7f27b 100644 --- a/semihosting/meson.build +++ b/semihosting/meson.build @@ -1,6 +1,5 @@ specific_ss.add(when: 'CONFIG_SEMIHOSTING', if_true: files( 'guestfd.c', - 'syscalls.c', )) =20 common_ss.add(when: 'CONFIG_SEMIHOSTING', if_false: files('stubs-all.c')) @@ -9,9 +8,12 @@ system_ss.add(when: 'CONFIG_SEMIHOSTING', if_true: files( 'config.c', 'console.c', 'uaccess.c', + 'syscalls.c', ), if_false: files( 'stubs-system.c', )) =20 +specific_ss.add(when: ['CONFIG_SEMIHOSTING', 'CONFIG_USER_ONLY'], + if_true: files('syscalls.c')) specific_ss.add(when: ['CONFIG_ARM_COMPATIBLE_SEMIHOSTING'], if_true: files('arm-compat-semi.c')) --=20 2.47.2 From nobody Thu Oct 16 02:16:36 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1754335612; cv=none; d=zohomail.com; s=zohoarc; b=WqmmNcZ8r6xGwlVizDyM++4MT8hxO26bvk/mZLdebumv+NDWeo4ita6p2lso9/gxaCvNua4FtEgVkJ0yhFTKYZRZwdXlNixwgpBESp18UXRQ5sY8ycL/Z+XUGoPsl4xeUuvBtsb0eteqrhxVew6tf5v0fWM2HIfVe3LRWo/8Yek= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1754335612; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=uf+KywRMYJZdnc5WkH+t5Y1kT4Zel1cp7zy1z3bbj/0=; b=O2Pecv5M9pGyxEovjNpciaEvmncSzfMeDFMpxzbcCXlxMO9m56MLF71Q+pw0g2BXUV4whNloTAImQgrXReCZSt4fjtXbSpyPGvtDRIIHL5YUPb14vulWYf+5dtVw0rWo4Df6fwF1GGn116wtTM2bBOjv88Gz0EcEZ3LbDh6EWG8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1754335612300870.527007671472; Mon, 4 Aug 2025 12:26:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uj0lh-0005sE-Ji; Mon, 04 Aug 2025 15:22:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uj06O-00014j-K7 for qemu-devel@nongnu.org; Mon, 04 Aug 2025 14:40:05 -0400 Received: from mail-pf1-x429.google.com ([2607:f8b0:4864:20::429]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uj06J-0000tR-Ve for qemu-devel@nongnu.org; Mon, 04 Aug 2025 14:40:02 -0400 Received: by mail-pf1-x429.google.com with SMTP id d2e1a72fcca58-76bd6e84eddso4565862b3a.0 for ; Mon, 04 Aug 2025 11:39:59 -0700 (PDT) Received: from pc.. ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-76bd78875cesm9940171b3a.15.2025.08.04.11.39.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Aug 2025 11:39:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1754332798; x=1754937598; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=uf+KywRMYJZdnc5WkH+t5Y1kT4Zel1cp7zy1z3bbj/0=; b=p9hbM564YSpB+SmesexRjXMWN6kdknN2zPtQ4vhbzTh+3aDtFRkg9y8K54e6J2GYDX 0gmdHkI2nbD45sBBLy3VoijEmCE1TvP3xOFYFZlZURSZZbR4PFGBMUjrZa0EMC7je5vO T+rv+7T3zG63MW20MGqXuHYu+6FwWEuzIFyFJmhI/OearlGfliaTupsB+8UXa0U8/cTW JjRAinWAMEZYIH+NCkWSNRhTC0dieYyOP6QMHE77ZL39sBVsE8jiRy6+2Q4Aqm5OFqa+ vaIe2fZ53aA+Cb9bsid0Q5ZYW+K2giOQASrzgbwsuFbSq54XT2ivcvAuXmhLnKen4AxD 8/nw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754332798; x=1754937598; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=uf+KywRMYJZdnc5WkH+t5Y1kT4Zel1cp7zy1z3bbj/0=; b=ATEFP+cxp76dAYohVjVVB7u95Db7/xXWHzEeLGZzHjZn5lnFhGPpxXEdNBzpVCIwbk G/Bawo3+6nOS1HbDvSQXV4b2SmPrl3DhVKq60y703yqUWioWB7Uvo54sYDNofpRnvA6N 1txexoni5X9IaY+CzabX8XVomc5ihQTOQj8/q+mcyEQTSMmU3qdtyzS4X+gM8lKqHcmq qoYGm+1U9e+bZDEauqCP3TDZD68S67pxzTtFafon600xIGrUAoYwzGQNTBYOMo1hDgPl BejjHSdyF780DYvSXoiQiMOfuc6YyvO96jnNzSmJgn32ucLUGHkrGLeXJ8TkEHeyDVr6 iNvw== X-Gm-Message-State: AOJu0YyAarcGaEEhuMaWSDG0T+vXxE+3N2ylz8fsPvAP7/oIlyJmIKc+ bz0clgH65QetD0FggjSnzU/l0SwG/txQDQ6HJ+XqNVnHwo9jywf04X5YMlwMpOoOLke7OYwxdRf YEUMa X-Gm-Gg: ASbGncshfJ0jwhcRQ81GAAwwdqqWKc/0BUWS5MaB+z4y0IEdbIv/gmk2ju4iQjrPIeu aC8AzX9YDc/OlxJCHbMacpnuScpCndshhZoQUsxDqpdW+qGjjetnxRCyhj57J+lq7lGHizfkUCd toiln1lFvXFEeyR6DFO9I2YbZKko8c7KETmiB2oioDqksUztWkVzQ0Gp/a/lHpRtqe6Mr1exAIj qeKuKXIn1FhSB5utQoUqru5yCLaEdDbNpRrDHEIpQRCUfm/VzoLJTM6hcF+Y0P9Kv2Kpki5g7f1 Cid1/FZu/n5dhOuW1Kr+9ISC3+JnFnmBXdBz4lxhCa6Cla+vpQjFYuu7szvFQjrca6qwKhTOhh8 aZ9uiPCh/dM9y754viI/TIg== X-Google-Smtp-Source: AGHT+IGNfj3RTshjkSOzA9Y591duixFQuiVaiijySFBMLA+6o9mCXyPC4glluBYWiH4JYDEA3GUgdQ== X-Received: by 2002:a05:6a20:b598:b0:23f:fd87:427c with SMTP id adf61e73a8af0-23ffd875051mr9430428637.18.1754332798459; Mon, 04 Aug 2025 11:39:58 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, philmd@linaro.org, Weiwei Li , Palmer Dabbelt , richard.henderson@linaro.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Peter Maydell , Liu Zhiwei , qemu-arm@nongnu.org, Alistair Francis , Daniel Henrique Barboza , Pierrick Bouvier Subject: [PATCH v3 02/12] semihosting/syscalls: replace uint64_t with vaddr where appropriate Date: Mon, 4 Aug 2025 11:39:40 -0700 Message-ID: <20250804183950.3147154-3-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250804183950.3147154-1-pierrick.bouvier@linaro.org> References: <20250804183950.3147154-1-pierrick.bouvier@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::429; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pf1-x429.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1754335613899116600 Content-Type: text/plain; charset="utf-8" Reviewed-by: Richard Henderson Signed-off-by: Pierrick Bouvier --- semihosting/syscalls.c | 78 +++++++++++++++++++++--------------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/semihosting/syscalls.c b/semihosting/syscalls.c index f072d919193..20f155f869a 100644 --- a/semihosting/syscalls.c +++ b/semihosting/syscalls.c @@ -22,7 +22,7 @@ /* * Validate or compute the length of the string (including terminator). */ -static int validate_strlen(CPUState *cs, uint64_t str, uint64_t tlen) +static int validate_strlen(CPUState *cs, vaddr str, uint64_t tlen) { CPUArchState *env G_GNUC_UNUSED =3D cpu_env(cs); char c; @@ -51,7 +51,7 @@ static int validate_strlen(CPUState *cs, uint64_t str, ui= nt64_t tlen) } =20 static int validate_lock_user_string(char **pstr, CPUState *cs, - uint64_t tstr, uint64_t tlen) + vaddr tstr, uint64_t tlen) { int ret =3D validate_strlen(cs, tstr, tlen); CPUArchState *env G_GNUC_UNUSED =3D cpu_env(cs); @@ -71,7 +71,7 @@ static int validate_lock_user_string(char **pstr, CPUStat= e *cs, * big-endian. Until we do something with gdb, also produce the * same big-endian result from the host. */ -static int copy_stat_to_user(CPUState *cs, uint64_t addr, +static int copy_stat_to_user(CPUState *cs, vaddr addr, const struct stat *s) { CPUArchState *env G_GNUC_UNUSED =3D cpu_env(cs); @@ -128,7 +128,7 @@ static void gdb_open_cb(CPUState *cs, uint64_t ret, int= err) } =20 static void gdb_open(CPUState *cs, gdb_syscall_complete_cb complete, - uint64_t fname, uint64_t fname_len, + vaddr fname, uint64_t fname_len, int gdb_flags, int mode) { int len =3D validate_strlen(cs, fname, fname_len); @@ -139,7 +139,7 @@ static void gdb_open(CPUState *cs, gdb_syscall_complete= _cb complete, =20 gdb_open_complete =3D complete; gdb_do_syscall(gdb_open_cb, "open,%s,%x,%x", - (uint64_t)fname, (uint32_t)len, + (vaddr)fname, (uint32_t)len, (uint32_t)gdb_flags, (uint32_t)mode); } =20 @@ -150,17 +150,17 @@ static void gdb_close(CPUState *cs, gdb_syscall_compl= ete_cb complete, } =20 static void gdb_read(CPUState *cs, gdb_syscall_complete_cb complete, - GuestFD *gf, uint64_t buf, uint64_t len) + GuestFD *gf, vaddr buf, uint64_t len) { gdb_do_syscall(complete, "read,%x,%lx,%lx", - (uint32_t)gf->hostfd, (uint64_t)buf, (uint64_t)len); + (uint32_t)gf->hostfd, (vaddr)buf, (uint64_t)len); } =20 static void gdb_write(CPUState *cs, gdb_syscall_complete_cb complete, - GuestFD *gf, uint64_t buf, uint64_t len) + GuestFD *gf, vaddr buf, uint64_t len) { gdb_do_syscall(complete, "write,%x,%lx,%lx", - (uint32_t)gf->hostfd, (uint64_t)buf, (uint64_t)len); + (uint32_t)gf->hostfd, (vaddr)buf, (uint64_t)len); } =20 static void gdb_lseek(CPUState *cs, gdb_syscall_complete_cb complete, @@ -177,15 +177,15 @@ static void gdb_isatty(CPUState *cs, gdb_syscall_comp= lete_cb complete, } =20 static void gdb_fstat(CPUState *cs, gdb_syscall_complete_cb complete, - GuestFD *gf, uint64_t addr) + GuestFD *gf, vaddr addr) { gdb_do_syscall(complete, "fstat,%x,%lx", - (uint32_t)gf->hostfd, (uint64_t)addr); + (uint32_t)gf->hostfd, (vaddr)addr); } =20 static void gdb_stat(CPUState *cs, gdb_syscall_complete_cb complete, - uint64_t fname, uint64_t fname_len, - uint64_t addr) + vaddr fname, uint64_t fname_len, + vaddr addr) { int len =3D validate_strlen(cs, fname, fname_len); if (len < 0) { @@ -194,11 +194,11 @@ static void gdb_stat(CPUState *cs, gdb_syscall_comple= te_cb complete, } =20 gdb_do_syscall(complete, "stat,%s,%lx", - (uint64_t)fname, (uint32_t)len, (uint64_t)addr); + (vaddr)fname, (uint32_t)len, (vaddr)addr); } =20 static void gdb_remove(CPUState *cs, gdb_syscall_complete_cb complete, - uint64_t fname, uint64_t fname_len) + vaddr fname, uint64_t fname_len) { int len =3D validate_strlen(cs, fname, fname_len); if (len < 0) { @@ -206,12 +206,12 @@ static void gdb_remove(CPUState *cs, gdb_syscall_comp= lete_cb complete, return; } =20 - gdb_do_syscall(complete, "unlink,%s", (uint64_t)fname, (uint32_t)len); + gdb_do_syscall(complete, "unlink,%s", (vaddr)fname, (uint32_t)len); } =20 static void gdb_rename(CPUState *cs, gdb_syscall_complete_cb complete, - uint64_t oname, uint64_t oname_len, - uint64_t nname, uint64_t nname_len) + vaddr oname, uint64_t oname_len, + vaddr nname, uint64_t nname_len) { int olen, nlen; =20 @@ -227,12 +227,12 @@ static void gdb_rename(CPUState *cs, gdb_syscall_comp= lete_cb complete, } =20 gdb_do_syscall(complete, "rename,%s,%s", - (uint64_t)oname, (uint32_t)olen, - (uint64_t)nname, (uint32_t)nlen); + (vaddr)oname, (uint32_t)olen, + (vaddr)nname, (uint32_t)nlen); } =20 static void gdb_system(CPUState *cs, gdb_syscall_complete_cb complete, - uint64_t cmd, uint64_t cmd_len) + vaddr cmd, uint64_t cmd_len) { int len =3D validate_strlen(cs, cmd, cmd_len); if (len < 0) { @@ -240,14 +240,14 @@ static void gdb_system(CPUState *cs, gdb_syscall_comp= lete_cb complete, return; } =20 - gdb_do_syscall(complete, "system,%s", (uint64_t)cmd, (uint32_t)len); + gdb_do_syscall(complete, "system,%s", (vaddr)cmd, (uint32_t)len); } =20 static void gdb_gettimeofday(CPUState *cs, gdb_syscall_complete_cb complet= e, - uint64_t tv_addr, uint64_t tz_addr) + vaddr tv_addr, vaddr tz_addr) { gdb_do_syscall(complete, "gettimeofday,%lx,%lx", - (uint64_t)tv_addr, (uint64_t)tz_addr); + (vaddr)tv_addr, (vaddr)tz_addr); } =20 /* @@ -255,7 +255,7 @@ static void gdb_gettimeofday(CPUState *cs, gdb_syscall_= complete_cb complete, */ =20 static void host_open(CPUState *cs, gdb_syscall_complete_cb complete, - uint64_t fname, uint64_t fname_len, + vaddr fname, uint64_t fname_len, int gdb_flags, int mode) { CPUArchState *env G_GNUC_UNUSED =3D cpu_env(cs); @@ -315,7 +315,7 @@ static void host_close(CPUState *cs, gdb_syscall_comple= te_cb complete, } =20 static void host_read(CPUState *cs, gdb_syscall_complete_cb complete, - GuestFD *gf, uint64_t buf, uint64_t len) + GuestFD *gf, vaddr buf, uint64_t len) { CPUArchState *env G_GNUC_UNUSED =3D cpu_env(cs); void *ptr =3D lock_user(VERIFY_WRITE, buf, len, 0); @@ -336,7 +336,7 @@ static void host_read(CPUState *cs, gdb_syscall_complet= e_cb complete, } =20 static void host_write(CPUState *cs, gdb_syscall_complete_cb complete, - GuestFD *gf, uint64_t buf, uint64_t len) + GuestFD *gf, vaddr buf, uint64_t len) { CPUArchState *env G_GNUC_UNUSED =3D cpu_env(cs); void *ptr =3D lock_user(VERIFY_READ, buf, len, 1); @@ -394,7 +394,7 @@ static void host_flen(CPUState *cs, gdb_syscall_complet= e_cb complete, } =20 static void host_fstat(CPUState *cs, gdb_syscall_complete_cb complete, - GuestFD *gf, uint64_t addr) + GuestFD *gf, vaddr addr) { struct stat buf; int ret; @@ -409,8 +409,8 @@ static void host_fstat(CPUState *cs, gdb_syscall_comple= te_cb complete, } =20 static void host_stat(CPUState *cs, gdb_syscall_complete_cb complete, - uint64_t fname, uint64_t fname_len, - uint64_t addr) + vaddr fname, uint64_t fname_len, + vaddr addr) { CPUArchState *env G_GNUC_UNUSED =3D cpu_env(cs); struct stat buf; @@ -439,7 +439,7 @@ static void host_stat(CPUState *cs, gdb_syscall_complet= e_cb complete, } =20 static void host_remove(CPUState *cs, gdb_syscall_complete_cb complete, - uint64_t fname, uint64_t fname_len) + vaddr fname, uint64_t fname_len) { CPUArchState *env G_GNUC_UNUSED =3D cpu_env(cs); char *p; @@ -457,8 +457,8 @@ static void host_remove(CPUState *cs, gdb_syscall_compl= ete_cb complete, } =20 static void host_rename(CPUState *cs, gdb_syscall_complete_cb complete, - uint64_t oname, uint64_t oname_len, - uint64_t nname, uint64_t nname_len) + vaddr oname, uint64_t oname_len, + vaddr nname, uint64_t nname_len) { CPUArchState *env G_GNUC_UNUSED =3D cpu_env(cs); char *ostr, *nstr; @@ -483,7 +483,7 @@ static void host_rename(CPUState *cs, gdb_syscall_compl= ete_cb complete, } =20 static void host_system(CPUState *cs, gdb_syscall_complete_cb complete, - uint64_t cmd, uint64_t cmd_len) + vaddr cmd, uint64_t cmd_len) { CPUArchState *env G_GNUC_UNUSED =3D cpu_env(cs); char *p; @@ -501,7 +501,7 @@ static void host_system(CPUState *cs, gdb_syscall_compl= ete_cb complete, } =20 static void host_gettimeofday(CPUState *cs, gdb_syscall_complete_cb comple= te, - uint64_t tv_addr, uint64_t tz_addr) + vaddr tv_addr, vaddr tz_addr) { CPUArchState *env G_GNUC_UNUSED =3D cpu_env(cs); struct gdb_timeval *p; @@ -546,7 +546,7 @@ static void host_poll_one(CPUState *cs, gdb_syscall_com= plete_cb complete, */ =20 static void staticfile_read(CPUState *cs, gdb_syscall_complete_cb complete, - GuestFD *gf, uint64_t buf, uint64_t len) + GuestFD *gf, vaddr buf, uint64_t len) { CPUArchState *env G_GNUC_UNUSED =3D cpu_env(cs); uint64_t rest =3D gf->staticfile.len - gf->staticfile.off; @@ -604,7 +604,7 @@ static void staticfile_flen(CPUState *cs, gdb_syscall_c= omplete_cb complete, */ =20 static void console_read(CPUState *cs, gdb_syscall_complete_cb complete, - GuestFD *gf, uint64_t buf, uint64_t len) + GuestFD *gf, vaddr buf, uint64_t len) { CPUArchState *env G_GNUC_UNUSED =3D cpu_env(cs); char *ptr; @@ -621,7 +621,7 @@ static void console_read(CPUState *cs, gdb_syscall_comp= lete_cb complete, } =20 static void console_write(CPUState *cs, gdb_syscall_complete_cb complete, - GuestFD *gf, uint64_t buf, uint64_t len) + GuestFD *gf, vaddr buf, uint64_t len) { CPUArchState *env G_GNUC_UNUSED =3D cpu_env(cs); char *ptr =3D lock_user(VERIFY_READ, buf, len, 1); @@ -637,7 +637,7 @@ static void console_write(CPUState *cs, gdb_syscall_com= plete_cb complete, } =20 static void console_fstat(CPUState *cs, gdb_syscall_complete_cb complete, - GuestFD *gf, uint64_t addr) + GuestFD *gf, vaddr addr) { static const struct stat tty_buf =3D { .st_mode =3D 020666, /* S_IFCHR, ugo+rw */ --=20 2.47.2 From nobody Thu Oct 16 02:16:36 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1754335704; cv=none; d=zohomail.com; s=zohoarc; b=R2w6geQwVBTOu120BrAoa5E2dSIZpdbK5MKAsuUuDy7hZr8sc+gW2rjym8Rq0wqz/zO9aMjhIO0PdEl/J0eHYqfeaSTF9neBJtGx3Q7ysW323zabd0iMXhbdt7+EeMnnYzNRkCGL+9a7b9fE0LkArCjo5qNLpiBQQWOs/fciJ6A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1754335704; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=M9U0/wZZ+X7jDvuQEIrxHKhigwEtRJDRddgS55lpDeU=; b=QeYS37qpB1KPJ1YY/BodsVA5dGOBaJ82IxvGdn5Uav8etamSOr15TuL5Ca9J8iynFE6U5b2LxL4P4we88X7ppOXKEczPd8V4qraM++JZubBcAi58OAlNKIXTUTqAqSKtFP11bKwGV4AjU4ZwtmtlhF1+jP990Tob4JEEZhHUWv8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1754335704163181.70218160181741; Mon, 4 Aug 2025 12:28:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uj0m7-0006Lt-Py; Mon, 04 Aug 2025 15:23:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uj06R-00018U-2O for qemu-devel@nongnu.org; Mon, 04 Aug 2025 14:40:09 -0400 Received: from mail-pf1-x431.google.com ([2607:f8b0:4864:20::431]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uj06M-0000v4-2U for qemu-devel@nongnu.org; Mon, 04 Aug 2025 14:40:06 -0400 Received: by mail-pf1-x431.google.com with SMTP id d2e1a72fcca58-76bdc73f363so2879056b3a.3 for ; Mon, 04 Aug 2025 11:40:00 -0700 (PDT) Received: from pc.. ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-76bd78875cesm9940171b3a.15.2025.08.04.11.39.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Aug 2025 11:39:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1754332799; x=1754937599; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=M9U0/wZZ+X7jDvuQEIrxHKhigwEtRJDRddgS55lpDeU=; b=v83gKcA1IO85y5HsdNA4rzZJ+jiKm2/AWkUq/cqjoxjUxdd6GtB6+oVK5GlO8UbDcz pPHVFxMmR5ZDIaJwN2YavOX8f8tozy+XvYQyLH31UeTAyuN0eehlOyM7A3uCFY9bU+GE DMtoKMKjDsSJz44E+OJMwSMPA5uQCM4GlfClbxzSU/yOt/6ffkS4g+RZV9NgYXMUCLpe EWGtI3s8y7gjoUvmVK6Q/XKNA6Zn6/0SqwbRWFHXXtJmHXr9b0Vd9hq1v1fMsEwxAfL6 WGrsJuxamGfEpGyGcFEzJ6Jzw7YWfEK1kwijRhMvskSRr0bnuv8G8pFFbCs8PvBDL6pj w53w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754332799; x=1754937599; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=M9U0/wZZ+X7jDvuQEIrxHKhigwEtRJDRddgS55lpDeU=; b=OusMg4MhoIrFOGsN4tUYqmq1T0MwfC+3y/nX2M6xXhuAGIkI5f+ZQlfMJP+RDM1CDQ 7hwqBFYNGgLBYecsjpAk8eZwFFzX0KJJw1IwiqU1MV0R9rd0/vK/EGxd+u4TxmSe05wL pa79TqlcvwJKIfKcOWYqNyRphMWC0uORM2oJJz37ALd3L/UsqpEfTw8qIh/wryBzNutO bVvs/xfImVBJkEOPLnTBxB0j5f2aNUZOp2TNSs7zHVFK7wMS2Bz/iIH/BCdGdi5EX/xu i0rab40LuTF6uZGQGABw/P7C1Ai43AWAXqerj9JQz29wIRAKb/M5p4dZndKvXbuWz4pQ +XAg== X-Gm-Message-State: AOJu0Yz9UyC4uFvUg/atNEjnkXMXaMLJZLzhufnsUIQN8z6RayknkdsS S5uugWYgi6I0wsAp4Af8b8tWwcHkQoarcmKQ10m6s7FbUYmi9uxglJgWa9XBsU0VuerM4o1zNxZ wSJBl X-Gm-Gg: ASbGncvM+MT7PW5Bd5/65gfLWSrDP8JJkbzpYCQvTBkMkzz3iL0gAoPudvnPooVU2wF 0mJnLnNJhfI9kfxk8NOZ0gfQk9zp+u/3EiplRZuCDx983wYBxb2AiOiqMclmEZn8J7WbtEl0Vau pqCNQpIyCEzkO9i0Fjw945aMkb0NrzphHhmVnmd6vNSg9LxJGnPUlQGFm+4DDKItJqV3Z1sokpv K2nCsOBzrDiUpqeALe86UcbifQouD58sgXOveOPcWQvenG6L8LxbpY8zmwNBzdtGGIVs5VLW/iT tV/E+Z5RWiCH7eLQfMBItk6IupLgSgjUGux17c8H9nvDNm4pG8yajn+S3p1Aw7rexP/+grQY1mU lC0/qkOMiQgZ9LqtxuZsecA== X-Google-Smtp-Source: AGHT+IGXv/toE0slkkXu0tzxMxIDZx1hCC4UlcjLD+Xw8v5mt+ojSlfeQMHFcqGK3tMy6M7PAimzOg== X-Received: by 2002:a05:6a00:4c97:b0:76b:f01c:ff08 with SMTP id d2e1a72fcca58-76bf01d0125mr11318107b3a.2.1754332799444; Mon, 04 Aug 2025 11:39:59 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, philmd@linaro.org, Weiwei Li , Palmer Dabbelt , richard.henderson@linaro.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Peter Maydell , Liu Zhiwei , qemu-arm@nongnu.org, Alistair Francis , Daniel Henrique Barboza , Pierrick Bouvier Subject: [PATCH v3 03/12] semihosting/guestfd: compile once for system/user Date: Mon, 4 Aug 2025 11:39:41 -0700 Message-ID: <20250804183950.3147154-4-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250804183950.3147154-1-pierrick.bouvier@linaro.org> References: <20250804183950.3147154-1-pierrick.bouvier@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::431; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pf1-x431.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1754335704943116600 Content-Type: text/plain; charset="utf-8" We move relevant code to semihosting/arm-compat-semi.c, and add functions to query CONFIG_ARM_COMPATIBLE_SEMIHOSTING at runtime. Reviewed-by: Richard Henderson Signed-off-by: Pierrick Bouvier --- include/semihosting/guestfd.h | 7 ------- include/semihosting/semihost.h | 2 ++ semihosting/arm-compat-semi-stub.c | 19 +++++++++++++++++++ semihosting/arm-compat-semi.c | 26 ++++++++++++++++++++++++++ semihosting/guestfd.c | 26 +++++--------------------- semihosting/meson.build | 11 ++++++----- 6 files changed, 58 insertions(+), 33 deletions(-) create mode 100644 semihosting/arm-compat-semi-stub.c diff --git a/include/semihosting/guestfd.h b/include/semihosting/guestfd.h index 3d426fedab3..a7ea1041ea0 100644 --- a/include/semihosting/guestfd.h +++ b/include/semihosting/guestfd.h @@ -35,13 +35,6 @@ typedef struct GuestFD { }; } GuestFD; =20 -/* - * For ARM semihosting, we have a separate structure for routing - * data for the console which is outside the guest fd address space. - */ -extern GuestFD console_in_gf; -extern GuestFD console_out_gf; - /** * alloc_guestfd: * diff --git a/include/semihosting/semihost.h b/include/semihosting/semihost.h index b03e6375787..231dc890395 100644 --- a/include/semihosting/semihost.h +++ b/include/semihosting/semihost.h @@ -33,6 +33,8 @@ typedef enum SemihostingTarget { * Return true if guest code is allowed to make semihosting calls. */ bool semihosting_enabled(bool is_user); +bool semihosting_arm_compatible(void); +void semihosting_arm_compatible_init(void); =20 SemihostingTarget semihosting_get_target(void); const char *semihosting_get_arg(int i); diff --git a/semihosting/arm-compat-semi-stub.c b/semihosting/arm-compat-se= mi-stub.c new file mode 100644 index 00000000000..bfa3681e267 --- /dev/null +++ b/semihosting/arm-compat-semi-stub.c @@ -0,0 +1,19 @@ +/* + * Stubs for platforms different from ARM + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "semihosting/semihost.h" +#include + +bool semihosting_arm_compatible(void) +{ + return false; +} + +void semihosting_arm_compatible_init(void) +{ + g_assert_not_reached(); +} diff --git a/semihosting/arm-compat-semi.c b/semihosting/arm-compat-semi.c index 40dc778529d..3f653c6e7a9 100644 --- a/semihosting/arm-compat-semi.c +++ b/semihosting/arm-compat-semi.c @@ -101,6 +101,13 @@ static int gdb_open_modeflags[12] =3D { GDB_O_RDWR | GDB_O_CREAT | GDB_O_APPEND, }; =20 +/* + * For ARM semihosting, we have a separate structure for routing + * data for the console which is outside the guest fd address space. + */ +static GuestFD console_in_gf; +static GuestFD console_out_gf; + #ifndef CONFIG_USER_ONLY =20 /** @@ -353,6 +360,25 @@ static const uint8_t featurefile_data[] =3D { SH_EXT_EXIT_EXTENDED | SH_EXT_STDOUT_STDERR, /* Feature byte 0 */ }; =20 +bool semihosting_arm_compatible(void) +{ + return true; +} + +void semihosting_arm_compatible_init(void) +{ + /* For ARM-compat, the console is in a separate namespace. */ + if (use_gdb_syscalls()) { + console_in_gf.type =3D GuestFDGDB; + console_in_gf.hostfd =3D 0; + console_out_gf.type =3D GuestFDGDB; + console_out_gf.hostfd =3D 2; + } else { + console_in_gf.type =3D GuestFDConsole; + console_out_gf.type =3D GuestFDConsole; + } +} + /* * Do a semihosting call. * diff --git a/semihosting/guestfd.c b/semihosting/guestfd.c index d3241434c51..e8f236c690c 100644 --- a/semihosting/guestfd.c +++ b/semihosting/guestfd.c @@ -12,35 +12,20 @@ #include "gdbstub/syscalls.h" #include "semihosting/semihost.h" #include "semihosting/guestfd.h" -#ifndef CONFIG_USER_ONLY -#include CONFIG_DEVICES -#endif =20 static GArray *guestfd_array; =20 -#ifdef CONFIG_ARM_COMPATIBLE_SEMIHOSTING -GuestFD console_in_gf; -GuestFD console_out_gf; -#endif - void qemu_semihosting_guestfd_init(void) { /* New entries zero-initialized, i.e. type GuestFDUnused */ guestfd_array =3D g_array_new(FALSE, TRUE, sizeof(GuestFD)); =20 -#ifdef CONFIG_ARM_COMPATIBLE_SEMIHOSTING - /* For ARM-compat, the console is in a separate namespace. */ - if (use_gdb_syscalls()) { - console_in_gf.type =3D GuestFDGDB; - console_in_gf.hostfd =3D 0; - console_out_gf.type =3D GuestFDGDB; - console_out_gf.hostfd =3D 2; - } else { - console_in_gf.type =3D GuestFDConsole; - console_out_gf.type =3D GuestFDConsole; + if (semihosting_arm_compatible()) { + semihosting_arm_compatible_init(); + return; } -#else - /* Otherwise, the stdio file descriptors apply. */ + + /* Out of ARM, the stdio file descriptors apply. */ guestfd_array =3D g_array_set_size(guestfd_array, 3); #ifndef CONFIG_USER_ONLY if (!use_gdb_syscalls()) { @@ -54,7 +39,6 @@ void qemu_semihosting_guestfd_init(void) associate_guestfd(0, 0); associate_guestfd(1, 1); associate_guestfd(2, 2); -#endif } =20 /* diff --git a/semihosting/meson.build b/semihosting/meson.build index 77200a7f27b..bb0db323937 100644 --- a/semihosting/meson.build +++ b/semihosting/meson.build @@ -1,17 +1,18 @@ -specific_ss.add(when: 'CONFIG_SEMIHOSTING', if_true: files( - 'guestfd.c', -)) - common_ss.add(when: 'CONFIG_SEMIHOSTING', if_false: files('stubs-all.c')) -user_ss.add(when: 'CONFIG_SEMIHOSTING', if_true: files('user.c')) +user_ss.add(when: 'CONFIG_SEMIHOSTING', if_true: files( + 'user.c', + 'guestfd.c')) system_ss.add(when: 'CONFIG_SEMIHOSTING', if_true: files( 'config.c', 'console.c', + 'guestfd.c', 'uaccess.c', 'syscalls.c', ), if_false: files( 'stubs-system.c', )) +system_ss.add(when: 'CONFIG_ARM_COMPATIBLE_SEMIHOSTING', + if_false: files('arm-compat-semi-stub.c')) =20 specific_ss.add(when: ['CONFIG_SEMIHOSTING', 'CONFIG_USER_ONLY'], if_true: files('syscalls.c')) --=20 2.47.2 From nobody Thu Oct 16 02:16:36 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1754335290; cv=none; d=zohomail.com; s=zohoarc; b=doNqPw+facmWvigjJp8hZmMbrGFv/bfxp2Mg6bqRkbanQ+IC8+pAUxZuLURUxnBRVUkBhYv4M1OdnJBthtff+qQZS2JlzEtkb39YMf+43znTVJBukGSDsXNtg5pQHAG8Gbe2pzf7b44IiryAKmApeW8zQuO1IzlVhOEcbER/EnI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1754335290; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=4Q4dcWPl9MBqqc8IwHAkUcZ6ENPKqu7XF6ON8ISL2zo=; b=VOW2MfP06g+LPeJWPo4JtAugRuivbhee9abiIimZVf3jaIuTLJLkTmeAgTS/p7i8FY+GjHM/lLEDhRC813JNq1EG7Cz/ml/rvqs8ixYIGOVOk3gPLF1l7LMP8bqD9Ak5+ylrGpbKR8PUn/6h8IWVyTMK5/A1Se50OjC6o4HGvss= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1754335290404446.2454012550369; Mon, 4 Aug 2025 12:21:30 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uj0jv-0002JM-1M; Mon, 04 Aug 2025 15:20:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uj06R-00018W-5S for qemu-devel@nongnu.org; Mon, 04 Aug 2025 14:40:09 -0400 Received: from mail-pf1-x42f.google.com ([2607:f8b0:4864:20::42f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uj06M-0000va-96 for qemu-devel@nongnu.org; Mon, 04 Aug 2025 14:40:06 -0400 Received: by mail-pf1-x42f.google.com with SMTP id d2e1a72fcca58-76bc55f6612so4175596b3a.0 for ; Mon, 04 Aug 2025 11:40:01 -0700 (PDT) Received: from pc.. ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-76bd78875cesm9940171b3a.15.2025.08.04.11.39.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Aug 2025 11:40:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1754332800; x=1754937600; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=4Q4dcWPl9MBqqc8IwHAkUcZ6ENPKqu7XF6ON8ISL2zo=; b=UidgLR5DaTqqVXqBxwqy3og5YtWUwHJEv+1FtRcg/+di3jZo9hj135eJxJhHHj+p6H 9RKx7xk2s8qlVJZxJUtcDMnNKh3rP7MQzQkQV8/j0XpcmPqs723VTZ8LRn0slaj1UMQ3 x03mqW6zmnQeFBJfHEdJwS9wpna2MnbvsbHE7oVAJNjyAuKoL9tZDIeK29EO8lr46CjK K+SZ7Y5SsAMLDiFLJHnWfZozkBvy9R/ebs7c4CNMDlY3v1grfhjcdM6is8Bj3gKzYTh/ GmCsEetcqnXiCyuAem++zcMoJMJEb+GIysm7x/pJ/SsKDrThqkcOH7a6yH6cPagb+Ajr 1JHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754332800; x=1754937600; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4Q4dcWPl9MBqqc8IwHAkUcZ6ENPKqu7XF6ON8ISL2zo=; b=WmtWJO13P+BLWYB8Vld9UkOgX/DVcSTA26jMq4a5Yp/9oUGPT9YZzd6KtNLRDBU3uf tjGbCc5MtLQNw48UGDii1V8pdK+hwB+5r7C28xCo0F752pO6pEQTxJ6p3OvVo8z5/LHv vExs674ZeY4w5iYc+d8yFZweS5ifEupm+0oLdvj+4i8dvrm8XQ0x7CuUkRiWRd2mwY87 ExJTMzEJ7I1VLP/3/6EEUCRFZzhQFRC2KMsf+nR4DVnJarTpYaCZme5AZiqGlHpyx9o9 bw/HgUYL5b3zW+uMiglBqeZM7IYtgmuQci/s2YnV8AN1GeeHC8NOZdvEuG1latgXOULT 60Ag== X-Gm-Message-State: AOJu0YwSurAUP9eTDrPywz1vf3G8hus44tnZXKuBNVATWkzwznkiXI1q 1Z2mbwqaPTh4RUg4fBQXcNxxKI1Wql8u6jLj88xKTAVPe1LOkR4o5TJwQBXrRQv9bco4istIqAS pIbl2 X-Gm-Gg: ASbGncuq9PQissXfnnCqSq5vteOWIbsNRfN2CFisZN9HAeXWc7oBOesFMEZdHkmCdcF VKuTF7DFwDmfJWxlEQOHtiB9etwgc/25T/+28Y0M4BmLApCAMVbpOZR2gqXOMiWz8XVfdDn4/Nv g/5ZHHXHW949lioVX8ChYb1w1xS0Wtmes2rUHc2RbNbIP3l0IgtxYmND6X24sHUnaxnCQ7E8LO8 m9Yo7jpvseFEU+ooNRxa0xrX9FY3VuvJIqvc08DMBgz9YHqsaYP4aZ61GlblafJroUwTk+I5Tv2 BEKtR8bPaLG79y8yt4gaHxpOFgQJFbgRUuXrdouaVrdLp4c5xeg15YehRGi8YwrdCElvJkTkDon F5z6dI0ZpKTZW9yFuYujDqQ== X-Google-Smtp-Source: AGHT+IFhIzYzyLyq54TrG5CiHKFw1ZxpDWNpDOgO8eEtf99d5440BU3vSVekKo+UB3Dhk/l6LOBA6g== X-Received: by 2002:a05:6a00:3909:b0:748:a0b9:f873 with SMTP id d2e1a72fcca58-76c1939300dmr676548b3a.9.1754332800423; Mon, 04 Aug 2025 11:40:00 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, philmd@linaro.org, Weiwei Li , Palmer Dabbelt , richard.henderson@linaro.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Peter Maydell , Liu Zhiwei , qemu-arm@nongnu.org, Alistair Francis , Daniel Henrique Barboza , Pierrick Bouvier Subject: [PATCH v3 04/12] semihosting/arm-compat-semi: change common_semi_sys_exit_extended Date: Mon, 4 Aug 2025 11:39:42 -0700 Message-ID: <20250804183950.3147154-5-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250804183950.3147154-1-pierrick.bouvier@linaro.org> References: <20250804183950.3147154-1-pierrick.bouvier@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::42f; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pf1-x42f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1754335292367124100 Content-Type: text/plain; charset="utf-8" We now check only is sys_exit is extended. This allows to break dependency to TARGET_SYS_EXIT_EXTENDED which will not be available anymore from this code. Signed-off-by: Pierrick Bouvier Reviewed-by: Richard Henderson --- target/arm/common-semi-target.h | 4 ++-- target/riscv/common-semi-target.h | 4 ++-- semihosting/arm-compat-semi.c | 3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/target/arm/common-semi-target.h b/target/arm/common-semi-targe= t.h index da51f2d7f54..7bb442f24ca 100644 --- a/target/arm/common-semi-target.h +++ b/target/arm/common-semi-target.h @@ -34,9 +34,9 @@ static inline void common_semi_set_ret(CPUState *cs, targ= et_ulong ret) } } =20 -static inline bool common_semi_sys_exit_extended(CPUState *cs, int nr) +static inline bool common_semi_sys_exit_is_extended(CPUState *cs) { - return nr =3D=3D TARGET_SYS_EXIT_EXTENDED || is_a64(cpu_env(cs)); + return is_a64(cpu_env(cs)); } =20 static inline bool is_64bit_semihosting(CPUArchState *env) diff --git a/target/riscv/common-semi-target.h b/target/riscv/common-semi-t= arget.h index 7c8a59e0cc3..ba40e794dcc 100644 --- a/target/riscv/common-semi-target.h +++ b/target/riscv/common-semi-target.h @@ -25,9 +25,9 @@ static inline void common_semi_set_ret(CPUState *cs, targ= et_ulong ret) env->gpr[xA0] =3D ret; } =20 -static inline bool common_semi_sys_exit_extended(CPUState *cs, int nr) +static inline bool common_semi_sys_exit_is_extended(CPUState *cs) { - return (nr =3D=3D TARGET_SYS_EXIT_EXTENDED || sizeof(target_ulong) =3D= =3D 8); + return sizeof(target_ulong) =3D=3D 8; } =20 static inline bool is_64bit_semihosting(CPUArchState *env) diff --git a/semihosting/arm-compat-semi.c b/semihosting/arm-compat-semi.c index 3f653c6e7a9..1c593d5e0dc 100644 --- a/semihosting/arm-compat-semi.c +++ b/semihosting/arm-compat-semi.c @@ -755,7 +755,8 @@ void do_common_semihosting(CPUState *cs) { uint32_t ret; =20 - if (common_semi_sys_exit_extended(cs, nr)) { + if (nr =3D=3D TARGET_SYS_EXIT_EXTENDED || + common_semi_sys_exit_is_extended(cs)) { /* * The A64 version of SYS_EXIT takes a parameter block, * so the application-exit type can return a subcode which --=20 2.47.2 From nobody Thu Oct 16 02:16:36 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1754335486; cv=none; d=zohomail.com; s=zohoarc; b=Qu7vw38/dxr/+dTjVb6ttU1Bo6sT9FErkQesmvmIEU/WzD6hEiAJibjEpUzsB4Po9AUYysjThFk5oXW3eViqJnodHxsjFscQraO/Q3pSti2D/eCsr1GU5Kou4I+U6TgdzZeukn7qPdb+sgCvAvDdWtpp3IF4al5dkVN/MSTT8Kw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1754335486; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=r2HhmWn+3Uhat9xr0ViadQ+YUOagyNbQxWkSxpV2E5c=; b=GoYSmdAa7CY6xnRQblG503f3EyJsxyqUmV7UmxrIMWHEn7+Ee8TLWYx7AWh6NMMbX5V91i/N7w1antpV/l+sRKfo9s6s/C0/kq5cnNQ5Z7O25FeymGEv0YtRLnP453dqRyZjGRbVzVeqTJtNOwdBVRPr8QDHj4V/ZpdCQBuYK7E= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1754335486118162.79067663642786; Mon, 4 Aug 2025 12:24:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uj0jx-0002O1-9y; Mon, 04 Aug 2025 15:20:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uj06T-00019m-Tr for qemu-devel@nongnu.org; Mon, 04 Aug 2025 14:40:13 -0400 Received: from mail-pf1-x430.google.com ([2607:f8b0:4864:20::430]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uj06O-0000wY-HF for qemu-devel@nongnu.org; Mon, 04 Aug 2025 14:40:09 -0400 Received: by mail-pf1-x430.google.com with SMTP id d2e1a72fcca58-76b77a97a04so2734416b3a.1 for ; Mon, 04 Aug 2025 11:40:02 -0700 (PDT) Received: from pc.. ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-76bd78875cesm9940171b3a.15.2025.08.04.11.40.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Aug 2025 11:40:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1754332801; x=1754937601; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=r2HhmWn+3Uhat9xr0ViadQ+YUOagyNbQxWkSxpV2E5c=; b=nSH1IIwIX2gR+Xz0UamSK8KEDGym03VtIcFSQnrUcUJdL7N7xpv3KjJVuK8vvpj11I NU+p8vn4D7n4R9SlUAmdorFPqfc76wUenFbgUyOzNW1JTObWbpXy8vlyckAq2Qua04sZ GYk3AKl6Vh1+HIqpyyNDFSGC3dxGpVPyWL4+N3aGWBcbRDY4H/8pwCZPWMjtaMxuDmL7 5N5ASO12BjdkEq9V1CXVwN1CXinHTs+qB10lFvM+5ggn3iNoaBfk/Ra4odoXJZ0FW7JN dc84iXoBumOvFUhoGJc3NaGA+UZDWhrcxyFXhgWZ83dtm8X5P5qWpi2mRB/bCCbInouB qIFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754332801; x=1754937601; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=r2HhmWn+3Uhat9xr0ViadQ+YUOagyNbQxWkSxpV2E5c=; b=lW0P5yVZiwG6sYo5+4m2bQnqKwxe2BCMXVcapG63vnmoShhAXG94PghmCc+mdpUAcf weTkev1M1RtBWYeu7UTYjlxBo8K9w6OboaCKyulMums/piV+YGLL2iVBaKadi/XM2Fvq KH0IphtiH9mhENCRN7d9FERCpBqSWmXWe3fkoNbD78uk0CEQ+59/32CHke6qIYUm8uHe zm+07HN3wJNm66dBd+YYDwa/C4Fg0o2mLBvnAT8RPsS442iJOGX8lxWO6yEad0s/u84I jE28LBwRubPxI/I8fsGVnYOhMoz33ofvlBSB9NJCuJrD6tSPGhTGoq40sOlGINea+Nhp Z+yA== X-Gm-Message-State: AOJu0YyTAm68Oe2mGdt3HHnW5gI+JkNlqDU/OK/1g1TNMiRZYq9btpu4 X1ilKw/P/6MGk2bi3np6ECo8ruwIn7+u8ZLc+7SAL8E50/pbVkzFZwreko23GKObQO0zh2NFFLp H8p8n X-Gm-Gg: ASbGncuXvlQEzNZ78s7gvMiPhE2hKSMYnR9/M6awYdWufp+CeD1SepY68ECXnM2kR5B eYAmMLgRiy/wzhLb7Z2fH4+rGz2hJ+vA5J2cSPdcSEACTXk/8IrWcGrS4z1WjobO9S/Tynqqzpd LfzzDH1JNiQr6Bgsekf5Coi1umRNth/ZzGhCbFv7nwnvqyoAYu/lxy11DcSOk6QPpHHvRjXrQap xHTgudk/GqU9tHRUsI/NBa9Mw8jjGhav3gHr3kZHpy38dsYGwkH8TIKsv6cHffz2GaAioXJruIH Y4MbFKy695XZ6C/dl8qqWjWcSoGvqaGIIE/lfdiBau6X1Udc76cwYyMDBFrFdMiumwRmF6m/qAw hboAGvjquxF4B9Z/ZhYldKQ== X-Google-Smtp-Source: AGHT+IFc3oT+XcNNEGUU9pmAKKrlbKZ2uaO8uJ6AS0ce2FHjFrSGPfAg4Wy97lxXrO3V1aJqQDDRyQ== X-Received: by 2002:a05:6a00:3910:b0:736:5f75:4a3b with SMTP id d2e1a72fcca58-76bec30c7ccmr13794563b3a.7.1754332801410; Mon, 04 Aug 2025 11:40:01 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, philmd@linaro.org, Weiwei Li , Palmer Dabbelt , richard.henderson@linaro.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Peter Maydell , Liu Zhiwei , qemu-arm@nongnu.org, Alistair Francis , Daniel Henrique Barboza , Pierrick Bouvier Subject: [PATCH v3 05/12] target/riscv/common-semi-target: remove sizeof(target_ulong) Date: Mon, 4 Aug 2025 11:39:43 -0700 Message-ID: <20250804183950.3147154-6-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250804183950.3147154-1-pierrick.bouvier@linaro.org> References: <20250804183950.3147154-1-pierrick.bouvier@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::430; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pf1-x430.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1754335488332124100 Content-Type: text/plain; charset="utf-8" Only riscv64 extends SYS_EXIT, similar to aarch64. Signed-off-by: Pierrick Bouvier Reviewed-by: Richard Henderson --- target/riscv/common-semi-target.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/target/riscv/common-semi-target.h b/target/riscv/common-semi-t= arget.h index ba40e794dcc..7e6ea8da02c 100644 --- a/target/riscv/common-semi-target.h +++ b/target/riscv/common-semi-target.h @@ -25,16 +25,16 @@ static inline void common_semi_set_ret(CPUState *cs, ta= rget_ulong ret) env->gpr[xA0] =3D ret; } =20 -static inline bool common_semi_sys_exit_is_extended(CPUState *cs) -{ - return sizeof(target_ulong) =3D=3D 8; -} - static inline bool is_64bit_semihosting(CPUArchState *env) { return riscv_cpu_mxl(env) !=3D MXL_RV32; } =20 +static inline bool common_semi_sys_exit_is_extended(CPUState *cs) +{ + return is_64bit_semihosting(cpu_env(cs)); +} + static inline target_ulong common_semi_stack_bottom(CPUState *cs) { RISCVCPU *cpu =3D RISCV_CPU(cs); --=20 2.47.2 From nobody Thu Oct 16 02:16:36 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1754336057005631.7175452235546; Mon, 4 Aug 2025 12:34:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uj0vh-0002so-Fa; Mon, 04 Aug 2025 15:33:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uj06S-00019C-KH for qemu-devel@nongnu.org; Mon, 04 Aug 2025 14:40:10 -0400 Received: from mail-pf1-x435.google.com ([2607:f8b0:4864:20::435]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uj06O-0000xt-F6 for qemu-devel@nongnu.org; Mon, 04 Aug 2025 14:40:08 -0400 Received: by mail-pf1-x435.google.com with SMTP id d2e1a72fcca58-76bc55f6612so4175622b3a.0 for ; Mon, 04 Aug 2025 11:40:03 -0700 (PDT) Received: from pc.. ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-76bd78875cesm9940171b3a.15.2025.08.04.11.40.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Aug 2025 11:40:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1754332802; x=1754937602; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=/NhduwSVHFJtmbAuoSXf5vp/8JFTbyhJo4xB/s950yU=; b=R85CkHsIfEe7WmaYLpa0ImA2+MwV3vrL45Tq8Vbcfp7j82VsIp2o9h3rGnNGyz0glF ZMQm+dp+Qv38tOGGEZIsmb47GEohOwlGbtH3bacwKeVTDDrkn3llvaW04eHFw7UMqpGc U71rdnPsZClMcvf4rY2IoQ8K9X4xOxC8YVu/zTTHGM9LuaDYYNTCYif4/a8iB9jpJF/u PgROi4EDYt7WCKiV70K4TfX30wHus+eaoB5GJR5zSSNu103kNawSaJmSlCjljClhsu/P jBnb5uoBD96Brg34wqgVXfsGIYHeIxQc+dppwZQ/Zp1MZ80BtqODbabdnD7va1OmpKuZ XV9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754332802; x=1754937602; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/NhduwSVHFJtmbAuoSXf5vp/8JFTbyhJo4xB/s950yU=; b=FEjfdQ1wdLFp1ncMpt9nG1tradZcpfzP8GkFgVLH+n7BUWas09DDL96WrWbeTem1lM LR+SFaC4ryg3LQ/fGvVul9qCmjo2NPXoZBTkQoYl3Av/x4EXGwBP5pSUnGwJ0ec/lJPd ZmO1vD+mUGslE2kEdUPQdlXK8wRAAxYNf1tEMKru6W3tpq2vcdFliI8Ggh5AS3MK4K6q pJIkCUDcFGlOuH8aw+YoVUoDjKHcKKyTE1Miwzuq/dFqWWnJTsnOQ2mfs+jJ8LvYEaK7 VgincjuNURptm20800Mt7W1PhR5rA4BpY7WpqDrFs1cLLnbouDtckIIz7KyycQn80yTZ ItbQ== X-Gm-Message-State: AOJu0YyaC/8/kP+WHjgueUWY4x6IXkKneCkhi+L9uKuVpssNlDlPJSol vdTzVkFf3yNE5grU32CLXqYqsudF1fBzlcT1PJsWbdYmIuv2neb96jAZwd0rsb+LPxves8HD0tw rJDPn X-Gm-Gg: ASbGncsU3C/GJrB+kfhzwt5wxh+jBrvCiKR9XtDoVqLXSVuW+JSsvyv6BV93SZE2qWl zGMQpSvIpfTnv7LAUSjtadROO2RhWbv9+MhURtZfQ2bse3zc66plmNYNldFq4HFD+T+773y9XfL xhwFmqlreTqxR9SqPL7lQcnB0GYxEkSBFuDJ/pdNQS1UxylYnySKfLhmcdtklhLGcpzrb0iIrlN Wk00BCPOHyYszEYejCa5CQvp+s64IfrNprD7xApSukm94u54wXMYYcYtim4f9lPRP1YqLSaOVkD KFQWHP8jRjNuXg0nwABuFtLzYagwUqCTbL7wzPRVnVfz2eclEUhGoT8Sc5opyY4D43YnUxt21C9 hmn0erxLpvqOvqiFVAyI3ow== X-Google-Smtp-Source: AGHT+IHR/w0/fpPIPn5YeSZYa0SFPle1wY8FkODkXv1KAAlL6CRmOPWbi7jWCwQqHyB6eM473Zqi6Q== X-Received: by 2002:a05:6a00:8783:b0:736:4c3d:2cba with SMTP id d2e1a72fcca58-76c193a7057mr439497b3a.9.1754332802416; Mon, 04 Aug 2025 11:40:02 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, philmd@linaro.org, Weiwei Li , Palmer Dabbelt , richard.henderson@linaro.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Peter Maydell , Liu Zhiwei , qemu-arm@nongnu.org, Alistair Francis , Daniel Henrique Barboza , Pierrick Bouvier Subject: [PATCH v3 06/12] target/{arm, riscv}/common-semi-target: eradicate target_ulong Date: Mon, 4 Aug 2025 11:39:44 -0700 Message-ID: <20250804183950.3147154-7-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250804183950.3147154-1-pierrick.bouvier@linaro.org> References: <20250804183950.3147154-1-pierrick.bouvier@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::435; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pf1-x435.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1754336059241116600 Content-Type: text/plain; charset="utf-8" We replace mechanically with uint64_t. There is no semantic change, and allows us to extract a proper API from this set of functions. Reviewed-by: Richard Henderson Signed-off-by: Pierrick Bouvier --- target/arm/common-semi-target.h | 6 +++--- target/riscv/common-semi-target.h | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/target/arm/common-semi-target.h b/target/arm/common-semi-targe= t.h index 7bb442f24ca..6775a270aaa 100644 --- a/target/arm/common-semi-target.h +++ b/target/arm/common-semi-target.h @@ -12,7 +12,7 @@ =20 #include "target/arm/cpu-qom.h" =20 -static inline target_ulong common_semi_arg(CPUState *cs, int argno) +static inline uint64_t common_semi_arg(CPUState *cs, int argno) { ARMCPU *cpu =3D ARM_CPU(cs); CPUARMState *env =3D &cpu->env; @@ -23,7 +23,7 @@ static inline target_ulong common_semi_arg(CPUState *cs, = int argno) } } =20 -static inline void common_semi_set_ret(CPUState *cs, target_ulong ret) +static inline void common_semi_set_ret(CPUState *cs, uint64_t ret) { ARMCPU *cpu =3D ARM_CPU(cs); CPUARMState *env =3D &cpu->env; @@ -44,7 +44,7 @@ static inline bool is_64bit_semihosting(CPUArchState *env) return is_a64(env); } =20 -static inline target_ulong common_semi_stack_bottom(CPUState *cs) +static inline uint64_t common_semi_stack_bottom(CPUState *cs) { ARMCPU *cpu =3D ARM_CPU(cs); CPUARMState *env =3D &cpu->env; diff --git a/target/riscv/common-semi-target.h b/target/riscv/common-semi-t= arget.h index 7e6ea8da02c..663dedfdad2 100644 --- a/target/riscv/common-semi-target.h +++ b/target/riscv/common-semi-target.h @@ -11,14 +11,14 @@ #ifndef TARGET_RISCV_COMMON_SEMI_TARGET_H #define TARGET_RISCV_COMMON_SEMI_TARGET_H =20 -static inline target_ulong common_semi_arg(CPUState *cs, int argno) +static inline uint64_t common_semi_arg(CPUState *cs, int argno) { RISCVCPU *cpu =3D RISCV_CPU(cs); CPURISCVState *env =3D &cpu->env; return env->gpr[xA0 + argno]; } =20 -static inline void common_semi_set_ret(CPUState *cs, target_ulong ret) +static inline void common_semi_set_ret(CPUState *cs, uint64_t ret) { RISCVCPU *cpu =3D RISCV_CPU(cs); CPURISCVState *env =3D &cpu->env; @@ -35,7 +35,7 @@ static inline bool common_semi_sys_exit_is_extended(CPUSt= ate *cs) return is_64bit_semihosting(cpu_env(cs)); } =20 -static inline target_ulong common_semi_stack_bottom(CPUState *cs) +static inline uint64_t common_semi_stack_bottom(CPUState *cs) { RISCVCPU *cpu =3D RISCV_CPU(cs); CPURISCVState *env =3D &cpu->env; --=20 2.47.2 From nobody Thu Oct 16 02:16:36 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1754336073; cv=none; d=zohomail.com; s=zohoarc; b=CeKfjQJdFyibKI79a1o/3zFjSgeS7dGZrd3DRUYQ1+aZbPEgjrxPd4BRK9aZf9h7bXgtewEnpEeVkdyKRbow7rPSlFSqQTsLc6EijQXh6BugniD9lXCP1IKTPAD3EdQiDi8EuOdm8+dcMQYuge2ht+5ie/RI6GqRep8f6LsQNuI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1754336073; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=c+UBZqDttGYfj8iBFfEmX5S23CgoyF14FdfzJLxCYYE=; b=H4LSvMJ4gsi4bw66KezlDelGDF6DLeelh+qkbB+BejhGBPNZ3+FWylnEA3F0jka13a1sNmc9xAu1Scd8fLiA2OPsFlqZzH6UURykp6e8DH/tbwRV+3xMI1Mv5MWz7aWiHgENg7FCfushuAa1DdQ+5ZLj76pSoRsm7ytGN8JIPuE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1754336073789923.7190327083125; Mon, 4 Aug 2025 12:34:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uj0x1-0005De-6p; Mon, 04 Aug 2025 15:34:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uj06W-0001B7-4p for qemu-devel@nongnu.org; Mon, 04 Aug 2025 14:40:13 -0400 Received: from mail-pf1-x431.google.com ([2607:f8b0:4864:20::431]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uj06P-00013u-FX for qemu-devel@nongnu.org; Mon, 04 Aug 2025 14:40:11 -0400 Received: by mail-pf1-x431.google.com with SMTP id d2e1a72fcca58-76bdce2ee10so2488947b3a.2 for ; Mon, 04 Aug 2025 11:40:04 -0700 (PDT) Received: from pc.. ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-76bd78875cesm9940171b3a.15.2025.08.04.11.40.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Aug 2025 11:40:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1754332803; x=1754937603; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=c+UBZqDttGYfj8iBFfEmX5S23CgoyF14FdfzJLxCYYE=; b=NZ5E+KjF7uCcMifWTrG1se1FYXpOS/apP7A4CGddapbLVmQcEEKnriktiq3pN7uqIP QlXTAuqzPcHITYUiCm+6WTplKxbsBF7h7L3qFU0ZMU/cRMrlrs7LLaRlP/m3aB0laXYc Op8/Yve7L8iHwQ1V+TmnMexK4mfJYTpPZWtc6AeWMmTHacge/abKodbEx5fImsvI4QBQ jTf7KhBQamYbaeVyPS1UZP+wOqtRenCMGLUyrkyNUAy2V18gT4KGBfD39F2DkDAHDE+/ g2fd3xcI01/ONBj2Necc0MTTVYpRulPXCbdqcHUGrwzJxuqNdVprTns8BVbvDbqbibqb b/Wg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754332803; x=1754937603; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=c+UBZqDttGYfj8iBFfEmX5S23CgoyF14FdfzJLxCYYE=; b=gJkc6U3muonyY803jra1P3gvYWyIb35EWwMqaTLeb0wYEx+kOcJ4kz9uKdKp4EdQDK UcuJo3fFRbMSz9OlRz/cGCt+P7489UpDq+vIsC/PnNaXzvhOrNutc577SlKEBJ6DwkZ0 1Y/YNEqzpR5zfW/VNfON6iIDtZZ7TE4CDy2GhDhv4tT8PKmnDoXYBzZdJJ5Am4OOINZz AqccFdhS1L17zij8gYByvqdgwCQjv5n3+u+DLI21DGb8mapSGucC9fMI4KT/P9WmYDEO ihFWvfCNyRECd5oNAY8fUkzxOkYJF6Rp1L9iWPBCHPu1/zxRnNzNbJudJlBinRfCRQBi FeBQ== X-Gm-Message-State: AOJu0YxyZYGzt3xK5dpL8jE4+loKVqy44UOMH6j+5eu1CIZnTAw5zNH/ gqmUItQsHp5tVkLRAMLDtsUee433x3Y1rL1yLeBZLLTaGrKR4tIHRzhQC5P0vPIO68bF6womk9g 0qiiu X-Gm-Gg: ASbGncu6yBDHGmmij9C385uPGotndkrD/7l/WjMDFDOGZDOBvTanFEhThnXXeAkydYi Lkm6gPi3JGBUwxZAe3ZPSfzEi9oY7tkfci8bEJC06jE5pMeZ/lOpedhRdD1zkTh/CRkGeUfGflp gyLFxUxW3XJ+GoqkQTRY7EgxUD2UyLIsZpxN41FPef6nKH7+OX9vmzodOGp0ogcKDjoylDmTe83 xeqgA7+a9LQN6UlWI06zORedXWGSUtIy2Bmt9iiyOaxMLR5Q+ZuloSqZboWTgpZW467GM2KHGN9 U1MvzPCAquAa9sVc6GqY0isWyHBNJRLh+s+LoghuG2IqG3V0mlGwYLwtuZOP0A3xloT7Ghys8+e Elv11aYhMRCClgiN38XgFIvw0XD6OFt4/ X-Google-Smtp-Source: AGHT+IHN31UnwxogKhOBjyr/yOzuKJQLWZsxa9xqp1VJ8C/E2SwAK0SWIuVQjl+MkwdnD/swD0JSEA== X-Received: by 2002:a05:6a00:1254:b0:76b:e109:a1f4 with SMTP id d2e1a72fcca58-76bec4812c8mr13953681b3a.12.1754332803385; Mon, 04 Aug 2025 11:40:03 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, philmd@linaro.org, Weiwei Li , Palmer Dabbelt , richard.henderson@linaro.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Peter Maydell , Liu Zhiwei , qemu-arm@nongnu.org, Alistair Francis , Daniel Henrique Barboza , Pierrick Bouvier Subject: [PATCH v3 07/12] include/semihosting/common-semi: extract common_semi API Date: Mon, 4 Aug 2025 11:39:45 -0700 Message-ID: <20250804183950.3147154-8-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250804183950.3147154-1-pierrick.bouvier@linaro.org> References: <20250804183950.3147154-1-pierrick.bouvier@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::431; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pf1-x431.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1754336075772124100 Content-Type: text/plain; charset="utf-8" We transform target/{arm,riscv}/common-semi-target.h headers to proper compilation units, and use them in arm-compat-semi.c. This way, we can include only the declaration header (which is target agnostic), and selectively link the appropriate implementation based on current target. Reviewed-by: Richard Henderson Signed-off-by: Pierrick Bouvier --- include/semihosting/common-semi.h | 6 ++++++ semihosting/arm-compat-semi.c | 3 +-- ...mon-semi-target.h =3D> common-semi-target.c} | 20 +++++++++---------- ...mon-semi-target.h =3D> common-semi-target.c} | 19 +++++++++--------- target/arm/meson.build | 4 ++++ target/riscv/meson.build | 4 ++++ 6 files changed, 33 insertions(+), 23 deletions(-) rename target/arm/{common-semi-target.h =3D> common-semi-target.c} (64%) rename target/riscv/{common-semi-target.h =3D> common-semi-target.c} (59%) diff --git a/include/semihosting/common-semi.h b/include/semihosting/common= -semi.h index 0a91db7c414..aa511a46f42 100644 --- a/include/semihosting/common-semi.h +++ b/include/semihosting/common-semi.h @@ -35,5 +35,11 @@ #define COMMON_SEMI_H =20 void do_common_semihosting(CPUState *cs); +uint64_t common_semi_arg(CPUState *cs, int argno); +void common_semi_set_ret(CPUState *cs, uint64_t ret); +bool is_64bit_semihosting(CPUArchState *env); +bool common_semi_sys_exit_is_extended(CPUState *cs); +uint64_t common_semi_stack_bottom(CPUState *cs); +bool common_semi_has_synccache(CPUArchState *env); =20 #endif /* COMMON_SEMI_H */ diff --git a/semihosting/arm-compat-semi.c b/semihosting/arm-compat-semi.c index 1c593d5e0dc..5877214c47d 100644 --- a/semihosting/arm-compat-semi.c +++ b/semihosting/arm-compat-semi.c @@ -174,8 +174,7 @@ static LayoutInfo common_semi_find_bases(CPUState *cs) =20 #endif =20 -#include "cpu.h" -#include "common-semi-target.h" +#include "semihosting/common-semi.h" =20 /* * Read the input value from the argument block; fail the semihosting diff --git a/target/arm/common-semi-target.h b/target/arm/common-semi-targe= t.c similarity index 64% rename from target/arm/common-semi-target.h rename to target/arm/common-semi-target.c index 6775a270aaa..2b77ce9c17b 100644 --- a/target/arm/common-semi-target.h +++ b/target/arm/common-semi-target.c @@ -7,12 +7,12 @@ * SPDX-License-Identifier: GPL-2.0-or-later */ =20 -#ifndef TARGET_ARM_COMMON_SEMI_TARGET_H -#define TARGET_ARM_COMMON_SEMI_TARGET_H - +#include "qemu/osdep.h" +#include "cpu.h" +#include "semihosting/common-semi.h" #include "target/arm/cpu-qom.h" =20 -static inline uint64_t common_semi_arg(CPUState *cs, int argno) +uint64_t common_semi_arg(CPUState *cs, int argno) { ARMCPU *cpu =3D ARM_CPU(cs); CPUARMState *env =3D &cpu->env; @@ -23,7 +23,7 @@ static inline uint64_t common_semi_arg(CPUState *cs, int = argno) } } =20 -static inline void common_semi_set_ret(CPUState *cs, uint64_t ret) +void common_semi_set_ret(CPUState *cs, uint64_t ret) { ARMCPU *cpu =3D ARM_CPU(cs); CPUARMState *env =3D &cpu->env; @@ -34,27 +34,25 @@ static inline void common_semi_set_ret(CPUState *cs, ui= nt64_t ret) } } =20 -static inline bool common_semi_sys_exit_is_extended(CPUState *cs) +bool common_semi_sys_exit_is_extended(CPUState *cs) { return is_a64(cpu_env(cs)); } =20 -static inline bool is_64bit_semihosting(CPUArchState *env) +bool is_64bit_semihosting(CPUArchState *env) { return is_a64(env); } =20 -static inline uint64_t common_semi_stack_bottom(CPUState *cs) +uint64_t common_semi_stack_bottom(CPUState *cs) { ARMCPU *cpu =3D ARM_CPU(cs); CPUARMState *env =3D &cpu->env; return is_a64(env) ? env->xregs[31] : env->regs[13]; } =20 -static inline bool common_semi_has_synccache(CPUArchState *env) +bool common_semi_has_synccache(CPUArchState *env) { /* Ok for A64, invalid for A32/T32 */ return is_a64(env); } - -#endif diff --git a/target/riscv/common-semi-target.h b/target/riscv/common-semi-t= arget.c similarity index 59% rename from target/riscv/common-semi-target.h rename to target/riscv/common-semi-target.c index 663dedfdad2..aeaeb88d536 100644 --- a/target/riscv/common-semi-target.h +++ b/target/riscv/common-semi-target.c @@ -8,43 +8,42 @@ * SPDX-License-Identifier: GPL-2.0-or-later */ =20 -#ifndef TARGET_RISCV_COMMON_SEMI_TARGET_H -#define TARGET_RISCV_COMMON_SEMI_TARGET_H +#include "qemu/osdep.h" +#include "cpu.h" +#include "semihosting/common-semi.h" =20 -static inline uint64_t common_semi_arg(CPUState *cs, int argno) +uint64_t common_semi_arg(CPUState *cs, int argno) { RISCVCPU *cpu =3D RISCV_CPU(cs); CPURISCVState *env =3D &cpu->env; return env->gpr[xA0 + argno]; } =20 -static inline void common_semi_set_ret(CPUState *cs, uint64_t ret) +void common_semi_set_ret(CPUState *cs, uint64_t ret) { RISCVCPU *cpu =3D RISCV_CPU(cs); CPURISCVState *env =3D &cpu->env; env->gpr[xA0] =3D ret; } =20 -static inline bool is_64bit_semihosting(CPUArchState *env) +bool is_64bit_semihosting(CPUArchState *env) { return riscv_cpu_mxl(env) !=3D MXL_RV32; } =20 -static inline bool common_semi_sys_exit_is_extended(CPUState *cs) +bool common_semi_sys_exit_is_extended(CPUState *cs) { return is_64bit_semihosting(cpu_env(cs)); } =20 -static inline uint64_t common_semi_stack_bottom(CPUState *cs) +uint64_t common_semi_stack_bottom(CPUState *cs) { RISCVCPU *cpu =3D RISCV_CPU(cs); CPURISCVState *env =3D &cpu->env; return env->gpr[xSP]; } =20 -static inline bool common_semi_has_synccache(CPUArchState *env) +bool common_semi_has_synccache(CPUArchState *env) { return true; } - -#endif diff --git a/target/arm/meson.build b/target/arm/meson.build index 07d9271aa4d..688b50a2e26 100644 --- a/target/arm/meson.build +++ b/target/arm/meson.build @@ -27,12 +27,16 @@ arm_user_ss.add(files( 'helper.c', 'vfp_fpscr.c', )) +arm_user_ss.add(when: 'CONFIG_ARM_COMPATIBLE_SEMIHOSTING', + if_true: files('common-semi-target.c')) =20 arm_common_system_ss.add(files('cpu.c')) arm_common_system_ss.add(when: 'TARGET_AARCH64', if_false: files( 'cpu32-stubs.c')) arm_common_system_ss.add(when: 'CONFIG_KVM', if_false: files('kvm-stub.c')) arm_common_system_ss.add(when: 'CONFIG_HVF', if_false: files('hvf-stub.c')) +arm_common_system_ss.add(when: 'CONFIG_ARM_COMPATIBLE_SEMIHOSTING', + if_true: files('common-semi-target.c')) arm_common_system_ss.add(files( 'arch_dump.c', 'arm-powerctl.c', diff --git a/target/riscv/meson.build b/target/riscv/meson.build index a4bd61e52a9..fdefe88ccdd 100644 --- a/target/riscv/meson.build +++ b/target/riscv/meson.build @@ -8,6 +8,10 @@ gen =3D [ =20 riscv_ss =3D ss.source_set() riscv_ss.add(gen) + +riscv_ss.add(when: 'CONFIG_ARM_COMPATIBLE_SEMIHOSTING', + if_true: files('common-semi-target.c')) + riscv_ss.add(files( 'cpu.c', 'cpu_helper.c', --=20 2.47.2 From nobody Thu Oct 16 02:16:36 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1754335304; cv=none; d=zohomail.com; s=zohoarc; b=kRRBNQGfXAjU2JYPIpxOHoF/hJ2ymIoL72Ajhn4p/3pt2/mSdQCuK8dGBKI/BtcFjQ/LAuVo2hSGsUK2Lb/jkI3ujH6dhKcxmpO5mOh5B+k7PZ6PnvQ6jqvkMfHg6+XZ/aCm9GESk6H3OZl0yN50jjpExrua3ZTOK9ZqCCS+E4I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1754335304; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=l2zHTZ6BcoGUiKxWVAKTw6l3A4hCrK5GgqF5hsYKgdc=; b=APS7k86VSBCXiDaMgblcEkVaAZOzwWFoBGE+F0jbMYPzqjqw52SRt1iA2LR44oPa/i+5m+TZA17Ad676YCnNqC+0+4a9F0mgOJP7aWyn64cHeFAV8hWHpbC+vRnyKx2fG3GmzJv38bKcMs3AeKsJMIuOqsswFpHwjFjdfbBFdWQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1754335303993492.5094532036039; Mon, 4 Aug 2025 12:21:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uj0k2-0002Ww-Ve; Mon, 04 Aug 2025 15:21:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uj06W-0001B5-3y for qemu-devel@nongnu.org; Mon, 04 Aug 2025 14:40:13 -0400 Received: from mail-pf1-x431.google.com ([2607:f8b0:4864:20::431]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uj06Q-00019Y-4e for qemu-devel@nongnu.org; Mon, 04 Aug 2025 14:40:11 -0400 Received: by mail-pf1-x431.google.com with SMTP id d2e1a72fcca58-76bfd457607so1435150b3a.0 for ; Mon, 04 Aug 2025 11:40:05 -0700 (PDT) Received: from pc.. ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-76bd78875cesm9940171b3a.15.2025.08.04.11.40.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Aug 2025 11:40:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1754332804; x=1754937604; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=l2zHTZ6BcoGUiKxWVAKTw6l3A4hCrK5GgqF5hsYKgdc=; b=aJfPubW9xDlrTiLUdg34kSLT30m8u6bSj7CmttNDD/rVhiq6ZHpQPCd1eC5+lECY6K R0oErYx8jtKiD+8kXuZo7lgUUF6zoMVDh/xpMvP7yj13Nh+NAat6JoM+KsutoN87Vy/Y WgXqHvcWZShj/heBij0B02nXuaIPlz4kpWl+c9DBN+bWmXvY0SXwFJhD8JZtqsdGtOKo xt/EjM6ONGy6EZhSPjV2lHRzgBM+1Ypfz0f7Fq5I8eivjRgB5hQc3hHoc/PoScP76q0C 1okuWNYDVEylzn6J6K/xpwRE7HA6Oy/oZFlCDUPORtqavyAmx+qBT2EUdrmyDH2wxaGj kssg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754332804; x=1754937604; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=l2zHTZ6BcoGUiKxWVAKTw6l3A4hCrK5GgqF5hsYKgdc=; b=he0LpoTS4hr8XHUALdrJWJdFpzR7V7blQ34AeoAH6Gtv8JgOhFcApCaM/rMhwU0/0Z GniBpkPLa0Z7uxFbhbUEJhoKZnpB7RojKMkYiC/SPuRlIsAXXHSKMiB41/FguimWn74I Vn93CY6zEH5CbAg04chLhqhxR7RNJjkIyVbUnsID+C/JNy0pNwNGIgQyapkYEeVogybf RkxHHrQSr8fP8USaHPSw03HgIzSIBAsUq9sN6gBg5sJKkzsYeINkU2gjdbzTsZvQj+mg 1Vq+KfDBBt/aa4DIc3pUdcG8GIrnHy7y1QwaCSBrFQB5tLNleNYC8aetwoEavDc/yy03 hoeg== X-Gm-Message-State: AOJu0Yyu5uGd4ZuEGKnn9lJlvoDPRPOfQXAgvLo0FqmhDBdRXWcehenw 0Aonf+/xDXTp4KDk/XBB2yAbI2kenyBskRsYXNgmbK8H5c8XrzVjDBTPRl+E+8vdebVoij8jhku LrSx6 X-Gm-Gg: ASbGnctcCeiB1LWh7EVhWo3tiJBmjl5WXuG4gPd091oR4sMVr1L7/nbOkNA+tyM1T0O +MYmr7OByHGBjDrRNLT/lRyKmzOBaoYrVpaqTJJoU7t1cwSHXc4TgkSTiMMi6L79RUEXbxhJzNj w1MUMZnGAO96ml9sSXB9xKrqWMygCGm8/YgvWlQQ8AUlEsTYfabkIhQKx/Wx89vfXGnmXQ+KWyf KHa+ts+rNMrgC49NuNu6cEFKhIEaDbLGxd0KI+N+rTv+09o0yd8MFB5ZX7De3WS0D8CiUKOffiE vzCpgDybt6M9cOQPqTXaEXzbusmOYEPwklvXhYRcbK7XfvdJ83fvT2Qii5JjQIVeaFMhKvGCBkR G8VABKK++1kylITluN9yrXQ== X-Google-Smtp-Source: AGHT+IGDIiDvwkp07Cl3q9p2tPrnYkh/KID/Apb+z9tDpROIyRYMrq93rK7+HyYmg53wUZ8dfa16Lg== X-Received: by 2002:a05:6a00:114b:b0:75f:914e:1972 with SMTP id d2e1a72fcca58-76bec4b7d16mr11669416b3a.17.1754332804529; Mon, 04 Aug 2025 11:40:04 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, philmd@linaro.org, Weiwei Li , Palmer Dabbelt , richard.henderson@linaro.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Peter Maydell , Liu Zhiwei , qemu-arm@nongnu.org, Alistair Francis , Daniel Henrique Barboza , Pierrick Bouvier Subject: [PATCH v3 08/12] semihosting/arm-compat-semi: eradicate sizeof(target_ulong) Date: Mon, 4 Aug 2025 11:39:46 -0700 Message-ID: <20250804183950.3147154-9-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250804183950.3147154-1-pierrick.bouvier@linaro.org> References: <20250804183950.3147154-1-pierrick.bouvier@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::431; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pf1-x431.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1754335305958124100 Content-Type: text/plain; charset="utf-8" No semantic change. Reviewed-by: Richard Henderson Signed-off-by: Pierrick Bouvier --- semihosting/arm-compat-semi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/semihosting/arm-compat-semi.c b/semihosting/arm-compat-semi.c index 5877214c47d..c03096b253d 100644 --- a/semihosting/arm-compat-semi.c +++ b/semihosting/arm-compat-semi.c @@ -786,7 +786,7 @@ void do_common_semihosting(CPUState *cs) =20 case TARGET_SYS_ELAPSED: elapsed =3D get_clock() - clock_start; - if (sizeof(target_ulong) =3D=3D 8) { + if (is_64bit_semihosting(env)) { if (SET_ARG(0, elapsed)) { goto do_fault; } --=20 2.47.2 From nobody Thu Oct 16 02:16:36 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1754336110; cv=none; d=zohomail.com; s=zohoarc; b=CsF9tGpPuIyAvpBxAqWUHQ+EhiudSpw01AuHpvQDqdt1trlvYolPg2IuY4gUN3UwnMi3NP6+TaRy9YK0KLeuaYPGs7jNCy6qHORwClVyu/mp6uIjwcb25RpTY++WoVmrw9dnkO3JxmDIBDRhM9HgEfHmBgsWo6/ZQitFDKMletY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1754336110; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Gb/ReADUnlzi9AcO287uTsxkJfdtQt0rAfW8KkqAbww=; b=h3f7zijhCrUwyIWuIqlALdx/2D/IjJqvmEJSmDLYUTeLrC/rz6lAZ94/pAMnu/Ce12gic+/d2HPqk+a1pXGLmFLLrj0ODl5Wx641y2Wf6IWO4LF3b8HNOsvJgRxMyDRiWWTRWSOTQ+AKuCuaCDC9ranSs6qMM4QvYYcIAGaFI/g= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1754336110105280.785838341503; Mon, 4 Aug 2025 12:35:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uj0x7-0005ZN-8V; Mon, 04 Aug 2025 15:34:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uj06Y-0001ER-5Y for qemu-devel@nongnu.org; Mon, 04 Aug 2025 14:40:17 -0400 Received: from mail-pf1-x435.google.com ([2607:f8b0:4864:20::435]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uj06R-0001AM-3E for qemu-devel@nongnu.org; Mon, 04 Aug 2025 14:40:12 -0400 Received: by mail-pf1-x435.google.com with SMTP id d2e1a72fcca58-76bdc73f363so2879144b3a.3 for ; Mon, 04 Aug 2025 11:40:06 -0700 (PDT) Received: from pc.. ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-76bd78875cesm9940171b3a.15.2025.08.04.11.40.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Aug 2025 11:40:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1754332805; x=1754937605; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Gb/ReADUnlzi9AcO287uTsxkJfdtQt0rAfW8KkqAbww=; b=zMCNFRfAHmjl0d+ocNOY1g0YWXUbbL16gYhgW3z6jhfbivBloSIPft+57mgZmRZM1K 2kfFkobctO7HAPQepWiumqs0WlX70Iu8h6SzZE6xkaXs0EIGxLn+R+H76/5bkm9fBqWz lWM8apa1uIlEKYF2YH065q5Xf8viv20YNAiSekFn3zWJmpgHu4KrJO4XiK+K6cVkuKLQ 28eCE2fWbxsaUqq3qXrjGnfq7837JnSV+7OgbHKnwEakBQk0epHzz3g3+scWMNWwjVew cyTVODzHoknUNt5Uy/j62wQtnXro7LlM3eaD10iivxX4ffbbsiOVl+gMQWeh4CBPQPts HKvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754332805; x=1754937605; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Gb/ReADUnlzi9AcO287uTsxkJfdtQt0rAfW8KkqAbww=; b=sYzVlLculYUeZgtDgsfD/xW1AJiS/HeL7yR7JULzgKYpDlOxIhwQTnV4aShCfOc2BX DulPDyPG62CCffFmONqQhvkUKiU2HdBBGs3yuLrO4lQqM7e/5osrGh7CxgB8o/MAGoH0 r6MpTECcjx+i8SBfJOYunYqg8816WX4Fs/guDOJa1UAPMT08JMgY/6TWRhHPJrMUAiMC hcYfZL/VGWNYufLh89BlP/VkcD0NFa63qqT55zX4YbSgyN9zzUB4OStITG+9CeZNmy3j 32fYnYSRzFlF879k48H1vjpNHMPFIfDC9o8NCheO/US9nuL7au9PI+e225b8Lxd9gnYU alMQ== X-Gm-Message-State: AOJu0YyTf8khreHxWITBpDtzRGFuk8NJejj2bWYDcie88xR4YKREVMao XhwnJ6MKl8A0VGQqH99as0KyskWYm9mggHGzfHsQ70r0uGbiO86pCspz8FIxZ3siDA81FUys2kE ISZ5o X-Gm-Gg: ASbGncu5LqTdtgCH5SsviVPmr+neXv+RhXWbcM3rstVCuG8p8KnfmMjGisOtyQpgvc8 q7IaNhV1ThTYG0mPLaMyp9j5X5avBhHqAW+dI5Mv2BMDW8ciD97NcmPRkcLB7BfpcSz3zBR5Fhv bUUQCen30XQ7GREKiI971H7nXs6y2+hzFpRZCHwseIhIlQ6+rEJ3bidSUTuKSaTSG/QhV7DV/Cl EcTktLtZ8XEHiHpiNA81XtFS1dfFKa4r+WXlXAhgfuNmQ3tBnF974ZnEIW+kwW989RfBoEDKaxy SgKaNUPoiGe9CCgyf/Lghs6+Sk02DiFEd/aowzj8lJb7pzO0k0Zl7p2H/+O4xALEc4MhFWcxxlP HSl6LsR8MSHez4XhM7gcqDg== X-Google-Smtp-Source: AGHT+IEhJ+hm/7krgWViWU9aVO/jARZNpLglTpvpKZedP0Ul0dkFCAHuQxR/Mdswcm/e9dY0lU1myQ== X-Received: by 2002:a05:6a00:14d3:b0:76b:f9c9:2160 with SMTP id d2e1a72fcca58-76bf9c93355mr9373241b3a.6.1754332805490; Mon, 04 Aug 2025 11:40:05 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, philmd@linaro.org, Weiwei Li , Palmer Dabbelt , richard.henderson@linaro.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Peter Maydell , Liu Zhiwei , qemu-arm@nongnu.org, Alistair Francis , Daniel Henrique Barboza , Pierrick Bouvier Subject: [PATCH v3 09/12] semihosting/arm-compat-semi: replace target_ulong with uint64_t Date: Mon, 4 Aug 2025 11:39:47 -0700 Message-ID: <20250804183950.3147154-10-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250804183950.3147154-1-pierrick.bouvier@linaro.org> References: <20250804183950.3147154-1-pierrick.bouvier@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::435; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pf1-x435.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1754336112094124100 Content-Type: text/plain; charset="utf-8" Reviewed-by: Richard Henderson Signed-off-by: Pierrick Bouvier --- semihosting/arm-compat-semi.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/semihosting/arm-compat-semi.c b/semihosting/arm-compat-semi.c index c03096b253d..f593239cc9a 100644 --- a/semihosting/arm-compat-semi.c +++ b/semihosting/arm-compat-semi.c @@ -123,7 +123,7 @@ static GuestFD console_out_gf; */ =20 typedef struct LayoutInfo { - target_ulong rambase; + vaddr rambase; size_t ramsize; hwaddr heapbase; hwaddr heaplimit; @@ -214,7 +214,7 @@ static LayoutInfo common_semi_find_bases(CPUState *cs) * global, and we assume that the guest takes care of avoiding any races. */ #ifndef CONFIG_USER_ONLY -static target_ulong syscall_err; +static uint64_t syscall_err; =20 #include "semihosting/uaccess.h" #endif @@ -260,8 +260,8 @@ static void common_semi_rw_cb(CPUState *cs, uint64_t re= t, int err) { /* Recover the original length from the third argument. */ CPUArchState *env G_GNUC_UNUSED =3D cpu_env(cs); - target_ulong args =3D common_semi_arg(cs, 1); - target_ulong arg2; + uint64_t args =3D common_semi_arg(cs, 1); + uint64_t arg2; GET_ARG(2); =20 if (err) { @@ -300,9 +300,9 @@ static void common_semi_seek_cb(CPUState *cs, uint64_t = ret, int err) * is defined by GDB's remote protocol and is not target-specific.) * We put this on the guest's stack just below SP. */ -static target_ulong common_semi_flen_buf(CPUState *cs) +static uint64_t common_semi_flen_buf(CPUState *cs) { - target_ulong sp =3D common_semi_stack_bottom(cs); + vaddr sp =3D common_semi_stack_bottom(cs); return sp - 64; } =20 @@ -389,9 +389,9 @@ void semihosting_arm_compatible_init(void) void do_common_semihosting(CPUState *cs) { CPUArchState *env =3D cpu_env(cs); - target_ulong args; - target_ulong arg0, arg1, arg2, arg3; - target_ulong ul_ret; + uint64_t args; + uint64_t arg0, arg1, arg2, arg3; + uint64_t ul_ret; char * s; int nr; int64_t elapsed; @@ -462,7 +462,7 @@ void do_common_semihosting(CPUState *cs) =20 case TARGET_SYS_WRITEC: /* - * FIXME: the byte to be written is in a target_ulong slot, + * FIXME: the byte to be written is in a uint64_t slot, * which means this is wrong for a big-endian guest. */ semihost_sys_write_gf(cs, common_semi_dead_cb, @@ -688,11 +688,11 @@ void do_common_semihosting(CPUState *cs) =20 case TARGET_SYS_HEAPINFO: { - target_ulong retvals[4]; + uint64_t retvals[4]; int i; #ifdef CONFIG_USER_ONLY TaskState *ts =3D get_task_state(cs); - target_ulong limit; + uint64_t limit; #else LayoutInfo info =3D common_semi_find_bases(cs); #endif --=20 2.47.2 From nobody Thu Oct 16 02:16:36 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1754335329; cv=none; d=zohomail.com; s=zohoarc; b=bpqtlVcGfZHPW+pRp3Uogh4z6w9eekevguVS+VPjaYhv2FojXSrdfqMtM3c+Em1xWpRmulxCSuQToCFy6bzawQ8HAzX1/G9QEpCb7gE3Z5EdArm2BUtf91tK2xnU7c42z07bC1L/uR9bUo2AjHh+KXYa1xQ+Gbfr21EbrHMpUPY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1754335329; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=bB7IRnB2X72HyfFQdO8pk3Ty2DGMB4Kj1UdkMvzsUlw=; b=MOYRgvs3Yyv4PpMdqosIddj/yWXfNkXRaoOrxbO3l/Dyv/WNfWMrPV8jrOeYhNhVg9rG6dsHlBZOIcHA5gBowjH0FHiRU2ZC40noAOdomOGtcRv5tehnaIwp50s04upj163Xnur9t/knffCKz28Z13AMQKmRgYNT06C6X/Zz3Q4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1754335329077161.3751389920992; Mon, 4 Aug 2025 12:22:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uj0k6-0002eK-WD; Mon, 04 Aug 2025 15:21:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uj06Y-0001ES-6N for qemu-devel@nongnu.org; Mon, 04 Aug 2025 14:40:17 -0400 Received: from mail-pf1-x42a.google.com ([2607:f8b0:4864:20::42a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uj06R-0001As-TE for qemu-devel@nongnu.org; Mon, 04 Aug 2025 14:40:12 -0400 Received: by mail-pf1-x42a.google.com with SMTP id d2e1a72fcca58-76bdce2ee10so2488979b3a.2 for ; Mon, 04 Aug 2025 11:40:07 -0700 (PDT) Received: from pc.. ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-76bd78875cesm9940171b3a.15.2025.08.04.11.40.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Aug 2025 11:40:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1754332806; x=1754937606; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=bB7IRnB2X72HyfFQdO8pk3Ty2DGMB4Kj1UdkMvzsUlw=; b=q4leUAtVs4wFdbHZDmDHGyTpxED5lmYCXwUWji3kUuqojVManVqTHwjxaM05zR4Kt+ wWtrk2m6Q94CuGGfOyPwimI+gcHt6VFXxx6QTJy5cm8fDkTo3qGH8YUqDKYwF/6keraG S7D6pZwjBJeIP4KrdR1MxqdYIrUW9tLp83BowV/6rYoTzhVpbTvl3i3vTRnDyFfp/ScM 7vDRvYs73gWdbwpDPECzVuA3+I+1C0lJMjM9Sxxx1g1YJYOWEh0/ZVCvVWCUuEYr9rsy KnW/C0YkfKSDtz3qRx9Jzt650V+kXb6w5L9/y9bFrTvakAY7J5l0gTUCNL35Xf3qr2NH O9oA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754332806; x=1754937606; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bB7IRnB2X72HyfFQdO8pk3Ty2DGMB4Kj1UdkMvzsUlw=; b=bFqVLsSv0YpeOCxqz4GmBMLPriSNfrzDb10JgfNTH2hAxQZQn2oDgViy1+RXEER3+v W3QO+kWnZ7/DvSsE41ULV6z6szUbGUfgEBD7Jg4ebNK+g8AhEBulCTCjRgzLYPR6lu/t WIiHk6O1YOgHf936wcccyi2k3f6nTtDBDtj9BPo4BYTJFTdz+pmLIccQTsMI4hcx74vq VvnDd7pwOFdaSPJMU1UsOwrS+obRDbBtESyZU6r3v6K+j0gypOcm3Lh8A0eo3t1RH9lH hijx9SHcghwP3/DcyeURBKiQsXcOGozTikwIc3xBdkgzHljuNarJ9w/A0UxTFh2+N4Re LI9Q== X-Gm-Message-State: AOJu0YwQKvufcEDFCry6G2h93eipDdCHaVGDtajRR9lD3I6eZtyvjw70 t/USyYfgACAtHGy6y+/3JXhML+F8H5eS7J/8LCgyPeNyep6WLlQRLYXfK3yjNstBHgXwIBeLs6P oqqRs X-Gm-Gg: ASbGncvD/vQ25J9BvA3H1ZhDF/xb2lA/YN7dObl94A4J4M/IQt1knNm5qeoa7iW6grx oS8kK+auR+NToF4SsrHA+F5NTbECEZHpP5RNC/JVY6zf9Zp3WchL12FhSgR7jlyq8EEjBy9vyKQ 28mmCJ/XanbZK1hF1riZBLqgr+TJIzJnHOJ0nfexyl+rOHWY5nIyqYj+ilkcLq5p1PCOi/Unq/+ WiuKdnruumvYipxn+I+GvEEOowiTyzaXB6v+nMcz3+bIh4YlZ5DpRcGuHRvljhO5Hua4FhhIpvd IgbSNCEuYiaUDTPabDmt+dItsOVqJ4YMulCBCXO26vr/TyikJ9rhmahWFRGdiVsMzSSDxshobJL aDyCkAFnth5ay3H25+joQNA== X-Google-Smtp-Source: AGHT+IEYkGZM3k0ctQRWy6R3Zit6AC8O84fNQgxm3FWYumeodaFHzn1yK2QVOBU5TXfjz31HO9n39g== X-Received: by 2002:a05:6a00:2d11:b0:76c:503:180d with SMTP id d2e1a72fcca58-76c05031c1fmr7477209b3a.8.1754332806414; Mon, 04 Aug 2025 11:40:06 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, philmd@linaro.org, Weiwei Li , Palmer Dabbelt , richard.henderson@linaro.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Peter Maydell , Liu Zhiwei , qemu-arm@nongnu.org, Alistair Francis , Daniel Henrique Barboza , Pierrick Bouvier Subject: [PATCH v3 10/12] semihosting/arm-compat-semi: eradicate target_long Date: Mon, 4 Aug 2025 11:39:48 -0700 Message-ID: <20250804183950.3147154-11-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250804183950.3147154-1-pierrick.bouvier@linaro.org> References: <20250804183950.3147154-1-pierrick.bouvier@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::42a; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pf1-x42a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1754335332785124100 Content-Type: text/plain; charset="utf-8" We use int64_t or int32_t depending on ret size. Reviewed-by: Richard Henderson Signed-off-by: Pierrick Bouvier --- semihosting/arm-compat-semi.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/semihosting/arm-compat-semi.c b/semihosting/arm-compat-semi.c index f593239cc9a..55d7bf29ad6 100644 --- a/semihosting/arm-compat-semi.c +++ b/semihosting/arm-compat-semi.c @@ -501,10 +501,13 @@ void do_common_semihosting(CPUState *cs) break; =20 case TARGET_SYS_ISERROR: + { GET_ARG(0); - common_semi_set_ret(cs, (target_long)arg0 < 0); + bool ret =3D is_64bit_semihosting(env) ? + (int64_t)arg0 < 0 : (int32_t)arg0 < 0; + common_semi_set_ret(cs, ret); break; - + } case TARGET_SYS_ISTTY: GET_ARG(0); semihost_sys_isatty(cs, common_semi_istty_cb, arg0); --=20 2.47.2 From nobody Thu Oct 16 02:16:36 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1754335675; cv=none; d=zohomail.com; s=zohoarc; b=WWp/nNIvAwthxfX/th4Qh7b0doxVn1EdRRBMFZGrF1HPr+LUPq+6BITz1UnFzcTaBGthTOJWtbJvUvRa5Iuiw4uHmW6Dli7tZxFY16Z/K/m12qNXmD8KQfIrNrmiah0TiUBq5CJ+I0+6aPpWo3MRvF5+P6nIAJD8no/YW2RVGn8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1754335675; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=tr18OZZ52dyGR1rp5GdhWCgXctWVe7+fEbjUyyRt8KQ=; b=XFceGVskZDRjDv54CPJwEkPpLtiUJtAOm/bWLcDIkhi73JFRiJ7kiRka6O8v31ztiFX7+Z2kTkkEswI96Vei/oQi3Mge4MbiLzjiKbEg2Izen37loDlXn+l6Kjofjv2N/sZnX++dOIAHvjq/LR47F6Q0EaodigywpWeFeroj4oQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1754335675180228.66399243039177; Mon, 4 Aug 2025 12:27:55 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uj0nI-000740-Nt; Mon, 04 Aug 2025 15:24:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uj06Y-0001EU-7D for qemu-devel@nongnu.org; Mon, 04 Aug 2025 14:40:17 -0400 Received: from mail-pf1-x42b.google.com ([2607:f8b0:4864:20::42b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uj06S-0001BR-SU for qemu-devel@nongnu.org; Mon, 04 Aug 2025 14:40:13 -0400 Received: by mail-pf1-x42b.google.com with SMTP id d2e1a72fcca58-76bdc73f363so2879178b3a.3 for ; Mon, 04 Aug 2025 11:40:08 -0700 (PDT) Received: from pc.. ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-76bd78875cesm9940171b3a.15.2025.08.04.11.40.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Aug 2025 11:40:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1754332807; x=1754937607; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=tr18OZZ52dyGR1rp5GdhWCgXctWVe7+fEbjUyyRt8KQ=; b=biy3ZF4rQ/36P6RS+EAl3H9zyBWfxHyr/GE5VnV3EyHhCEqe8zYDoRwaqQmGgrRlLA vkhnZhdx22nDR9uWP0VpaE5J4o8wX7jrH5h39RopweQUud8EDC1ilwHwnLw1Cokjhjjt /MPCzoXYMrncnBtPgDAvIqF7hSJTdt6GUCyrOfyz+cceLtNtXadURcsyq3EhDQqlxv33 qd356ddJR85bAu8BaLqyLF3+kfKo3r6EpMFtYvNuXsO1GDaytJMBQmSL+si6d82mb7fq r7oCwIK7gN8l9FDWs6hZ+93dXbF0APQ0XoaremdVk8ASN2t8tdyf4nuIoF8PA+mAn42w 5ZNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754332807; x=1754937607; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tr18OZZ52dyGR1rp5GdhWCgXctWVe7+fEbjUyyRt8KQ=; b=FGjWEEgxrd2IdaPptNq/sZYDvAn7nzM9ygYGL31YF57fb6gJos7aFPYHvLlOvREKPi pVeyD1pLSGAVYY2Ssy9BHaFbjjs3lQUPDiH5cQ7q89Vnca2G48/mq3vJJeD3Z/BVz5nz 5FlpCQ69fOJfgxlGnIJ67qE3upCr5h0wPPebjTQs1PWGJBOZpoWvgB3u1A0spM/8NOEB gth17OrTev8ZXW8pOx+Ibk1otxbmAhwPQ2yzW1BTOqggFh+vECd8zpY+rKT9WpQ3sLBk xMa7G06agpCQH1RcdcFWg4atmiPavweGqGn4hjkV5NfSd7hElCB9mUh7WWNtnLAsW9rj Qcyw== X-Gm-Message-State: AOJu0YzdHcrXoyQABfiRbZJi6KP8wVRiWOLO4pV7Xg5qmKy0DMM2+Rxm g9WrswN50CbaA657jHYMKGZSofrGzGDRMr+bY7TuRw8D4mV4sRxYvhK3L92S+Us1Ik8QgQE22Ym sKkQX X-Gm-Gg: ASbGncsuCJCKDuUNIhgtfuM3H5SaW6kDldWLMFkIYVc+yd+HuzWjaXDm4vELr/BG++J OSq1jrnJ19aE0JgBC+mizhF1d1h7OC0VC/RzMuuz8onS3liiJNwOzP1y/XLcbMLnxLzOvAJHX+p LIX55JFkPmdTPz/X98NTip5y8KbQLL4VVbMQjHYG+mZUt14RE4is8JTkuaLPKh+FUZqmzPr2lei DAMa1oqLHOHWj8JDDhvO5aqjc6unlgUuECvUhD7oFOH1o1Cd5Q4qzaR1oB8PcaF/DtaCeGzdNLU Qu8dly1IdakraYwMVZtioTs0dYW03kSrlzJhLvVuA/QdUJ5kYRpM+Rf11QTpgT2ZGgtLgDDncfe 05+KdScClIv9Nj03kXWoo1w== X-Google-Smtp-Source: AGHT+IG+4auJINEWuw5Xp9QJD1n1E3XGcsgPw/I6tC7S02jAt1aOzDdFIEiqKxwRiFNulspvUlxGAQ== X-Received: by 2002:a05:6a20:9389:b0:240:1a3a:d7ec with SMTP id adf61e73a8af0-2401a3ada6emr2876682637.4.1754332807334; Mon, 04 Aug 2025 11:40:07 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, philmd@linaro.org, Weiwei Li , Palmer Dabbelt , richard.henderson@linaro.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Peter Maydell , Liu Zhiwei , qemu-arm@nongnu.org, Alistair Francis , Daniel Henrique Barboza , Pierrick Bouvier Subject: [PATCH v3 11/12] semihosting/arm-compat-semi: remove dependency on cpu.h Date: Mon, 4 Aug 2025 11:39:49 -0700 Message-ID: <20250804183950.3147154-12-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250804183950.3147154-1-pierrick.bouvier@linaro.org> References: <20250804183950.3147154-1-pierrick.bouvier@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::42b; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pf1-x42b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1754335676530116600 Content-Type: text/plain; charset="utf-8" Reviewed-by: Richard Henderson Signed-off-by: Pierrick Bouvier --- semihosting/arm-compat-semi.c | 1 - 1 file changed, 1 deletion(-) diff --git a/semihosting/arm-compat-semi.c b/semihosting/arm-compat-semi.c index 55d7bf29ad6..a14de23d45a 100644 --- a/semihosting/arm-compat-semi.c +++ b/semihosting/arm-compat-semi.c @@ -34,7 +34,6 @@ #include "qemu/osdep.h" #include "qemu/timer.h" #include "exec/gdbstub.h" -#include "cpu.h" #include "gdbstub/syscalls.h" #include "semihosting/semihost.h" #include "semihosting/console.h" --=20 2.47.2 From nobody Thu Oct 16 02:16:36 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1754335473; cv=none; d=zohomail.com; s=zohoarc; b=eQ/gOarf9ah+Q7EcK0EWvARim33Fj0r4woSW2glREf0Vq8pHNiRKlk4GjI1nSWG0zlJR76fmgxKWjZfN+I7wLM6uIzFKhtRkhhWL5OWueR/yu06WnuAphJgIT0w7Jp2MmSvgWuTqxfkRxyYxd/trP+/EPdYECHKeh+VKdMMIyA8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1754335473; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=N7GETELPD3VGF6/REM63Q115JGqnxMS395y7OJ9SbQ4=; b=eFSdh1CgmFLJgZzEpFhMJOdEpEJB+VKY07GMK+CQhqF7CyaaUEsv+Wjt89EsSV2L9qIgkoTEmXtKgt7HpEJuRIfFVSQ1bKFS0dyueD8Pak0iVfDTsMK8Fdrf2cV/0WawxN4NTOxagdXhijV860Or2zZGZQTB1qiEinBtTKcB1k0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1754335473377278.49015335433353; Mon, 4 Aug 2025 12:24:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uj0nM-0007Vz-UY; Mon, 04 Aug 2025 15:24:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uj06Z-0001Ey-CT for qemu-devel@nongnu.org; Mon, 04 Aug 2025 14:40:19 -0400 Received: from mail-pf1-x432.google.com ([2607:f8b0:4864:20::432]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uj06U-0001Cq-1l for qemu-devel@nongnu.org; Mon, 04 Aug 2025 14:40:15 -0400 Received: by mail-pf1-x432.google.com with SMTP id d2e1a72fcca58-76b6422756fso5528628b3a.2 for ; Mon, 04 Aug 2025 11:40:09 -0700 (PDT) Received: from pc.. ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-76bd78875cesm9940171b3a.15.2025.08.04.11.40.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Aug 2025 11:40:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1754332808; x=1754937608; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=N7GETELPD3VGF6/REM63Q115JGqnxMS395y7OJ9SbQ4=; b=JwnMMieW59FlGFww36sqIQEcQKZ0fr8odNSGx6ZRys5nf/fLksQ6t5H8aqlqpgRn6C twWDDH8qYNquWY1OywI35q3tDHUByUdhtx12sLETIZRFn0hIW2yhPD2Bi4vJCPOmOVuP Hp7ghOgj08biZpDLXghE7XMvFOE/HaZudh12kCgoKcrLI7y3moCt7FZX4rxHi+NZ7nYo NURoEnzRrlvEu78fhZW6Mu2+UnfnLmU6sMJIuxTel4fgYzKQYYH3BFqLFcsIEeV+VBff VWxdayrGmmoXkanjUhxoXw1+5V8hzuAHgYBmYPV4mwBaHCJcdTN5Zj9Ltr6SoV5+mwoh +tHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754332808; x=1754937608; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=N7GETELPD3VGF6/REM63Q115JGqnxMS395y7OJ9SbQ4=; b=LIGFHIfYknKNVC9WOoOXColQeOg7MoH/hiUXYZ52EjBcCxckc+MtX/AjWCdaIPMplT dAsXb5EvLd6vsCqKtOWnB0s9JLjFW/OULz4OreT4ZSMgDvBymuyALyQb6KjuWe8F+lKm 9R49Iwqrtxet/rPr343bwVrVZ+yOF1TXlPvbBXPaR4XnSC5x8Sjp6tM0CdHdE7ly6FYX c2h2jzDqDklSupWr/HX/BVGWSVlLOp5w9fWsfjArI2zz13DurOscbs+LzwyzGyMEjikE MLcxwmPLTx6KKBJz/I//5A+6MU6s9fegoOOA1meWhXVy7xnXwgJLDSdgQ4LKtogk6NXo 60SA== X-Gm-Message-State: AOJu0YycGeuInydiuh9PTBwPjZx51uzPXPhuRhVlN/vn3UH7jSl9bs5r WzP5H6pRc5+EfZwRA1nBRWscKXA7Dfr1Dh2foyIrLAzvtrKUHR9071mpIpTVmfdtNSu0hLBQ4sD UlmN6 X-Gm-Gg: ASbGncttzZQKRB6JrzO523qURdACLlWRHyO5poS/xdD+FKeoQET03lAjJdjMUDyB5mH vTMMCp5HpeEIpEWXPXvmLdhwaYgyY1OFwd5Xe0zaIfWA6fdUpOIy0KJ1hyuUO+wuyMLeLks4PaK mNEObDzQ3xsm5gz1robgZ84QqmBIjGuAX6oerH5OHhnEVyjzQ7mekCsBm1wimoh855mVTcdWNxR dgTbyrKga/VGR/PaEfOYI+Dne0NQqvK3O/btjM60DNkdXBIEXsNj6WYpTgklEIFDUucNgSWjSdU MgU8tj9S5P1yQEVtMKa+a0qqXElnMsBC63KapNBkiS8aeR98FkFx/rH1jrZa/PSUPdxJwKDvjNF hgfomwqIB6cKvqIRy2haZGw== X-Google-Smtp-Source: AGHT+IF20A0xw6dr748L3hzgexzxzqaCgMjAnpW2xiqCBQju9RkBDpCPap/SDvrOCHY1D6gQnUjbvg== X-Received: by 2002:a05:6a20:1583:b0:21f:bdd5:d71b with SMTP id adf61e73a8af0-23df9714e59mr15191169637.2.1754332808287; Mon, 04 Aug 2025 11:40:08 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, philmd@linaro.org, Weiwei Li , Palmer Dabbelt , richard.henderson@linaro.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Peter Maydell , Liu Zhiwei , qemu-arm@nongnu.org, Alistair Francis , Daniel Henrique Barboza , Pierrick Bouvier Subject: [PATCH v3 12/12] semihosting/arm-compat-semi: compile once in system and per target for user mode Date: Mon, 4 Aug 2025 11:39:50 -0700 Message-ID: <20250804183950.3147154-13-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250804183950.3147154-1-pierrick.bouvier@linaro.org> References: <20250804183950.3147154-1-pierrick.bouvier@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::432; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pf1-x432.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1754335476196124100 Content-Type: text/plain; charset="utf-8" We don't have any target dependency left in system mode, so we can compile once. User mode depends on qemu.h, which is duplicated between linux and bsd, so we can't easily compile it once. Reviewed-by: Richard Henderson Signed-off-by: Pierrick Bouvier --- semihosting/meson.build | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/semihosting/meson.build b/semihosting/meson.build index bb0db323937..99f10e2e2bb 100644 --- a/semihosting/meson.build +++ b/semihosting/meson.build @@ -12,9 +12,10 @@ system_ss.add(when: 'CONFIG_SEMIHOSTING', if_true: files( 'stubs-system.c', )) system_ss.add(when: 'CONFIG_ARM_COMPATIBLE_SEMIHOSTING', + if_true: files('arm-compat-semi.c'), if_false: files('arm-compat-semi-stub.c')) =20 specific_ss.add(when: ['CONFIG_SEMIHOSTING', 'CONFIG_USER_ONLY'], if_true: files('syscalls.c')) -specific_ss.add(when: ['CONFIG_ARM_COMPATIBLE_SEMIHOSTING'], +specific_ss.add(when: ['CONFIG_ARM_COMPATIBLE_SEMIHOSTING', 'CONFIG_USER_O= NLY'], if_true: files('arm-compat-semi.c')) --=20 2.47.2