From nobody Thu Oct 16 02:04:05 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=1755875289; cv=none; d=zohomail.com; s=zohoarc; b=Kqkjf5ArWygezZMjhvMqFhy4zpVTO50hO6XnI16Ei4JWKW8Lw4R/T+aUukDcb/jheuc9xIFqiWMU8MIjstHZN8hkqW5nHPvSP67+5Cxe/Ozu/kT0r2wVK4KhCYn1hZc34bo45BThjikLnbHZdHThMtFE7er1htTtQNoXb+3wCIE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755875289; 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=ltPXQnT0QDhxUzqTis+2rKckjv2/302iQph7vwZ+3lCXtsgv3SLuRtB/fgRxSGM7jQlS1QZQaZOBBi5MIVdocfHWAxKd86fRSRCFQiKp258WSCYAQLSC6I9tLzz0/nYl5fe6fD3LuRG1G1gHDHihkOEXACHXw/nvqDY63vbDIeE= 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 1755875289890425.96247547028406; Fri, 22 Aug 2025 08:08:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1upTGd-0001hd-CO; Fri, 22 Aug 2025 11:01:23 -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 1upTGZ-0001fI-2s for qemu-devel@nongnu.org; Fri, 22 Aug 2025 11:01:19 -0400 Received: from mail-pl1-x630.google.com ([2607:f8b0:4864:20::630]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1upTGQ-0004zL-GE for qemu-devel@nongnu.org; Fri, 22 Aug 2025 11:01:17 -0400 Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-2449788923eso16877025ad.2 for ; Fri, 22 Aug 2025 08:01:08 -0700 (PDT) Received: from pc.taild8403c.ts.net ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-245ed5406e4sm85929495ad.165.2025.08.22.08.01.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Aug 2025 08:01:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1755874867; x=1756479667; 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=NJuKZ3OJs4LQYUQM7cdS9GDsoU2SB4ytOnfqsz6H02avd8VBwim7x9/MqIRSpuCU57 yIRmWilbENdIzIuccxZXHcqgcZ3onLOtNONFMA3Sc0MRNQuVHv8407qPS2HkrV4/GJUg O/F7yikixcHorD7fp9cYRZB2dpUTin+Tm5RlBi6QvHiV0lK+L882c/4Lh7AY8CAnmWl2 PQ9j2BMhpVPjgVdEEs1VSAR9P9QREY070EIoi7Cvmp5sgDUU9IcDPHxUqJayKHL1iarw FtZMbAIHiBsRb92/kPjkO/kLHLu3KVus/AzbDXTtZSPwZG8hM+qv/3scOO4IMit5W2ji Tqjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755874867; x=1756479667; 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=bUqIsrgXu8THdOIJPyVM3GCXKt89BavRjsvcDIAe5Vw1K1PJhlvErqJ7/zSo711Rjm 5DBiUs3a63tFtkkZ2ezWLe6xLQ5GpoP4/Rj3PP4dPutDHyfP1O3S1AM2Z/7YacqDxNaS 2fwJ3W3sns6MG2sHqjjsEwY7CR+xivR+JBWAgQntjF5j8gr/JkwjUwL9dHJYbekzoiQ8 VSSB4SGbL69uS2gQ0aLPcY5miSYBC2Y8d5p07cZefw51rIK6A1RUOcbmMx359KwKG74Y Ei3tIyu/6IBkLJB15uql+qRbRl0peFCXHGac1exWxv0voBy7hTBFJyEKYEFF2lUOWtNc FMMg== X-Gm-Message-State: AOJu0Yw0GJKaz4nREvsNS9F8r62W5OlM/zfx0JmVCcQQqnJA4jutpd2C LwdK8aI32uLxVdL4uc4AfkIV5/8KHQbxiWCZe3F40Sh9VvVJkdE2eBOHufSaxkww2NSQ3gP0/eb nxmXSrMTv1w== X-Gm-Gg: ASbGncsDXiU2a3PGZZakSotuH07CE8aNyFXTlizUYCilSuudY60UDSN61QYouqvFbzy MiUu4iC8iiLfe/1nlnPXnNy3IN1RTrPvfDTSdkYKgO+bVqVeYr4kq4fFZNOCAPkGhnvd8aSkHdF w9DeXVdMZWSAZjTmjRRWxL0zLT4h6MoiqRq8t/qjhgRZKhnzvNtj80qXCYkAgZxQgxKCf9gM90h XOJS5SustVe0q317MDb0/gwPLMlLhReBGdKL56Fcr1yl8zksFL2jH1k64uYroW+Z6GEXMm4HWAM IvOGnGLHQHmyh85iQzzdHud/S4KgPBijEofghb119TaKMuOHvfWOPEJuaEqQe7CWScesqLtNXsv 9K1xp4kNFWWUuJbOBvvA+gsGrJGHHo18XxLuHlfrnFKS+g4eVbL1+uw== X-Google-Smtp-Source: AGHT+IESZSrR9PWVZp/aD0NQRGIZvZ+tgvtiLTTNzQVTukGSHgitWNkqYam8JON3I1MZdU6EsKWXTA== X-Received: by 2002:a17:902:ef01:b0:246:4077:456f with SMTP id d9443c01a7336-24640774ecamr34379935ad.58.1755874866385; Fri, 22 Aug 2025 08:01:06 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Alistair Francis , Weiwei Li , Palmer Dabbelt , qemu-riscv@nongnu.org, richard.henderson@linaro.org, Daniel Henrique Barboza , philmd@linaro.org, Liu Zhiwei , Peter Maydell , Pierrick Bouvier Subject: [PATCH v4 01/12] semihosting/syscalls: compile once in system and per target for user mode Date: Fri, 22 Aug 2025 08:00:47 -0700 Message-ID: <20250822150058.18692-2-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250822150058.18692-1-pierrick.bouvier@linaro.org> References: <20250822150058.18692-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::630; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pl1-x630.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: 1755875291831116600 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:04:05 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=1755875305; cv=none; d=zohomail.com; s=zohoarc; b=dHi8P8pKcVspuyoMSkrmtUvguYBInimbrvphD+8+0CkUGqggqJBzM+fBYWrFW3k5NDeB1CvTonGTrnk3bndxiwiXP/HMsRXnuzracfh2NQ5EO92jiJCkinEYEYEyy5CWiBPFbT1RXqzmIUM1XucAMpuXei8lHB8+H8jD59mX/JA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755875305; 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=JD5RdG8WWj8oyzxUHPWf5kiJZf9Gxaysx1npvUlrMsWWQpEOs8yD04U9aew+ZPkCFUgua8M/vemgpeHf+ZhqQ9gPUeFGZpI7cH6vzgIHo0RpCd3bwiOqkfFuL1JQg2lM1Vdqc991YjedalQIy+2LGygkK2RTyHWj8Y+WW+99nhI= 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 1755875305208625.3117316318019; Fri, 22 Aug 2025 08:08:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1upTIA-0002Yd-G0; Fri, 22 Aug 2025 11:02:58 -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 1upTGo-0001oT-In for qemu-devel@nongnu.org; Fri, 22 Aug 2025 11:01:37 -0400 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1upTGV-0004zU-Rq for qemu-devel@nongnu.org; Fri, 22 Aug 2025 11:01:34 -0400 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-245f19aab74so16920645ad.0 for ; Fri, 22 Aug 2025 08:01:09 -0700 (PDT) Received: from pc.taild8403c.ts.net ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-245ed5406e4sm85929495ad.165.2025.08.22.08.01.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Aug 2025 08:01:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1755874868; x=1756479668; 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=kk0X8FVQzS5d0e5UWUvxGmRrhg1T8EUZ0Rd3JB35dwk61n3Xc0lela3a9HPDAOyDOi Ci+Vq7g8pvdoloN1DDkICbNhZ6vu3U9eZHpuyT5wGC+i0vZDaPoS3oAUcNaiKTiAZWhk VoEvO2DsW9uju2Ad/fCIdaXcEkyGD9R6iKs+zEuCfwEIUI+mZ8CJcCe5xQ8AKN5fSPuZ u+w6p3T63byXqmqIbC0uL3ZwjzMip+Qc65zWD7DrznoxT7ulkBoNS71FQYmErKRjl8al seCjjvWR4vUiiTJFpt4+Q5iRfY01R2rsbFVJxYHWTVQvVolJVQKdxLTkZ5ijb+ULW9dy OUWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755874868; x=1756479668; 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=oYgiLJWXMwcq39W9u6bryro1rzMOacrm0JIpZpU5XWIa8tFRKz4TvD3HpnwLBwfiHU 5piBHEXx7rn5vJbRC+6Jp1gnBIxXH41frIX2rZ3zq8ADPsZt6dZOjlKknyZ4OTob8a3l +UMexHpxN1kVmYO63/XCfzoD3qRwOzP4gmHhI7lcxbZNwUfz37WTpb60IwLx5TgdL+wm PwEeU80HIEBc7WBG5dP2+ym2mSsX8e1LoBarvuen80WLRGzPa+pxTZcFYyaupnTMRkwU GrDuky9Y4sKJSYW8p6NpAdF72nt3cGLnwUbvM4cb69SGzsP22WTrN3JReE1MoT3BGIqD +5rQ== X-Gm-Message-State: AOJu0YyBX5/Hfr44jHR05u2vaitgssnWhhD/2tfbm26PVv/F7Nlg9CHI e4bUXLITWPOrK/FXwsykRLimgJBdybwWa+TyEY3KtdRK8vBb5O6SAurS+b+wx1h25y/4RJ3a32z 361Yhs48Etg== X-Gm-Gg: ASbGncvmwyNzqVchw7LBWQSHdMvvbgTbZ90CWik6BKRA0lcxdSFN0g+zqZ7Eu51Z+Tc NqSIc9HPMpN6r9SToXNP7PgSPB1kE/y+4oM9YX1y4xornzv1J5o9EGM2vybvEilAzUzjuQ4uXe+ +PA/wBuB1WTsY6yGIQtNV+sJ7KESjDy6QlP46RK1px6bFixDxl8aFDpqMXTBU7n5ioO5598LqXY 1FqxMEWuT5pkFoHk+7dZGS0iionazdA+zXd7zrPCU9HZoCKbvljHbWJ852QSZK0mPGgSnZz3+fR Ddqfh+pna7xsSvUdBgxcQLbenStbHqyuoQr9cf4/cQhKC6YBCBpvKy1dJNwRzbyzL4KGuSBbm8h 87YInfMI1wd2XdgTDqXTcqfZmIxMSYxG30xmwxqiDMoM= X-Google-Smtp-Source: AGHT+IH6mt2q3ZzdlpEHk3lFip8gHlSpq44UBC7IjkUPr+l3w5LfZekurc3LUmz+I69rdZWVPd4hyQ== X-Received: by 2002:a17:902:ce02:b0:23f:f68b:fa1d with SMTP id d9443c01a7336-2462ef4fd9dmr45261035ad.39.1755874867591; Fri, 22 Aug 2025 08:01:07 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Alistair Francis , Weiwei Li , Palmer Dabbelt , qemu-riscv@nongnu.org, richard.henderson@linaro.org, Daniel Henrique Barboza , philmd@linaro.org, Liu Zhiwei , Peter Maydell , Pierrick Bouvier Subject: [PATCH v4 02/12] semihosting/syscalls: replace uint64_t with vaddr where appropriate Date: Fri, 22 Aug 2025 08:00:48 -0700 Message-ID: <20250822150058.18692-3-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250822150058.18692-1-pierrick.bouvier@linaro.org> References: <20250822150058.18692-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::62b; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pl1-x62b.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: 1755875306551124100 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:04:05 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=1755875142; cv=none; d=zohomail.com; s=zohoarc; b=dmOw0VkDv/VhHhXgA3+Z1zZX7IAX6yvpWKM9t1mV7vURKThrgTEEOusf8Ts999LfZiLPkaE1aNgjJjkZ4kIHYm9NWLjJiT3qNd1e732WxzgPS14o9Hf6Y9h6I2MW4lXldxzp5U/tNjLmz0HhZ740PvCleZNkvePedOf3Wia9neE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755875142; 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=KJQ3yqL0QcGaDGrPvoX19322iu8TCHWoG8v9rIz4DAVAbR7kbKIURczFr/iiCak7yb9XkBg4m+N8O1xuJ3l4isS22zoJwhulYbYpb/dp7kD9zHiipihBL5660qofTV4VgVdLe0htWoj3tGDFJkE4vAIx9JkXnVzXqB7d6qAYLL8= 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 1755875142537535.6847057422387; Fri, 22 Aug 2025 08:05:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1upTHJ-000236-MO; Fri, 22 Aug 2025 11:02:06 -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 1upTGk-0001l4-6y for qemu-devel@nongnu.org; Fri, 22 Aug 2025 11:01:31 -0400 Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1upTGT-0004zg-KR for qemu-devel@nongnu.org; Fri, 22 Aug 2025 11:01:29 -0400 Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-2445824dc27so21201195ad.3 for ; Fri, 22 Aug 2025 08:01:11 -0700 (PDT) Received: from pc.taild8403c.ts.net ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-245ed5406e4sm85929495ad.165.2025.08.22.08.01.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Aug 2025 08:01:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1755874869; x=1756479669; 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=h3yZabb/4uOkN1rgSBr9dD6ZProPnPmCJtLhFHVTJZpojbi6Uh681aJR8NyQlWfZjA Q5Vrniud4/qvypGDysyD7YISB3pErmWUlEFzxYLtlZUCdNMuxwPMf39fGxxtw2hWQyZ9 ACTSLsb4qrFTpMTjvFK2KBYG2jF52XG18g18evq8zefUUOueL/xfB1gjhAzP3ciqPnhe 1LTjdG9PW+e4zkNAQqURRv6/67aHEVORadylbZIcyn0pHrSHy1vaQC8B/siytcCfdpB0 nRys1d46D2n1uN9vGt78vumMsuew4ke63Ii40QPgz8AqvPtPyARGRNVGBUVP2pcLryYt VsTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755874869; x=1756479669; 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=LP1P6gwe3wIyLP2TEtw8A3QBgDhQJOvAh5y8gzNHrgQZhz4RyKWYluISAapN+rNRYQ Omv6AInyNAWETyyCTJuQqEp61gURCAwBcJ4TNHkdsndiU/OwSjXnO+YxxcKkNh2EbpeQ +c9YnQ6J3d7Pbw0VWEGvv5zOa/ZSiZvZYGJa4B0RXLfEc6tcpIthK5X01OnAyItasAKI WVBf19iHIdi9B5p5mpvOfrqUIC/DkOGogU+8si8pCtrZk5zqIptEo5XItGarBvrpZTrQ VODEGJusiyJdFX8kWUciU/7jacmqCEO8qe8+CsC7FSOlP7t0toeQDh5Jfn9Fd14pAWS5 mGNg== X-Gm-Message-State: AOJu0YyZ/OuwLMGHzH3BuMCV3CSvjoS2W+/qeQr9G/OB3ECI1QfpYQ2z CV+f1EteHAqrJVJhHOWuiEpxQu2/jFHOsW6+3DOolTPECwLg8inTPbIYT4crGvDcEYzNVgfWCTj iDGYTtWITaQ== X-Gm-Gg: ASbGnctZp6dwG1vqU4toCs27FZtkGUgv8gFw4zNPa/D82qhU5SkhHc2jftBehcOR5Pt aZaeQlP03yL4YrCO3XD1vTnrvIPfUYdOglomDbDTBktfdbC24MXEWBy29KhMhfldXyNIp8VJ3fb 1EztIbJmbzHYFxKCFg/hb4c0TFErCE81b2RL7EjXW/8wdKewb3AcbNYODAQcyI3RI7kEaqrrm24 U89fiqSrqhmNKDrqmDtiFpfzThgp86mC2ItJXUcGhHYnKOOXhRPlyqifdsyaHL+dZU4kRZmPAJi iWRUppMCWnIYSaHRlRapxWqk9n4OqRftfl1xP0c44ejsQDGAe8Vn1QrKfgZmx1/1GH4aif5DxLV EHT6KtFrlLZyz+EOIjI7LHstUukvLR+BjySUEnHx/BUc= X-Google-Smtp-Source: AGHT+IF3toQpmj8h5tsWhOPCnEZzd3TnPsKwHOqHIF5l5vvq8fl4lmOXdwgv16NfyWulMLZ9dldmew== X-Received: by 2002:a17:902:e84e:b0:240:1831:eede with SMTP id d9443c01a7336-2462ef4cc1amr39835165ad.32.1755874868698; Fri, 22 Aug 2025 08:01:08 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Alistair Francis , Weiwei Li , Palmer Dabbelt , qemu-riscv@nongnu.org, richard.henderson@linaro.org, Daniel Henrique Barboza , philmd@linaro.org, Liu Zhiwei , Peter Maydell , Pierrick Bouvier Subject: [PATCH v4 03/12] semihosting/guestfd: compile once for system/user Date: Fri, 22 Aug 2025 08:00:49 -0700 Message-ID: <20250822150058.18692-4-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250822150058.18692-1-pierrick.bouvier@linaro.org> References: <20250822150058.18692-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::634; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pl1-x634.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: 1755875143976116600 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:04:05 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=1755875026; cv=none; d=zohomail.com; s=zohoarc; b=lnLFFK9JGMvwU8dMMQtyfJNUdSORciB4xMESd5QqybeFcIKPFmfX4fHb0UtUNry3Uvw9eufm7nuFrbTB0bG8lFl0Cngjg34EXQNHxeJPv7dd1ivnBzFh8XXtPBtWRvK+q5v9n5oHQs3M4oa7W4ayV7OXNGbehvH4F6ALlpXZz0Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755875026; 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=Ip/07jDLRmn55A9AxAO0k3ZA6eMIYcjBUNqH28VJGig=; b=iuu2DV7uaQhAxG3GEOB6f8VrYahx3FgUUloHHOHv8Bl3CtK/2Ig3fMlMo2t3bHT6I3cgZ9F/RbWKXnY9E1nH61Ro8wx2H4mN41qH93PA4QSweqp6ApPgL/6AJ/hCR+9cWULYdc4d5rbU0LE+ooYb2/EQD2Sxv96p5vEIXYQ2AEY= 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 1755875026116874.8065430789815; Fri, 22 Aug 2025 08:03:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1upTGu-0001qE-9w; Fri, 22 Aug 2025 11:01: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 1upTGg-0001kj-3h for qemu-devel@nongnu.org; Fri, 22 Aug 2025 11:01:30 -0400 Received: from mail-pg1-x533.google.com ([2607:f8b0:4864:20::533]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1upTGT-0004zn-Kq for qemu-devel@nongnu.org; Fri, 22 Aug 2025 11:01:25 -0400 Received: by mail-pg1-x533.google.com with SMTP id 41be03b00d2f7-b474e8d6d01so1447083a12.0 for ; Fri, 22 Aug 2025 08:01:12 -0700 (PDT) Received: from pc.taild8403c.ts.net ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-245ed5406e4sm85929495ad.165.2025.08.22.08.01.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Aug 2025 08:01:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1755874870; x=1756479670; 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=Ip/07jDLRmn55A9AxAO0k3ZA6eMIYcjBUNqH28VJGig=; b=tB4/W2GAU+7YQ+NVl6rU1Aftfznn96o8TfhOlOXW4WcQT7JUgGU7gWX26Nvt56CQmx eJEymmUtZU07S/4FplQJ6p8uHhkgsNJcfl9ziACmDgXNt58k12xfqiVCzUCXRpIFM4vE YNRiFCMUSFGC+UQO8t/qs29UYXa9hOXJ2oUVpB8aitl+Ul0r5Z7NyGvnMH0KeB6+zsXA 27GuT30N30yo7KHiO7MyWAYzxNpOca8yZ12xWCTpdYNzfrw63QBP62GdknJNS4hiucF8 92w+KtIeZHGV3A9tVEeKA+ONx+B/fi3ODBjy3MF01mA1SPBuvaHDfeBRCI2V/GFQnA2b j8rA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755874870; x=1756479670; 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=Ip/07jDLRmn55A9AxAO0k3ZA6eMIYcjBUNqH28VJGig=; b=QTT8GtdASV715W9hS4I30Ww6ysRshFm0cElW/vMwSnIc/d6W64BcdLiDEwOuQAviaS pvJCBwZyzuhTPb5uJkc8/GbOESmMnH7lUEzzekflCT56TkPWKDSLNm/07bUn1tNZzDu7 Dng+q+RosfY7XdYL8kmYYMtfjYcaqy1+1MutsP14O3lZc+slZs147y7chpt4BkCle6BM LK7O/QhBZahvqHqwkBn+PSciVac84c3wq/cf5q6QyPdWTB7ZgVmaiPOUcY+sXgyo+uIX MtklFAcX8zacIaPGU3F34jHEt12nXq8NR6yOrEteFAd4/MnlKw16reNiqxr1W16Z9alj jbcg== X-Gm-Message-State: AOJu0YwFkZZ7u06Y1//4GjMYOn8VfHXAIoukBVTu7vYpnLk8HcN1+GfN QhB/RKuJzQ4N9w3EqIpDSePAACzFux8tM9MeAcXfRmOR+3bZkjxQqhr7aJcnYbrh0WhWyz1a4sq eclLEZDFxcQ== X-Gm-Gg: ASbGnctlCNLQ1hrmDb33IxvW/wCwYjQ9aCBYClw86+QkGgbjDubisU/a0HYFDzIUsLs PwjuOjVZVXBWxZbB0A090nIfBugFV+yTIEGzJ0si77dySxC6uyy3/FIgslePfSClHHsh3W32cZk kRXRSqjic5DyceW6/lww2hsnRKttpO1xv4tO3AAEsr10Pu+CBGjVqFMhwQ4zx6UCnI7W1izVx42 hhQZFUdKQqYu/Ekw5CF9JuDFv7myaizMD4gJ/051arPE8m6IpGQzIXpFdt6iAlSAP3Tkf6BOlyH wwnJxsQQ82JQ/3xzZkSUPW1JobCC1RcUBXs0+UY3YcvMvCdvkJdxS/q5VC/gj68zzMOMRZSrfCm Yb2DsuejsVHaIQRfjb+PJFbvSVZXMNCYoGK0k5lW7iE8= X-Google-Smtp-Source: AGHT+IFm+WYJYSwq4c2rAUcbQ2F/KNZWR9BwSob7XbyViDG/2ZPk8mUgh5Tl064VrYT+QsD4SIck7g== X-Received: by 2002:a17:902:ec88:b0:234:bca7:2920 with SMTP id d9443c01a7336-2462ee59196mr54824695ad.24.1755874869794; Fri, 22 Aug 2025 08:01:09 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Alistair Francis , Weiwei Li , Palmer Dabbelt , qemu-riscv@nongnu.org, richard.henderson@linaro.org, Daniel Henrique Barboza , philmd@linaro.org, Liu Zhiwei , Peter Maydell , Pierrick Bouvier Subject: [PATCH v4 04/12] semihosting/arm-compat-semi: change common_semi_sys_exit_extended Date: Fri, 22 Aug 2025 08:00:50 -0700 Message-ID: <20250822150058.18692-5-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250822150058.18692-1-pierrick.bouvier@linaro.org> References: <20250822150058.18692-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::533; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pg1-x533.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: 1755875028336116600 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. Reviewed-by: Richard Henderson Signed-off-by: Pierrick Bouvier --- 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:04:05 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=1755875021; cv=none; d=zohomail.com; s=zohoarc; b=k/MLBzGZszIHJlxFa6Koia3tSZHaRZ1Z05ASaWsxpMNea4yAFxbrlKYhy9QYDHT9ts4THxAmX0I4Bf/6fZR9RnOZbivw8Qx/Cb7MxG+T/QzH3kZTJdldgHht66rLTrrKfpjstIQENcf4CeXez2hwYtKMQk2zsQA/AKGen/trnIc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755875021; 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=VOVnisglo5jzNI/INr1+W/vKqDDJp3WOe2RoZiFusOw=; b=Hk9XEbqNEyXlLHAXCaMrgovAAWzJc3VRw3JUC3rytK8U8krDDvSSmfJG8xOl/MOFkYWPPDzwgppfohpLbveVo/0FMjhEr96vxtVI0KyimSzmpLAPfPYV81p6Tq8Df8CdMh18qB6KlVaNAf02/FP5lQKqlR53g7ELCOqeVX3c65Y= 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 175587502172930.950428422590335; Fri, 22 Aug 2025 08:03:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1upTI2-0002AE-17; Fri, 22 Aug 2025 11:02:51 -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 1upTGo-0001oR-IT for qemu-devel@nongnu.org; Fri, 22 Aug 2025 11:01:37 -0400 Received: from mail-pg1-x535.google.com ([2607:f8b0:4864:20::535]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1upTGV-000505-39 for qemu-devel@nongnu.org; Fri, 22 Aug 2025 11:01:32 -0400 Received: by mail-pg1-x535.google.com with SMTP id 41be03b00d2f7-b49c622e598so388238a12.1 for ; Fri, 22 Aug 2025 08:01:13 -0700 (PDT) Received: from pc.taild8403c.ts.net ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-245ed5406e4sm85929495ad.165.2025.08.22.08.01.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Aug 2025 08:01:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1755874871; x=1756479671; 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=VOVnisglo5jzNI/INr1+W/vKqDDJp3WOe2RoZiFusOw=; b=LX4Jq8G/URrRA4zxuMDed21XxvKKKHCv1Cevk1thilAkoSxpuKYcHlw2eyRPZ9HcPG xaUapCAorHZb7WZaMbQ+/WYnc1yzQrggs3Et2/V5uB0qX46vgZ2q5GrStXFOoX/6CKUJ xWsuLBQNa3oQTP/Pjqbuv/+R6DwQ83GfOJzq9scQzSxd3orKqktN4jLm+IKtjuLEoiEg n51/fWgWXs5zngu2vmcgZRUKwHxKmqDwATiBAeWx6KuEp7fZJkjRnBZwMpopYNvV3Qyu d8iUot/mmYIa/W1OjIv6ZpNu8s6/iduCNO9or4i+S85HxhOKzOhc6baLNJ0Lbh5r66U1 x3WQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755874871; x=1756479671; 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=VOVnisglo5jzNI/INr1+W/vKqDDJp3WOe2RoZiFusOw=; b=vYM4SVgceSA1dF/J1PebsvZvmTmuv+dwn42kvoQhsAfxzD/dojUC62IyprD9b3AWPg 0ppzsJPdTSOC/7DecpVwO0u1RrWRVezE1+CmQGEK/+oXIhxofEK0hun9vRSXcr4NpepJ di7s3ktsm2+obntu6iJUg67RJJ6rrRTIDcgfKlF53kcjOFIUdhnHrH8pFm7hWBa6SWpW cdshu2Dpt+uRSeNhH5N7QlaAocRvpNrfLPnzh5ziVhrhbA0tA+VKYczR68r4TzMTj3Xu M6YDx4vK4c4Xn+H1DwlIKxePGhL1OL4xksj2QN2N+oEKWr6KUQq94s3UQr8oXB0eFeRZ PoMA== X-Gm-Message-State: AOJu0YxvHY/d6ReLxJDvWYUkr/8bV7KvcIunzE3ocIRHAboz4kx6D+Bn B2PMdbQl7Os/kxQvYBDtTYgIPkQUe90FFUsU9YvdqHVRYNnNXHPKXty3ofiTQ0dJ7sIVSoefCDr nSIoIGQDk1w== X-Gm-Gg: ASbGnctSM3uL3EQr7Gx8wuE60m1f6TSPXEyu/h8bZff5QfIA6+0qopclVlk2RS5lMSw 1k6KFyNuYRBDydJ9wsUHupPXM+AZzIASmlzYLNNzVo7AuVjcTtNaJBDtDhm63vyrxQUKCPPlXAX sT6olpqvpp4d4UaqIXCMKci2W7MHszox6BOP/1yMuDffihxKAmBtRRu/L15Q8e24STiCzfEY6nw VvDCUQ+/VR+IeQITmkCGX3B5mTmZ2IH2MMJ04tq7eK4vGG27n3+ljO87ZNOkA5BqFrpjMnQG6xk AwImlz1QNwevM8xv4kPGkpPGO7RnISib7kqh2SRdVT88BHjWkwubfHJoEqGRrTylzVl9pyvjsvS pHOmxdjZSEMbIcRuhlaZDT0Q6yonwMn2wsASidzXkOFM= X-Google-Smtp-Source: AGHT+IHG9SrUtbT4bltQf5ip7UYhwh2l2YL9y9U7JzczYp5hwsJvwbBP2bBw9V4Nqpj+yfm9QJrI+Q== X-Received: by 2002:a17:902:e84f:b0:246:648f:80a3 with SMTP id d9443c01a7336-246648f8493mr3259795ad.50.1755874870919; Fri, 22 Aug 2025 08:01:10 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Alistair Francis , Weiwei Li , Palmer Dabbelt , qemu-riscv@nongnu.org, richard.henderson@linaro.org, Daniel Henrique Barboza , philmd@linaro.org, Liu Zhiwei , Peter Maydell , Pierrick Bouvier Subject: [PATCH v4 05/12] target/riscv/common-semi-target: remove sizeof(target_ulong) Date: Fri, 22 Aug 2025 08:00:51 -0700 Message-ID: <20250822150058.18692-6-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250822150058.18692-1-pierrick.bouvier@linaro.org> References: <20250822150058.18692-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::535; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pg1-x535.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: 1755875024382116600 Content-Type: text/plain; charset="utf-8" Only riscv64 extends SYS_EXIT, similar to aarch64. Reviewed-by: Richard Henderson Signed-off-by: Pierrick Bouvier --- 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:04:05 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 1755875232103304.82455033318263; Fri, 22 Aug 2025 08:07:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1upTIR-0002u9-6r; Fri, 22 Aug 2025 11:03:18 -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 1upTGt-0001qy-71 for qemu-devel@nongnu.org; Fri, 22 Aug 2025 11:01:40 -0400 Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1upTGb-00050Q-5J for qemu-devel@nongnu.org; Fri, 22 Aug 2025 11:01:38 -0400 Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-24458272c00so23722095ad.3 for ; Fri, 22 Aug 2025 08:01:15 -0700 (PDT) Received: from pc.taild8403c.ts.net ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-245ed5406e4sm85929495ad.165.2025.08.22.08.01.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Aug 2025 08:01:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1755874872; x=1756479672; 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=XtUWo35QSklJIjHCCAfytZS0pkBmgudg1gpCM3sLXZGNOrkcahXrHCH6iDERcJitxN rhNHzxwJHqWd3rJRBI8Vab/Oaju3G5XhQwNbNb3ohjkqJkCY3XFLNWVYQrK36xIg/tYX FsJNHdZJKAYfHfF2OCcRG/BwJ2QT4AezLG3Rf2NzNvaJmXq/Xc9aQlQ53Vi6fxRRR6uj OuzAwiDf/KVJpV1hrd/fTscIwJyrm0VJka5fuYEsRv51fHXiGQFZnq/LtFDZPyt+WOm/ W435d89rWaMp0Srn4/9Fb42zons8eXXjKOXSIGxLXEY50xG0keTlRnm8lNRtrKcCcMol ZBAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755874872; x=1756479672; 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=w43pB8kewRztwt8WCbJ082wsy+uSb3syLIDG9S9E78VMmMRRKeIIluejOEMNFnFicO +18zKflq8TSVve5tw5UAEZlTy/11e1VuMsZLZ+08mcMvwfxF19I6ncqrclpBqlbu27XR 4wVgGm5hGmIQVzPDilmA7z+TR5Mae8K5biLm7IH6ajAFNIF9Nxme8MG4l5I9yi3GMnut GsMmrviO7prVeOUKvpksb0N3TkgaiUwLXp5baqVd9lrZLb5EtwzEVRRHhiBjKPY1pDUv oqTcUyTeUMzo7zMNjWc2t3mi+aAc5kDbnXpjVIuIkOuPfTK27g4M5e5P2V4CT7wKykbF yJFw== X-Gm-Message-State: AOJu0YyNLdLZt9xqiZI72EY/lEVOJg+BAng/knhGbnIyEKUgrYp/shdA NXzq3XnS5UzIbHuk4d2F2848Q3OsjXUkT5vPDU4NHE5gHpat/fOQlA/VQRA8bJH2FcglbFUJuwB N4ImkmPnYjg== X-Gm-Gg: ASbGncu9yuxFMTZkqgwXnOsGvg4xUiNsF3qTdp0QdUdhFoKbTS02tnwRvenUnmeYoQa bD6mAZw6t6Wsj0KO5MYEmppkOQAyAha/df2+NL80D+j52YwRoO7VhMm+AeibtueBpFClLUg8Qqu bSnTxAHEfpbTMPzSPUO2b1q1ErhLklRisz70qmuLeWqEup3TEuxWQzSsXzTq3D0Yc9UihnASihO /N1ACsnxruCssn3m7y3Ke1VOP+mwcQ5mXgSx1X1by7Tzo0siG/TTmq4EC2WaPqrHO9TPzFbmoLz SkmDU96Rwhfy64raQ2I7On8oK8wbFVMX67iy7cJx0mqALka7DzfAFRTVqiAtn+xGGInOGe3gQZT 8myjYxmnmYbU7yGSGLEUeAmZeaenboOW+WNmhO4L/EoY= X-Google-Smtp-Source: AGHT+IEJzCll6RqVE/5VCuu0Q08A66b23ZFkHXuRy5cswO7+hyICPJ+BAXHiwXuiwU+N+XGfMPopgA== X-Received: by 2002:a17:903:230f:b0:242:8a7:6a6c with SMTP id d9443c01a7336-2462ee59160mr49861175ad.17.1755874871995; Fri, 22 Aug 2025 08:01:11 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Alistair Francis , Weiwei Li , Palmer Dabbelt , qemu-riscv@nongnu.org, richard.henderson@linaro.org, Daniel Henrique Barboza , philmd@linaro.org, Liu Zhiwei , Peter Maydell , Pierrick Bouvier Subject: [PATCH v4 06/12] target/{arm, riscv}/common-semi-target: eradicate target_ulong Date: Fri, 22 Aug 2025 08:00:52 -0700 Message-ID: <20250822150058.18692-7-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250822150058.18692-1-pierrick.bouvier@linaro.org> References: <20250822150058.18692-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::634; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pl1-x634.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: fail (Header signature does not verify) X-ZM-MESSAGEID: 1755875234687116600 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:04:05 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=1755875345; cv=none; d=zohomail.com; s=zohoarc; b=g7Yrx/Kh8ml2rkR1f01omIhs9IwIRhwNWSXb4uVYf42qxB6G+hdwWDWbbsR+fMM8cFsm82ERKuOOBjZUu5b2m59ApQwBNFNyna4AAvSMloQ5XEM4IMqJqy9VSz03JyDvvIkfrAmRznz7BHXMWp/w545f3QRAwCPB+mybc0T3+7k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755875345; 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=QeEC4xraEgo9NYjFDYXKYV/17/C3bmNwSI4RGcg0AVA7m2aBdvyfux3NMQ9+Ht7wI3+fWVjLuijyG/ammujxRlRTlrKkFd8Un+FRHuhOnO/z0dnpQUdnVQ2JXhUKNqMRX0+DITb863g8vO4kDp/eLwfgNf7bC1y1tkNQFWd9rCI= 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 1755875345188840.5491932228789; Fri, 22 Aug 2025 08:09:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1upTID-0002fq-Bi; Fri, 22 Aug 2025 11:03:01 -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 1upTGr-0001pU-50 for qemu-devel@nongnu.org; Fri, 22 Aug 2025 11:01:37 -0400 Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1upTGY-00050d-SY for qemu-devel@nongnu.org; Fri, 22 Aug 2025 11:01:36 -0400 Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-24626e06f04so10665445ad.2 for ; Fri, 22 Aug 2025 08:01:15 -0700 (PDT) Received: from pc.taild8403c.ts.net ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-245ed5406e4sm85929495ad.165.2025.08.22.08.01.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Aug 2025 08:01:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1755874874; x=1756479674; 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=haq+rHzXqOrdAf7pY6CsUbnOCwqtB9mPo2NSXBjaNo3sfLs1bb8NmBpRL5zN3XwH+S EF/E7DN4ICUFv5PcVJhgLYHqDdoLMLAVSFE+Ad1Ceg+bVYMRjg/JIeNI0bGUTL/4I7mP 1FuPPTeI5vWE8zXDkttfrS+M76uDuNDiz5fpV/5hkphVkhj8dfZQqBaiCp9e7MMkce4K p+MkAGC6PpySV7CRQwpN+MVnrZjy7wWo3KdC1t8GG/AH0NnI2s0YFjqKfIOoznvrwJZG 4q/cLNhMtgUbLHULZvdJUxt5ZSMR/Vc6ljr5uLeXXMQ9Vf2vd0S2kCLaKAazQcyMVRSS xgPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755874874; x=1756479674; 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=fcgDrrLFt3pQQ+2gp9azw40LqpZ6LztHyjiiULkCrthcag8GjwGgcvzN5/97iwcuFM +vbuE6SyqBL5+S23wYenJENCuZVwfbJOZ+06z+KuZyTVOLyRYsJhLYchJTa8kQGZsGJp qshnwV3CB+mmouj7Z6RdEAYDDnoSCYE2DCZOtEQXRwk/7nfaBgMFQKqFF7XZ6NJG2cY5 3xoY9tNhqWkWWYGwJkMe5BE2eg7EvJz+hb3WKaTYhPfdDbgilmm+ieX63JKKFwLzdVdm TiArRY06RGDp97zVu8h/z0OJ+iGwuUTt+Uyu2U94dGBT1cDabLdaAA2GwQ3W4nZ3nRzX DKEQ== X-Gm-Message-State: AOJu0YzYnT3nj6v2JfGGInADJjChKRZJJfDxkpIKnSg3c3tF9sP0JyT0 z444jhHepW3UC9H1l1WhoFtArun1cAVGuDRtpxTwlre9rxeXgz6/Rl5n9LG5lV6XdYwzK95zKEk DGUibpFQIEQ== X-Gm-Gg: ASbGncvLA8wCG0bDca+Uh5xuKfrszzsHvjvWiYrYXRSM/a9eRYK51CIJuTflqgbtXY5 fa8kyrzBBhfjYdR8EZ1f2cXFRS9meoP+ZadwEYOoY7hswkpYERrRylIFSqoddg1qaVWucIFqzcN ZL0Pe1gD3yvmQsYjWbUi7SIevs+ixSHhPk6thjhzwVY0ULWY2IzWKH0PYE5JolXK+d6a0sLutIX /LZaHotcOy0QdZFqQAZzQq7cFG/UCOLLLzY0Lzk+IvonugrAfaPhJ55oGBo8rrgnNI+bFq5Ibmd A67dKwONrV0S7jaz3pNadJWhfEzo/2kM8aOVUf/hGTJEs/pVedefizf9ghDiEIgFCCWwV+jpmU4 Gwue30yFZAPEwbxyaGdUndkGEvKpQ2fXFoe5L+gjDZS4= X-Google-Smtp-Source: AGHT+IEg5xE2u1buBTkXUoOM48I3ZwKJ9V/NRfcswgT1R/KIkoZD+94xNQQAzg7oqPtKIN/hxI8zkA== X-Received: by 2002:a17:903:46c5:b0:23f:f074:415e with SMTP id d9443c01a7336-2462ee80edemr41985525ad.14.1755874873198; Fri, 22 Aug 2025 08:01:13 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Alistair Francis , Weiwei Li , Palmer Dabbelt , qemu-riscv@nongnu.org, richard.henderson@linaro.org, Daniel Henrique Barboza , philmd@linaro.org, Liu Zhiwei , Peter Maydell , Pierrick Bouvier Subject: [PATCH v4 07/12] include/semihosting/common-semi: extract common_semi API Date: Fri, 22 Aug 2025 08:00:53 -0700 Message-ID: <20250822150058.18692-8-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250822150058.18692-1-pierrick.bouvier@linaro.org> References: <20250822150058.18692-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::635; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pl1-x635.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: 1755875347309116600 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:04:05 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=1755875255; cv=none; d=zohomail.com; s=zohoarc; b=iT0vBnHVhXG+pcVHTHWS7luIfoPcmbeTqJT6TTELmbvTgip/30F4tQiqR/NcMM4ewX+e+m48Kjqkx0qfR/LfLq742I+Nm+KGtNX7FBra39ejbOMh+roi89/FfcNUYgSnhAA5hweG6zYlxQpbUGo4EiTNLl/nAWPAZgK7yobv6G8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755875255; 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=maTxUXBjf9+EZ5hZD8RvC8OmMCJWZ+otbKH8Tgn3wfm2jV4qczqxh0exaDHaPnWBEJgR4c2YBO5+Cs3iyEOVpsRkFhpWhZ8o0PCr+JBjjYgw1SIbtcnSoAmJifFanbyM8P7DBHRcKAwXhV172T9o+t/g0IWQldDF1RyRw1rKFOQ= 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 1755875255329509.69225898040247; Fri, 22 Aug 2025 08:07:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1upTIb-0003E1-G0; Fri, 22 Aug 2025 11:03:25 -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 1upTGw-0001u7-70 for qemu-devel@nongnu.org; Fri, 22 Aug 2025 11:02:02 -0400 Received: from mail-pg1-x533.google.com ([2607:f8b0:4864:20::533]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1upTGY-00050p-UW for qemu-devel@nongnu.org; Fri, 22 Aug 2025 11:01:41 -0400 Received: by mail-pg1-x533.google.com with SMTP id 41be03b00d2f7-b47475cf8ecso1558572a12.0 for ; Fri, 22 Aug 2025 08:01:17 -0700 (PDT) Received: from pc.taild8403c.ts.net ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-245ed5406e4sm85929495ad.165.2025.08.22.08.01.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Aug 2025 08:01:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1755874875; x=1756479675; 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=A7j4GvhCplGcL21yr5pbVeAdLmTc5Jprqb5cKkr7NkFoE6q7aEw284+thhUZg9FHUL aDvhfQ6EM+TEGCmzjLryff2wP+Gl44A9U7sR0KaLxZ04I4WEM9wfaJ53BMwouUezGhfa pkH/jVczOnWdHoU+BK8OVszUPdMvsAlAEOjDlBfvYnWo2q9/CkNgpc+Kn82f5rW7FJgT zwFqv1FzNJBNMU3VIBlFzRPovKxw3aFA4pYKP+wuERayxw/xMDtEP7kx0ichQRvCzn3g KW3jZHI3AGFMVCPpB/gF3L/iUHxlfIEApgoYYRy95ihCxmg/iYEwwegY9HSgvbvDMobt +d9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755874875; x=1756479675; 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=VvIn9JnAn9sJSrNjGsS5TP3Z/GW6LVo0MTtuing1zgHjw2+KqRS0kJ4i3errqrdGR/ M1heGD9fNNdewG2xQxrGu3SU+8OxzAVjpch3n3qrv45cto7/a6eCv0Qia3CYWDKKO+Bj UIStrtMHsVEUuA/1DGVY1pS1Ig+xR9aUEKifIcujFzz+qW1qVtBaxEuhXJBglYS4vk5p BBHlUwOr8j9oUR+xmsg1Qpppd5df5PZdF6ERnLQgotNXxvG0nfEKRq66SeDKKEHl0uoG lhxGF8GuDZ9QpvL6ZlgOt2O2nz05LwBKq5g2dJvprrHLuoX+0LC2SCRmVdH5A98IofJx 4iuQ== X-Gm-Message-State: AOJu0YxRrLFH3Xbnr8gACIjE2huUSPnF9A5EWDbPfe4ek7JNROkHrARS nYOs6rax47h2Ae5xVdPdaWfOb4xD25GdNCEmHaIgtf7FmAsgulWDo5CUSajyGRQHUPfl/VNS/gX KoKMMW1t+1A== X-Gm-Gg: ASbGnctRTWDGD76F1oL/QFmJ2TIgaukDZHDaUh4Asl86W7qL9tVQJOiy9+qaxfnucS9 YPUTekwSNLB0VRfbMy6s0knsE5mCws6xjT+dahTeewOD/E13YMSqRxumabeK9cI4CI5/CsKTFRy CY+fyBjI7/yZ1Ieaph1E6x/6rFUGsQtp4WodHSwgdU4ALJEYAY8YGaxaTtVP0mZnANnnuJrfA4a g1K/f8/xztTAwr2f7pKQiljnlWcO6NLBTkR3DUw+6V/qi10HEt97wIFilHT2yUJbcp6I0Om9bLa B0Ugi5c2pF4FCtMoWWBeXSsbKIa3yOi1dWKWmjJqYPapbnMipmIIUpDdnZeokYmffkDU8EytaWq pfHJpB5egbpfXwgOX/l2Yzei10hirDJXdDFFoBoBzoHo= X-Google-Smtp-Source: AGHT+IF7q0bRwpOzZzwRXFmYsbSxbpUMKDnD/N7VrfpdmIkl8MTLY6Pl7H/TaevBXbXYHJV8Vgkeng== X-Received: by 2002:a17:902:d592:b0:240:3f3d:fd37 with SMTP id d9443c01a7336-2462ee80b64mr41071155ad.27.1755874874553; Fri, 22 Aug 2025 08:01:14 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Alistair Francis , Weiwei Li , Palmer Dabbelt , qemu-riscv@nongnu.org, richard.henderson@linaro.org, Daniel Henrique Barboza , philmd@linaro.org, Liu Zhiwei , Peter Maydell , Pierrick Bouvier Subject: [PATCH v4 08/12] semihosting/arm-compat-semi: eradicate sizeof(target_ulong) Date: Fri, 22 Aug 2025 08:00:54 -0700 Message-ID: <20250822150058.18692-9-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250822150058.18692-1-pierrick.bouvier@linaro.org> References: <20250822150058.18692-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::533; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pg1-x533.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: 1755875257770124101 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:04:05 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=1755875214; cv=none; d=zohomail.com; s=zohoarc; b=i7KaSZsQDZvMblNOTAHM0ljYJ9wJN4yp7xeVQhW7KbS7YKchNRPuWmdDmcSo3uHJ6goPhpWmsVSedNsYdZAEIlj3m5IJfCCaf8BFjZDay3lya9dInwoYaykPe7oOSPS6e9v7Mkb9Bz2D8VBWwmayCXMrFUoitkp0h/R4d2/OOn0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755875214; 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=COOoImfnQfcER6bYFBuUzt3aJKqvjC5q6QDuC9S2WCvJ63k5ICtxHiKwd07pdAlsNGArFlbkYLVWJ3HSZL/2Pnl2IDsssYph3DfP3c9pP+P65m1fFJqFgGnsRlOG66KAFCL42gUpjv4CcwSRs4qAVTUYOmBRP5baPcyU+eflQZw= 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 1755875214429229.92908833828392; Fri, 22 Aug 2025 08:06:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1upTIb-0003LL-08; Fri, 22 Aug 2025 11:03:25 -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 1upTHE-0001zT-UD for qemu-devel@nongnu.org; Fri, 22 Aug 2025 11:02:02 -0400 Received: from mail-pl1-x62e.google.com ([2607:f8b0:4864:20::62e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1upTGf-00051H-EW for qemu-devel@nongnu.org; Fri, 22 Aug 2025 11:01:55 -0400 Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-246151aefaaso13225565ad.1 for ; Fri, 22 Aug 2025 08:01:19 -0700 (PDT) Received: from pc.taild8403c.ts.net ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-245ed5406e4sm85929495ad.165.2025.08.22.08.01.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Aug 2025 08:01:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1755874876; x=1756479676; 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=Io/P8RtVpGcKE5Oy7irKT/aUZnjMnXe8NgEaiS87VsDTl5dPHSMh9o1gIgLNmLA5GZ 1R99uNUq/9J2edWE79PoAmOI9oPnMfN8oHcmcRw2tvAKYBiaiUKt9h4mtmnPU599iA3C 1JrODcIj9pFTPJVhT34GUQacJRxRHfMfgAbkuO2v4r4fyj2FF1kFr+MupStTzMe3G76q DIlQd4lbhiekqL9fJzG5Uian4Xo6kF6w4Us3GUNQ3SLnaEuaF64dTtP58x795FlBvGhH F60NvlmpoDqWEKUjg1CbB4pURn1CU6fenmih1zUKJ/P+LSIIjeY21bvSVewb1XL84shg 49dg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755874876; x=1756479676; 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=WEEwHaDxRFInGeaXR+n37GhLktWyBXzn2s6Bm506ctcZ9qa3l2FIGCWg8YFBmqlRuv oZ1Oizcwhh2cNzpZCoBcCW9xgRDbrVGjsGOp7YaEX2BEdZcOpPqyf/Be5QalwV2foTQ3 p5KK+KwZlgm7eP3VmMsdOTi+gUgEcHV3qD+xu23IFGUwkmp5AR6xXzC7Fb/U0gN+WDgN PoXeHzYtohrBIXpyMaup83Qq5SdMVwpweqzIoK7F9ulCUpdnrkU9ZIZEzpGGYdBgK8w/ R0PpWlMrsIX8Nm+PkmO8EYUdbbTsIUAHG9Fj/bsz2ARctPp4TLbyHma3kXOPWAPVrFwr KkAw== X-Gm-Message-State: AOJu0Ywcq91vf3Y2CFa+6NA1+Me7xL6R+0T7Yw2Dx2Xaz0Sn7J5JMN+x NBvbJOFYs4ky6sX4lyM5aGGk+NL1RbJ5B4E7uSFHdF/YWhR/hmiZv+3r8cBncYfyOkfZgu92bnN xLXkj0CwTpg== X-Gm-Gg: ASbGncvKrbPlNb2Z+gOw4Vr8iJQreFxRiiZC3vgEV+wQgok8W39rmTaPwv7EBuEBoXT 8rEGoARn2pM+UGmAD3NBvfiCV9ZgM7zv3cGWJypsF7HBYpW7/DxWgDcUbFhuenLt0PSDrvS6oAw SYovq89mjtMtQeK/7Tk4hjYXI/vUPCiqzM3z7qLXKXSM6wFHcaP7qkIx9UFPHP+eYnM3Xo9mOsa /aS9P4gRFcLSfWxQeuvubMofT0JU/SG0d2EUNnIeiE/ujZQgWOr/INgCXKOGFRiZTPG9yDJmGVO 23VyqPVXHd57xYW2czzWTa9L8fiNtNF/cL28Iv86ReKMXfnwEmXh4XuCHmQaaPquhjKRgd7u2UV yAwxLhkuSz/cekCs9t/+A5uBWu121JREFvOlPi7xOUConcz5QgqE0Ag== X-Google-Smtp-Source: AGHT+IHsJ9yB9dRQdCmFBOAjhp8RpEvxUs6RA0y/QSfe43hNfYYQWqFlYP+oz7KVAW2515DKr7GLGg== X-Received: by 2002:a17:902:cec2:b0:244:9912:8353 with SMTP id d9443c01a7336-2463292c8a8mr46943705ad.6.1755874875796; Fri, 22 Aug 2025 08:01:15 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Alistair Francis , Weiwei Li , Palmer Dabbelt , qemu-riscv@nongnu.org, richard.henderson@linaro.org, Daniel Henrique Barboza , philmd@linaro.org, Liu Zhiwei , Peter Maydell , Pierrick Bouvier Subject: [PATCH v4 09/12] semihosting/arm-compat-semi: replace target_ulong with vaddr Date: Fri, 22 Aug 2025 08:00:55 -0700 Message-ID: <20250822150058.18692-10-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250822150058.18692-1-pierrick.bouvier@linaro.org> References: <20250822150058.18692-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::62e; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pl1-x62e.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, T_SPF_TEMPERROR=0.01 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: 1755875215386124100 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:04:05 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=1755875077; cv=none; d=zohomail.com; s=zohoarc; b=XUqLaz3gr9yhKUdWyyr72RIAc5vDZuf6K4pVaZtnN+nrEDzsjppdyIJnNBg7Ni10JhyB5bcjEhRCxLiSJnLPrOhcVKFAKInFCnIhW0GmW0yZlAA/hv9yn8Pgn3FzzevFd+Slj+Be5ErFMqDV6y7zBH1nOS82pDga14/Rr+0eaHM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755875077; 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=FOjFLP1xRtQzj4koFpRyYuic7pP+FbZbQu/6G8WdUQ9x569R2chMxg1hwXHYmdE4Hl8j3+0y3lDl3WeE30AEbloyDj2RPcJWIerEERQNX8zp4DRWuQnRGg01ixVytWb9h3lF7407PDRzCWAA6ebTCuWjzgAyUi8YO2LVzjB6j9U= 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 1755875077828775.7313939197933; Fri, 22 Aug 2025 08:04:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1upTIC-0002c2-2U; Fri, 22 Aug 2025 11:03:00 -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 1upTH9-0001yu-AU for qemu-devel@nongnu.org; Fri, 22 Aug 2025 11:02:02 -0400 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1upTGe-00051N-Jz for qemu-devel@nongnu.org; Fri, 22 Aug 2025 11:01:53 -0400 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-2445827be70so21935065ad.3 for ; Fri, 22 Aug 2025 08:01:20 -0700 (PDT) Received: from pc.taild8403c.ts.net ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-245ed5406e4sm85929495ad.165.2025.08.22.08.01.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Aug 2025 08:01:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1755874877; x=1756479677; 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=PZ2KoEFsBrODq8+quYQVYpeR81uFLC7LaclGadJEuy3Fu3ZWAERggWajx5TEB6Xcl/ 09cldDpqZFB5ZvQyxwHQAa90icYsZqj1w4P/gZ0sph1mOUvpemeH3iCM30NBMGeCD4Jx EDDqlMWXs4ecaxdZ4P0ny2jH6FWUGCsEF/Scv/e94QykoVZHdWTs/vCkd9+wu1OXEKp2 GB5nbywDPg305T31pdz8QztZDGiHJ1Wp1Vh9QN+Cv7E0XkTuklZdLfNbNLdo6jkvsbbo CKYtPn6LLTKZ04I5n32XSWx41Key6Ea//uEmL4OIBkoLWJlmF02esxiKhs6YK3zNestK bOAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755874877; x=1756479677; 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=C+SbTNjh36FiE8iT6+h5yFv4kZf1w2ybfbQ7H0cC3T8icH+0sArU1lI3wzUkAG4kcV iZW57fZi+X9hNOOEQDaLwNcKlYueRSxwC3/8u1RB7B/aLHbJADaoM2KBN6ujDfmcC9QT 9fXO8jTneEwTh4eolqunam9M6yhMmiVxD3XV7RU+ymfnJYpQURVZySn43CMi6tYLtiyp 8/uzfF0rAQYrbjgq1FhwBMZTzneLXNIZ/Y4ihSYvuKc0S4T9+rf7czqQlK8+OHth+PUa /LWgp2g7qUgqv1R7988nMsllY6k++AnEAPGR+JksSQOi/lgmrS9FzEV2Ot8NAcoU6vs/ R/bA== X-Gm-Message-State: AOJu0YwgClohg/Ud9Ydf25IBb48/E9joKRwfD60M8P80stdYFoasGjpp jDARrmu5MVRKkpznBovOLfx0QZMFwM+aLyH08v8nzn2dbXqJRKAJlqVzJcwepIoQjL3lKi4NaNh zuwVkYt+rlA== X-Gm-Gg: ASbGncsihsAT6UIM+yKJY0qgwF1r+J51YQaqMP1Ran+Z45QhwTw5aW43DpEtcAOblt1 XhMuz2jDcFtWGD5C/p+Du6wUPcHOjVWmHdDT3h/M6xffFFE8rGHSRKXihCdW/7jNBXDtjeiYvgN C4InVYBqt00elrH3DWeVkOOl4soVyOG9Eu/JADtb2mJ3nunii1oleeU1NpKnqPfpRF0QXFkWuKD jG/uxFbSaudixWz1p9wbvLbeYBzNYDx9yHC5S3vJuudWWFSie0Su6CuEkiTYOLZLXyJKbN1V6gg Rg4RzyC4tD4niabRMLBJWfVrq+EEdCKjoF7Pi3PxIdz0zqFu204NWnRlxQiHTRmg+bgaglqJy7l TZoipVBR51VMszJoTsM6johciW/dzOqw0lu8/jW7PkUt9otYOC4gVBw== X-Google-Smtp-Source: AGHT+IGhabOmuU32VxtZOGTmb/egh9mA6ZqqqVyknwS7TOPD81KLr+AFlSDav/1kfBeViUrNKPXpaw== X-Received: by 2002:a17:902:d483:b0:244:65c8:c1f2 with SMTP id d9443c01a7336-2462edf24bdmr47926685ad.20.1755874877036; Fri, 22 Aug 2025 08:01:17 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Alistair Francis , Weiwei Li , Palmer Dabbelt , qemu-riscv@nongnu.org, richard.henderson@linaro.org, Daniel Henrique Barboza , philmd@linaro.org, Liu Zhiwei , Peter Maydell , Pierrick Bouvier Subject: [PATCH v4 10/12] semihosting/arm-compat-semi: eradicate target_long Date: Fri, 22 Aug 2025 08:00:56 -0700 Message-ID: <20250822150058.18692-11-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250822150058.18692-1-pierrick.bouvier@linaro.org> References: <20250822150058.18692-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::62b; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pl1-x62b.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: 1755875079686124100 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:04:05 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=1755875076; cv=none; d=zohomail.com; s=zohoarc; b=D7Jf4b0xluvm5QDadIP2X7NJC06Vp4cQA1R9SLCosPOEjI8FLMRGPuPvjYilrkn79bFJmlBwcImedozcl9+FdwWNAIYsC9bEWXyJrZfwu/Mzvk/6WhWPrDrUzB3UOYSZ5GvIUuHFpJrWoA7SdJ3Z6QVAfiOGU7qUlmTOJ5mP2zw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755875076; 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=ZNAxk7PRjnuDAUDjh1QBBBUWlyl3UWzqhGNhlWKjL7prq/LlIJIpxyqufrv9uJ6Z7L0gmTy6lAEu5gp90cwHVLnYBzAGOwd6I4jWgYBCgLxTdz4+zswNRkbjPMMMm3TWzV5tQ4C3u5DGW9UqF3E1N89TBqqIXMPlg91qQJ2FwWw= 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 1755875076886265.6988208682319; Fri, 22 Aug 2025 08:04:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1upTIr-0003pV-8t; Fri, 22 Aug 2025 11:03:42 -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 1upTH9-0001z7-AS for qemu-devel@nongnu.org; Fri, 22 Aug 2025 11:02:02 -0400 Received: from mail-pg1-x529.google.com ([2607:f8b0:4864:20::529]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1upTGe-00051q-JQ for qemu-devel@nongnu.org; Fri, 22 Aug 2025 11:01:49 -0400 Received: by mail-pg1-x529.google.com with SMTP id 41be03b00d2f7-b475dfb4f42so1477571a12.0 for ; Fri, 22 Aug 2025 08:01:20 -0700 (PDT) Received: from pc.taild8403c.ts.net ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-245ed5406e4sm85929495ad.165.2025.08.22.08.01.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Aug 2025 08:01:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1755874878; x=1756479678; 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=H6g4C+FCAnQc2VAt8ENTEU1uaOosyBORkscbOJ1EkOXBS7/NtxKHGAA0KQ2izo+Tpw jUYf6WUT7xVHRFp46oPBBtGOXiizsifkgiBRoAZJpIPGmulY349jK9I0wXZF3dErngyc 1aK936yF0hFykQHHDL5+AkYJ2T8lj87j/QTppH86CQ3qtq6JuqLOWSzFqb2v58gMnw50 34/HfN2/ByiZOiKA1n03Mc1XkCHe3WX5whbMUkT1tuHOXwY7AL1HUVkeOMEbKfFfkKn4 x3Ei4z18u3speVEuM/eRye9O1IPkoAYtC4K6XLeVoRpr61VPg1olTnKlCBPSR/j9m7js HqaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755874878; x=1756479678; 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=qleACmxXEASDDQ+7r6L5uxQRw4aN+2+6jlcDHic1ooTZb1sUTgqGfatjnBCtseAtX/ MIJD8IwGDlSAp8wzPlGcfD2O9wfTs1WLA4t66gzV6kJUHgi1YBhyFRHsZmL82pgzDLO5 iDq0nmbxM+E/nyra7UqRsVkzEB2bp0SiNVR4auWXT4xepbnYBPqSHIKLGTRxYXkyGoZo Sum0V9/50aJ9wA71TNciGVlRxg6E9iAafOFbHBGw6BUbgvn5FEAiGN29cOskl1sK7P02 SsqGRMANlkOcWf0+NJqvgfji7b1kO1zXg+POrS2xREuW85bvuUVbHNYHoZoQGoFBFJX8 dOVQ== X-Gm-Message-State: AOJu0Ywavtr37SHbE7z7M+Qq3gUZS9wAOYPIJsbjp64f2XgJ5vX4uySM n1DMEZc1qw4+Et43kLxhnv1gQKky13ekWqCIf0wMTbAadk2+yn9Wr1Z96D46zq/c5mkjID3S1uc Jcn+udeuMlw== X-Gm-Gg: ASbGncszjP0DMXhl6S8jW9843aUW7HhTRKiPxgtFlTSVXL8pwGF2tN3lKeQ6GWOKEey UhVx/x4LPJw+rsI+Kqzl2VguG8RfcTbimXq9v+2+5MKVO3rA6VpzT783j1a6c5n0Z6b89bIZY61 Dq/k2pZmkiQhHrLawbTAP55Sb9SqMUskMEtFxdXD+0eRCoyEPez+q0Q8MQ9GKq2pdi1VwyvIGSc 08g8Xrkae06buH1s+SAwx2n7MJ7JhxE9Wfxt0rckVE3LZlDlf2n12aXWS6C+7rps6VaH0JrRFLK D9ehUCLaQ7lEBTSgB8FJghToCupWyMCx9CRKLWn53FmNSYLcw4wNnVrYE0x8fwYgTG860TDVED8 M3N7Ja8xXJ2PsqK1XSjcYMFM2MrquL0uQBboyLnKzPLU= X-Google-Smtp-Source: AGHT+IHmY1fp1Cnt5Cfmqq6A+WCY/Utr6plzTnkgl4R8m0dB61vyWEpaa6QPYLHacKF/IvRmjv9Mqw== X-Received: by 2002:a17:902:e84d:b0:240:417d:8115 with SMTP id d9443c01a7336-2462ee1a943mr51648885ad.16.1755874878302; Fri, 22 Aug 2025 08:01:18 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Alistair Francis , Weiwei Li , Palmer Dabbelt , qemu-riscv@nongnu.org, richard.henderson@linaro.org, Daniel Henrique Barboza , philmd@linaro.org, Liu Zhiwei , Peter Maydell , Pierrick Bouvier Subject: [PATCH v4 11/12] semihosting/arm-compat-semi: remove dependency on cpu.h Date: Fri, 22 Aug 2025 08:00:57 -0700 Message-ID: <20250822150058.18692-12-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250822150058.18692-1-pierrick.bouvier@linaro.org> References: <20250822150058.18692-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::529; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pg1-x529.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: 1755875079664124100 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:04:05 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=1755875415; cv=none; d=zohomail.com; s=zohoarc; b=YumMbeUXSrqlegFU/2baZv/mQ03dXKxSAkbZqKv/BZBpzkxP/yVTc+4VPcMOxL7/9aO7nK5JLhk8S+qXevmN318jMFaRBziFcn4L2tSZ0qmcy3ljtmqK6upf2EgSR3tbNlARhCs63JSStf0Nthyb6ogUxmFI8XVoqfB4xwIgZ7w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755875415; 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=j6CXhYD78wj9uE5b2Xq4GHXjDjQwOhRLHNggSh7oGAAVHKE16c+uZf+T8a5J1YPsDGBgbyLPkmF/peU861hpxReV3ks4yWZtFekYwQUIYLMLAc8fUIdqLsyNxLDcu1yIZZRB8ea7exnltcIVyX1TfiNe+32YwTcmco7EDFzVNpM= 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 1755875415861146.34053617478753; Fri, 22 Aug 2025 08:10:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1upTIO-0002p6-Kk; Fri, 22 Aug 2025 11:03:13 -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 1upTHE-0001zU-Uk for qemu-devel@nongnu.org; Fri, 22 Aug 2025 11:02:02 -0400 Received: from mail-pl1-x632.google.com ([2607:f8b0:4864:20::632]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1upTGg-000521-3J for qemu-devel@nongnu.org; Fri, 22 Aug 2025 11:01:59 -0400 Received: by mail-pl1-x632.google.com with SMTP id d9443c01a7336-2449788923eso16880315ad.2 for ; Fri, 22 Aug 2025 08:01:22 -0700 (PDT) Received: from pc.taild8403c.ts.net ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-245ed5406e4sm85929495ad.165.2025.08.22.08.01.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Aug 2025 08:01:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1755874880; x=1756479680; 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=MG57EUt17yo8CdFgOkc05o1U2p0+cpX+WQFLb5jjASqu5XSMehXj7GbCci5XPqbD9P u8zv7HsN2lpspKjhrVg4C6ZvvIDIp/2cou7wzYPw/noPHYPwYWqSzjM43Y2Jq6I+47Rr sAv0KtPl2iS5mxJyiAeJVvDNSBUAh5OJE2myqf/eaoDJsmmeffZfKKvhL489e+r4qLwd 8nNhJlUiIg3DzqksCOxjUdMipLP5aGveD+ohqg7vnGjayoRCRbM2aeOnvIL/7H6BdlAh ZqKRaIxaUAZcDDNR1mOGHrOsAYLtKR8w3PD8NNSvuEX1or1Ml0TavBCUy1V09FyR6rdi DZIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755874880; x=1756479680; 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=J+4cXLswAaoZHUQATT32reKHUhNTmH1diJT/x8CxOf5lHfJRiLhT2x/hgeQF+SWPXl +v3dkg5lFuqpv/7H6OhqczfLs7rNRWbjBIE865kSXh1Q53gxWsEB8ltf/IZWWaFeS15F otIFdUzf2IWSoLrVP2b2mt28jqenwwju7Zc3/3S3gSqNIa6Ks+SwcX7eUOHcqrbEj9Q2 ne7NEex95nYg3kcvHFqmibedTEVv5edRFO+tZcRi3llC8Ex6qYI8me+AcMIBzXoA36p1 PfKofb5hvqLJDGaQafDQCE/TibRJcFwCya4Ug1s+zc8QRVBRTSTc+AsDZRm/3Qg/eG3t bcDg== X-Gm-Message-State: AOJu0YxmgYgDzQ2BWE0Nc0jf431weU7UTcXtmRkhxG6CpWhOqmqY0fbj QKkgNVL4fNkSyXFROSnlOpTWTJQzEZQ2n+5O9aRM0xUAK9Amq1LLhyN2oeIsECFrdBO2bu0kCXm j9ed7qGcedQ== X-Gm-Gg: ASbGncs43M1qwae87eujD1mM7yvgHmgepaejc2vpwQSPs8dt/cvSEdBJqbTcwgqeyy9 sETtQLkB39kWJBP3iTest8jICLj0+xXbAPBncNAiEkqi9vUAmQRohdaNdZyWAd1aqN3kDlq2Itp t2DGz2RqkBiWaryZWXB4sVSumf3Qhtnh75qaR4Ny22SjInfMBI7t74AjtUH9X1oMAO/or+SmP+y t04SUAKLYyNCpjiduJVBFefqNbHDX5dPrkv/nZ/Kjrr5qN6i6KrZQKC/yYcZFON7PiutoSoWxUL QKWcY7ifKHy0VIouuIK+/0IsqLTQqWXqPdNBYtlItcNE5CxnqHu3GxXonJM4DrC21BkRJV9OlEs mtW61qQXiZnCsoGGjgqE31Tw6GaDFM1aaXAWzIf7PRz0= X-Google-Smtp-Source: AGHT+IFAYwjfrxBcI9mVRV8zO7zjdsnbdIzEU5dN2j4c+g0y38O10N5W2GleyrmyZVJoiZ1zDWGX7A== X-Received: by 2002:a17:903:19cb:b0:246:2e9b:e7e0 with SMTP id d9443c01a7336-2462ee7370amr46917395ad.25.1755874879485; Fri, 22 Aug 2025 08:01:19 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Alistair Francis , Weiwei Li , Palmer Dabbelt , qemu-riscv@nongnu.org, richard.henderson@linaro.org, Daniel Henrique Barboza , philmd@linaro.org, Liu Zhiwei , Peter Maydell , Pierrick Bouvier Subject: [PATCH v4 12/12] semihosting/arm-compat-semi: compile once in system and per target for user mode Date: Fri, 22 Aug 2025 08:00:58 -0700 Message-ID: <20250822150058.18692-13-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250822150058.18692-1-pierrick.bouvier@linaro.org> References: <20250822150058.18692-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::632; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pl1-x632.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, T_SPF_TEMPERROR=0.01 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: 1755875416878116600 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