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=1754091281; cv=none; d=zohomail.com; s=zohoarc; b=bmxQcVaoySnPWJ8BNYg01oOqs8MoVFPy9CM8CR30tJFObczW0t8URnJlUJl0Z6GFHzZsaavsBYbkXeU0sZFhk1UcukipVDEsCRnh0U1cIN7vsU7gHrXMe+RGPsME3QVzXwzfjO9cJjaCRBy5qnNvG1s+Qv/mEK/1tTL7SfMnf68= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1754091281; 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=PeeV1u3q4RgqqCDQMBsh82fVC3RKdkiF+Bmr/9Ydojg=; b=We32GgvmwhdyrwOQIEmqbuZ3scgKdlMbbV0zqcydwm2G5DAgd+F5Zi0ko1hSAMWlV/23Mit+Oq1U4EXraLT1n1KjmGJXRlrGiHIcHED9OEumtuV6jaywwGXZigHeLpDux4zNheeD5ZuKJ3n3QvUIEBiYvddX5IXY8ACagoi1uRM= 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 1754091281307109.48151296080721; Fri, 1 Aug 2025 16:34:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uhzBA-0001nE-4E; Fri, 01 Aug 2025 19:28:48 -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 1uhz8q-0007L4-6H for qemu-devel@nongnu.org; Fri, 01 Aug 2025 19:26:24 -0400 Received: from mail-pj1-x1031.google.com ([2607:f8b0:4864:20::1031]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uhz8l-0005to-5H for qemu-devel@nongnu.org; Fri, 01 Aug 2025 19:26:22 -0400 Received: by mail-pj1-x1031.google.com with SMTP id 98e67ed59e1d1-31ec651c2a1so1229791a91.0 for ; Fri, 01 Aug 2025 16:26:18 -0700 (PDT) Received: from pc.. ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3207eca6d3asm5628217a91.23.2025.08.01.16.26.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 01 Aug 2025 16:26:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1754090777; x=1754695577; 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=PeeV1u3q4RgqqCDQMBsh82fVC3RKdkiF+Bmr/9Ydojg=; b=eHVIS+j0QNkJQovTzh31miyDo/gdEaCiAW0mDdzNW6+Xu2ClksbZ2qBDSG3PWmx3jg MW0JNbyuWcJW+GjuH8sDghpG7/HID5xej7028XPxZYIhr7/5jluiSrumxiF/aBAVdHdA rEF9iUYDJiZ428f+j5M424fWAhbJoSxCanfot4955RgPnV85CXjYUsghr9J6L1Jss9Jr XBp7FRRrlhB1PjAxMtYiVC+KQWkU1AMQUlj/7t7Ao8Mg5gsZj1bl841k4FrYKYBtghFX 5mPgNoi3InDkZxPMQKfEUfWU2czqzSTWhZg1OWi363SE2y46VdRdNezrL8KoyQry7ZNI YZkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754090777; x=1754695577; 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=PeeV1u3q4RgqqCDQMBsh82fVC3RKdkiF+Bmr/9Ydojg=; b=tXk5RYMfR/JyZ1DnyLGi8UK1J2bA8BekZPzLkPTD044OR/MIGaKyJ1ntOt5v9pPXFh sDA8GwqbnnoTvblGkqmUFXB8vMK/lwvkPaXTiA/RTzi4xkn2kYTqZrfN60+izMkP5SMQ 2cGjmP8zi2CErxB9mfE1y46KZk4X0v/EBPbRnijR0yfNMeIQHpxYXlSoF/AePOhjmZ7I FPUjfERXBW3hOvrrk1vXNx+1HVmIFlMG49ivX2Q7jEXFcUrnb15kD3X0MTBYipd0tr41 kXE3uFIadFQyXC/FS5Du/XHJ2lAFM0q5AsEEZovgfKN83iEhEKtpx0clZ+Y0FLb6wRkY khcQ== X-Gm-Message-State: AOJu0YzuQjcr4DGre3QBpDraCCcCBiooVdWuYpDYT9I3V1nEGAjceHPl 1/mG4dQEG+H5wk+eORWpYbNsrkntSJDyROKq+xJzOx4czjqe3lDh5qU7ceSWfrenONFgMzFUQA1 nyk1SrUU= X-Gm-Gg: ASbGnctVNy8eJQXS40gvc9dgKwREwbhukxeTqT5Xttg1tauFRHVs+f48bpO8aorq9Zy YWoBGjMMak9i317WR7oLQU/BwcxdRXD2zXGu0F3TQk39owWXAz5YoxtjdA6heQGDcxXWPkoHMFn of3flfT4BCLzeGnYbxJ5C05BynSbOhYi+l4Ulm9c2S0uWx/dABZ/pr3RqJmid8hmMHmUkbVGv8Z mCGjU4XnnxBvY3BBNfSCZEzxS+8B6p76tOo6gUUPRRS2S43r0Ekpfj2CoTt6YvEc3wWc9Z18rEu 1Z0mtMTpz5mkK34mDZFsdwVdllOzGIwQlWQgmWQeyom6qVOMAsYq/sQQs0usiU/Y88tUdOO8d+y xcizyZBF6jTSfOseyFj9tMW7pPY7IdWwj X-Google-Smtp-Source: AGHT+IGM2c9xz266BbZEOokQcgwYVnYNMAKS0fJBGnLI9S8eKNPXJMSWDvQWa3PlSQrBqgzmmg4lRA== X-Received: by 2002:a17:90b:4c47:b0:313:f6fa:5bb5 with SMTP id 98e67ed59e1d1-321162bcfd6mr2438520a91.18.1754090777221; Fri, 01 Aug 2025 16:26:17 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: Liu Zhiwei , richard.henderson@linaro.org, Palmer Dabbelt , qemu-riscv@nongnu.org, Daniel Henrique Barboza , Weiwei Li , qemu-arm@nongnu.org, Peter Maydell , philmd@linaro.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Alistair Francis , Pierrick Bouvier Subject: [PATCH v2 01/11] semihosting/syscalls: compile once in system and per target for user mode Date: Fri, 1 Aug 2025 16:25:59 -0700 Message-ID: <20250801232609.2744557-2-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250801232609.2744557-1-pierrick.bouvier@linaro.org> References: <20250801232609.2744557-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::1031; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pj1-x1031.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: 1754091282314116600 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. Signed-off-by: Pierrick Bouvier Reviewed-by: Richard Henderson --- 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=1754091255; cv=none; d=zohomail.com; s=zohoarc; b=WrMr5qEjhYyQNSpJS2Amgj0+dE3e4qQpbNvuN8GmXvc2oZb7O/OnMx4SYtzgRcymbc8GKIzB38J84xqRAGFaFqz+bgEMMa20Ed34iAN9JFwt/69RZR9sZFrfJF/r9nQAcwA0vSm/aCxyNkde2QVVZJNDSw2ewUw8oP3/mloQnc4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1754091255; 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=V7cIoNhhjt8GP3JGck9NhsGV0eGzfs/RphVYPO7DnpA=; b=MM3ACu/GgnLSZKPjyTd/GF8q9uF2uQLr2fn/z/d8NDrBLVHBm2DL18ZZNNzgc6yY5srWUb8Y3FHouL5ANzLPaA0657GrnUg++xp5GTpuoZm1WnX37YQs42Iqtb0SUJfcPYqCbsLEfCnElJHuIDzPy2Lr7MaYZh/OkYcU9kx+b3A= 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 175409125514714.175112240536237; Fri, 1 Aug 2025 16:34:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uhzBH-0002AX-Gt; Fri, 01 Aug 2025 19:28:56 -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 1uhz8q-0007L3-4L for qemu-devel@nongnu.org; Fri, 01 Aug 2025 19:26:24 -0400 Received: from mail-pj1-x1034.google.com ([2607:f8b0:4864:20::1034]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uhz8l-0005uD-Jl for qemu-devel@nongnu.org; Fri, 01 Aug 2025 19:26:23 -0400 Received: by mail-pj1-x1034.google.com with SMTP id 98e67ed59e1d1-31ecd40352fso2164653a91.2 for ; Fri, 01 Aug 2025 16:26:19 -0700 (PDT) Received: from pc.. ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3207eca6d3asm5628217a91.23.2025.08.01.16.26.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 01 Aug 2025 16:26:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1754090778; x=1754695578; 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=V7cIoNhhjt8GP3JGck9NhsGV0eGzfs/RphVYPO7DnpA=; b=Vdkq0ckZ+xzfgcRraGmKRRVU5RhC6Kfrcb4I0onaAQCXs6fuPmKbmTvCWql4qLMoF/ crZdljtRj6dDgnzg/ZIBefdKW33GZ/7wkDmnoc/+Qfkndcvzu8ucb6oRmMqgb/L+I95m 1zT636pKx9srGowjYe7BvFjxCMBrWz8VSIXnHaA49oKfRleCEcYvpB+Alja5COf6FNKn JCtTtU51IVQsqtWPfA5YypIUZ0aWShCfkx5T++5brWEFz1jRRgYdnagdv3t5O0lzBHVV metMzZpMzPoqy5Uc6jD354gCZYlrIfbRqh6xLOTf0sMpuWDG6hidI0gWaiAReLLcn1y/ eFNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754090778; x=1754695578; 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=V7cIoNhhjt8GP3JGck9NhsGV0eGzfs/RphVYPO7DnpA=; b=UMVrrTnnBdbtY0ZP3ayRlRQvmYB3Ni/XKJwTjC17ax0c49viZNLetl0m1R+m4H3214 LB8P1kkdiUHsB/mKr811bw0g85F6K7jEEJs/nbc5NLx2Hjy6eJOGgkzgYYPVxaO5bZmr pkXlSWFwUYHCM4SI+2WHZEeIENRfYXwWVVgMzbMtC0FIyp452BDzBawJUc0Kz9VMEhgW 7JTnKjZtnmoOyGLTeTpWRftPhXHXGpeOxJoJOEivjUrcxVmwA4++UKJLOMPtRNCESSFn fYkPWrFNHzI3GE8F/ONoUNrxSv7unVmSUkzqc4Zxddij8URExx94YILb5SEuBLL1jVGf y9FA== X-Gm-Message-State: AOJu0YyGePkQ3O4HjjlOxwKE/ubgu7F6YuFJSVWLp/dv1MCP0XKvGTo3 6IU6hj4G5JITNU8//oBzFIAdJn2OPqSsnQydMPn/qXEzJGB79Vs1ocYKyef5tZQhaSaa1h55/W5 NqXX5cyE= X-Gm-Gg: ASbGncvd91x4DabK0yh+zEUPAjeU/9yH8oj/yEBThhKkGXKpM4QLnUBnYriRO1q+Snb v6eF8jB0EWcB79OqtFlfzjtN4ybeOlK8b/wVlt/WpYZinGgAdQtkobVcfI61Hz3yY1tdI0d4McM GaQr/gARz1EBrzcgb0l22AD6JpSlVofoP5Z9hj4bX88/vK0mlQIB+A9Bck0EEpOWX95eca4CiTu cjkzguxuSs1HZvRCcchHo3PTnSB9jfpmKdSDxhwsdz+HfocH4W7AAi0qE5g93PMC/+Ts7iKkkU8 cWi5kULKWNNDlyDNsHKv4SsNyyQHcP+micmBVgc1PPElbRlcA4JQOlHUBfPVQ4zHtW4bc2Rr9xP YI1Gi5fIrVSuFtno5ByHA4g== X-Google-Smtp-Source: AGHT+IHtdgdCGp0n8e7k7Cuuwg3CIMDq9nEW3amBzceeMI9mSSsl01AMuaNsS0cngMvxSs/r5Yx0CQ== X-Received: by 2002:a17:90b:4cd1:b0:31e:9cdb:32df with SMTP id 98e67ed59e1d1-321161f47c9mr2173428a91.10.1754090778199; Fri, 01 Aug 2025 16:26:18 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: Liu Zhiwei , richard.henderson@linaro.org, Palmer Dabbelt , qemu-riscv@nongnu.org, Daniel Henrique Barboza , Weiwei Li , qemu-arm@nongnu.org, Peter Maydell , philmd@linaro.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Alistair Francis , Pierrick Bouvier Subject: [PATCH v2 02/11] semihosting/syscall: replace uint64_t with vaddr where appropriate Date: Fri, 1 Aug 2025 16:26:00 -0700 Message-ID: <20250801232609.2744557-3-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250801232609.2744557-1-pierrick.bouvier@linaro.org> References: <20250801232609.2744557-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::1034; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pj1-x1034.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: 1754091257460124100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Pierrick Bouvier Reviewed-by: Richard Henderson --- 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=1754090898; cv=none; d=zohomail.com; s=zohoarc; b=F6zkRXkh9xCMJAOdrzw/gP15rTjX6zczOW3FBg07afTb6bOhKmnWU4leuP35nutfonsOvKcjikQxtgqeri2z2U0Rh+l5Qpi8pMdcLgvITdrX8wasrcXsA1cF28q9RPeJnQjKrZkOPQJwkzYkrlKNpPaR/K5CH9lSa24+cpeyxRg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1754090898; 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=EbupRHl0WQ9oGlWH8d7TwtLbqUqAZiMOfFwE6IiwzMVpeuTuAv+5+thfbgNjSWy1kglYdcSB7HZE+4Ub5zyC7CXB6NPUsv1vgki0NP7uizhQQRqmKNDMYH0WD0ziqY/JOfxK13HO0jPuoG6DnzF6jyaxo1maFVUV6SOofJnjzsE= 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 17540908981202.478397531433302; Fri, 1 Aug 2025 16:28:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uhzA4-0000CH-0N; Fri, 01 Aug 2025 19:27:40 -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 1uhz8q-0007Lt-QZ for qemu-devel@nongnu.org; Fri, 01 Aug 2025 19:26:24 -0400 Received: from mail-pj1-x1032.google.com ([2607:f8b0:4864:20::1032]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uhz8m-0005uY-Jh for qemu-devel@nongnu.org; Fri, 01 Aug 2025 19:26:24 -0400 Received: by mail-pj1-x1032.google.com with SMTP id 98e67ed59e1d1-31eb40b050bso1994370a91.0 for ; Fri, 01 Aug 2025 16:26:20 -0700 (PDT) Received: from pc.. ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3207eca6d3asm5628217a91.23.2025.08.01.16.26.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 01 Aug 2025 16:26:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1754090779; x=1754695579; 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=St6knFFhJCwkMFMCngmqznZ4KRlU3zhf+dzRVK3L5vazfmwEcM1N6gD4xMRtmJfo7i wei5fGmplGK8AG0HddMtSIxEBavZK/NYf9p2uRDF8cX2NRqigfpczASQ0Z6ZEt74kSOA e5xYxaNigRP/nohR58b1/JSqeQrKTaq0tfW2C3xw+/vn5xn+MdQ/lOxJfupD6Xn/4HxR H6muJoYvEkJBbZl1TYg2kDfOZubg96kepLPIcSMNZI9b5yf6Fgu7wFPxmrqVogCltPHy RUjaliUDeSEDR9L9WtcdBjDxO7DS+F5/fXWHw5Jj7wz5Xm6o4HXidDrReN08ji1MWUU2 Zz0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754090779; x=1754695579; 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=guWR8kVcFjhHWXEgut3GqONU0FpTrb2gIH/1OxJcfqlJAeZsKGevtv+Y4G2ueGoc0F dIC6gGo5iKxr0pyN4h/wHdLUq9KfRHIe4xgAXuk2puJ3J+QkN5ltJkavJkIjQugCLOaK RmjpuY2URp/eic8jkB49YXwgE/WrQkplds0GyurK24AjfjwqzaOgKoYNpDg58os4T8c0 xKGNffYbar16SZpq4LAZxDWF2lUfRLdwxGHI8EpN34sw1J+unyKUO28E11Z1eY6jB2DS Sd/vz8le6jErftdYZjmlQpLwoISn2FD3/E9c3NbMTstiGm18s2if7s9ZTvAKE0pKCJmS tzuw== X-Gm-Message-State: AOJu0YyMJ72/rULi+JfCkmA2M4wB5M85dq754fYR6ViJ40jscn8UCTbz /WsOIURgfGtavWXOkw5uJjgnxwdCzY35Ig6QKQzengd7mMenqR22XrLmeLEc9UmpqwQJiINGOB3 dRhEGG4Y= X-Gm-Gg: ASbGncvJiYBErNKmBVoPaDMdzWiA99/JBZuLIJK/OSq4NVK4jcefjjCeoEWq1ZJgl2R r5QW9Nvu0Hf+Yps+VDAf/PlhNF24UE5k7T1kZucDwjJR7Je+sp5HIq/XTqOXmF19HTUK+MeR4hz nDO5z8JNc4xSkp1ZY9YlwVjhhMoVLOihEIMLMkK/xZL3aUL0SqKEKQ7PBms+0kF7rUXjugOR8He tz2o6f972yhAOco1LXfTtKbj/hIC25CnA6wIBzJStxGqV62cFK/TD+20hHL4fPoXC5kcJAHcTuM y/4wgd3dWq8V+i4uVa+shUrhnk/2HD9Fxt11aoneyVsK9ymQAdYsomyURJcbOMPKqloKAiNXT/7 qg/58C2EycjhQWAewZSOSYEPPyxehmARr X-Google-Smtp-Source: AGHT+IF/vnn68CcYXEE0AE13dkjncBtcvUR2x+JgWDfb4zuyEK5q0EJoxjiUk/ZYSKqFIUZ8ZtSKKw== X-Received: by 2002:a17:90a:e7d2:b0:31e:e88b:ee0d with SMTP id 98e67ed59e1d1-321161f2e04mr2205199a91.9.1754090779125; Fri, 01 Aug 2025 16:26:19 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: Liu Zhiwei , richard.henderson@linaro.org, Palmer Dabbelt , qemu-riscv@nongnu.org, Daniel Henrique Barboza , Weiwei Li , qemu-arm@nongnu.org, Peter Maydell , philmd@linaro.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Alistair Francis , Pierrick Bouvier Subject: [PATCH v2 03/11] semihosting/guestfd: compile once for system/user Date: Fri, 1 Aug 2025 16:26:01 -0700 Message-ID: <20250801232609.2744557-4-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250801232609.2744557-1-pierrick.bouvier@linaro.org> References: <20250801232609.2744557-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::1032; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pj1-x1032.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: 1754090924691124100 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=1754090968; cv=none; d=zohomail.com; s=zohoarc; b=LLBKgTGe/ObXMvGpv1gUw0GbV9QFzZ0Ma7eB1Ni1aaGfKYTV5DJ840+qREvSh9deawzbKl45MoOEFewvldMFm3fccANsSI8ErpnwMzh/b6LQtnnf3tzd+FWoov8UhSDzkW1/rGPkEuquGMa53sXIMxZ6MSRYM3kWPRL8sqLWKCg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1754090968; 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=nj4T7YfXSM1eGuF29lVqk00YXGpZfXW67ju5+IQBYG4=; b=n611W/pqbLhPgK2hvzPsBZM6BY8qcDsz4ixaaK7087EbHLECEs8B408ekZCjREdB2eSS30Zcxs2Vofg+b1OBQosP05x8Bd2yRQwAWMPBdmeUkSC+Uz7eTydu4E33emuHTJw9FbWYqs3UmbYeqGdabgUjC/cxHyGaSDEgxJ/RNF8= 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 175409096861698.0019895671187; Fri, 1 Aug 2025 16:29:28 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uhzAB-0000LG-5L; Fri, 01 Aug 2025 19:27:47 -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 1uhz8s-0007OX-1y for qemu-devel@nongnu.org; Fri, 01 Aug 2025 19:26:26 -0400 Received: from mail-pj1-x1034.google.com ([2607:f8b0:4864:20::1034]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uhz8n-0005v0-QL for qemu-devel@nongnu.org; Fri, 01 Aug 2025 19:26:25 -0400 Received: by mail-pj1-x1034.google.com with SMTP id 98e67ed59e1d1-31ec651c2a1so1229806a91.0 for ; Fri, 01 Aug 2025 16:26:21 -0700 (PDT) Received: from pc.. ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3207eca6d3asm5628217a91.23.2025.08.01.16.26.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 01 Aug 2025 16:26:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1754090780; x=1754695580; 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=nj4T7YfXSM1eGuF29lVqk00YXGpZfXW67ju5+IQBYG4=; b=Bk1v9lCTYWwfeela8tG3eZGijr1DOf4okk2YR24xMK2Kmq5vCEWMF73POyWsLw40W3 ezjtv4ePQmlZ6xV0lW/m8BrNitgssMSzAZqC6/tafub2H6WPP+mPNaWw4XcRkCfe07qb pnNYurDipBZUmT4V8JWgjBrPeP/+X4+POaEnBFvucQIeFgBrJ8+7mt1MkGB5aqJMc/y8 D2dmqSZV1R6ifMpzrY/c5r3ZAYJ5fC71kw1GVDTZm4ep5PJ+RsFiQ0qhsD12vd+58/+Y D+uouZI+W3Unlo4VwsQeHmKjE6p/q0Lz1VWIkr5dVIeFWCbu8ru5Mn2LstDQDljHdM6p Dnig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754090780; x=1754695580; 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=nj4T7YfXSM1eGuF29lVqk00YXGpZfXW67ju5+IQBYG4=; b=cVc/VwjrL+nAHPC4Qory8rHPGhTi7Grm7YnkfulAltyPAAHd270XcdKluE79Yf3tbH 6hLY9Tr2aHSVwnhZjv1KpJjWMF9ATIs1COPG8bpNspV6ZnTy590P33pQB2xlxeIlsmGY 9xzMaa/hYVv5MLFFQ81/nx9gGnIKdadHmhu8Y6wRQl5c1nMW25X/gS9sGtZQ4dcCc30Z Umnqmgt6lgRwD3ifjNF7B6dCq3GHjqd2ic0zzodV+KFeXcpc4GVjnJ8SP6AKy/xoYgm6 E/Q8nf+0cfAPFIj3Nh8r4tS5gZxfES6jBETekaGC61+bFYOd7JG5DqOH5fRllYhpMekY XIGA== X-Gm-Message-State: AOJu0YwDXudd40hX7gTiR/ZvhDuuW3hR4uX+n6VsWSTiAAaJzMNIA5pI E98nOgXRWvAoy5y+dmO/JKy6N7LzznE8x4Ls/LNDt94J4Q5T/7w+reVz6X5irWg48JvhJIqRgH5 VjdufHAc= X-Gm-Gg: ASbGncsPsJdR4j5Nv3AFVhiavaZDWWyL8zfLVdro+uNOUK3UGTWAsCYv8PpfYdFJyKo Vm21V9D6z9kfxd8QiKhy1w5nOCN48KxnI8hAb20TzMmLvT9Iurqn35kIp0tmmRnE64X2SI4w382 eRT2yFTOWxjqS2CaAzOAmg2/kcTHqxQ2LV1YgruCHAFCpNqP/rPX1xRAvjnnOhxmXhyPh8VrBiq Ew4DbbxnN8JO0MOmq0qo9VNJEKelGsoU8s17WywMvWIIPfRUKi4zDSes6JVc4XGtrV4LCj5/gvX 5MvRM8VhHmjEIas5ClzmYe0ed13YCXqwfiVvXbiDg+FIh8a2KSzITQQkAudfR5a7TjmFXWbCcBN OvUJdTBmDnCIqtg+60HM+eQ== X-Google-Smtp-Source: AGHT+IHaQZbO6KO3PpIYw3m/6S5emsSdIZmV+3tze39ZMgyywCkrwKVKQtng0wufQkqFmiu2pz1F4g== X-Received: by 2002:a17:90b:3906:b0:312:1c83:58e7 with SMTP id 98e67ed59e1d1-321161e9845mr1953519a91.1.1754090780054; Fri, 01 Aug 2025 16:26:20 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: Liu Zhiwei , richard.henderson@linaro.org, Palmer Dabbelt , qemu-riscv@nongnu.org, Daniel Henrique Barboza , Weiwei Li , qemu-arm@nongnu.org, Peter Maydell , philmd@linaro.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Alistair Francis , Pierrick Bouvier Subject: [PATCH v2 04/11] semihosting/arm-compat-semi: remove common_semi_sys_exit_extended Date: Fri, 1 Aug 2025 16:26:02 -0700 Message-ID: <20250801232609.2744557-5-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250801232609.2744557-1-pierrick.bouvier@linaro.org> References: <20250801232609.2744557-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::1034; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pj1-x1034.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: 1754090970439124100 Content-Type: text/plain; charset="utf-8" This allows to get rid of sizeof(target_ulong) for riscv, without changing the semantic. Reviewed-by: Richard Henderson Signed-off-by: Pierrick Bouvier Reviewed-by: Daniel Henrique Barboza --- target/arm/common-semi-target.h | 5 ----- target/riscv/common-semi-target.h | 5 ----- semihosting/arm-compat-semi.c | 4 +++- 3 files changed, 3 insertions(+), 11 deletions(-) diff --git a/target/arm/common-semi-target.h b/target/arm/common-semi-targe= t.h index da51f2d7f54..7ebd2136d93 100644 --- a/target/arm/common-semi-target.h +++ b/target/arm/common-semi-target.h @@ -34,11 +34,6 @@ static inline void common_semi_set_ret(CPUState *cs, tar= get_ulong ret) } } =20 -static inline bool common_semi_sys_exit_extended(CPUState *cs, int nr) -{ - return nr =3D=3D TARGET_SYS_EXIT_EXTENDED || is_a64(cpu_env(cs)); -} - static inline bool is_64bit_semihosting(CPUArchState *env) { return is_a64(env); diff --git a/target/riscv/common-semi-target.h b/target/riscv/common-semi-t= arget.h index 7c8a59e0cc3..63bbcd2d5fa 100644 --- a/target/riscv/common-semi-target.h +++ b/target/riscv/common-semi-target.h @@ -25,11 +25,6 @@ static inline void common_semi_set_ret(CPUState *cs, tar= get_ulong ret) env->gpr[xA0] =3D ret; } =20 -static inline bool common_semi_sys_exit_extended(CPUState *cs, int nr) -{ - return (nr =3D=3D TARGET_SYS_EXIT_EXTENDED || sizeof(target_ulong) =3D= =3D 8); -} - static inline bool is_64bit_semihosting(CPUArchState *env) { return riscv_cpu_mxl(env) !=3D MXL_RV32; diff --git a/semihosting/arm-compat-semi.c b/semihosting/arm-compat-semi.c index 3f653c6e7a9..ef57d7205c8 100644 --- a/semihosting/arm-compat-semi.c +++ b/semihosting/arm-compat-semi.c @@ -755,7 +755,9 @@ void do_common_semihosting(CPUState *cs) { uint32_t ret; =20 - if (common_semi_sys_exit_extended(cs, nr)) { + bool extended =3D (nr =3D=3D TARGET_SYS_EXIT_EXTENDED || + is_64bit_semihosting(cpu_env(cs))); + if (extended) { /* * 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=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 175409116675668.50979543397193; Fri, 1 Aug 2025 16:32:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uhzBp-0003JF-SU; Fri, 01 Aug 2025 19:29:30 -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 1uhz8s-0007Or-U3 for qemu-devel@nongnu.org; Fri, 01 Aug 2025 19:26:27 -0400 Received: from mail-pg1-x52d.google.com ([2607:f8b0:4864:20::52d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uhz8o-0005vY-Nl for qemu-devel@nongnu.org; Fri, 01 Aug 2025 19:26:26 -0400 Received: by mail-pg1-x52d.google.com with SMTP id 41be03b00d2f7-b4235495646so951149a12.2 for ; Fri, 01 Aug 2025 16:26:22 -0700 (PDT) Received: from pc.. ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3207eca6d3asm5628217a91.23.2025.08.01.16.26.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 01 Aug 2025 16:26:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1754090781; x=1754695581; 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=cQuwaBAbAuk9qmyrSkI93s39oZy/p5JMj/k+RbBPzVI=; b=dtGdeBpDCA4X8KpTilU3yvbwzrUXPo/sH02e6LeBa1PVVw6xfWNmrqDqVWd6K1vNuv ZqDZyzGDvgRxojB27+z2qdHXH4d2Kiw8wVPpqF3CNMSL8gvTFh8x+jMfCfCwkxkctbg4 nEpIv1H915H5L5U9vUY2060ZdapPuNBSZu0ZVw2AG4x2STYWyUtEbIzyBYXQPaElV/sM ihlaxPCH09khlg9wpbQoo9JbR8+2z83q+r6dwANOkDaZHD6YnhWLk3KSMSTWB8mIJDN9 JEBE7KR9LAWGdLbtLeVws0KsTFgAE249xrTNr3w+Tx7BEUGdzV7MVZud+DNu37t6LcWx j04A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754090781; x=1754695581; 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=cQuwaBAbAuk9qmyrSkI93s39oZy/p5JMj/k+RbBPzVI=; b=P57gddL2XgIZN8F0aKW3RtyTMJVPIxnWmMJ8e8hzu+yRXk7/epc2djoWvp3Vz4jFYa 2lSdck4bRLzVjC8KIhXDnHJwA1u6SyHU1PqYPUNx1R8awBlCfpykeTC9pDU5yjtsIFTJ /08rDmUdJkXcoYprZZ8PBkEogW7qF8z8tuE90ahFLgejkjyXS95634e2xDzslwm98Rs/ weNTGzCzmawwQFchc/kXFGGzUAixCY6eM9GUGACaamJPpWlnA3byVz2urNUSlzHp0A5z 00AgLN6+duCJ78VJJSRUX+prHvPqcUMZvY1V/PYebxx6agDO+KPclRFRLX7CqUWwcRZ3 uaoA== X-Gm-Message-State: AOJu0YxM/T4Ww9budA1CC0JSiCDMbM7quwTztC4JIsVQOHkgUG+E4T8E 5kw+xAZPmKlLJIeThULl2ltoZeC91RkkTRjwLTD1TWpkhdftplVjM4SZ5x6GP54nym0IfrQ20jk Mz8TE2Aw= X-Gm-Gg: ASbGncv3LUP6//tcRR+Pt6B4Sh96CEO/Clpwk+KB2WaSxKtVZ2NRiFRuNTbX42iH4oR PSRXloaqDNMsMBz7AdIh7Wr37ZUGc8ZvITDUkrVzd22qxlBf5EWXaLuwuYF+BGaYZpSfRXoX8eU UJn5doxxWNyeii1HTLlf5yLKKL8Q3S9VbqzGqi6mJe71hDm0TcMalse6xsCtgJTQGnEy50hqmBk /4H9q4aou+TEC9x2Ah/CjJeiUwc6hJstsXEIS7CJ6EipDDn7IFNpyLb6zHVmEwho8bGS0F0yD3q fioWthck1T6nO08bdUgq6lDCsTj3qyeCZzOxsZ4Ks+hSWKgg6S3DTkhUZpfVQ15UJCmguPUjf4Y ieb97GTJ0yb11bebKI67+qQ== X-Google-Smtp-Source: AGHT+IELi1GuD7HN7+e5q+5mGfavDBZrg/CKqKydPsQcMxn5dZq9OuclZrVFJ28z/QXTDCI/9bstqQ== X-Received: by 2002:a17:90b:3ec2:b0:311:ff02:3fcc with SMTP id 98e67ed59e1d1-32116210418mr2235579a91.14.1754090780986; Fri, 01 Aug 2025 16:26:20 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: Liu Zhiwei , richard.henderson@linaro.org, Palmer Dabbelt , qemu-riscv@nongnu.org, Daniel Henrique Barboza , Weiwei Li , qemu-arm@nongnu.org, Peter Maydell , philmd@linaro.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Alistair Francis , Pierrick Bouvier Subject: [PATCH v2 05/11] target/{arm, riscv}/common-semi-target: eradicate target_ulong Date: Fri, 1 Aug 2025 16:26:03 -0700 Message-ID: <20250801232609.2744557-6-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250801232609.2744557-1-pierrick.bouvier@linaro.org> References: <20250801232609.2744557-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::52d; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pg1-x52d.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: 1754091168618124100 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 7ebd2136d93..b900121272c 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; @@ -39,7 +39,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 63bbcd2d5fa..2e6d6a659a3 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; @@ -30,7 +30,7 @@ static inline bool is_64bit_semihosting(CPUArchState *env) return riscv_cpu_mxl(env) !=3D MXL_RV32; } =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=1754091200; cv=none; d=zohomail.com; s=zohoarc; b=Ys7aOw1p5aqxB+fqiCLgxUcTkRmad5EWTVt0yRIe7Eot9+3oFT2MTvlz6bR/csAUQSUXosKnTOo3O1fC6wJYk+mpuUNte3Vk65KBVK3CihN/9br08pjmRkBgVxUaPy2jAdZnnL6DdJKHls059l5dCyZwTm5aEvd/43wXV3cKYTg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1754091200; 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=891inftKOdhey3sFn9UdQanwKebbfZAQKRLupw103tU=; b=Nak6mZToAr1NuWJCjqUDVkqTrxpvUJW2XDiWwJIVCYI8b0199y1519zxdGj3PvnEUKzk0MM9xy/GSFdxnCqkZpi2QaR5wZTCE8nmbukCIsaGvx/zmqJS7I7SUySKidkXEOfvMgGD3ebLmDWttC00GUgZHjo/5RTSX6ZajvVN9eQ= 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 1754091200320929.5755448721868; Fri, 1 Aug 2025 16:33:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uhzC9-0004W7-Ap; Fri, 01 Aug 2025 19:29:49 -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 1uhz8v-0007TG-7M for qemu-devel@nongnu.org; Fri, 01 Aug 2025 19:26:29 -0400 Received: from mail-pj1-x102b.google.com ([2607:f8b0:4864:20::102b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uhz8q-0005wG-Lj for qemu-devel@nongnu.org; Fri, 01 Aug 2025 19:26:28 -0400 Received: by mail-pj1-x102b.google.com with SMTP id 98e67ed59e1d1-313eeb77b1fso1200256a91.1 for ; Fri, 01 Aug 2025 16:26:24 -0700 (PDT) Received: from pc.. ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3207eca6d3asm5628217a91.23.2025.08.01.16.26.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 01 Aug 2025 16:26:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1754090782; x=1754695582; 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=891inftKOdhey3sFn9UdQanwKebbfZAQKRLupw103tU=; b=QL+7DQjgbFxSdgTGjmpHLfi2rWIqmcnNhIOV1LYbwIxrfWJuU3/G2j+MWoFNSv6fuP pmNWK6sfL4TpEqNH3XFkce8VQgd+a5GntuTrQ5AGZw7SnRIzd8fGiDmiwoZVa3moRq7e bMjhhMGfQvvzC0EieBmz+tPXk9w1J5cP1bFsm5QBvEjGYdwqoAwSUtvj0IGXhIbKkPeW zEC9vhaTufKOXWaFNFizI0i0M8XBeDEAlDUl5456Z5O8038s5xZWnBf7an5uta144hMu 0UjXbsXX0A30P+jbq1ADCGyILMT7tbNtTPogAiwJFEJUxZJjScn4CpNzCWF7o24cLbWL rB/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754090782; x=1754695582; 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=891inftKOdhey3sFn9UdQanwKebbfZAQKRLupw103tU=; b=dwRHkBQKVh3qVnz1bzDHQJccIU807Emg2Ol9+QcObsBiFY2sHngD3oey0nWc4Ww3Wk HBJRP1fi8AiKyqiyO98umNFbn5MWcSe7s3Nv8T2n8jxHDO7U8AOHRMnudfAknBGzZuRo QOg9IIUOnrkZMUNvGAy4Zz1QoSoo2T7EgKe7PcuK2qd/4uQaApQ+eoWrDXV2UZyPFMwC pnPAwppAx5ym9UV94MIwgJmHooZ5nTAn90mZQJj08eCPHKbsciCZa9+9uoxCUKZlTR55 3ulRtbmvDFIC6BwtY9xJ1uUjvEIz3Jy0yKWqz0KUCGVH/KIHGGa+dfBLMMnkkMOgrNzY i78w== X-Gm-Message-State: AOJu0YyUq+cS8sqeYjzyxXvxxKuKDxhiJTD/WYxIeOBMmJkCRIn22Px8 uOmkE97nmLIVAxsBnqJn4JWwiOoa8t3i0E8MDONaYs8RiHI92S08USULxyK038ud6HRiVnwf3iX HjYPITco= X-Gm-Gg: ASbGnculo3SAXAiLZlcJrKwcgy3IMd6wS66yMjBwaPJk5kC+LJ+6Ji4h26w4aRiQy0e npAlQp2q2barwgl+za0vLjVs0oHAu5+FBGBA3ndMnDef7jW+bpRC+kF9u9IMJktWIt0yLkozQEP iIFRN0LoHeVerUApKQUbB+bId4TwxBVG152kSWNjaaGjdPndxaaWcIkNbf4mbbejmd/Wpc9o+PH WS8+e8f3ZwEZ0BBGdqxNCL7EIhP8es3aRpJm57rmyXlA4zDkWfmx3121szCnLQk6J4LgHeHj3lU OEzqsCPdPj11bc34Zm60Zigo1AIA4CRVC/NEgUam+Ry6MWrxc/7CVJMkARUyqjAoerRF5qMRXVx 7qTwfT0Tk0/vF/NxE6FHBpiIICrdFDtqo X-Google-Smtp-Source: AGHT+IGmYipqmpxEtASa/avLaJh40RAU9aY60Z7HLO5dSmByyj2neLGqTYGsncyN1sDyCRHVP5BLlg== X-Received: by 2002:a17:90b:53cf:b0:31f:ca:63cd with SMTP id 98e67ed59e1d1-321161d9cfamr2006709a91.2.1754090781912; Fri, 01 Aug 2025 16:26:21 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: Liu Zhiwei , richard.henderson@linaro.org, Palmer Dabbelt , qemu-riscv@nongnu.org, Daniel Henrique Barboza , Weiwei Li , qemu-arm@nongnu.org, Peter Maydell , philmd@linaro.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Alistair Francis , Pierrick Bouvier Subject: [PATCH v2 06/11] include/semihosting/common-semi: extract common_semi API Date: Fri, 1 Aug 2025 16:26:04 -0700 Message-ID: <20250801232609.2744557-7-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250801232609.2744557-1-pierrick.bouvier@linaro.org> References: <20250801232609.2744557-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::102b; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pj1-x102b.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: 1754091203115124100 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 | 5 +++++ semihosting/arm-compat-semi.c | 3 +-- ...mmon-semi-target.h =3D> common-semi-target.c} | 18 ++++++++---------- ...mmon-semi-target.h =3D> common-semi-target.c} | 17 ++++++++--------- target/arm/meson.build | 4 ++++ target/riscv/meson.build | 4 ++++ 6 files changed, 30 insertions(+), 21 deletions(-) rename target/arm/{common-semi-target.h =3D> common-semi-target.c} (66%) rename target/riscv/{common-semi-target.h =3D> common-semi-target.c} (60%) diff --git a/include/semihosting/common-semi.h b/include/semihosting/common= -semi.h index 0a91db7c414..9b8524dca13 100644 --- a/include/semihosting/common-semi.h +++ b/include/semihosting/common-semi.h @@ -35,5 +35,10 @@ #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); +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 ef57d7205c8..e44e910696b 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 66% rename from target/arm/common-semi-target.h rename to target/arm/common-semi-target.c index b900121272c..bad33a711d7 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,22 +34,20 @@ static inline void common_semi_set_ret(CPUState *cs, ui= nt64_t ret) } } =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 60% rename from target/riscv/common-semi-target.h rename to target/riscv/common-semi-target.c index 2e6d6a659a3..7ac8b9164ee 100644 --- a/target/riscv/common-semi-target.h +++ b/target/riscv/common-semi-target.c @@ -8,38 +8,37 @@ * 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 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=1754091233; cv=none; d=zohomail.com; s=zohoarc; b=FECU7EqqvGuDbXPHndB3wqoXpaPM/GlD+ylqZDyKFi+CWoZp1bRaZFGxWDrodRWSivtTowqYMol1BFCQdWYayjwBeM5m1W1xLGexGbmPlRChwqjTEBfU1RBLRZztsRJWmbVG268DHONhoAKMSCoCn2lRy9eB4mjLB1Ogy6FAqSM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1754091233; 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=4hBawASsHdbL6GWaVoVOq2WpP17YA49FN5IqJZ8zqPk=; b=nJyq0ix0QVfBMSahD0W7b4B+mL/A1PDWaJTU/TH0RiUyDxmaMAbG3G9NCtuiqPBTPx8+ZehZjWooywIiM2DTxZYY84qmd45YlKAvNjpvykniBcfIo8LASzB0pEFdP5v3P64CZUymzaCVzmM3mkkWbPz/XmAuOQcXTqBThbkiY2I= 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 1754091233194551.670951286797; Fri, 1 Aug 2025 16:33:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uhzAE-0000Qg-Qg; Fri, 01 Aug 2025 19:27:50 -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 1uhz8t-0007RC-RU for qemu-devel@nongnu.org; Fri, 01 Aug 2025 19:26:27 -0400 Received: from mail-pj1-x1031.google.com ([2607:f8b0:4864:20::1031]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uhz8q-0005w4-85 for qemu-devel@nongnu.org; Fri, 01 Aug 2025 19:26:27 -0400 Received: by mail-pj1-x1031.google.com with SMTP id 98e67ed59e1d1-31eb75f4ce1so2338438a91.3 for ; Fri, 01 Aug 2025 16:26:23 -0700 (PDT) Received: from pc.. ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3207eca6d3asm5628217a91.23.2025.08.01.16.26.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 01 Aug 2025 16:26:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1754090783; x=1754695583; 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=4hBawASsHdbL6GWaVoVOq2WpP17YA49FN5IqJZ8zqPk=; b=ALNwvHgXgVyMarFOyz5LcPX4g35VGBSb017xebRer0Fm5oQi4WqmxGGMFilAaawzcj mYd0vj76LZv1SPIMRN28L1p5cxiIdiuvn5fAza/s2XD399UicZZ7hI22Tv7FXIGHweHa gJaGI+AAu9PA6kH7Mm3s02RBG76L5DMlsp/4YNVuWtgrzR5yn1gJU1ikBIxeLpl6xKb7 n33av4mbIl25vyo+TLArFAklIHrpzA5N78tHwP9ruSYaQveWLXd2HU29OLIWPG5Bzf3N NmZJIOnhqbJ4idM4Tl/sOXrIdILAOefTIbxzu9g/dmJC+EQdxen+7uGYyytWTNIsxexu NkgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754090783; x=1754695583; 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=4hBawASsHdbL6GWaVoVOq2WpP17YA49FN5IqJZ8zqPk=; b=XfP75PQ9bgM2Di3mbz/nfi9VFxbsMPXWC8CBCvczAJvx+0HiWZrET/w9HdRu75sn2K aO/eSvM83m/yPJe/rZ5UEbdHuTESDYRAG2f0gWhve3L6Jalxywu9mKJ3hxxx1qrSG6Gg uNfIJujEIoJLCIjX5K8S9mW47bn6oYBwJ4aUE0jmvZUsbtcfsPxOv61C4GYroxFQj7Qr X5jFhl+bprJ2sB2a/S83sMY4+jV4tDUjU6pYM7ZrFrXSRzSikj1S3BYHBmjTdtv1OONi b6LPYJEy+e5rqldY8rYBQOn7YUej4j63DHT1ifa1QS/Kq+s1cYKXQZ+T7Io6QBlVZci1 hxaA== X-Gm-Message-State: AOJu0YzrK1IAtdoYGhWxTYZWWe/7jbP8IYRzkjuhxHI04ook8UnRtKav ETClsDo98nDr6M0lgWx/n2O0gGCcI+dI0jUT+QA+5qnovCvIh+2T3eJWwdjj4XBEPxOrqzCe8P8 037g4R+o= X-Gm-Gg: ASbGnctpNVAnlp4AR/YrUTg2RkEdCs18ww2K78fffdPRiy7FfmrgV+xaqvJV5hoKN8D I0IxUGrU9jWGw5VGNZHTcmfJ3u3nh/v6Ec05Wd67gvBxvgCTlq1oGKdH2nNk5Fh1KV3QdRFUenF I11NCPZSsw6oMfysvt0u+Z/zckiNo/0ySwbr113cX2E6i9hUHDorJAy0ncUKbruwSTbDy+mYz0I aTtFlAAbM6tsIU3HeJBcf1p4lLctpI4o1tqzrudWCCh6nxuEgwi/u7Rhg0m5luLYWcckhDlyirH 4Sb6E9hbAlJF/z681XDRVSMXZjIPf2eBtErI9X2XvUtzyl37Gkr15r94NAt1TUNTSKobOxfUUwv yvfYM6uiMcCaWhfquTA8Mhw== X-Google-Smtp-Source: AGHT+IErVAIYG+ZivK0tp9L4ZO2CAyYDXyBRtGWk5IQIXLDMyxQxQ99iYzY3K+k1a49xo9eHNhCr6A== X-Received: by 2002:a17:90b:2d08:b0:31f:28ae:8709 with SMTP id 98e67ed59e1d1-321161ff633mr2008864a91.8.1754090782807; Fri, 01 Aug 2025 16:26:22 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: Liu Zhiwei , richard.henderson@linaro.org, Palmer Dabbelt , qemu-riscv@nongnu.org, Daniel Henrique Barboza , Weiwei Li , qemu-arm@nongnu.org, Peter Maydell , philmd@linaro.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Alistair Francis , Pierrick Bouvier Subject: [PATCH v2 07/11] semihosting/arm-compat-semi: eradicate sizeof(target_ulong) Date: Fri, 1 Aug 2025 16:26:05 -0700 Message-ID: <20250801232609.2744557-8-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250801232609.2744557-1-pierrick.bouvier@linaro.org> References: <20250801232609.2744557-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::1031; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pj1-x1031.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: 1754091235419116600 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 e44e910696b..b56d882aa52 100644 --- a/semihosting/arm-compat-semi.c +++ b/semihosting/arm-compat-semi.c @@ -787,7 +787,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=1754090898; cv=none; d=zohomail.com; s=zohoarc; b=EeGhPnyYvN7DoXf4K+xZGWYnlR3L1djYnIUddkRhYcDIDdIQrPPzoyhl29X2Ca8qQW5JTsB/V6s0d08ni9skOSg+GE95QkmXrpwgWHBugIBp/cYlG8jsQtV1XJBVIxt06Pg295boVIgroqMRI7tCgpqWLfIBD1mTem+S5WeAqvA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1754090898; 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=MAD79U4LT9iuyQ8dO/F2M38oxkHlL+RPoW3VQe2AtZA=; b=eahiaCgzyOwp8ucppdf76ZI08+HJDttooFMGuFuL6NDpzR3jTgiBIlo4G2G6hegmiYaVHJURcY/iThKTCXk6dYIiY+uJBfGbqY2cC78KqXkIamyuVfqZG/soJQBmR1dfSYwRjqcCnhg2mY076wKxBISmCWZkHVs5UG5PlxPCM3U= 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 1754090898072765.8755258503041; Fri, 1 Aug 2025 16:28:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uhzAG-0000SX-S6; Fri, 01 Aug 2025 19:27:52 -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 1uhz8w-0007Ur-4P for qemu-devel@nongnu.org; Fri, 01 Aug 2025 19:26:31 -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 1uhz8r-0005x0-Ag for qemu-devel@nongnu.org; Fri, 01 Aug 2025 19:26:29 -0400 Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-2405c0c431cso27690355ad.1 for ; Fri, 01 Aug 2025 16:26:24 -0700 (PDT) Received: from pc.. ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3207eca6d3asm5628217a91.23.2025.08.01.16.26.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 01 Aug 2025 16:26:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1754090784; x=1754695584; 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=MAD79U4LT9iuyQ8dO/F2M38oxkHlL+RPoW3VQe2AtZA=; b=CA9fUU4F5QMeZsBRVni6cRrVniFqiHwPTziQ/P0ri3+IW0j8vgAzGun2xjDdlcXMwX Geyh0cWTkzoUohCUOHW3JIgVDgAaNWjkiddQYggSM4+YB9+gwpKBYOP/yQP2OIeTTb4j bUvKqMrXdYjYkhgk8YPqVaWylEXDNBxKEdOqzCFvXm6Xbkb1dWtY6Cetkthi7JZKF7UG s9IZ26+VjHIX2supueXHeEhjpinRwHs3sLXrNgrRLuNzCr/YjNks4dyFBI1LrmHLPINJ W0242jPkkDrZ/RV9D7PKZrnSR4aQ/mjKdNc0KP5QgMPa9IwLBJ835rLCAWcXyUJ8RRoF CrSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754090784; x=1754695584; 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=MAD79U4LT9iuyQ8dO/F2M38oxkHlL+RPoW3VQe2AtZA=; b=NkbkL8P9MGkxDo0q40KPufNFJ+iJ9PvXsTf/Nguzk/pA4u8mj6XogJmiLCp2vZwZAk LOKua3ZJGJmw944cxui21+naOHKAxnjRqQSGSu4M4HzpaY0HeRe1QaTw0IHFRNqapnSr dI8n8UbB2oEfeYGbQnCTZNI/l6M2NSxnm8aAu0twSu6nIDl38C9FJijXhUtERarYu+CT 65lKPpdFBa8ofMXexdNWndzIJLS0Rvi7hRlyMCwX2o7qyspVY/sFYY1MvOdVY1sDuS/t ndudGB6Iy5UG48BDZizO0doLMuw50iIJcrJpUmQl3k/XqbVq6mWm5OPdzMK+etSu2KXa 4jDA== X-Gm-Message-State: AOJu0Yxf+/u+u2m6sbDVdEu7GzLtbxhMMmNYnmu6xltHLo98+SgWVR// pa8QbiOr09aPSsrQSq0yyExOKYzoeVxAa95DVFB3InDk5YIZrYPcNeTKn+EM0zTolxaEZISY7zy /hMItn1g= X-Gm-Gg: ASbGncsL3cnOIvbcqZURH4brJKbIvIAv9cwDVTd3m7I6ZkUaQsdv1sQBMy9QXbaTKjt 6sD/ZmZPX6SIz1aBsUUjf6X/3+WYi55El+LuXyt+bp24cJP9b1CScGqcoooTtijcVihXwg7oxTX kNgxmXtPdeOyRsGVf3RpmwEbCTU8VfL3myKlRed6IDdxDsEFQW1Rm88r4uQdkZ8T8QhwEQ2kBvq cm/r4Juu/mGi0wugddMeStWvBcfd6bLj53n0l+rYYWcXJZdNtA6F/urfRv6gDFScmdkET3mPXE9 937hglUsmqnkoe3/BRB96EVzXIn7j27rY4/xWn63BsoX1HSQqNvX/sZOrHjrYFzToZdrhSaBJ8b qX6js1xpcud19bMHLQZHpUkdyMKkG9VvK X-Google-Smtp-Source: AGHT+IE/kn1ICb177hhcpwa+yVHYtwDI7sG+v9+IU0NvQqDwU7dUX2YjJxI/D0wwIBLHtcFmrR2a9g== X-Received: by 2002:a17:902:f1d2:b0:234:8ec1:4af6 with SMTP id d9443c01a7336-24247027524mr12359315ad.45.1754090783707; Fri, 01 Aug 2025 16:26:23 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: Liu Zhiwei , richard.henderson@linaro.org, Palmer Dabbelt , qemu-riscv@nongnu.org, Daniel Henrique Barboza , Weiwei Li , qemu-arm@nongnu.org, Peter Maydell , philmd@linaro.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Alistair Francis , Pierrick Bouvier Subject: [PATCH v2 08/11] semihosting/arm-compat-semi: replace target_ulong with uint64_t Date: Fri, 1 Aug 2025 16:26:06 -0700 Message-ID: <20250801232609.2744557-9-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250801232609.2744557-1-pierrick.bouvier@linaro.org> References: <20250801232609.2744557-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: 1754090900681124100 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 b56d882aa52..23319552a31 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=1754091000; cv=none; d=zohomail.com; s=zohoarc; b=JHlqprNV6KXE2kmK/VknpNSZXrXo5Ey//KFt4cXLUtAsN/BDsmKRI2OMjSVbTc+5i3ik89FLPTb3zklWcZ0azd07+8kjtgTa/GeqKzLoFZ5T/w2sxa6FuDhy5DYftFNBwqNhCSWX/1RCYMDZBSm8oVC895V+rJLGLuNM3XM8sRo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1754091000; 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=BjQRkF3T2e1TLC4uRUvYI8Of7xM4pUkpWBxjX1/U+Cs=; b=IL3kxDvVp4bkXId4xcsm73D2C4HimrJb5i64Q07U/xJ0b6V0h/ILv/JQwP5sHhnfdfymocO3EV3PjUQiYHS3SfHmAyzQWHZ7LHCHpVP/f7VAj+4KfPkwSkmye0vkwt+/pv5DdeMyu7a9B1SKkJDKbPQ6c/8h4uHHANlUTDgHtzw= 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 1754091000670211.46209425546647; Fri, 1 Aug 2025 16:30:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uhzAI-0000Uq-7X; Fri, 01 Aug 2025 19:27:54 -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 1uhz8x-0007WG-Gp for qemu-devel@nongnu.org; Fri, 01 Aug 2025 19:26:31 -0400 Received: from mail-pj1-x102a.google.com ([2607:f8b0:4864:20::102a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uhz8s-0005xc-7K for qemu-devel@nongnu.org; Fri, 01 Aug 2025 19:26:31 -0400 Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-31f325c1bc1so1346773a91.1 for ; Fri, 01 Aug 2025 16:26:25 -0700 (PDT) Received: from pc.. ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3207eca6d3asm5628217a91.23.2025.08.01.16.26.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 01 Aug 2025 16:26:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1754090784; x=1754695584; 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=BjQRkF3T2e1TLC4uRUvYI8Of7xM4pUkpWBxjX1/U+Cs=; b=yWSM7QOabctrvyX59t5uENmnS8rF3qGvxGTCH3VjnobHpRo4Jmx1MZuLK89wy5ZO/Q osHuQJQvXP88O+03OMhqkGi9jC7o8FzskxCNuL57jw1bam4rYRbQbdgr1DssUsgSnlQo QUVVUCrzRLD4v+0GTi4+lwnsyQhMPY1apSKZNye4+Up98PmbF0NiPzttC+NjX7Gr1shh 9/kWhv4v7vX/4OdjVjtaQ/GV/lCHTfl/JeZ2Or5C9PjRGLlt8AxOm6mqHThaB5P2GcW4 8TF3Wdc4vncdGDN6LfniH1suUdDQCY4NTNl4j/810gKA2cUsVjCYERSKci09bnKZ6uy8 HgVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754090784; x=1754695584; 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=BjQRkF3T2e1TLC4uRUvYI8Of7xM4pUkpWBxjX1/U+Cs=; b=AFfJPprhAjMM5udXp7dr+TUG53+WCs1wNR1FB6OQO4UGeKaFPQ8HYtSWMUffGmFmdw W721UYPqKINyH5Jo8fTlW8fq3DdQEQkoGGque0nl8JCxYn8HxTDyvTUoqYOsnM7toEEo NNYqEfP0GuuDIuFVX/YOoJqfG9+d32w9E17tsjc8X1aZzg7J7O0Q3U1qDif1bKMU5QHN 6nDAOC+8kQ+a3hjV6FX663RoioKxrXIeMY9GH5/B7LvbMiqOQmoTfHZuYdgMDB2twihs RG64VpLiAKVRys3jcgAtjajA2ZYM6QFB/GhkMMEKtcql7Bp8XRD38zhbsz5YswrqFndr mjFQ== X-Gm-Message-State: AOJu0YyedAUoMGakTJn24Q3RxtzmUlZF7CAsmWCMqn2OUtPPjgrqUprV az6/D47nTpOvfkUtR6NawVTtn7xI/jDrDgxGu8GlVdlxvD627MMv4zwowHk5hHXql6WgjG8BAj3 mXz+DdA0= X-Gm-Gg: ASbGncv1hRtLnBOMMTj8ZxJFWDbZ3AogPRWrmRAlxPfhwKmFow6fMJ/MVLmijQgSpC0 pIH9U86BWmhVmo9R8Q84VWu8tSH15Z5WvoxqrHd7GBPmLDgoGgnIb6pRBXqnY5h1QrbTR3zZAN4 NmnV89Eriy4pyt2LQcdCXXpGUyh5MvD9DU8RwOL6jnpEDzxb1diTzk2UqA22ldiR1n/dwPB02aj 5OVEnWN3z6Ct3P08prarTCE3fZdq7240BdARfimfnEMd67zQ7BzCeTlqYV1wY6DCN8bPoYZFxKw A04ExPr1AApO8SUUDFIRPtrPEzshzUm0B3JwXZ+tmn/RgU45YasRx7qQ5xNLPVd5Z66wEyhXJ9R UHtqfydjGgc1huTNmrPkg6g== X-Google-Smtp-Source: AGHT+IGB0AcTzr6B4F26dGXej77A/yeTKgm5nnIegOXWvsK2bVPvbV/VC1rPwyiZ3A8RMZd45FLWiQ== X-Received: by 2002:a17:90b:4b83:b0:31e:4492:af48 with SMTP id 98e67ed59e1d1-321162d3205mr1860771a91.28.1754090784640; Fri, 01 Aug 2025 16:26:24 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: Liu Zhiwei , richard.henderson@linaro.org, Palmer Dabbelt , qemu-riscv@nongnu.org, Daniel Henrique Barboza , Weiwei Li , qemu-arm@nongnu.org, Peter Maydell , philmd@linaro.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Alistair Francis , Pierrick Bouvier Subject: [PATCH v2 09/11] semihosting/arm-compat-semi: replace target_long with int64_t Date: Fri, 1 Aug 2025 16:26:07 -0700 Message-ID: <20250801232609.2744557-10-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250801232609.2744557-1-pierrick.bouvier@linaro.org> References: <20250801232609.2744557-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::102a; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pj1-x102a.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: 1754091003066116600 Content-Type: text/plain; charset="utf-8" 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 23319552a31..550c8f3589a 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=1754091017; cv=none; d=zohomail.com; s=zohoarc; b=Mi949WEzPNli256cbplsOaVR2crXgr5fi5o/55R5ceiIICSFu5meT47FwCAcCgxnKC3Bb9cPhJ+Q9inh33YCgIHVIVPfcFIh2nIV7WFCml/21+1KmBdmsgj/c4ePYQLKpLOvZlTc/8Rm3FJVQusnAvr+UCPnVtrIycMYzLVWrZQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1754091017; 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=zlUXIhi6h78CRePZELfzHeitKJjJ5bn9ta1i4YKR6R0=; b=by3ckMSKO1bW6Sn9X5jp0PFJMWBJdg1ndXYOlXdL9SiKb+mSnJEUdvzS493RvZ3HYeKFyaolz1ZBOCfuHZcNUVM3lZGmQj+c3YoOxteAznMYKBcx0o3E0/SSvhAKNYWtsaQKgCQmN/TE7DD3Vm4WyJssCOMULje4NNaFog1Y7P8= 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 1754091017466903.7997334639084; Fri, 1 Aug 2025 16:30:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uhzCJ-0005GS-Rg; Fri, 01 Aug 2025 19:30: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 1uhz8x-0007WC-GV for qemu-devel@nongnu.org; Fri, 01 Aug 2025 19:26:31 -0400 Received: from mail-pf1-x42f.google.com ([2607:f8b0:4864:20::42f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uhz8t-0005y8-FX for qemu-devel@nongnu.org; Fri, 01 Aug 2025 19:26:31 -0400 Received: by mail-pf1-x42f.google.com with SMTP id d2e1a72fcca58-76bc5e68e26so2933242b3a.0 for ; Fri, 01 Aug 2025 16:26:26 -0700 (PDT) Received: from pc.. ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3207eca6d3asm5628217a91.23.2025.08.01.16.26.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 01 Aug 2025 16:26:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1754090785; x=1754695585; 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=zlUXIhi6h78CRePZELfzHeitKJjJ5bn9ta1i4YKR6R0=; b=C9VOhYYAMsIIqMhQ53njXNd9yo4/D5OAYr9vKGYtQ+smofTjnZPj+oEUL1Eb+4IsHS tpWEndfMj0a1EBihIhRrLAVq0dWZtcvabL1fa0iwp9RGTbDAzoCyJMfnF273w7Avoo9H 3OTh0h2IOJ3aiz/uKFU8Z9CFhKCn+23JFH1v7CaJYAGnROay+Gw+KEW2BWpVd1gfA6pP +XqSf6Saql8M4gK9KS9hdP+QNe6uTN28tpYt8aoOs0M8C0Y0mVNNXQBlkAalHk3JVUYt azbhgWMOj+cVMD3xFtKjiwqdLi78kpgGO5pE1Jkyx3HcRxUNs2+9aTAqMmTrxaTrm/Lz MihQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754090785; x=1754695585; 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=zlUXIhi6h78CRePZELfzHeitKJjJ5bn9ta1i4YKR6R0=; b=pBCJdeNk++BFXAhz6Abhi/ymV9ib8TK1jT/biU6jz2ffZUuebsbvjwHGeSs/Zexz0Y x1mcFw8NlOHlwRDiHMvTtpNC/XS6olGCEoZ4r/YJIGuHr0SCHaPlTYpcG44P4SMSu/t5 tbxLX1hjTmWyaAeH+uHUthW1Rr3ov/jl8glG6acparo3T6ol+pmuI7gZqzHRieSh9JV1 zKdcdmbyQTkCBFtHxHHJd8L/Pzm1kJlFNSSRRppuF2RJ51C0eAju+S5HQdiPjp18tTro ELOY0Fv/c5h/8Auv22CZ8f3RZ1ypFpHv5uH9hizh6TiNUOcoSsfIBk2Wii8sAozXRDgz XDHg== X-Gm-Message-State: AOJu0YwxqbhtNyBaqsUrZOmn0Z5mFDXNOJ5THhCAvIQDQL2AqmSHgKZS jTcGURi+gwgduKpUiMmUT9ZcZfZOsAbn2W3Qo1ATJphO7EAkn4nywSkgpE77euMlxLvGU6A7/lY Gcg5wN7k= X-Gm-Gg: ASbGncusRA+EG1s01SolaIS+jMfmzs5pPqXFdix9i56LV4V9Sf4xkM/3pIOjBYq3jWe b3qpJ+U6xfUF1vrClOEN6iw1XGnhSkzOHuSHS8zqb5z9aULTkxC7D4n1ZIpqkvLt8MlwuHHOkLK dlTgs0BPRDdrdUpaDWUMW50ARSRUOuVS02aVx3AwPIL/YUjPvx+Q6gsezsZaUzlMYDNDDtYm3z2 VL21by4jNtqB/bDzHN8wdMAjMEkPkOuLu+uHOaOTO7oslGp0f9nJG+6rxG6vCrmIu+1pM68+y3r PzGZWb5r7U1Mb3+MLwvLIDG7eVfYMD2Li3NXqmtYzS8Zua9jbdGYJjcOutrFtQtZ4TtAr9Yw1es FfsR2NaDS33Axp2prwp2S6A== X-Google-Smtp-Source: AGHT+IG01OBI7okrRxwg7bAA0tgYnaGw3fGVkgDnGnSC6XEP6eNOkzi1zRbpLsNj3l3FgdepOmRzEA== X-Received: by 2002:a05:6a20:2448:b0:23d:dbe7:9557 with SMTP id adf61e73a8af0-23df8fa4df4mr1667364637.16.1754090785550; Fri, 01 Aug 2025 16:26:25 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: Liu Zhiwei , richard.henderson@linaro.org, Palmer Dabbelt , qemu-riscv@nongnu.org, Daniel Henrique Barboza , Weiwei Li , qemu-arm@nongnu.org, Peter Maydell , philmd@linaro.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Alistair Francis , Pierrick Bouvier Subject: [PATCH v2 10/11] semihosting/arm-compat-semi: remove dependency on cpu.h Date: Fri, 1 Aug 2025 16:26:08 -0700 Message-ID: <20250801232609.2744557-11-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250801232609.2744557-1-pierrick.bouvier@linaro.org> References: <20250801232609.2744557-1-pierrick.bouvier@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::42f; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pf1-x42f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=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: 1754091018874124100 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 550c8f3589a..f4c92ab6660 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=1754091241; cv=none; d=zohomail.com; s=zohoarc; b=nT9bvUTleiFXTU7hzOXb8nJnRiVeYWJ1jRIdCfkJsX9uYqjKIppi8d4JwwQrhxMPJg1fdaMuix2BaB9HvdOqGRwjwpFN/6yiWMI4vOLJLR1rY/XtzBdWvjCONb9bEanrf9dy34Fsk+86EbxIpJnk8M1HCGujQCt65bg0NIppOd4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1754091241; 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=AbxAp3bZId4eapjstZlQ50NVlvDjTYaWMoeWKzFpikZWKveLLBo/2mrLiHCyPthYGbz85mPTdh/OVaN+Ml5vANPzVU3tkNUERd40/XsMXb7mYvOwJqwFxtv5qJtTQ2F+Uxgd+a0mi4XakGPuQVtLiAKbnAfUH1H0h1R3hnSLIFM= 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 1754091241691178.1306895915991; Fri, 1 Aug 2025 16:34:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uhzC6-0004L3-2a; Fri, 01 Aug 2025 19:29: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 1uhz8y-0007ZU-Tr for qemu-devel@nongnu.org; Fri, 01 Aug 2025 19:26:33 -0400 Received: from mail-pg1-x534.google.com ([2607:f8b0:4864:20::534]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uhz8t-0005yl-Rv for qemu-devel@nongnu.org; Fri, 01 Aug 2025 19:26:32 -0400 Received: by mail-pg1-x534.google.com with SMTP id 41be03b00d2f7-b391ca6146eso2167134a12.3 for ; Fri, 01 Aug 2025 16:26:27 -0700 (PDT) Received: from pc.. ([38.41.223.211]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3207eca6d3asm5628217a91.23.2025.08.01.16.26.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 01 Aug 2025 16:26:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1754090786; x=1754695586; 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=UtbeL64Q4oEwONbZrVuq/W3RUvdtptWnpoxfcocB/uWZ0nH7eeFWEf42whHT0eDZvx PMpAZ7FLjQV8evWj1MNYLAHkJOiYCQf9AiQG2zd0YUt+K2SIcQlgR4dgyDYNzGSY+f+X K9sVorIkMcLhK0oN+wLur9Yx19FGdx1KFq3kgNcTUALyDppvFHO4UVwZmaQqYSqpK43I qRuv8x1jv1djMz0WJLrK6NPhMp8rIPzV9QFBRoyHyVSVATD6mjA9DdTcLkp29Uat0p40 Y3t58In4CLoF9042gBVQEz+lSfCVF+N3JtWZIcY7db7j2G8CDxQYnj8hA0ciLFPC5biL ZMrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754090786; x=1754695586; 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=id8rwB1cv5cdyCjj06A/UWc1QuoMe/cCwHeZ5UBH1a9oDaSAHyynaSMR2OblPmhYcU NkK+gtLfdx2gHGHnmg/N7PQVcnfFi9r3qzGf/r2PSpY8hsemw7vz/DO8lSPCm0kvw2S2 o8R2K+gfqNJ/V39vjtqIFhCdXO0xCSoPddJTPfP1Lep+Naq74mZtxpkWmICity77mSDM hsN7d5uOTHQqPxYElv8yP9QZciz6qQLa2szrsVjkFzCCzSh7dm6nPYnHAbisPpq/Tc4N zFVcwBKUG+OMkOwGy7VSrshXthFJxQC++1q9kb5IJ0tIHnH8BkUZMZ3H0w0OFZBszI4z 5HpA== X-Gm-Message-State: AOJu0Yyp0A0cvU89RkWu5OjOm4HCYB1XkBAFv/CqTy7DEXOy0RxGLHsN dyl9Los4o7x7nRIFoJW9mfzZbTSIBZlpz6lfPjtEameV42lpB2VBVXPJIPGvPkAYomsQvrJInL9 9D5epYNk= X-Gm-Gg: ASbGncsIK+8If7Jt/7h9WZ85mAcjQQGSqmpvmGjYhPSHR3yqd97ulqwq5+u79VBUDzN pIiE0LQzroUUKlTpGB/DAFIzFTXFBq0M9993S0lSMaUxwldzo4KS9jJpFKH2Lnzo2LcL438q5AN XGmBC8pl2G6TfWP+d3y7hJ+XcqPW5xGBx3YFOdRntq/7p+0uu/qb1ZI2TMK5bTamkHJGshhzwEK m/vo0duqdRPP4YDTib5qvO8hdN7vRtDzpPHy3dkDW9H0K++auLqrEXQ4v9+Y1lDBew5xtsIWORF ESTJFO4F0xkSsGs2t2Xo/M318GXJecnWtgl4gG8kGVAjFe3zzKRD2pO91z3aMRg1N02PkWtv08F WJthgTBbalTdiny6WGV2eW/PfsnBqX9Gy X-Google-Smtp-Source: AGHT+IH2af2WInt5f2Qq+AzuMxiJX5IfdBZc7F36cB9L/iI/rwfU7tZ/q2Wk1+nFJgN4BKGnIZSH2g== X-Received: by 2002:a17:90b:390f:b0:313:176b:3d4b with SMTP id 98e67ed59e1d1-321162c8d4cmr1720581a91.22.1754090786452; Fri, 01 Aug 2025 16:26:26 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: Liu Zhiwei , richard.henderson@linaro.org, Palmer Dabbelt , qemu-riscv@nongnu.org, Daniel Henrique Barboza , Weiwei Li , qemu-arm@nongnu.org, Peter Maydell , philmd@linaro.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Alistair Francis , Pierrick Bouvier Subject: [PATCH v2 11/11] semihosting/arm-compat-semi: compile once in system and per target for user mode Date: Fri, 1 Aug 2025 16:26:09 -0700 Message-ID: <20250801232609.2744557-12-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250801232609.2744557-1-pierrick.bouvier@linaro.org> References: <20250801232609.2744557-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::534; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pg1-x534.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: 1754091243528116600 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