From nobody Mon Feb 9 04:08:23 2026 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=1766589791; cv=none; d=zohomail.com; s=zohoarc; b=SEr+M3/QMd0CNF0+eO3tXJFBn+zlIJ9Slpp+nIcHxGh4p9mXqQjChcuvP5OyoZaAJCViaZB/7rnWyh5BK743yPVWMSUJjJK52SqnbikWGHmz+wwXWlZxeVqBrgbGi4O+aQvdpnhSD2RWOemyOfxWoSatX5kCNALgfVkALdK6gp4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766589791; h=Content-Type: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=hkVIzod7Jlt9VwHGoLmEeZpRAVX+tz7dmFt8d4zgWHg=; b=n4joRtJM+REd6P+1/cnuM6qIYrQw6mAwtxTtHoKhc1FPKIuftPemyqUC3qyWXtMXh0eBhjw0E5rdD9QDvXWYqhemAGXcaD5/1SMbZliQszqRevdF8VKZK/ULyhn+hLP5W7+j91Kj5Phu6ZE/RhBWNyI4RG9jSV/AiUu9AVAKtbM= 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 1766589791351162.32911224251063; Wed, 24 Dec 2025 07:23:11 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vYQhG-0000XG-1R; Wed, 24 Dec 2025 10:22:42 -0500 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 1vYQh0-0000Wi-UK for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:22:29 -0500 Received: from mail-ed1-x52d.google.com ([2a00:1450: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 1vYQgz-0004Z6-AJ for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:22:26 -0500 Received: by mail-ed1-x52d.google.com with SMTP id 4fb4d7f45d1cf-64d30dc4ed7so6047574a12.0 for ; Wed, 24 Dec 2025 07:22:24 -0800 (PST) Received: from localhost.localdomain (188.171.88.92.rev.sfr.net. [92.88.171.188]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b8037ae2de9sm1833760166b.26.2025.12.24.07.22.19 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 24 Dec 2025 07:22:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1766589743; x=1767194543; 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=hkVIzod7Jlt9VwHGoLmEeZpRAVX+tz7dmFt8d4zgWHg=; b=RQN6DnewFJNGfyf4temC/2rz5Ry+mCgRKmdNBN83TG2q64oEj83xNIP4HZdw6BfIVr HeG9M5YiL+If0hebFZIz8A4gg+JX76TM6YZnpKD36MazeBwzk4uxqIwq2PumqQkEqCbU z9rXvn5a3yITxEegOtLZKWucoG2qh9GVqhzFzmKYQYVCDuSEcfb/xZ5SVZ7y/ylP+VWt Y6/1+UZAShTfXhxaKxxKDiezWslTBBf46f88stKV5D1SJQByxqwzuXU1N8gTHJ0nLDnj bSQWmSFgNIptQo3Iozka8qCELY0ZEheE0epGTNA8BLypQ2GSs90RkbHnIlDgbu7Ydh9t tyYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766589743; x=1767194543; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=hkVIzod7Jlt9VwHGoLmEeZpRAVX+tz7dmFt8d4zgWHg=; b=XF5fmcuPDaT3CQxa+wH350kPGyS75lJPms+l1MH0KmRMvUMqvG3oy99cRcgKuKXZWA fkhXRVFhAaywoJyeE0KXi7t6OWrLg63OKMrmPGw8Cx7btALAnr2N06eVMOoiSbIE8Z6D DuJeivrJWvk6SOO2bRFcO4KFsLFGvK7JMPi4eUQBXoNMxVYlVhJIsDpsrw+3NM+oDNeu AckXbxFAJieb/K64h8TvuQ5aYW+94uGt0ONoISfEUyuz6CpXXJKPYlGTa8cauhP+eOdQ vlzF6ZDueb4XY6IXXmW5wbtAa4kLM9ECFTgh6uvcwtYzssUr6tBuuE/wNvbcbch/LRqT V2EQ== X-Gm-Message-State: AOJu0YxQOw6EI36RkF+u53vJ9YaHdNvVRchGcZ0ayke/5Jhr53qzd1Il 3Jb28QQFZgsk8JEKyWsUyx7Gq3IFpU4qRP9Z4NNDodt0QqubtKfqJMn1rFGuu9brsuhbTuqkkG2 xyvei9sw= X-Gm-Gg: AY/fxX7HgmK8hdb8JVeCugxYiWivU38V0G62xWfSl1yYyu22ONQA8m1HMMue6l0v2RP K5PGkMt0EZSeTX6uMbMD385xJnyVC6k2E8PtiAeFxAbBZ13A46hxDB8I0qKROjVgpezRHK211lo vvdemedCZgZcJDHU/oH2Y9CYoBseiJhs2rBR4mjbWlVAUUJoffgKxTY3uGxjIF+3XJNwsjKH4jS fac/eSFdRLgHK15+UZlGHoBsr6QUUIN7gA6QmyAglJXhwoOaR0VSiGc8D5wlXzXsDqFMt7esH8Z FyI9o+h2xmmnCTPoTY0lDnWMT0OtZV0wDa5TTzKiYlRqsec8KX21QBGfcslwxOTlzw6o5GysnBf W7T+voO7fOVAEvF2BTIh0fhsr4ck4jiY8CZXGqPTJSI+lhxz+TKw/hl4pfpsMa3Up0RtEhiykuY RTxBu8lM1CQxk+Z274trRb9oeKWJMXcd+AkrqEFAn3g9BYuObDLDXahDJorxvM X-Google-Smtp-Source: AGHT+IFCFP/Ws3smhbQ3ehynm4pyGDC9i8FAOml6nKbdNtopSP407NTKck6KGvaBY0p+NtUgYyY6jw== X-Received: by 2002:a17:907:e109:b0:b80:4030:1eca with SMTP id a640c23a62f3a-b804030298fmr1323500966b.2.1766589743301; Wed, 24 Dec 2025 07:22:23 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Pierrick Bouvier , Peter Xu , Richard Henderson , Manos Pitsidianakis , Anton Johansson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , David Hildenbrand Subject: [PATCH v3 01/25] system/physmem: Inline and remove leul_to_cpu() Date: Wed, 24 Dec 2025 16:21:44 +0100 Message-ID: <20251224152210.87880-2-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251224152210.87880-1-philmd@linaro.org> References: <20251224152210.87880-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 (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=2a00:1450:4864:20::52d; envelope-from=philmd@linaro.org; helo=mail-ed1-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=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: 1766589793667158500 leul_to_cpu() is only used within physmem.c: inline it and remove. Since @bitmap is of 'unsigned long' type, use its size with ldn_le_p() instead of using HOST_LONG_BITS. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Pierrick Bouvier Reviewed-by: Richard Henderson --- include/qemu/bswap.h | 11 ----------- system/physmem.c | 5 +++-- 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/include/qemu/bswap.h b/include/qemu/bswap.h index 39ba64046a6..65a1b3634f4 100644 --- a/include/qemu/bswap.h +++ b/include/qemu/bswap.h @@ -375,17 +375,6 @@ static inline void stq_be_p(void *ptr, uint64_t v) stq_he_p(ptr, be_bswap(v, 64)); } =20 -static inline unsigned long leul_to_cpu(unsigned long v) -{ -#if HOST_LONG_BITS =3D=3D 32 - return le_bswap(v, 32); -#elif HOST_LONG_BITS =3D=3D 64 - return le_bswap(v, 64); -#else -# error Unknown sizeof long -#endif -} - /* Store v to p as a sz byte value in host order */ #define DO_STN_LDN_P(END) \ static inline void stn_## END ## _p(void *ptr, int sz, uint64_t v) \ diff --git a/system/physmem.c b/system/physmem.c index c9869e4049f..1292f49095f 100644 --- a/system/physmem.c +++ b/system/physmem.c @@ -1254,7 +1254,8 @@ uint64_t physical_memory_set_dirty_lebitmap(unsigned = long *bitmap, =20 for (k =3D 0; k < nr; k++) { if (bitmap[k]) { - unsigned long temp =3D leul_to_cpu(bitmap[k]); + unsigned long temp =3D ldn_le_p(&bitmap[k], + sizeof(bitmap[k])); =20 nbits =3D ctpopl(temp); qatomic_or(&blocks[DIRTY_MEMORY_VGA][idx][offset], tem= p); @@ -1301,7 +1302,7 @@ uint64_t physical_memory_set_dirty_lebitmap(unsigned = long *bitmap, */ for (i =3D 0; i < len; i++) { if (bitmap[i] !=3D 0) { - c =3D leul_to_cpu(bitmap[i]); + c =3D ldn_le_p(&bitmap[i], sizeof(bitmap[i])); nbits =3D ctpopl(c); if (unlikely(global_dirty_tracking & GLOBAL_DIRTY_DIRTY_RA= TE)) { total_dirty_pages +=3D nbits; --=20 2.52.0 From nobody Mon Feb 9 04:08:23 2026 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=1766589792; cv=none; d=zohomail.com; s=zohoarc; b=hendV4D52hrxY6i23Cc+bkJPnyzsZbvu3HiF4tRJLdgc5Q1GenB0AIML5WftEcnyEXW/3YChS90VVwzDwtLhs4XcOjqBrebZMkjbiVzxfE8sAurlKyv6ygmkYspWsXKMkJOskN+LxihkuJLPC4mkooLssQ78gNV0+qQk5LRQvp8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766589792; h=Content-Type: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=LEvDE3B5Gu5UNxZmrWuHR20YlbHMtfAkLmTQrUNsEUM=; b=bLXXXZgpcU4Yg0TAUy8DGy0Qpezq6HHW56YNPmPqvO5XicrKbukwTDtz7fRLYmybuX/xRvPYF3TNn3p8IfMTNBWfKHqxP2XOv2r87gPYEwJ832NYQ4uSdE7Bc7+93ol/xZLkgBXydZC19mDs73+2tvOGqFili7dyxZBz/4897vs= 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 1766589792901661.6245343441938; Wed, 24 Dec 2025 07:23:12 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vYQhO-0000YH-GL; Wed, 24 Dec 2025 10:22:50 -0500 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 1vYQhF-0000XM-D9 for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:22:41 -0500 Received: from mail-ed1-x530.google.com ([2a00:1450:4864:20::530]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vYQhB-0004by-57 for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:22:39 -0500 Received: by mail-ed1-x530.google.com with SMTP id 4fb4d7f45d1cf-64b9d01e473so7531659a12.2 for ; Wed, 24 Dec 2025 07:22:35 -0800 (PST) Received: from localhost.localdomain (188.171.88.92.rev.sfr.net. [92.88.171.188]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-64b90f53c51sm17340147a12.3.2025.12.24.07.22.31 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 24 Dec 2025 07:22:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1766589754; x=1767194554; 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=LEvDE3B5Gu5UNxZmrWuHR20YlbHMtfAkLmTQrUNsEUM=; b=H09mEchkLf3EQAik4W3Ct38ubp6JKMK89lgYtNfQ2JcTuw3rFWZ1EaR0pYT/2gT3GK XpYJ0lhFTe9rYEB4JG/p/vOZ2WI6Llocbeq8qdNuJWgiCV+HkPGyIEFciRrEryuRRa7N 2K88UsHefbBglRY2L8dl/7SZCHsg9jrl/ceJrImYMKas/WRoiYC7dRKaXFEOpMkBLSZl m1/Y8aghJhngl5JeRRLLaqU9agBDtcWL7KV0BYlHHUxGTtFhkfoyHN0k00WbGr5jPHHf pxrjlnBhHnQkI6q14sW80XO1Cr/Pv2irThcDHtNhlURG7D7YEYOOi94FPz37w6qQ6+B8 p/0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766589754; x=1767194554; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=LEvDE3B5Gu5UNxZmrWuHR20YlbHMtfAkLmTQrUNsEUM=; b=cWjLedBQpXGk6S5FizjYN6pIbRTyr/bP/+lz2KitsNqvGtzTN0I7JEbI7M1+NB/w3H G/97HAKznJaqSTdnEJ7Yuje09syqO3oCpQEMtAZ8Ind0RQNDXXGdPgTT6mLKyLnGR4Ta yq5Z5acge7krkn1trLZM9rHeMoHfz3hl6nlW5qr5jGGVCkvnTlAVElVUfjSHD1ZfD2D4 juDJ+vmwxZerKn68L+QmrUe1FzMvCF4yEil9BmijapSJSbbcbRDAvX0hDrE7aEQoExmX HQ0yrU3gr/pReXMOr0eWmurU+hZa7yF6tBGn0U6lv7qWlRK2Tm3FhixBmSBi0WJNGqmL R1Ag== X-Gm-Message-State: AOJu0Yx6EoAcLPHhVog4G/DR2R1E0NhHfZqAT6a3PUASTLDYQKRG77Ui xF4eHZipykgyd4RQ+7cJzEhB74xPERwtJEapm/3LBmI/QNQ6dp5Az9/7Z5BPIiJmPNFvbesRUyw +mgPZjWk= X-Gm-Gg: AY/fxX6W7fkEX/kM4zYr6LIbJps2u7p99g7607A2pu0dZl5ll7jL4XQUOrU4XmzM4Mo Sev+/iXTKKSfVbV1DPP9kP3FbSip2nKB5/YNOW40rgRY83reLHxW2xPLl1IsVtxV/i/SBo8xjLw MQdUPp7EzJsnEO+M+Joq8NvWc2kURylHLJMeNRuxIuHH2kUUsVT6JB0tKAysF9dSuiPzUaX9IYW orz9Mi/EXl8B3Bc78d6QzeD2SK2jN5KGN/vNdJpNbcbHsnm1mg0tVtduUdtGMopsZ2Mynmg/str OgjgGsffR3jIAGaNfeGNdqzoac0wO/PD5qrX0z+NulAebp5ve3yivnHWkZpj6DarBKiDUmpKIW2 khn5RHl4oueLpWpDo/j1lV6lTbF8C8mcrEsX+dw/DvySh5vHz6sT4HZqBKtCEGAMlUcO4ATYVwU 72ev+T0+kWco8SJrDhUl+VrkK8IhcCW4u+q9UUgp/7S835IUaChUCiNaj8jLEN X-Google-Smtp-Source: AGHT+IEZoqs0gLoI6WtdXWdfXWitTGn2kquDWsWYeNr3VeeWGtxi+ZBccX9rcVtfLpqt7YOtlCb99g== X-Received: by 2002:a05:6402:1ecf:b0:64d:3550:4bb6 with SMTP id 4fb4d7f45d1cf-64d35504e3dmr11787489a12.33.1766589753771; Wed, 24 Dec 2025 07:22:33 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Pierrick Bouvier , Peter Xu , Richard Henderson , Manos Pitsidianakis , Anton Johansson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , David Hildenbrand Subject: [PATCH v3 02/25] system/physmem: Convert DEBUG_SUBPAGE printf() to trace events Date: Wed, 24 Dec 2025 16:21:45 +0100 Message-ID: <20251224152210.87880-3-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251224152210.87880-1-philmd@linaro.org> References: <20251224152210.87880-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 (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=2a00:1450:4864:20::530; envelope-from=philmd@linaro.org; helo=mail-ed1-x530.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: 1766589793691158500 Defining DEBUG_SUBPAGE allows to use raw printf() statements to print information about some events; convert these to tracepoints. Suggested-by: Richard Henderson Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Manos Pitsidianakis Reviewed-by: Richard Henderson --- system/physmem.c | 29 ++++++----------------------- system/trace-events | 6 ++++++ 2 files changed, 12 insertions(+), 23 deletions(-) diff --git a/system/physmem.c b/system/physmem.c index 1292f49095f..7e914ecf648 100644 --- a/system/physmem.c +++ b/system/physmem.c @@ -91,8 +91,6 @@ =20 #include "memory-internal.h" =20 -//#define DEBUG_SUBPAGE - /* ram_list is read under rcu_read_lock()/rcu_read_unlock(). Writes * are protected by the ramlist lock. */ @@ -2903,10 +2901,7 @@ static MemTxResult subpage_read(void *opaque, hwaddr= addr, uint64_t *data, uint8_t buf[8]; MemTxResult res; =20 -#if defined(DEBUG_SUBPAGE) - printf("%s: subpage %p len %u addr " HWADDR_FMT_plx "\n", __func__, - subpage, len, addr); -#endif + trace_subpage_read(subpage, len, addr); res =3D flatview_read(subpage->fv, addr + subpage->base, attrs, buf, l= en); if (res) { return res; @@ -2921,11 +2916,7 @@ static MemTxResult subpage_write(void *opaque, hwadd= r addr, subpage_t *subpage =3D opaque; uint8_t buf[8]; =20 -#if defined(DEBUG_SUBPAGE) - printf("%s: subpage %p len %u addr " HWADDR_FMT_plx - " value %"PRIx64"\n", - __func__, subpage, len, addr, value); -#endif + trace_subpage_write(subpage, len, addr, value); stn_p(buf, len, value); return flatview_write(subpage->fv, addr + subpage->base, attrs, buf, l= en); } @@ -2935,10 +2926,8 @@ static bool subpage_accepts(void *opaque, hwaddr add= r, MemTxAttrs attrs) { subpage_t *subpage =3D opaque; -#if defined(DEBUG_SUBPAGE) - printf("%s: subpage %p %c len %u addr " HWADDR_FMT_plx "\n", - __func__, subpage, is_write ? 'w' : 'r', len, addr); -#endif + + trace_subpage_accepts(subpage, is_write ? 'w' : 'r', len, addr); =20 return flatview_access_valid(subpage->fv, addr + subpage->base, len, is_write, attrs); @@ -2964,10 +2953,7 @@ static int subpage_register(subpage_t *mmio, uint32_= t start, uint32_t end, return -1; idx =3D SUBPAGE_IDX(start); eidx =3D SUBPAGE_IDX(end); -#if defined(DEBUG_SUBPAGE) - printf("%s: %p start %08x end %08x idx %08x eidx %08x section %d\n", - __func__, mmio, start, end, idx, eidx, section); -#endif + trace_subpage_register(mmio, start, end, idx, eidx, section); for (; idx <=3D eidx; idx++) { mmio->sub_section[idx] =3D section; } @@ -2986,10 +2972,7 @@ static subpage_t *subpage_init(FlatView *fv, hwaddr = base) memory_region_init_io(&mmio->iomem, NULL, &subpage_ops, mmio, NULL, TARGET_PAGE_SIZE); mmio->iomem.subpage =3D true; -#if defined(DEBUG_SUBPAGE) - printf("%s: %p base " HWADDR_FMT_plx " len %08x\n", __func__, - mmio, base, TARGET_PAGE_SIZE); -#endif + trace_subpage_init(mmio, base, TARGET_PAGE_SIZE); =20 return mmio; } diff --git a/system/trace-events b/system/trace-events index 82856e44f2e..6d29a823f04 100644 --- a/system/trace-events +++ b/system/trace-events @@ -35,6 +35,12 @@ find_ram_offset_loop(uint64_t size, uint64_t candidate, = uint64_t offset, uint64_ ram_block_discard_range(const char *rbname, void *hva, size_t length, bool= need_madvise, bool need_fallocate, int ret) "%s@%p + 0x%zx: madvise: %d fa= llocate: %d ret: %d" qemu_ram_alloc_shared(const char *name, size_t size, size_t max_size, int = fd, void *host) "%s size %zu max_size %zu fd %d host %p" =20 +subpage_register(void *subpage, uint32_t start, uint32_t end, int idx, int= eidx, uint16_t section) "subpage %p start 0x%08x end 0x%08x idx 0x%08x eid= x 0x%08x section %u" +subpage_init(void *subpage, uint64_t base, uint64_t len) "subpage %p base = 0x%08" PRIx64 " len 0x%08" PRIx64 +subpage_accepts(void *subpage, char access, unsigned len, uint64_t addr) "= subpage %p %c len %u addr 0x%" PRIx64 +subpage_read(void *subpage, unsigned len, uint64_t addr) "subpage %p len %= u addr 0x%" PRIx64 +subpage_write(void *subpage, unsigned len, uint64_t addr, uint64_t value) = "subpage %p len %u addr 0x%" PRIx64 " value 0x%" PRIx64 + # cpus.c vm_stop_flush_all(int ret) "ret %d" =20 --=20 2.52.0 From nobody Mon Feb 9 04:08:23 2026 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=1766589807; cv=none; d=zohomail.com; s=zohoarc; b=XmzmZhoh1CIt6Ao3zfRCpHJmi028HQALCTj7NWEIcIkJjDNlOkTFtkwX/j8B9xRIfm6FQPBKd7v/Y+dSBRRUMVwRI5dvfqiDiSUwrFJQu6nCV3nPtPxO4tqiqQVNBoqSpL3w32KrNFGppO14GL+R7N6EWXqCOAhtU7XPA41AMnM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766589807; h=Content-Type: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=XcMU1k1986zvYwyLzb//gpQrHqBilxoxS5xhcinB0TY=; b=kwZFayYcU1qHvaPdvktcui+qqB8Jtojprs6HdlR++7obYsCFECgonXmZ9+qVlBCG3LtLmssyhNaRmWQSFo0LKCEWmbvbhH36CF4gLFJtq2dz3OCS6W1KP9R7giXDSvwl8WG07wYFXxpWmNPQg9cOsEE13RECJX3A0u5pBC1/cR8= 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 1766589807180552.588850004502; Wed, 24 Dec 2025 07:23:27 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vYQhg-0000cS-9w; Wed, 24 Dec 2025 10:23:14 -0500 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 1vYQhL-0000YJ-HO for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:22:48 -0500 Received: from mail-ej1-x633.google.com ([2a00:1450:4864:20::633]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vYQhJ-0004df-Os for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:22:47 -0500 Received: by mail-ej1-x633.google.com with SMTP id a640c23a62f3a-b7ce5d6627dso989503866b.2 for ; Wed, 24 Dec 2025 07:22:45 -0800 (PST) Received: from localhost.localdomain (188.171.88.92.rev.sfr.net. [92.88.171.188]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b8037a61595sm1822652266b.8.2025.12.24.07.22.41 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 24 Dec 2025 07:22:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1766589764; x=1767194564; 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=XcMU1k1986zvYwyLzb//gpQrHqBilxoxS5xhcinB0TY=; b=k55vt2XDeRqYITPgypshf3YMbk613tnsyXR9nYo+Fc33WSbO8vhOpmv3BVysEVdsNZ w6s/JGSUuhHESUK7+5qu9UEROZGJLdNHavMaAdN+DI+wMFakKcXqlsdorelrPLwlIazA T9H7k6mQXDCAHylFFxXWt3jfilugTgp9Udqob/ByKl/l3DVpr2ypGbnE/2aoVfuhbZdA B2T/HekHnhO95sDQTBbjMF5hWbieTFkoXwuUp7D8TbY0OXw37L4JwEY9HPVghbbolTRO DJdbACJzA+9FxOoBAsOuCZBtSPoPfTzqzzZ/ZZFqhLsmFSVl7JrUj/67WmxxVPbgAS5G AIlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766589764; x=1767194564; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=XcMU1k1986zvYwyLzb//gpQrHqBilxoxS5xhcinB0TY=; b=u+3Xp4tIKBT+IwU49KxIy2BVsMRr9Jh7O3zE3cDJjp5PRjWS+12hfZi2JYZLky+Plv Ya+F782oRhQ0EPY2OiXHx4VrXkcBSA4jfx2toJpx7uoknqdKhzIpRld8sRYzPlHlKARu zJiy/lEwmyfmZZ1d9p0ylmZ4vhwLBfCpOy1WGe7TvNKS+BMQnMTwUuJ5H5ESEgtM0mic YtT93wEL+Sr7aei9QBkUW2rkTdMJZHw/UG7saIMK2vIk24NJJdKp9HzGtuwtYVsfqrUF y88xFydG+GcxFHV4myUlynzoZ/U6fhEpr9TyeVKY+nPuT3SuW8ZqkNxOYD7U2qB9DhS1 iS2g== X-Gm-Message-State: AOJu0Yx1kwqGhYyXsO7ssaRa4VTczQpM0OsZ/VYG7YdjoMNNudlFN15C N6i0QyHenbrIPD7iK+n66e7ibXKILXVT3nktgfU2+dTxLb/9ORCn0qek8M90mkVHWPIMY+XIFHi Eb+XF3+Y= X-Gm-Gg: AY/fxX4gpohm2aMaCicZMzhVs+/2JBsHKYX6pvPMUGw4jssDczDa4xa67S8VCUzzXwH Yn67qAmN/rUpkNYvoNyZQJOJCkHAXRBc6CPW9+e4DmaRwZ+u56anMadZxIu9Pnwpn1XqsORA6v5 hoeySaeak8UnB8sqGof7k1sq+t32TSPEwx3UN6L8pqzV+0H+w8TFezLZnj8Kvpfu1gy5ONmNMJx o6mQ3XbU+ErskcZhWvwYHMBpn/si7TJl2ReR03YQ2gimkb+ZH0vGZ1KUS95yv0z5ms5kC/pwr/G 1Zj5KGDuHIgyTDwx+/beErgPOGoOHX9VbUy0A0jlfX/6qRYDKz45cgc0og4qzFrofLnEIA3Bi8V IS74HfwZXLNc291kMMVuRNS+AjCU1zt6ILoJV7mNUxgs1IA1hwt8Y5YhP1rQhFvlYFBp/aSGZu2 tfV9eWmVEehj3JnHN5JXI2UdMTPnm5STHzuSbkJlOcKka0S0/eUPUpjY4PblMU X-Google-Smtp-Source: AGHT+IEL04d7txa4q5psfVeI/jrTBCpAWOC+L3OQVUr1hZmEWoQZgGO/6/E4O/0INF10Ehs5Zs4FSw== X-Received: by 2002:a17:906:9fc7:b0:b6d:9bab:a7ba with SMTP id a640c23a62f3a-b8037178753mr1880391866b.42.1766589763799; Wed, 24 Dec 2025 07:22:43 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Pierrick Bouvier , Peter Xu , Richard Henderson , Manos Pitsidianakis , Anton Johansson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , David Hildenbrand Subject: [PATCH v3 03/25] system/physmem: Use explicit endianness in subpage_ops::read/write() Date: Wed, 24 Dec 2025 16:21:46 +0100 Message-ID: <20251224152210.87880-4-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251224152210.87880-1-philmd@linaro.org> References: <20251224152210.87880-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 (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=2a00:1450:4864:20::633; envelope-from=philmd@linaro.org; helo=mail-ej1-x633.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: 1766589807829158500 Replace the ldn_p/stn_p() calls by their explicit endianness variants. Duplicate the MemoryRegionOps, replacing the single DEVICE_NATIVE_ENDIAN entry by a pair of LITTLE and BIG ones. Select the proper MemoryRegionOps in subpage_init(). Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- system/physmem.c | 76 +++++++++++++++++++++++++++++++++++++----------- 1 file changed, 59 insertions(+), 17 deletions(-) diff --git a/system/physmem.c b/system/physmem.c index 7e914ecf648..9fe84679cac 100644 --- a/system/physmem.c +++ b/system/physmem.c @@ -2894,8 +2894,8 @@ static MemTxResult flatview_write(FlatView *fv, hwadd= r addr, MemTxAttrs attrs, static bool flatview_access_valid(FlatView *fv, hwaddr addr, hwaddr len, bool is_write, MemTxAttrs attrs); =20 -static MemTxResult subpage_read(void *opaque, hwaddr addr, uint64_t *data, - unsigned len, MemTxAttrs attrs) +static MemTxResult subpage_read_le(void *opaque, hwaddr addr, uint64_t *da= ta, + unsigned len, MemTxAttrs attrs) { subpage_t *subpage =3D opaque; uint8_t buf[8]; @@ -2906,18 +2906,49 @@ static MemTxResult subpage_read(void *opaque, hwadd= r addr, uint64_t *data, if (res) { return res; } - *data =3D ldn_p(buf, len); + *data =3D ldn_le_p(buf, len); return MEMTX_OK; } =20 -static MemTxResult subpage_write(void *opaque, hwaddr addr, - uint64_t value, unsigned len, MemTxAttrs = attrs) +static MemTxResult subpage_read_be(void *opaque, hwaddr addr, uint64_t *da= ta, + unsigned len, MemTxAttrs attrs) +{ + subpage_t *subpage =3D opaque; + uint8_t buf[8]; + MemTxResult res; + + trace_subpage_read(subpage, len, addr); + res =3D flatview_read(subpage->fv, addr + subpage->base, attrs, buf, l= en); + if (res) { + return res; + } + *data =3D ldn_be_p(buf, len); + return MEMTX_OK; +} + +static MemTxResult subpage_write_le(void *opaque, hwaddr addr, + uint64_t value, unsigned len, + MemTxAttrs attrs) { subpage_t *subpage =3D opaque; uint8_t buf[8]; =20 trace_subpage_write(subpage, len, addr, value); - stn_p(buf, len, value); + stn_le_p(buf, len, value); + + return flatview_write(subpage->fv, addr + subpage->base, attrs, buf, l= en); +} + +static MemTxResult subpage_write_be(void *opaque, hwaddr addr, + uint64_t value, unsigned len, + MemTxAttrs attrs) +{ + subpage_t *subpage =3D opaque; + uint8_t buf[8]; + + trace_subpage_write(subpage, len, addr, value); + stn_be_p(buf, len, value); + return flatview_write(subpage->fv, addr + subpage->base, attrs, buf, l= en); } =20 @@ -2933,15 +2964,26 @@ static bool subpage_accepts(void *opaque, hwaddr ad= dr, len, is_write, attrs); } =20 -static const MemoryRegionOps subpage_ops =3D { - .read_with_attrs =3D subpage_read, - .write_with_attrs =3D subpage_write, - .impl.min_access_size =3D 1, - .impl.max_access_size =3D 8, - .valid.min_access_size =3D 1, - .valid.max_access_size =3D 8, - .valid.accepts =3D subpage_accepts, - .endianness =3D DEVICE_NATIVE_ENDIAN, +static const MemoryRegionOps subpage_ops[2] =3D { + [0 ... 1] =3D { + .impl =3D { + .min_access_size =3D 1, + .max_access_size =3D 8, + }, + .valid =3D { + .min_access_size =3D 1, + .max_access_size =3D 8, + .accepts =3D subpage_accepts, + }, + }, + + [0].endianness =3D DEVICE_LITTLE_ENDIAN, + [0].read_with_attrs =3D subpage_read_le, + [0].write_with_attrs =3D subpage_write_le, + + [1].endianness =3D DEVICE_BIG_ENDIAN, + [1].read_with_attrs =3D subpage_read_be, + [1].write_with_attrs =3D subpage_write_be, }; =20 static int subpage_register(subpage_t *mmio, uint32_t start, uint32_t end, @@ -2969,8 +3011,8 @@ static subpage_t *subpage_init(FlatView *fv, hwaddr b= ase) mmio =3D g_malloc0(sizeof(subpage_t) + TARGET_PAGE_SIZE * sizeof(uint1= 6_t)); mmio->fv =3D fv; mmio->base =3D base; - memory_region_init_io(&mmio->iomem, NULL, &subpage_ops, mmio, - NULL, TARGET_PAGE_SIZE); + memory_region_init_io(&mmio->iomem, NULL, &subpage_ops[target_big_endi= an()], + mmio, NULL, TARGET_PAGE_SIZE); mmio->iomem.subpage =3D true; trace_subpage_init(mmio, base, TARGET_PAGE_SIZE); =20 --=20 2.52.0 From nobody Mon Feb 9 04:08:23 2026 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=1766589841; cv=none; d=zohomail.com; s=zohoarc; b=h/obFdj3n5F8Q79aXqj8DzVvddW1SLN3krTJPk92BxiQyqzJqWjsjVbCbHrHgj81n+BTXXAqe5fTjQAidS1ZYydv2ezXXyv/jgzZl+86Hclh5RcZ2gsbPnUCDqO+Itr5gQTJnGsKegxLPVg9Zxfk6xZvP+h+0K6A5M3zxRIb0aE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766589841; h=Content-Type: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=Z/jIHVdVh7XEVUDMvr6QUAWSaE7jd5fja5ovYiRndQE=; b=jzzwCSfjqJYswKmcJyEwj7qk2OyDocyUTlq2MOOH0X0XexOcjy3UDYJAkbw9PIOpr8tH9Z4YR/JXg8fizI2q3Na4rzQcEC5r8bhcZj8Co3z2vJWogHjwPZOxD3FhZkz14e/nrkIa71sMAnewzzrDlVop3Ii6ODRnB26BuHkQQo8= 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 1766589841817997.7060906606416; Wed, 24 Dec 2025 07:24:01 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vYQhx-0000nH-4u; Wed, 24 Dec 2025 10:23:25 -0500 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 1vYQhY-0000c6-A8 for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:23:01 -0500 Received: from mail-ed1-x543.google.com ([2a00:1450:4864:20::543]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vYQhU-0004eX-7n for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:22:58 -0500 Received: by mail-ed1-x543.google.com with SMTP id 4fb4d7f45d1cf-64b4f730a02so9767929a12.0 for ; Wed, 24 Dec 2025 07:22:55 -0800 (PST) Received: from localhost.localdomain (188.171.88.92.rev.sfr.net. [92.88.171.188]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-64b9159ac90sm17217495a12.29.2025.12.24.07.22.51 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 24 Dec 2025 07:22:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1766589774; x=1767194574; 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=Z/jIHVdVh7XEVUDMvr6QUAWSaE7jd5fja5ovYiRndQE=; b=iP59GF6JrfcnRNGlQESB+4Ed0YM8+bHciNPEtrv7sThihjS8xes5oD9ZEqhiI5AUFo HCdAsDKLhL6ZwguPrGat73o+uVG4y1w40x9mVLrR1yjQ/WlpQUwXWCAZK9ScOpjVeKgY 9nPkMNReGa4szztgjuJs/hWy3jYxbusyLYWi5dXgxekRakRpUzHHRht8gSJ00ER/KiSm IvS4PJEoIb/yOahEGF/SEyjZt5kmhXg1hir2GdWYy6H47CSxGR2tKdX8iAuQs3DHBLuG tQ5DLwmfFLapciRmNWHJ7xo4UQNaPH9rMXvfLzNTPRVcDfEs9BCiL/tpiGZIFqHsRZtm y2Vg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766589774; x=1767194574; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Z/jIHVdVh7XEVUDMvr6QUAWSaE7jd5fja5ovYiRndQE=; b=r3qOvgsjowIRNZhDjdTC6/MuPwtqIl6Ix8wS6WXSOCG05EW8nUNG/JfUR6qw9uhw10 gGjkm47rkTTOlFeO36wQbdfimV/rB4sv2GXLAyh+EMLnRsEPb6/EdZJSCPy1oph/7Zfv rZtnuJ8H6TrfG4AxNQrT6xgOtz738RheM6r/fz0kgneAoBcc37r1KrEYij4jbrrh+n86 A3qqkeWertX8loW/vSrduJvd/abhBAmhiPF+H9bQ6Kq3sNdXeqT+TGVCfy/ix37BdlDr teLiM2ofTgZmkXZ3wFIyM7v5KTdooS5TyVUetNteB9lZYn2Nrx3VNGZAKz++txm22/4C X9EQ== X-Gm-Message-State: AOJu0YzZMDovFxOLs8uqpGhTw1YTnZ1g+LkfP2zSvtTRf1WYe8alyCLq pvqWQXE73itJngfP+2CZ119NGsqNvvkY5BLPwevAK+1f1jjldJjKJbkQUfrAWrEwYZtLDBFZALF xz6iY0Po= X-Gm-Gg: AY/fxX6lm4i8w3HwlCOhgoM/VhA7Y6famoTHL5N47bGTfzaHomaO4A8sw0ls9xu9W/i EYI5VP5tGJeGSFjh3uUaoW3RaFA9grBbrPDGysQfswaDDRuoMUoQ1jFdHPJahosVTgWBCWuwC53 fHkkTWcspM6m3XY1O7mr8Paq55NhleIwn9JPSRPoO58OP2rAzhTDdzsT/ZEFCfXboZG4Q/YC/OM gLU5Rh5DyIc77eGMWVGaZRqkPrqywNzg+owS5bTwsugC2p/6c3Xppt0OO+t3Or2RJfClsF/Xz6S LBNAOw3fDuau8OYyFhyhsEBAWS1WmstFTEZ3LaCEAs/lLMoDz4ySbR35VDrS7qQlz0kmiqEPcav HvdWzVibidj0O/ZGMNqRwvodpTiBs18kN0T0lhVOhG/wagkNZPwGTGkWxmdvn83rjUl0IPVrTq7 wv0zym+kMI8hxMByzGVJ0jolDoHUmaw4ROxD0U4Z82cFXRr3sq//wJo96vEumV X-Google-Smtp-Source: AGHT+IGnPbG1XESUoxSDTjijcMRQCUc+gl9agh6CsczK9AWhrBY2E9CPrpnFmtwywz5li3hpAtntMw== X-Received: by 2002:a05:6402:350e:b0:64b:42a6:3946 with SMTP id 4fb4d7f45d1cf-64b8eb62568mr16493695a12.7.1766589774222; Wed, 24 Dec 2025 07:22:54 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Pierrick Bouvier , Peter Xu , Richard Henderson , Manos Pitsidianakis , Anton Johansson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , "Michael S. Tsirkin" , David Hildenbrand Subject: [PATCH v3 04/25] system/memory: Split MemoryRegionCache API to 'memory_cached.h' Date: Wed, 24 Dec 2025 16:21:47 +0100 Message-ID: <20251224152210.87880-5-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251224152210.87880-1-philmd@linaro.org> References: <20251224152210.87880-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 (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=2a00:1450:4864:20::543; envelope-from=philmd@linaro.org; helo=mail-ed1-x543.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: 1766589844228158500 We have 115 direct inclusions of "system/memory.h", and 91 headers in include/ use it: hundreds of files have to process it. However only one single header really uses the MemoryRegionCache API: "hw/virtio/virtio-access.h". Split it out to a new header, avoiding processing unused inlined functions hundreds of times. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Pierrick Bouvier Reviewed-by: Richard Henderson --- MAINTAINERS | 1 + include/hw/virtio/virtio-access.h | 1 + include/system/memory.h | 185 -------------------------- include/system/memory_cached.h | 207 ++++++++++++++++++++++++++++++ system/physmem.c | 1 + 5 files changed, 210 insertions(+), 185 deletions(-) create mode 100644 include/system/memory_cached.h diff --git a/MAINTAINERS b/MAINTAINERS index 63e9ba521bc..c299b84d418 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3255,6 +3255,7 @@ S: Supported F: include/system/ioport.h F: include/exec/memop.h F: include/system/memory.h +F: include/system/memory_cached.h F: include/system/physmem.h F: include/system/ram_addr.h F: include/system/ramblock.h diff --git a/include/hw/virtio/virtio-access.h b/include/hw/virtio/virtio-a= ccess.h index 5b5fff5295e..cd17d0c87eb 100644 --- a/include/hw/virtio/virtio-access.h +++ b/include/hw/virtio/virtio-access.h @@ -17,6 +17,7 @@ #define QEMU_VIRTIO_ACCESS_H =20 #include "exec/hwaddr.h" +#include "system/memory_cached.h" #include "hw/virtio/virtio.h" #include "hw/virtio/virtio-bus.h" =20 diff --git a/include/system/memory.h b/include/system/memory.h index d5c248f1794..692c2f67dd3 100644 --- a/include/system/memory.h +++ b/include/system/memory.h @@ -2857,140 +2857,6 @@ MemTxResult address_space_write_rom(AddressSpace *a= s, hwaddr addr, #include "exec/memory_ldst_phys.h.inc" #endif =20 -struct MemoryRegionCache { - uint8_t *ptr; - hwaddr xlat; - hwaddr len; - FlatView *fv; - MemoryRegionSection mrs; - bool is_write; -}; - -/* address_space_ld*_cached: load from a cached #MemoryRegion - * address_space_st*_cached: store into a cached #MemoryRegion - * - * These functions perform a load or store of the byte, word, - * longword or quad to the specified address. The address is - * a physical address in the AddressSpace, but it must lie within - * a #MemoryRegion that was mapped with address_space_cache_init. - * - * The _le suffixed functions treat the data as little endian; - * _be indicates big endian; no suffix indicates "same endianness - * as guest CPU". - * - * The "guest CPU endianness" accessors are deprecated for use outside - * target-* code; devices should be CPU-agnostic and use either the LE - * or the BE accessors. - * - * @cache: previously initialized #MemoryRegionCache to be accessed - * @addr: address within the address space - * @val: data value, for stores - * @attrs: memory transaction attributes - * @result: location to write the success/failure of the transaction; - * if NULL, this information is discarded - */ - -#define SUFFIX _cached_slow -#define ARG1 cache -#define ARG1_DECL MemoryRegionCache *cache -#include "exec/memory_ldst.h.inc" - -/* Inline fast path for direct RAM access. */ -static inline uint8_t address_space_ldub_cached(MemoryRegionCache *cache, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result) -{ - assert(addr < cache->len); - if (likely(cache->ptr)) { - return ldub_p(cache->ptr + addr); - } else { - return address_space_ldub_cached_slow(cache, addr, attrs, result); - } -} - -static inline void address_space_stb_cached(MemoryRegionCache *cache, - hwaddr addr, uint8_t val, MemTxAttrs attrs, MemTxResult *result) -{ - assert(addr < cache->len); - if (likely(cache->ptr)) { - stb_p(cache->ptr + addr, val); - } else { - address_space_stb_cached_slow(cache, addr, val, attrs, result); - } -} - -#define ENDIANNESS -#include "exec/memory_ldst_cached.h.inc" - -#define ENDIANNESS _le -#include "exec/memory_ldst_cached.h.inc" - -#define ENDIANNESS _be -#include "exec/memory_ldst_cached.h.inc" - -#define SUFFIX _cached -#define ARG1 cache -#define ARG1_DECL MemoryRegionCache *cache -#include "exec/memory_ldst_phys.h.inc" - -/* address_space_cache_init: prepare for repeated access to a physical - * memory region - * - * @cache: #MemoryRegionCache to be filled - * @as: #AddressSpace to be accessed - * @addr: address within that address space - * @len: length of buffer - * @is_write: indicates the transfer direction - * - * Will only work with RAM, and may map a subset of the requested range by - * returning a value that is less than @len. On failure, return a negative - * errno value. - * - * Because it only works with RAM, this function can be used for - * read-modify-write operations. In this case, is_write should be %true. - * - * Note that addresses passed to the address_space_*_cached functions - * are relative to @addr. - */ -int64_t address_space_cache_init(MemoryRegionCache *cache, - AddressSpace *as, - hwaddr addr, - hwaddr len, - bool is_write); - -/** - * address_space_cache_init_empty: Initialize empty #MemoryRegionCache - * - * @cache: The #MemoryRegionCache to operate on. - * - * Initializes #MemoryRegionCache structure without memory region attached. - * Cache initialized this way can only be safely destroyed, but not used. - */ -static inline void address_space_cache_init_empty(MemoryRegionCache *cache) -{ - cache->mrs.mr =3D NULL; - /* There is no real need to initialize fv, but it makes Coverity happy= . */ - cache->fv =3D NULL; -} - -/** - * address_space_cache_invalidate: complete a write to a #MemoryRegionCache - * - * @cache: The #MemoryRegionCache to operate on. - * @addr: The first physical address that was written, relative to the - * address that was passed to @address_space_cache_init. - * @access_len: The number of bytes that were written starting at @addr. - */ -void address_space_cache_invalidate(MemoryRegionCache *cache, - hwaddr addr, - hwaddr access_len); - -/** - * address_space_cache_destroy: free a #MemoryRegionCache - * - * @cache: The #MemoryRegionCache whose memory should be released. - */ -void address_space_cache_destroy(MemoryRegionCache *cache); - void address_space_flush_icache_range(AddressSpace *as, hwaddr addr, hwadd= r len); =20 /* address_space_get_iotlb_entry: translate an address into an IOTLB @@ -3118,14 +2984,6 @@ MemTxResult flatview_read_continue(FlatView *fv, hwa= ddr addr, MemoryRegion *mr); void *qemu_map_ram_ptr(RAMBlock *ram_block, ram_addr_t addr); =20 -/* Internal functions, part of the implementation of address_space_read_ca= ched - * and address_space_write_cached. */ -MemTxResult address_space_read_cached_slow(MemoryRegionCache *cache, - hwaddr addr, void *buf, hwaddr = len); -MemTxResult address_space_write_cached_slow(MemoryRegionCache *cache, - hwaddr addr, const void *buf, - hwaddr len); - int memory_access_size(MemoryRegion *mr, unsigned l, hwaddr addr); bool prepare_mmio_access(MemoryRegion *mr); =20 @@ -3203,49 +3061,6 @@ MemTxResult address_space_read(AddressSpace *as, hwa= ddr addr, return result; } =20 -/** - * address_space_read_cached: read from a cached RAM region - * - * @cache: Cached region to be addressed - * @addr: address relative to the base of the RAM region - * @buf: buffer with the data transferred - * @len: length of the data transferred - */ -static inline MemTxResult -address_space_read_cached(MemoryRegionCache *cache, hwaddr addr, - void *buf, hwaddr len) -{ - assert(addr < cache->len && len <=3D cache->len - addr); - fuzz_dma_read_cb(cache->xlat + addr, len, cache->mrs.mr); - if (likely(cache->ptr)) { - memcpy(buf, cache->ptr + addr, len); - return MEMTX_OK; - } else { - return address_space_read_cached_slow(cache, addr, buf, len); - } -} - -/** - * address_space_write_cached: write to a cached RAM region - * - * @cache: Cached region to be addressed - * @addr: address relative to the base of the RAM region - * @buf: buffer with the data transferred - * @len: length of the data transferred - */ -static inline MemTxResult -address_space_write_cached(MemoryRegionCache *cache, hwaddr addr, - const void *buf, hwaddr len) -{ - assert(addr < cache->len && len <=3D cache->len - addr); - if (likely(cache->ptr)) { - memcpy(cache->ptr + addr, buf, len); - return MEMTX_OK; - } else { - return address_space_write_cached_slow(cache, addr, buf, len); - } -} - /** * address_space_set: Fill address space with a constant byte. * diff --git a/include/system/memory_cached.h b/include/system/memory_cached.h new file mode 100644 index 00000000000..1a07774b6ad --- /dev/null +++ b/include/system/memory_cached.h @@ -0,0 +1,207 @@ +/* + * Physical memory management API + * + * Copyright 2011 Red Hat, Inc. and/or its affiliates + * + * Authors: + * Avi Kivity + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef SYSTEM_MEMORY_CACHED_H +#define SYSTEM_MEMORY_CACHED_H + +#include "exec/hwaddr.h" +#include "system/memory.h" + +struct MemoryRegionCache { + uint8_t *ptr; + hwaddr xlat; + hwaddr len; + FlatView *fv; + MemoryRegionSection mrs; + bool is_write; +}; + +/** + * address_space_ld*_cached: load from a cached #MemoryRegion + * address_space_st*_cached: store into a cached #MemoryRegion + * + * These functions perform a load or store of the byte, word, + * longword or quad to the specified address. The address is + * a physical address in the AddressSpace, but it must lie within + * a #MemoryRegion that was mapped with address_space_cache_init. + * + * The _le suffixed functions treat the data as little endian; + * _be indicates big endian; no suffix indicates "same endianness + * as guest CPU". + * + * The "guest CPU endianness" accessors are deprecated for use outside + * target-* code; devices should be CPU-agnostic and use either the LE + * or the BE accessors. + * + * @cache: previously initialized #MemoryRegionCache to be accessed + * @addr: address within the address space + * @val: data value, for stores + * @attrs: memory transaction attributes + * @result: location to write the success/failure of the transaction; + * if NULL, this information is discarded + */ + +#define SUFFIX _cached_slow +#define ARG1 cache +#define ARG1_DECL MemoryRegionCache *cache +#include "exec/memory_ldst.h.inc" + +/* Inline fast path for direct RAM access. */ +static inline uint8_t address_space_ldub_cached(MemoryRegionCache *cache, + hwaddr addr, MemTxAttrs attrs, MemTxResult *result) +{ + assert(addr < cache->len); + if (likely(cache->ptr)) { + return ldub_p(cache->ptr + addr); + } else { + return address_space_ldub_cached_slow(cache, addr, attrs, result); + } +} + +static inline void address_space_stb_cached(MemoryRegionCache *cache, + hwaddr addr, uint8_t val, MemTxAttrs attrs, MemTxResult *result) +{ + assert(addr < cache->len); + if (likely(cache->ptr)) { + stb_p(cache->ptr + addr, val); + } else { + address_space_stb_cached_slow(cache, addr, val, attrs, result); + } +} + +#define ENDIANNESS +#include "exec/memory_ldst_cached.h.inc" + +#define ENDIANNESS _le +#include "exec/memory_ldst_cached.h.inc" + +#define ENDIANNESS _be +#include "exec/memory_ldst_cached.h.inc" + +#define SUFFIX _cached +#define ARG1 cache +#define ARG1_DECL MemoryRegionCache *cache +#include "exec/memory_ldst_phys.h.inc" + +/** + * address_space_cache_init: prepare for repeated access to a physical + * memory region + * + * @cache: #MemoryRegionCache to be filled + * @as: #AddressSpace to be accessed + * @addr: address within that address space + * @len: length of buffer + * @is_write: indicates the transfer direction + * + * Will only work with RAM, and may map a subset of the requested range by + * returning a value that is less than @len. On failure, return a negative + * errno value. + * + * Because it only works with RAM, this function can be used for + * read-modify-write operations. In this case, is_write should be %true. + * + * Note that addresses passed to the address_space_*_cached functions + * are relative to @addr. + */ +int64_t address_space_cache_init(MemoryRegionCache *cache, + AddressSpace *as, + hwaddr addr, + hwaddr len, + bool is_write); + +/** + * address_space_cache_init_empty: Initialize empty #MemoryRegionCache + * + * @cache: The #MemoryRegionCache to operate on. + * + * Initializes #MemoryRegionCache structure without memory region attached. + * Cache initialized this way can only be safely destroyed, but not used. + */ +static inline void address_space_cache_init_empty(MemoryRegionCache *cache) +{ + cache->mrs.mr =3D NULL; + /* There is no real need to initialize fv, but it makes Coverity happy= . */ + cache->fv =3D NULL; +} + +/** + * address_space_cache_invalidate: complete a write to a #MemoryRegionCache + * + * @cache: The #MemoryRegionCache to operate on. + * @addr: The first physical address that was written, relative to the + * address that was passed to @address_space_cache_init. + * @access_len: The number of bytes that were written starting at @addr. + */ +void address_space_cache_invalidate(MemoryRegionCache *cache, + hwaddr addr, + hwaddr access_len); + +/** + * address_space_cache_destroy: free a #MemoryRegionCache + * + * @cache: The #MemoryRegionCache whose memory should be released. + */ +void address_space_cache_destroy(MemoryRegionCache *cache); + +/* + * Internal functions, part of the implementation of address_space_read_ca= ched + * and address_space_write_cached. + */ +MemTxResult address_space_read_cached_slow(MemoryRegionCache *cache, + hwaddr addr, void *buf, hwaddr = len); +MemTxResult address_space_write_cached_slow(MemoryRegionCache *cache, + hwaddr addr, const void *buf, + hwaddr len); + +/** + * address_space_read_cached: read from a cached RAM region + * + * @cache: Cached region to be addressed + * @addr: address relative to the base of the RAM region + * @buf: buffer with the data transferred + * @len: length of the data transferred + */ +static inline MemTxResult +address_space_read_cached(MemoryRegionCache *cache, hwaddr addr, + void *buf, hwaddr len) +{ + assert(addr < cache->len && len <=3D cache->len - addr); + fuzz_dma_read_cb(cache->xlat + addr, len, cache->mrs.mr); + if (likely(cache->ptr)) { + memcpy(buf, cache->ptr + addr, len); + return MEMTX_OK; + } else { + return address_space_read_cached_slow(cache, addr, buf, len); + } +} + +/** + * address_space_write_cached: write to a cached RAM region + * + * @cache: Cached region to be addressed + * @addr: address relative to the base of the RAM region + * @buf: buffer with the data transferred + * @len: length of the data transferred + */ +static inline MemTxResult +address_space_write_cached(MemoryRegionCache *cache, hwaddr addr, + const void *buf, hwaddr len) +{ + assert(addr < cache->len && len <=3D cache->len - addr); + if (likely(cache->ptr)) { + memcpy(cache->ptr + addr, buf, len); + return MEMTX_OK; + } else { + return address_space_write_cached_slow(cache, addr, buf, len); + } +} + +#endif diff --git a/system/physmem.c b/system/physmem.c index 9fe84679cac..fb69cdb57d9 100644 --- a/system/physmem.c +++ b/system/physmem.c @@ -53,6 +53,7 @@ #include "qemu/memalign.h" #include "qemu/memfd.h" #include "system/memory.h" +#include "system/memory_cached.h" #include "system/ioport.h" #include "system/dma.h" #include "system/hostmem.h" --=20 2.52.0 From nobody Mon Feb 9 04:08:23 2026 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=1766589832; cv=none; d=zohomail.com; s=zohoarc; b=ACFzryEWJ7gIWIbim+9q5AkWLKmMwWacuB+YZgoc2HuGcKYNJQOCQM/wo0+C9eFVyU9o7+cb3QYahP4gQPWMipEwgwbslfOJcectiuxRGNi15gLU44OXtxqzf+JxdulrKAuza23g701OCr10bmuzDmzxDvmD114bcdD/MPhwkuY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766589832; h=Content-Type: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=yZ4NHo11hORfjfHpM+Tb3zuMw053OzsR0ZO7fwiMYhU=; b=nJhyGtmnyKG04KoFKYlzQoBwnCJi4eQHOX/3k+3fuyK2dutuLNoImRs+GX4f5ZFC5ZVkVuZuLUcnUDFhqulnwe8CrVJF2AlbDXLFzRrV8Drsz6m0wnbqX9c0I8l6c+NvPS6xiXDrNZexH0e5Yj5S2/Ok0WHAjQ1xVhXb2rn12uQ= 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 1766589832685242.69813603463103; Wed, 24 Dec 2025 07:23:52 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vYQi3-0000vg-8b; Wed, 24 Dec 2025 10:23:31 -0500 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 1vYQhg-0000hk-MN for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:23:14 -0500 Received: from mail-ed1-x535.google.com ([2a00:1450:4864:20::535]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vYQhe-0004fC-Pc for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:23:08 -0500 Received: by mail-ed1-x535.google.com with SMTP id 4fb4d7f45d1cf-64b8e5d1611so7289558a12.3 for ; Wed, 24 Dec 2025 07:23:06 -0800 (PST) Received: from localhost.localdomain (188.171.88.92.rev.sfr.net. [92.88.171.188]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b8037f51a74sm1823604366b.63.2025.12.24.07.23.02 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 24 Dec 2025 07:23:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1766589785; x=1767194585; 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=yZ4NHo11hORfjfHpM+Tb3zuMw053OzsR0ZO7fwiMYhU=; b=UaiauIxfc75HdcScVi0CiRICEHNSEmiXWj0dPMCp8bowSg0VhpfsqO9vnneaNLB3jO MCK0XOTTVvBVDKRdY7gGzWVHVPp6STpWnwruD4GrMfyI2pmwelTMzcWMo2jpbdYYYdRb x7jIdPV3le4xUeGQABjYyC4NkHMZDWdANXi7Abmxp0bSf1gI8NfUEIy8TPk+YRItKaWy tYVTREnqwL1XVkWay8lGM96y7FXDlxAzEb3jw6p0fm3o9IYZJSRAcLkgojS8MoM4mtcb kK9tFX2FO2L6TuLkO1ZoOBm9vU8AkMY3OniGxIDTxU3GErXkjZhkyu2dEk+V4Q8al6oh cdGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766589785; x=1767194585; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=yZ4NHo11hORfjfHpM+Tb3zuMw053OzsR0ZO7fwiMYhU=; b=OnvqfCxyL9XjmRc9hU5oVDlEV4qW+N5Plj2aIM5g8A7r4zJY07S2ABSZ0ez/NMIH+5 6+4+t2NRo2GGfiC5nqZ6OdhCoBnpcPuAPiNIf2H+rwHRBP/FbU1OXql/0QZwaqWkRIix K306LQUAaT3md7PxzyYfddlq3trfhkAtXQCdSmdHzlq8sgMXJrU0nnxlKmMEcVnXhaoP OPKeuXGnp5UWMBCKmWgwZcu8ei36Ycv0eb0a0pQLW0R30YnO4apkboAh+MmGt9PqQ5nc gdwA4bTkYct7FCLoMshbCBMAgDzREyWeQ9x8yBRBPzc1ePF5C5V38DIEU9ZQw6CfLxgo eXfw== X-Gm-Message-State: AOJu0YwqbOEbB0bhjY5oyjm4BZhJgkNjK0ICWQjiEJ18FSjeOG9h8Vd+ 20O9Iw26DcAyuYZifSx51grY4nlobZ1aIJg4L4Gi1Dz2knuVa059TLYeQivju7MKKXK2XaqnVkp 5tOAQUdY= X-Gm-Gg: AY/fxX4tBlgE9Ryaq6AM7s2sHTtQG7/TMwuELCeEL/ni5esNe5xhI5QVCgU4yLx0k6k nKWmSsvOZudljBLePVwZgrp01K7Q9kVR+kqSd94JF/CvCvWzrloRAprN1d6j3HfBvOQIbRoyDR1 zg8NwvqZ+QULaFHZdco0a0PiLl+1romK4XxJFvbsItJXWiADaq5KKioMbJW3zYE6LWDpl1UGK40 5I2xx7fGHxSRuJ0OSpxTH33M/8fev74NWRxvIZ3eKzIWc2aAaxBt81DED1MMEOLuUFrVfVMTYJa 51/Wq2g9lU1+HsWZS3JoeusnoZtt+WdrY6uY3+9HYLBNU6WtxqhYcrdhwZItsp2NoA5t9G1PUpn nFh18d6SlVQ474kUGFVSHNShY6Fd7K/Lr7tXCmw1qzlUfZaKdPjDSeeY+RtP7KzdLdUkM2kMVNh 255aXCK/st/yLm/xk04EWaa2VZzB2jD8D8DcTQO/i5YzwQqYlYyKlBKMnzqdr2 X-Google-Smtp-Source: AGHT+IHt8HPdQPBS6hkqRrwj3NvpubshnbCXw2byM+U5UpUOAMX+KQ75NdG7YVZYVANQ2IgwwdnqTQ== X-Received: by 2002:a17:907:1c1d:b0:b70:fd2f:6a46 with SMTP id a640c23a62f3a-b8036f625fbmr1807246666b.20.1766589784950; Wed, 24 Dec 2025 07:23:04 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Pierrick Bouvier , Peter Xu , Richard Henderson , Manos Pitsidianakis , Anton Johansson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , David Hildenbrand Subject: [PATCH v3 05/25] system/memory: Move *ldst* headers from exec/ to system/ namespace Date: Wed, 24 Dec 2025 16:21:48 +0100 Message-ID: <20251224152210.87880-6-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251224152210.87880-1-philmd@linaro.org> References: <20251224152210.87880-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 (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=2a00:1450:4864:20::535; envelope-from=philmd@linaro.org; helo=mail-ed1-x535.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=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: 1766589833844158501 Keep all system memory APIs under the system/ namespace. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Manos Pitsidianakis Reviewed-by: Richard Henderson --- MAINTAINERS | 1 + include/system/memory.h | 4 ++-- include/system/memory_cached.h | 10 +++++----- include/{exec =3D> system}/memory_ldst.h.inc | 0 include/{exec =3D> system}/memory_ldst_cached.h.inc | 0 include/{exec =3D> system}/memory_ldst_phys.h.inc | 0 6 files changed, 8 insertions(+), 7 deletions(-) rename include/{exec =3D> system}/memory_ldst.h.inc (100%) rename include/{exec =3D> system}/memory_ldst_cached.h.inc (100%) rename include/{exec =3D> system}/memory_ldst_phys.h.inc (100%) diff --git a/MAINTAINERS b/MAINTAINERS index c299b84d418..f984891ac2b 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3255,6 +3255,7 @@ S: Supported F: include/system/ioport.h F: include/exec/memop.h F: include/system/memory.h +F: include/system/memory_ldst* F: include/system/memory_cached.h F: include/system/physmem.h F: include/system/ram_addr.h diff --git a/include/system/memory.h b/include/system/memory.h index 692c2f67dd3..2a966397931 100644 --- a/include/system/memory.h +++ b/include/system/memory.h @@ -2848,13 +2848,13 @@ MemTxResult address_space_write_rom(AddressSpace *a= s, hwaddr addr, #define SUFFIX #define ARG1 as #define ARG1_DECL AddressSpace *as -#include "exec/memory_ldst.h.inc" +#include "system/memory_ldst.h.inc" =20 #ifndef TARGET_NOT_USING_LEGACY_LDST_PHYS_API #define SUFFIX #define ARG1 as #define ARG1_DECL AddressSpace *as -#include "exec/memory_ldst_phys.h.inc" +#include "system/memory_ldst_phys.h.inc" #endif =20 void address_space_flush_icache_range(AddressSpace *as, hwaddr addr, hwadd= r len); diff --git a/include/system/memory_cached.h b/include/system/memory_cached.h index 1a07774b6ad..587e8a1453a 100644 --- a/include/system/memory_cached.h +++ b/include/system/memory_cached.h @@ -52,7 +52,7 @@ struct MemoryRegionCache { #define SUFFIX _cached_slow #define ARG1 cache #define ARG1_DECL MemoryRegionCache *cache -#include "exec/memory_ldst.h.inc" +#include "system/memory_ldst.h.inc" =20 /* Inline fast path for direct RAM access. */ static inline uint8_t address_space_ldub_cached(MemoryRegionCache *cache, @@ -78,18 +78,18 @@ static inline void address_space_stb_cached(MemoryRegio= nCache *cache, } =20 #define ENDIANNESS -#include "exec/memory_ldst_cached.h.inc" +#include "system/memory_ldst_cached.h.inc" =20 #define ENDIANNESS _le -#include "exec/memory_ldst_cached.h.inc" +#include "system/memory_ldst_cached.h.inc" =20 #define ENDIANNESS _be -#include "exec/memory_ldst_cached.h.inc" +#include "system/memory_ldst_cached.h.inc" =20 #define SUFFIX _cached #define ARG1 cache #define ARG1_DECL MemoryRegionCache *cache -#include "exec/memory_ldst_phys.h.inc" +#include "system/memory_ldst_phys.h.inc" =20 /** * address_space_cache_init: prepare for repeated access to a physical diff --git a/include/exec/memory_ldst.h.inc b/include/system/memory_ldst.h.= inc similarity index 100% rename from include/exec/memory_ldst.h.inc rename to include/system/memory_ldst.h.inc diff --git a/include/exec/memory_ldst_cached.h.inc b/include/system/memory_= ldst_cached.h.inc similarity index 100% rename from include/exec/memory_ldst_cached.h.inc rename to include/system/memory_ldst_cached.h.inc diff --git a/include/exec/memory_ldst_phys.h.inc b/include/system/memory_ld= st_phys.h.inc similarity index 100% rename from include/exec/memory_ldst_phys.h.inc rename to include/system/memory_ldst_phys.h.inc --=20 2.52.0 From nobody Mon Feb 9 04:08:23 2026 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=1766589828; cv=none; d=zohomail.com; s=zohoarc; b=S7u0IPMldAVNFUv4XW2M79O+36ZDUeT8Tu692gDH/h96vumfbkK5A5DDoMEZTn9Gdw+/9BqIMzCoG21WzYjonxLHSZTQDZdGgFlcRWd1k9JKBq/7i6NnxDTpi39bdp7O2XDsgKT60i18hC8kZftfg7RzKDJqOA+N5Fi/IncFoDQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766589828; h=Content-Type: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=U+LBKH6mpM3QJZ+LjMWVH1Zu0cPNjKfwSazzmUt2kNQ=; b=QNYHW7w4V6mucCZ6Q55U5Bcd8v5EIGR3oOiYnvEzZWU1iMZ2cOymvBs7adby9JM3gwfxSn7YzzvMLE55F+h8xBlzvugF0SBNnU892VK6bQbBePTv9TRttW2OG0Jk2MUpkwcb0VFT9CAxeoAg92V9aELKLZ+WohVXvLYT/+GIU6o= 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 1766589828475950.7484769491497; Wed, 24 Dec 2025 07:23:48 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vYQi4-00017N-NJ; Wed, 24 Dec 2025 10:23:32 -0500 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 1vYQhp-0000nG-SF for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:23:22 -0500 Received: from mail-ej1-x636.google.com ([2a00:1450:4864:20::636]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vYQhn-0004fy-Ru for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:23:17 -0500 Received: by mail-ej1-x636.google.com with SMTP id a640c23a62f3a-b7636c96b9aso1068835166b.2 for ; Wed, 24 Dec 2025 07:23:15 -0800 (PST) Received: from localhost.localdomain (188.171.88.92.rev.sfr.net. [92.88.171.188]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b8037a614b7sm1809241266b.1.2025.12.24.07.23.12 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 24 Dec 2025 07:23:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1766589794; x=1767194594; 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=U+LBKH6mpM3QJZ+LjMWVH1Zu0cPNjKfwSazzmUt2kNQ=; b=DNWPD7idFlGek8f7I9B3L15SDSVcJDMTniWqSey03mU/fhI+SWf9AeXjK27eWLQTiP 9hYstKGQKt3dF6EVhfpdL3blyQfJRsfypi47gT2o91m3dbQPOGGre3Q5Ak7jAhKemok2 BMIieY3wVWzdhAP78uieLneyJhzAkubSrGyemRFiVKxSuPBf3i6BeAX5Y2/bzw8n/The EGk2+FQwgQsrutiztQSZJx7qW3Pjo07SffegmUqve10kVU4L42n0aHVO1SAjRboUQz6q 839cnvQ/REDp6kjbZBELh3jpnmyDWiiv62zNAMYkuBisovMWnxhJwZ6+DkhvlxsVHYV9 ddAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766589794; x=1767194594; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=U+LBKH6mpM3QJZ+LjMWVH1Zu0cPNjKfwSazzmUt2kNQ=; b=C0w/KhFfG82YddeDoHoRRYjv882d5w/iKB6J4x/Y4Ity2mPv35HxrHKeYidk/L1WiW upOIeHwPjOPps+c7eR8FSHqYrMehKR9PbP11aDyTfZqh129cPcn3AUBgVD9zwIdNGmHU ihfuTQXT42OugcytF5FOIdS8ph1sutE0yBbiBpldR2NhdR/CqEzVCjr7tF1p6jxgDvoI P96+/Xi2l9uiKWJTGJ1+HDsCJ9IaRIlcKHcl7VujS0p8gtOgnTMb/ukLyr5eCHkuOhGO sRtoCuFoZkSGybH+tPbmeFgmQkFgkh5YcsTNcOhLDP/8NLCH54IWQgy80GnGbAvLtV8N bpnQ== X-Gm-Message-State: AOJu0YwdALoj1hMzh64aOp2zqNAiLh46w3kuv0/UPrOVMXdUMkN4L8zF rCX8yWtyZ41ACtQXUXl+SzWXR94haTBt91h9yzmjz/VDShQxSVGiRDBWnBz3v0EAzC3U7UmiK/V d1DisMs8= X-Gm-Gg: AY/fxX6UgHds8HSOZy99f/QQAjvwsi+AE+6em304vfjwiCqOuNkhbu+BRCbNsveEykk zEOyXkXn25SaVCkeRer7UeKBQx+JsXY5yTspmVperu3GAldtEYNjLe3QouHofmUGsJKAy7JZrfy 5KY+vP5100NwUmnOmJc9ocOgFT2YWon67B0CRPEvsOKihNp4mkwd+VlYSSDbqo5ku2r3l5r4+ka kquCcn3LF863JVobm+nCQgWRrArZxR6QfQoOdhcMQKR8anfhl4O4YW6x87J8YJoW2R+JeTLq9xf cc9qkHS2aTRG9LUZyfWmyk7CSxd1qq1uau/G8IrBkac7SRXz9qJU2eqVKPRqLhHip88ixooKfn4 cs14zgXhWnzsVRwsWOB9dBMBoznZX+i5aVZcb8PZlSbjoshK1TsT6NQCP4cc4K2NPQzq/l9bgol 7seGM8/ayGxtsfOQIfIBvOCHU2x7HkE8aMeiZg17psELiFQPTSiSxqyMsaltUw X-Google-Smtp-Source: AGHT+IER9qDMge+R9LicmrUcgrJ1Lid1gEk94rX0A6fw0cJSU3LVrO23WghTKJRQcWA34vS5/U+wrA== X-Received: by 2002:a17:907:1c17:b0:b76:da45:e3d6 with SMTP id a640c23a62f3a-b8036f60c66mr1862916066b.16.1766589794059; Wed, 24 Dec 2025 07:23:14 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Pierrick Bouvier , Peter Xu , Richard Henderson , Manos Pitsidianakis , Anton Johansson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , David Hildenbrand Subject: [PATCH v3 06/25] system/memory: Inline address_space_stq_internal() Date: Wed, 24 Dec 2025 16:21:49 +0100 Message-ID: <20251224152210.87880-7-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251224152210.87880-1-philmd@linaro.org> References: <20251224152210.87880-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 (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=2a00:1450:4864:20::636; envelope-from=philmd@linaro.org; helo=mail-ej1-x636.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: 1766589829794158500 As its name suggests, address_space_stq_internal() is an internal method which can be inlined like all the other ones in this file. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Pierrick Bouvier Reviewed-by: Richard Henderson --- system/memory_ldst.c.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/memory_ldst.c.inc b/system/memory_ldst.c.inc index b45bfecd137..d5776678edf 100644 --- a/system/memory_ldst.c.inc +++ b/system/memory_ldst.c.inc @@ -422,7 +422,7 @@ void glue(address_space_stw_be, SUFFIX)(ARG1_DECL, DEVICE_BIG_ENDIAN); } =20 -static void glue(address_space_stq_internal, SUFFIX)(ARG1_DECL, +static inline void glue(address_space_stq_internal, SUFFIX)(ARG1_DECL, hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result, enum device_endian endian) { --=20 2.52.0 From nobody Mon Feb 9 04:08:23 2026 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=1766589841; cv=none; d=zohomail.com; s=zohoarc; b=MaReDgD+i5gPqvgZ2uGbu36Sx1QE91Yr7S8TM7BWUfECQo/3SdxO7OGNFK/mWGBaPMQcHcTC0IqUS1x2R5DfKicegOZswLMleJdSvWtTJr83q9P4S9qeYivAT0iJsEGT7uvBUdx5pqlzhu9eeppG3osdCSPeSHMDvZng4jgQMfU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766589841; h=Content-Type: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=LqNKoGk2vwvZxPUqS4SHcvedzZxPPPuFrGr347h1Z8o=; b=bCzU1yoXdFlGWBz0CJallgcH2L+sjgW2bMRhMrSSD/GXMf6SgF74uBYmU+lU0qgzsj36cO9JIWI7G+6Nwte43q80tRhO76fcMeZB4yYsg09L10i64I5WsO8P6jXUCowGPxMYth5SH4CRXniNBAqPKaC8Rn9AbQr7yXqwHHsk2Yo= 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 1766589841453388.5557677383322; Wed, 24 Dec 2025 07:24:01 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vYQi5-0001AX-24; Wed, 24 Dec 2025 10:23:33 -0500 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 1vYQi0-0000tK-Na for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:23:29 -0500 Received: from mail-ej1-x643.google.com ([2a00:1450:4864:20::643]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vYQhy-0004gt-6M for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:23:28 -0500 Received: by mail-ej1-x643.google.com with SMTP id a640c23a62f3a-b7a6e56193cso989199666b.3 for ; Wed, 24 Dec 2025 07:23:25 -0800 (PST) Received: from localhost.localdomain (188.171.88.92.rev.sfr.net. [92.88.171.188]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b8037de10dfsm1745498366b.36.2025.12.24.07.23.21 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 24 Dec 2025 07:23:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1766589804; x=1767194604; 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=LqNKoGk2vwvZxPUqS4SHcvedzZxPPPuFrGr347h1Z8o=; b=jG9qPoc4WSDp2DCEqf/1g5/Xd7R5hC7YCk7g97dXIoMiZGNm4PdG3dvz4GSGG5kVtQ 70Wk7+p6rWB4CehhZ/tnkbiyBWl88kG78DvFalHlhEWnQIVIyD2/Sb0Tx0TQ3X7rnRBz qR5xpA30sNPxtopBHfg5zdP4+k4zqPmOZFr0qK5EbSB6+c2nnKUGkf/I7BpdcXVFVYRt u6KKUShEXj/7BwKX8qwhu4qkNd2jqE+ENYWcUxf1MlZrEtVGgB4V7MWg2OnPf1YWlNW2 K6lJn26Pu/US+LutFgicWiBGtdM7YRg0zDuTCJULBaTQopdv/0js9CNHhVDa7Mlf90md u+tQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766589804; x=1767194604; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=LqNKoGk2vwvZxPUqS4SHcvedzZxPPPuFrGr347h1Z8o=; b=ByS12Au/o0UwrEKywKGYTLAQ4c0TgkCRrjQDCgu/EqNbsJtgdW/eN8DyGje3VT+uOl PDIHaMtJ7r8vahW+zVhnWlWE5e3wkG0C1FOSFz8MYiHVz+4j6pELusDe9Zn1kQQU38rk SjjTG/Ug2Nw18e5fVXzvSkCohFQIhd449R0XxojwRhUOr5pLFmKSCgYulW0sZGU+di2c CaHcMyf6OOl78nnrWntPZaDtaDejdeYaVC1TANpNQa7r7Ov3tiqU48ONsMmslspsYrSq db3icYckuGVDOAAD6b9tfan7iJIUsIJosDqTjwEWP0HTCtfYwWJWlbotJrL+npDfo2Eq Yx5A== X-Gm-Message-State: AOJu0Yy71Gvu3qCTu0kDLom9OPMxsC1jJj/1fEtjRzu1sE+WiS+9XWaQ 1ZCrJxUNJq2lsghL0bLP7N8b9f1Vl48bbFMpFXI/mi2NxwbQNRAhLmchAe25AtUD+MQyWMWEsYN 7zSpiRY0= X-Gm-Gg: AY/fxX6/OBi0O71Uhh2OZ5++GYQ0HUdPWX+aqFwPkSa11GdTR66oct6KNX2sYcOmnht +HtlwlLJwsBET/n760SqpLdn8WE9nvymtOpPLXNxUAkLD8Wc2cv5/dvcrU5pJv1Ou1MQqgjT4N6 Tp2Q18eTYHV9Q3HeHj0/JYtzk821elwa8lrKXFRa/Wkjm1NeRvSJAFHf2SsMq2Rq2yAY40xKKp1 QNgSjZ8IqlMYOEMEiKQr+QXGm2nMPUGfGe7hGn5XseGeuO651MJxFEdJP1yTwwfbliKT8r0mSdH /izRn90wizG/Jop7ATWy2hnAyw3c7lkGSn41WRO6i87d9cNZ4iVePCyKY63mbDFaj1szrZJ87gF wPxtNXT/p9AXAhi2qQ/ToXB2VRfEe+MZnSk9zLmexdLA5t6LAhYim8VsS7AmDRrdNvkkmQQ7asy 8z0yTKLeh5IKHdIHro9SkW5WD50cgsR56wY/BSCYGmoOvkpdgicpGirtHhmUzH X-Google-Smtp-Source: AGHT+IHhqWleFW43ok7570ThCvWIsXte4DwmjlC5bXp83qIT5FpbKWlhJOKrNIZtixR6qXBgNgC2og== X-Received: by 2002:a17:907:7f8e:b0:b76:eec9:a1a9 with SMTP id a640c23a62f3a-b8036f34039mr1691172466b.7.1766589804020; Wed, 24 Dec 2025 07:23:24 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Pierrick Bouvier , Peter Xu , Richard Henderson , Manos Pitsidianakis , Anton Johansson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , David Hildenbrand Subject: [PATCH v3 07/25] system/memory: Define address_space_ldst[W] endian variants via template Date: Wed, 24 Dec 2025 16:21:50 +0100 Message-ID: <20251224152210.87880-8-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251224152210.87880-1-philmd@linaro.org> References: <20251224152210.87880-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 (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=2a00:1450:4864:20::643; envelope-from=philmd@linaro.org; helo=mail-ej1-x643.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: 1766589842010158500 Like we do for other LD/ST APIs, use one template to declare and define all endianness variants of the address_space_ldst[W] methods. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- MAINTAINERS | 2 + include/system/memory_ldst.h.inc | 21 ++++---- include/system/memory_ldst_endian.h.inc | 25 +++++++++ include/system/memory_ldst_phys.h.inc | 45 ++++------------ include/system/memory_ldst_phys_endian.h.inc | 37 ++++++++++++++ system/memory_ldst.c.inc | 54 +++++--------------- system/memory_ldst_endian.c.inc | 42 +++++++++++++++ 7 files changed, 136 insertions(+), 90 deletions(-) create mode 100644 include/system/memory_ldst_endian.h.inc create mode 100644 include/system/memory_ldst_phys_endian.h.inc create mode 100644 system/memory_ldst_endian.c.inc diff --git a/MAINTAINERS b/MAINTAINERS index f984891ac2b..18168c0b1eb 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3257,6 +3257,7 @@ F: include/exec/memop.h F: include/system/memory.h F: include/system/memory_ldst* F: include/system/memory_cached.h +F: include/system/memory_ldst* F: include/system/physmem.h F: include/system/ram_addr.h F: include/system/ramblock.h @@ -3266,6 +3267,7 @@ F: system/ioport.c F: system/memory.c F: system/memory_mapping.c F: system/physmem.c +F: system/memory_ldst* F: system/memory-internal.h F: system/ram-block-attributes.c F: scripts/coccinelle/memory-region-housekeeping.cocci diff --git a/include/system/memory_ldst.h.inc b/include/system/memory_ldst.= h.inc index 173164fee3a..73c0366a247 100644 --- a/include/system/memory_ldst.h.inc +++ b/include/system/memory_ldst.h.inc @@ -19,24 +19,16 @@ * License along with this library; if not, see . */ =20 -uint16_t glue(address_space_lduw, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result); uint32_t glue(address_space_ldl, SUFFIX)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result); uint64_t glue(address_space_ldq, SUFFIX)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result); -void glue(address_space_stw, SUFFIX)(ARG1_DECL, - hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *result); void glue(address_space_stl, SUFFIX)(ARG1_DECL, hwaddr addr, uint32_t val, MemTxAttrs attrs, MemTxResult *result); void glue(address_space_stq, SUFFIX)(ARG1_DECL, hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result); uint8_t glue(address_space_ldub, SUFFIX)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result); -uint16_t glue(address_space_lduw_le, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result); -uint16_t glue(address_space_lduw_be, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result); uint32_t glue(address_space_ldl_le, SUFFIX)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result); uint32_t glue(address_space_ldl_be, SUFFIX)(ARG1_DECL, @@ -47,10 +39,6 @@ uint64_t glue(address_space_ldq_be, SUFFIX)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result); void glue(address_space_stb, SUFFIX)(ARG1_DECL, hwaddr addr, uint8_t val, MemTxAttrs attrs, MemTxResult *result); -void glue(address_space_stw_le, SUFFIX)(ARG1_DECL, - hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *result); -void glue(address_space_stw_be, SUFFIX)(ARG1_DECL, - hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *result); void glue(address_space_stl_le, SUFFIX)(ARG1_DECL, hwaddr addr, uint32_t val, MemTxAttrs attrs, MemTxResult *result); void glue(address_space_stl_be, SUFFIX)(ARG1_DECL, @@ -60,6 +48,15 @@ void glue(address_space_stq_le, SUFFIX)(ARG1_DECL, void glue(address_space_stq_be, SUFFIX)(ARG1_DECL, hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result); =20 +#define ENDIANNESS +#include "system/memory_ldst_endian.h.inc" + +#define ENDIANNESS _le +#include "system/memory_ldst_endian.h.inc" + +#define ENDIANNESS _be +#include "system/memory_ldst_endian.h.inc" + #undef ARG1_DECL #undef ARG1 #undef SUFFIX diff --git a/include/system/memory_ldst_endian.h.inc b/include/system/memor= y_ldst_endian.h.inc new file mode 100644 index 00000000000..3f216197663 --- /dev/null +++ b/include/system/memory_ldst_endian.h.inc @@ -0,0 +1,25 @@ +/* + * Physical memory access endian templates + * + * Copyright (c) 2003 Fabrice Bellard + * Copyright (c) 2015 Linaro, Inc. + * Copyright (c) 2016 Red Hat, Inc. + * Copyright (c) 2025 Linaro Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#define ADDRESS_SPACE_LD(size) \ + glue(glue(address_space_ld, size), glue(ENDIANNESS, SUFFIX)) +#define ADDRESS_SPACE_ST(size) \ + glue(glue(address_space_st, size), glue(ENDIANNESS, SUFFIX)) + +uint16_t ADDRESS_SPACE_LD(uw)(ARG1_DECL, hwaddr addr, + MemTxAttrs attrs, MemTxResult *result); +void ADDRESS_SPACE_ST(w)(ARG1_DECL, hwaddr addr, uint16_t val, + MemTxAttrs attrs, MemTxResult *result); + +#undef ADDRESS_SPACE_LD +#undef ADDRESS_SPACE_ST + +#undef ENDIANNESS diff --git a/include/system/memory_ldst_phys.h.inc b/include/system/memory_= ldst_phys.h.inc index db67de75251..71c2e64ff0f 100644 --- a/include/system/memory_ldst_phys.h.inc +++ b/include/system/memory_ldst_phys.h.inc @@ -19,12 +19,6 @@ * License along with this library; if not, see . */ =20 -static inline uint16_t glue(lduw_phys, SUFFIX)(ARG1_DECL, hwaddr addr) -{ - return glue(address_space_lduw, SUFFIX)(ARG1, addr, - MEMTXATTRS_UNSPECIFIED, NULL); -} - static inline uint32_t glue(ldl_phys, SUFFIX)(ARG1_DECL, hwaddr addr) { return glue(address_space_ldl, SUFFIX)(ARG1, addr, @@ -37,12 +31,6 @@ static inline uint64_t glue(ldq_phys, SUFFIX)(ARG1_DECL,= hwaddr addr) MEMTXATTRS_UNSPECIFIED, NULL); } =20 -static inline void glue(stw_phys, SUFFIX)(ARG1_DECL, hwaddr addr, uint16_t= val) -{ - glue(address_space_stw, SUFFIX)(ARG1, addr, val, - MEMTXATTRS_UNSPECIFIED, NULL); -} - static inline void glue(stl_phys, SUFFIX)(ARG1_DECL, hwaddr addr, uint32_t= val) { glue(address_space_stl, SUFFIX)(ARG1, addr, val, @@ -61,18 +49,6 @@ static inline uint8_t glue(ldub_phys, SUFFIX)(ARG1_DECL,= hwaddr addr) MEMTXATTRS_UNSPECIFIED, NULL); } =20 -static inline uint16_t glue(lduw_le_phys, SUFFIX)(ARG1_DECL, hwaddr addr) -{ - return glue(address_space_lduw_le, SUFFIX)(ARG1, addr, - MEMTXATTRS_UNSPECIFIED, NUL= L); -} - -static inline uint16_t glue(lduw_be_phys, SUFFIX)(ARG1_DECL, hwaddr addr) -{ - return glue(address_space_lduw_be, SUFFIX)(ARG1, addr, - MEMTXATTRS_UNSPECIFIED, NUL= L); -} - static inline uint32_t glue(ldl_le_phys, SUFFIX)(ARG1_DECL, hwaddr addr) { return glue(address_space_ldl_le, SUFFIX)(ARG1, addr, @@ -103,18 +79,6 @@ static inline void glue(stb_phys, SUFFIX)(ARG1_DECL, hw= addr addr, uint8_t val) MEMTXATTRS_UNSPECIFIED, NULL); } =20 -static inline void glue(stw_le_phys, SUFFIX)(ARG1_DECL, hwaddr addr, uint1= 6_t val) -{ - glue(address_space_stw_le, SUFFIX)(ARG1, addr, val, - MEMTXATTRS_UNSPECIFIED, NULL); -} - -static inline void glue(stw_be_phys, SUFFIX)(ARG1_DECL, hwaddr addr, uint1= 6_t val) -{ - glue(address_space_stw_be, SUFFIX)(ARG1, addr, val, - MEMTXATTRS_UNSPECIFIED, NULL); -} - static inline void glue(stl_le_phys, SUFFIX)(ARG1_DECL, hwaddr addr, uint3= 2_t val) { glue(address_space_stl_le, SUFFIX)(ARG1, addr, val, @@ -139,6 +103,15 @@ static inline void glue(stq_be_phys, SUFFIX)(ARG1_DECL= , hwaddr addr, uint64_t va MEMTXATTRS_UNSPECIFIED, NULL); } =20 +#define ENDIANNESS +#include "system/memory_ldst_phys_endian.h.inc" + +#define ENDIANNESS _le +#include "system/memory_ldst_phys_endian.h.inc" + +#define ENDIANNESS _be +#include "system/memory_ldst_phys_endian.h.inc" + #undef ARG1_DECL #undef ARG1 #undef SUFFIX diff --git a/include/system/memory_ldst_phys_endian.h.inc b/include/system/= memory_ldst_phys_endian.h.inc new file mode 100644 index 00000000000..25ab52a88d9 --- /dev/null +++ b/include/system/memory_ldst_phys_endian.h.inc @@ -0,0 +1,37 @@ +/* + * Physical memory access endian templates + * + * Copyright (c) 2003 Fabrice Bellard + * Copyright (c) 2015 Linaro, Inc. + * Copyright (c) 2016 Red Hat, Inc. + * Copyright (c) 2025 Linaro Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#define LD_PHYS(size) \ + glue(glue(ld, size), glue(ENDIANNESS, glue(_phys, SUFFIX))) +#define ADDRESS_SPACE_LD(size) \ + glue(glue(address_space_ld, size), glue(ENDIANNESS, SUFFIX)) + +#define ST_PHYS(size) \ + glue(glue(st, size), glue(ENDIANNESS, glue(_phys, SUFFIX))) +#define ADDRESS_SPACE_ST(size) \ + glue(glue(address_space_st, size), glue(ENDIANNESS, SUFFIX)) + +static inline uint16_t LD_PHYS(uw)(ARG1_DECL, hwaddr addr) +{ + return ADDRESS_SPACE_LD(uw)(ARG1, addr, MEMTXATTRS_UNSPECIFIED, NULL); +} + +static inline void ST_PHYS(w)(ARG1_DECL, hwaddr addr, uint16_t val) +{ + ADDRESS_SPACE_ST(w)(ARG1, addr, val, MEMTXATTRS_UNSPECIFIED, NULL); +} + +#undef LD_PHYS +#undef ST_PHYS +#undef ADDRESS_SPACE_LD +#undef ADDRESS_SPACE_ST + +#undef ENDIANNESS diff --git a/system/memory_ldst.c.inc b/system/memory_ldst.c.inc index d5776678edf..c37a07b4f4a 100644 --- a/system/memory_ldst.c.inc +++ b/system/memory_ldst.c.inc @@ -240,27 +240,6 @@ static inline uint16_t glue(address_space_lduw_interna= l, SUFFIX)(ARG1_DECL, return val; } =20 -uint16_t glue(address_space_lduw, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result) -{ - return glue(address_space_lduw_internal, SUFFIX)(ARG1, addr, attrs, re= sult, - DEVICE_NATIVE_ENDIAN); -} - -uint16_t glue(address_space_lduw_le, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result) -{ - return glue(address_space_lduw_internal, SUFFIX)(ARG1, addr, attrs, re= sult, - DEVICE_LITTLE_ENDIAN); -} - -uint16_t glue(address_space_lduw_be, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result) -{ - return glue(address_space_lduw_internal, SUFFIX)(ARG1, addr, attrs, re= sult, - DEVICE_BIG_ENDIAN); -} - /* warning: addr must be aligned */ static inline void glue(address_space_stl_internal, SUFFIX)(ARG1_DECL, hwaddr addr, uint32_t val, MemTxAttrs attrs, @@ -401,27 +380,6 @@ static inline void glue(address_space_stw_internal, SU= FFIX)(ARG1_DECL, RCU_READ_UNLOCK(); } =20 -void glue(address_space_stw, SUFFIX)(ARG1_DECL, - hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *result) -{ - glue(address_space_stw_internal, SUFFIX)(ARG1, addr, val, attrs, resul= t, - DEVICE_NATIVE_ENDIAN); -} - -void glue(address_space_stw_le, SUFFIX)(ARG1_DECL, - hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *result) -{ - glue(address_space_stw_internal, SUFFIX)(ARG1, addr, val, attrs, resul= t, - DEVICE_LITTLE_ENDIAN); -} - -void glue(address_space_stw_be, SUFFIX)(ARG1_DECL, - hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *result) -{ - glue(address_space_stw_internal, SUFFIX)(ARG1, addr, val, attrs, resul= t, - DEVICE_BIG_ENDIAN); -} - static inline void glue(address_space_stq_internal, SUFFIX)(ARG1_DECL, hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result, enum device_endian endian) @@ -486,6 +444,18 @@ void glue(address_space_stq_be, SUFFIX)(ARG1_DECL, DEVICE_BIG_ENDIAN); } =20 +#define ENDIANNESS +#define DEVICE_ENDIANNESS DEVICE_NATIVE_ENDIAN +#include "memory_ldst_endian.c.inc" + +#define ENDIANNESS _le +#define DEVICE_ENDIANNESS DEVICE_LITTLE_ENDIAN +#include "memory_ldst_endian.c.inc" + +#define ENDIANNESS _be +#define DEVICE_ENDIANNESS DEVICE_BIG_ENDIAN +#include "memory_ldst_endian.c.inc" + #undef ARG1_DECL #undef ARG1 #undef SUFFIX diff --git a/system/memory_ldst_endian.c.inc b/system/memory_ldst_endian.c.= inc new file mode 100644 index 00000000000..e1ae44ca232 --- /dev/null +++ b/system/memory_ldst_endian.c.inc @@ -0,0 +1,42 @@ +/* + * Physical memory access endian templates + * + * Copyright (c) 2003 Fabrice Bellard + * Copyright (c) 2015 Linaro, Inc. + * Copyright (c) 2016 Red Hat, Inc. + * Copyright (c) 2025 Linaro Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#define ADDRESS_SPACE_LD(size) \ + glue(glue(address_space_ld, size), glue(ENDIANNESS, SUFFIX)) +#define ADDRESS_SPACE_LD_INTERNAL(size) \ + glue(glue(address_space_ld, size), glue(_internal, SUFFIX)) + +#define ADDRESS_SPACE_ST(size) \ + glue(glue(address_space_st, size), glue(ENDIANNESS, SUFFIX)) +#define ADDRESS_SPACE_ST_INTERNAL(size) \ + glue(glue(address_space_st, size), glue(_internal, SUFFIX)) + +uint16_t ADDRESS_SPACE_LD(uw)(ARG1_DECL, hwaddr addr, + MemTxAttrs attrs, MemTxResult *result) +{ + return ADDRESS_SPACE_LD_INTERNAL(uw)(ARG1, addr, attrs, result, + DEVICE_ENDIANNESS); +} + +void ADDRESS_SPACE_ST(w)(ARG1_DECL, hwaddr addr, uint16_t val, + MemTxAttrs attrs, MemTxResult *result) +{ + ADDRESS_SPACE_ST_INTERNAL(w)(ARG1, addr, val, attrs, result, + DEVICE_ENDIANNESS); +} + +#undef ADDRESS_SPACE_LD +#undef ADDRESS_SPACE_LD_INTERNAL +#undef ADDRESS_SPACE_ST +#undef ADDRESS_SPACE_ST_INTERNAL + +#undef ENDIANNESS +#undef DEVICE_ENDIANNESS --=20 2.52.0 From nobody Mon Feb 9 04:08:23 2026 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=1766589827; cv=none; d=zohomail.com; s=zohoarc; b=FZEtsnUWrd1WzxX8v8bzJUYUZlek1nFuVkog6W7CLeQHRIvWmN0SqJNIeqjPNGZ61HDjjQovpGauWYlEu1Hk9ikHhNl1R3ZD81Pp7zwtqqmYyTlId4OFIUoiGgKpNVCF3SswvatSpe8oW0xUSzle2WCHbYYDRzAEoF/fp9YgMDg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766589827; h=Content-Type: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=igCseaXkituHRUHlgN3vHTspEqy2I4p8ueKPXus93fI=; b=M/nCDf1KFvnHAQyBBSfg9vx5jsLwYhhasaQwbEpymz8Y2DpfMBYOVfVHfx7domI7wieEK939ihlyXGlwXKELrCx/Lqz30GLx16hMSMfTyjSpD/FqxT52hGsADz5XXrQTDNWVqikMbKGKI1UFvMiMUY2hZN4SneSXqVAkLAwfmRc= 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 1766589827597467.65067661733985; Wed, 24 Dec 2025 07:23:47 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vYQiB-0001jE-ST; Wed, 24 Dec 2025 10:23:39 -0500 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 1vYQi9-0001SN-E5 for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:23:37 -0500 Received: from mail-ej1-x643.google.com ([2a00:1450:4864:20::643]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vYQi7-0004hh-6m for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:23:37 -0500 Received: by mail-ej1-x643.google.com with SMTP id a640c23a62f3a-b83122f9d78so77605666b.0 for ; Wed, 24 Dec 2025 07:23:34 -0800 (PST) Received: from localhost.localdomain (188.171.88.92.rev.sfr.net. [92.88.171.188]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b8037f5120bsm1827535766b.66.2025.12.24.07.23.31 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 24 Dec 2025 07:23:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1766589813; x=1767194613; 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=igCseaXkituHRUHlgN3vHTspEqy2I4p8ueKPXus93fI=; b=slAOgiJTOOz+k0TNSoEWGG72hGkmVV14PjYMUdjpLUQS3hWF6ih+oPD2TcrtaFP2CO Q5OoryiB7Aw29Ke3b9ZoAA4cPnsNdy730VFXxhE8RUun/c4dS5KhxlSpsPdmvusTvojB 7mf2Vc58+tWjmmKJsK/K+I0Li/5nBK0h5bVJyrX75lyb0ull2kWXmaKeXrLI74SdCtIp 6lhGAoqf8G/XSE/DZopm7WGRkmY3GTdFtf7YGBi3+T8dtTEwhdDdUx3kkZ0yaP/BlgR1 yqQ05ZZ+TWWnZRDGpDdGOL5gN6bw2UypQrdWKsgODXwRKMtdWAQGVcpFklfAreWT34IP +2OA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766589813; x=1767194613; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=igCseaXkituHRUHlgN3vHTspEqy2I4p8ueKPXus93fI=; b=O2a2qwohtZOslTqAxl4V8duAPPS1lr1h0Dj3NGogagp8W3WTbc89gARcItZLKYnZpy vfFESbV+fdYFcGIEWp261UaSzqHd1qTke7V9ly4b1gvvq5tlm0sBCxG7T3VY3pz2gAov IUbfqNcgPxiVKGGV6i5nBOVIXikayx2nKJK/lzk3vZEvc7U0fj9vaJJ0vLfHpArbqXOh z0ImVGWrveyyUWaJY+lBaSof5Z3kmsnEAE3FCZRbpfG/Q/QmxGVwo3+UVshqoaIFVLUS SMyf0shlYIdHBO1m61/86RZvX3y8brh7NZ3vBTqmnm8sBp8NW4BCoJK6bHgCfW7B9ZR3 VOwg== X-Gm-Message-State: AOJu0YzQ4hBkKLKHYxAkqK0rgn5xTggu2EcE9bepNHr82qyzRbJORRxI /yG+ZZQXKdsPEwrKnoyqrkOsZ1Y+KKQyPbXxPxUq3O/wevZEAbuuxZxijb+Q0QZq3evOuHSAtnn lHOjVmBE= X-Gm-Gg: AY/fxX4550POO+LxkkSRSIH1pn0Z2s0djtGPByzxqLGTXu2aOudKUhaEi5vf8gJtcLj oHsGbDkddcjFK0X8qP1qdxBdX8j+nmK3Uu7NmT83cOy1AwZtRUUo9qzATjlQOHQaPxja5X/UZvC npv85wRQ10/m0IiIiIOzkIm6ZY0GzT4EDxU1GkH0doF9uNHJILRw/0PB2xokfer75Xd5hMn6S+q iyoeCnklYWP19/YXqeEBXOZXaAvWU1ZHqULTgIjRFXng8aK+HYqpoLug2CZaN8V69PG153wsBqk BEmR6i4SljxVRSpiiP5q02YpvRosULHo3xFFFevGnI1EpyK15OrrDCx6ubKoxMLdLg9XZG+nJeP ywlv3Cr0ZJcz5W0Ug15a5FIj4dpSG32HskB20nNabUMiKxYY7neqfRGftupXR8/i1iqRdbWu+UE jyvDq6H4b7y2dzucTNByigrS/JXGgMvzmzW1fvO+JFU1E+VZZpCKD65bj1CF7Q X-Google-Smtp-Source: AGHT+IGynyb4cAuVo/rOQH4QLC3rjXl5WRLNPooQ9wG3TwptDvBN15ktqw+GOSN0q98E0t8gSSrf4w== X-Received: by 2002:a17:907:d2a:b0:b73:3e15:a370 with SMTP id a640c23a62f3a-b80371d6c20mr2130374866b.57.1766589813308; Wed, 24 Dec 2025 07:23:33 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Pierrick Bouvier , Peter Xu , Richard Henderson , Manos Pitsidianakis , Anton Johansson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , David Hildenbrand Subject: [PATCH v3 08/25] system/memory: Define address_space_ldst[L] endian variants via template Date: Wed, 24 Dec 2025 16:21:51 +0100 Message-ID: <20251224152210.87880-9-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251224152210.87880-1-philmd@linaro.org> References: <20251224152210.87880-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 (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=2a00:1450:4864:20::643; envelope-from=philmd@linaro.org; helo=mail-ej1-x643.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: 1766589829912158500 Define address_space_ldst[L] endian variants via template. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- include/system/memory_ldst.h.inc | 12 ------ include/system/memory_ldst_endian.h.inc | 4 ++ include/system/memory_ldst_phys.h.inc | 36 ----------------- include/system/memory_ldst_phys_endian.h.inc | 10 +++++ system/memory_ldst.c.inc | 42 -------------------- system/memory_ldst_endian.c.inc | 14 +++++++ 6 files changed, 28 insertions(+), 90 deletions(-) diff --git a/include/system/memory_ldst.h.inc b/include/system/memory_ldst.= h.inc index 73c0366a247..7ccca46f2a9 100644 --- a/include/system/memory_ldst.h.inc +++ b/include/system/memory_ldst.h.inc @@ -19,30 +19,18 @@ * License along with this library; if not, see . */ =20 -uint32_t glue(address_space_ldl, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result); uint64_t glue(address_space_ldq, SUFFIX)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result); -void glue(address_space_stl, SUFFIX)(ARG1_DECL, - hwaddr addr, uint32_t val, MemTxAttrs attrs, MemTxResult *result); void glue(address_space_stq, SUFFIX)(ARG1_DECL, hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result); uint8_t glue(address_space_ldub, SUFFIX)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result); -uint32_t glue(address_space_ldl_le, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result); -uint32_t glue(address_space_ldl_be, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result); uint64_t glue(address_space_ldq_le, SUFFIX)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result); uint64_t glue(address_space_ldq_be, SUFFIX)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result); void glue(address_space_stb, SUFFIX)(ARG1_DECL, hwaddr addr, uint8_t val, MemTxAttrs attrs, MemTxResult *result); -void glue(address_space_stl_le, SUFFIX)(ARG1_DECL, - hwaddr addr, uint32_t val, MemTxAttrs attrs, MemTxResult *result); -void glue(address_space_stl_be, SUFFIX)(ARG1_DECL, - hwaddr addr, uint32_t val, MemTxAttrs attrs, MemTxResult *result); void glue(address_space_stq_le, SUFFIX)(ARG1_DECL, hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result); void glue(address_space_stq_be, SUFFIX)(ARG1_DECL, diff --git a/include/system/memory_ldst_endian.h.inc b/include/system/memor= y_ldst_endian.h.inc index 3f216197663..845ec3b4ad1 100644 --- a/include/system/memory_ldst_endian.h.inc +++ b/include/system/memory_ldst_endian.h.inc @@ -16,8 +16,12 @@ =20 uint16_t ADDRESS_SPACE_LD(uw)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result); +uint32_t ADDRESS_SPACE_LD(l)(ARG1_DECL, hwaddr addr, + MemTxAttrs attrs, MemTxResult *result); void ADDRESS_SPACE_ST(w)(ARG1_DECL, hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *result); +void ADDRESS_SPACE_ST(l)(ARG1_DECL, hwaddr addr, uint32_t val, + MemTxAttrs attrs, MemTxResult *result); =20 #undef ADDRESS_SPACE_LD #undef ADDRESS_SPACE_ST diff --git a/include/system/memory_ldst_phys.h.inc b/include/system/memory_= ldst_phys.h.inc index 71c2e64ff0f..c3c73419e61 100644 --- a/include/system/memory_ldst_phys.h.inc +++ b/include/system/memory_ldst_phys.h.inc @@ -19,24 +19,12 @@ * License along with this library; if not, see . */ =20 -static inline uint32_t glue(ldl_phys, SUFFIX)(ARG1_DECL, hwaddr addr) -{ - return glue(address_space_ldl, SUFFIX)(ARG1, addr, - MEMTXATTRS_UNSPECIFIED, NULL); -} - static inline uint64_t glue(ldq_phys, SUFFIX)(ARG1_DECL, hwaddr addr) { return glue(address_space_ldq, SUFFIX)(ARG1, addr, MEMTXATTRS_UNSPECIFIED, NULL); } =20 -static inline void glue(stl_phys, SUFFIX)(ARG1_DECL, hwaddr addr, uint32_t= val) -{ - glue(address_space_stl, SUFFIX)(ARG1, addr, val, - MEMTXATTRS_UNSPECIFIED, NULL); -} - static inline void glue(stq_phys, SUFFIX)(ARG1_DECL, hwaddr addr, uint64_t= val) { glue(address_space_stq, SUFFIX)(ARG1, addr, val, @@ -49,18 +37,6 @@ static inline uint8_t glue(ldub_phys, SUFFIX)(ARG1_DECL,= hwaddr addr) MEMTXATTRS_UNSPECIFIED, NULL); } =20 -static inline uint32_t glue(ldl_le_phys, SUFFIX)(ARG1_DECL, hwaddr addr) -{ - return glue(address_space_ldl_le, SUFFIX)(ARG1, addr, - MEMTXATTRS_UNSPECIFIED, NULL= ); -} - -static inline uint32_t glue(ldl_be_phys, SUFFIX)(ARG1_DECL, hwaddr addr) -{ - return glue(address_space_ldl_be, SUFFIX)(ARG1, addr, - MEMTXATTRS_UNSPECIFIED, NULL= ); -} - static inline uint64_t glue(ldq_le_phys, SUFFIX)(ARG1_DECL, hwaddr addr) { return glue(address_space_ldq_le, SUFFIX)(ARG1, addr, @@ -79,18 +55,6 @@ static inline void glue(stb_phys, SUFFIX)(ARG1_DECL, hwa= ddr addr, uint8_t val) MEMTXATTRS_UNSPECIFIED, NULL); } =20 -static inline void glue(stl_le_phys, SUFFIX)(ARG1_DECL, hwaddr addr, uint3= 2_t val) -{ - glue(address_space_stl_le, SUFFIX)(ARG1, addr, val, - MEMTXATTRS_UNSPECIFIED, NULL); -} - -static inline void glue(stl_be_phys, SUFFIX)(ARG1_DECL, hwaddr addr, uint3= 2_t val) -{ - glue(address_space_stl_be, SUFFIX)(ARG1, addr, val, - MEMTXATTRS_UNSPECIFIED, NULL); -} - static inline void glue(stq_le_phys, SUFFIX)(ARG1_DECL, hwaddr addr, uint6= 4_t val) { glue(address_space_stq_le, SUFFIX)(ARG1, addr, val, diff --git a/include/system/memory_ldst_phys_endian.h.inc b/include/system/= memory_ldst_phys_endian.h.inc index 25ab52a88d9..1589f34e8e4 100644 --- a/include/system/memory_ldst_phys_endian.h.inc +++ b/include/system/memory_ldst_phys_endian.h.inc @@ -24,11 +24,21 @@ static inline uint16_t LD_PHYS(uw)(ARG1_DECL, hwaddr ad= dr) return ADDRESS_SPACE_LD(uw)(ARG1, addr, MEMTXATTRS_UNSPECIFIED, NULL); } =20 +static inline uint32_t LD_PHYS(l)(ARG1_DECL, hwaddr addr) +{ + return ADDRESS_SPACE_LD(l)(ARG1, addr, MEMTXATTRS_UNSPECIFIED, NULL); +} + static inline void ST_PHYS(w)(ARG1_DECL, hwaddr addr, uint16_t val) { ADDRESS_SPACE_ST(w)(ARG1, addr, val, MEMTXATTRS_UNSPECIFIED, NULL); } =20 +static inline void ST_PHYS(l)(ARG1_DECL, hwaddr addr, uint32_t val) +{ + ADDRESS_SPACE_ST(l)(ARG1, addr, val, MEMTXATTRS_UNSPECIFIED, NULL); +} + #undef LD_PHYS #undef ST_PHYS #undef ADDRESS_SPACE_LD diff --git a/system/memory_ldst.c.inc b/system/memory_ldst.c.inc index c37a07b4f4a..ab2df6e429b 100644 --- a/system/memory_ldst.c.inc +++ b/system/memory_ldst.c.inc @@ -67,27 +67,6 @@ static inline uint32_t glue(address_space_ldl_internal, = SUFFIX)(ARG1_DECL, return val; } =20 -uint32_t glue(address_space_ldl, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result) -{ - return glue(address_space_ldl_internal, SUFFIX)(ARG1, addr, attrs, res= ult, - DEVICE_NATIVE_ENDIAN); -} - -uint32_t glue(address_space_ldl_le, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result) -{ - return glue(address_space_ldl_internal, SUFFIX)(ARG1, addr, attrs, res= ult, - DEVICE_LITTLE_ENDIAN); -} - -uint32_t glue(address_space_ldl_be, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result) -{ - return glue(address_space_ldl_internal, SUFFIX)(ARG1, addr, attrs, res= ult, - DEVICE_BIG_ENDIAN); -} - /* warning: addr must be aligned */ static inline uint64_t glue(address_space_ldq_internal, SUFFIX)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result, @@ -284,27 +263,6 @@ static inline void glue(address_space_stl_internal, SU= FFIX)(ARG1_DECL, RCU_READ_UNLOCK(); } =20 -void glue(address_space_stl, SUFFIX)(ARG1_DECL, - hwaddr addr, uint32_t val, MemTxAttrs attrs, MemTxResult *result) -{ - glue(address_space_stl_internal, SUFFIX)(ARG1, addr, val, attrs, - result, DEVICE_NATIVE_ENDIAN); -} - -void glue(address_space_stl_le, SUFFIX)(ARG1_DECL, - hwaddr addr, uint32_t val, MemTxAttrs attrs, MemTxResult *result) -{ - glue(address_space_stl_internal, SUFFIX)(ARG1, addr, val, attrs, - result, DEVICE_LITTLE_ENDIAN); -} - -void glue(address_space_stl_be, SUFFIX)(ARG1_DECL, - hwaddr addr, uint32_t val, MemTxAttrs attrs, MemTxResult *result) -{ - glue(address_space_stl_internal, SUFFIX)(ARG1, addr, val, attrs, - result, DEVICE_BIG_ENDIAN); -} - void glue(address_space_stb, SUFFIX)(ARG1_DECL, hwaddr addr, uint8_t val, MemTxAttrs attrs, MemTxResult *result) { diff --git a/system/memory_ldst_endian.c.inc b/system/memory_ldst_endian.c.= inc index e1ae44ca232..5d46524ec4c 100644 --- a/system/memory_ldst_endian.c.inc +++ b/system/memory_ldst_endian.c.inc @@ -26,6 +26,13 @@ uint16_t ADDRESS_SPACE_LD(uw)(ARG1_DECL, hwaddr addr, DEVICE_ENDIANNESS); } =20 +uint32_t ADDRESS_SPACE_LD(l)(ARG1_DECL, hwaddr addr, + MemTxAttrs attrs, MemTxResult *result) +{ + return ADDRESS_SPACE_LD_INTERNAL(l)(ARG1, addr, attrs, result, + DEVICE_ENDIANNESS); +} + void ADDRESS_SPACE_ST(w)(ARG1_DECL, hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *result) { @@ -33,6 +40,13 @@ void ADDRESS_SPACE_ST(w)(ARG1_DECL, hwaddr addr, uint16_= t val, DEVICE_ENDIANNESS); } =20 +void ADDRESS_SPACE_ST(l)(ARG1_DECL, hwaddr addr, uint32_t val, + MemTxAttrs attrs, MemTxResult *result) +{ + ADDRESS_SPACE_ST_INTERNAL(l)(ARG1, addr, val, attrs, result, + DEVICE_ENDIANNESS); +} + #undef ADDRESS_SPACE_LD #undef ADDRESS_SPACE_LD_INTERNAL #undef ADDRESS_SPACE_ST --=20 2.52.0 From nobody Mon Feb 9 04:08:23 2026 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=1766589841; cv=none; d=zohomail.com; s=zohoarc; b=arJygldg7XdLFskvpDxzFNyxZeUGI82zmnMj2Ab405my1sBFjWHECX32MJ163a21EzCDBIll76kXPNMrLMS+jEh4aT2zCO9094vuJ/La47KmfJNcMou/AlEvCOM6xnC4l78ql9Xl9z+VryA9YS5875E/HOYxUTL+ynR9ibNoxPY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766589841; h=Content-Type: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=giWdPoxyT7GeYpAJXZMpfomroD+LhNldKaXalY7TMhs=; b=g+c+geoC775wbZzN56zaRWbPBIOkbTanbj6DdUpUSjr18bZZsnB6BMDQsXMu/QyeaA0VQVvJMzveUm51fdZoCBEF0h9WNKvEXO7nDJW4wpfyDEcM07N0KZ1P7+Vkwt9hBHABlTLWDCwTrqelp2cjbr+XIuD0WMYDN66+nvgrs/I= 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 1766589841818175.86358317353472; Wed, 24 Dec 2025 07:24:01 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vYQiK-00033j-Li; Wed, 24 Dec 2025 10:23:48 -0500 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 1vYQiI-0002fl-F7 for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:23:46 -0500 Received: from mail-ed1-x544.google.com ([2a00:1450:4864:20::544]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vYQiG-0004iJ-6b for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:23:46 -0500 Received: by mail-ed1-x544.google.com with SMTP id 4fb4d7f45d1cf-64b92abe63aso8951871a12.0 for ; Wed, 24 Dec 2025 07:23:43 -0800 (PST) Received: from localhost.localdomain (188.171.88.92.rev.sfr.net. [92.88.171.188]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-64b916adc61sm17346653a12.31.2025.12.24.07.23.40 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 24 Dec 2025 07:23:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1766589822; x=1767194622; 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=giWdPoxyT7GeYpAJXZMpfomroD+LhNldKaXalY7TMhs=; b=Mn0YKBb538sGECJP6U2po9IX+mkpaTJrOJLCm6A/A7IpVn+mmX3z/KqSRw/jPPy3jt Oa9uo3fe4M7jBAOY7231VFrVXDBtaOYpTTJnAsmHhCrNI6gsReKFCELx4+AkStV/DhbJ 6kuWrOEfNnhyBue3xvQoP51zpFoGoCxk4VPED/Oy2zwfJcx5IPWEywxW+Xw56qG/M5NL 2aanYSjsm2P7KF8eMU970IcyRdfQZBHiiCL2Z4MOa2kaDBKhD28RzeAxq32TTjtg5sK0 ZCT1HNmUEvUTYk3nVNWh2uFhV9EY6M9VoTn2w0q4FrdiskWvRJy4PGf16w5j+c+Zi0T0 UQbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766589822; x=1767194622; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=giWdPoxyT7GeYpAJXZMpfomroD+LhNldKaXalY7TMhs=; b=QNzxInpXTSXCAj/edea9sEm6sYICSBAkkUj6vp+OitbwI94Nc8Bpk4p+30p7LobYHI TTnu/h8fda2LkEkgwGR+TL/pQmPizfGJY4ajOdkYK7Hnh9XFOcC4XL/dMYy0Gx9aYTNc 40V0YW4YX2lgOIOiXZs200heVCI4sSwKWNkJ+GvNkBIIBGJsEyPf3oqpYEoaDVQt9dzD EN0X6qjW9J4yoQBciAwKINK1IrajxTX5ADOToUyaauW9waSuWpnq3X8zD81hoxUjx7PF r2xpkaQ6IUCAVQGNKHBm7mFPIOwaBAYZ2mMgFnOaepo/AW38C2ILFrMLf4vNfiBdeVJH ng6A== X-Gm-Message-State: AOJu0YzkUXx1lC6QKjCLBWR2kEMrpYGBIxrRKzxnFHKO0rZgpQ53yBDc pGCe3iEDrD4A4LP7DbstZiWs03xTxlyfWeZn3IALT8YkapgJ0y/NC+tf1KS5S+VOJMkJqyUZN9S /ETt3IhM= X-Gm-Gg: AY/fxX7ZYJjZXF6XzcF3cIv6Z9RRGO/7a4/AYL39W1stbPsARe/mH01FuKIAlTClSI0 oBPxKjBNMxiM9NGkI94qkzvzn04vnBu5WCMWWzT/kcpaICnISxnPMl+2izTgBE82MZil/Abq6eD jAiVYQFXUk0YlBmF8yzy+UdCp4NB8v5fG5AjqXeGTg8qt7mKcMuy1MajvohVkORKwkb+mex94Js F97oT8LQX8HIv73TNVf8M67QgidXeNvIQxTWF4lNQPXCo9iy2eVHXmt5V5HszVKvKAJevoWLpay sOfdLHk/AxlW3qbZdj4B1Vy45e6LsKZw63OH9QyG3wOK8dbBSyEyGGBnj7ulMhJfptVZPnMOHhM wnSnR+hrGLzmXjhoC0VHcBVH7KD+IHZRlQDneOL5Fo7g1kgaKn248/ncZswdrzAHoDqgzCQ6x51 QHgrgj/b8stPfnJBrUbpfaydwFZ1aNcYbPfXgt/S6DSKjJPhn7ykcdpgiy4ISV X-Google-Smtp-Source: AGHT+IF+ALIebe7Ss+OBOttYMD+rHpAFC89ErPxEd+ePsxvR74/wp1UHRkeXxGruMEjt1Y401KwZRA== X-Received: by 2002:a05:6402:5188:b0:649:227b:42af with SMTP id 4fb4d7f45d1cf-64b8e82b799mr16623639a12.4.1766589821916; Wed, 24 Dec 2025 07:23:41 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Pierrick Bouvier , Peter Xu , Richard Henderson , Manos Pitsidianakis , Anton Johansson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , David Hildenbrand Subject: [PATCH v3 09/25] system/memory: Define address_space_ldst[Q] endian variants via template Date: Wed, 24 Dec 2025 16:21:52 +0100 Message-ID: <20251224152210.87880-10-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251224152210.87880-1-philmd@linaro.org> References: <20251224152210.87880-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 (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=2a00:1450:4864:20::544; envelope-from=philmd@linaro.org; helo=mail-ed1-x544.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: 1766589844219158500 Define address_space_ldst[Q] endian variants via template. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- include/system/memory_ldst.h.inc | 17 ++------ include/system/memory_ldst_endian.h.inc | 4 ++ include/system/memory_ldst_phys.h.inc | 36 ----------------- include/system/memory_ldst_phys_endian.h.inc | 10 +++++ system/memory_ldst.c.inc | 42 -------------------- system/memory_ldst_endian.c.inc | 14 +++++++ 6 files changed, 31 insertions(+), 92 deletions(-) diff --git a/include/system/memory_ldst.h.inc b/include/system/memory_ldst.= h.inc index 7ccca46f2a9..dd1fb482eac 100644 --- a/include/system/memory_ldst.h.inc +++ b/include/system/memory_ldst.h.inc @@ -19,22 +19,11 @@ * License along with this library; if not, see . */ =20 -uint64_t glue(address_space_ldq, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result); -void glue(address_space_stq, SUFFIX)(ARG1_DECL, - hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result); uint8_t glue(address_space_ldub, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result); -uint64_t glue(address_space_ldq_le, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result); -uint64_t glue(address_space_ldq_be, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result); + hwaddr addr, MemTxAttrs attrs, MemTxResult *result); + void glue(address_space_stb, SUFFIX)(ARG1_DECL, - hwaddr addr, uint8_t val, MemTxAttrs attrs, MemTxResult *result); -void glue(address_space_stq_le, SUFFIX)(ARG1_DECL, - hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result); -void glue(address_space_stq_be, SUFFIX)(ARG1_DECL, - hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result); + hwaddr addr, uint8_t val, MemTxAttrs attrs, MemTxResult *result); =20 #define ENDIANNESS #include "system/memory_ldst_endian.h.inc" diff --git a/include/system/memory_ldst_endian.h.inc b/include/system/memor= y_ldst_endian.h.inc index 845ec3b4ad1..f5b6b496be5 100644 --- a/include/system/memory_ldst_endian.h.inc +++ b/include/system/memory_ldst_endian.h.inc @@ -18,10 +18,14 @@ uint16_t ADDRESS_SPACE_LD(uw)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result); uint32_t ADDRESS_SPACE_LD(l)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result); +uint64_t ADDRESS_SPACE_LD(q)(ARG1_DECL, hwaddr addr, + MemTxAttrs attrs, MemTxResult *result); void ADDRESS_SPACE_ST(w)(ARG1_DECL, hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *result); void ADDRESS_SPACE_ST(l)(ARG1_DECL, hwaddr addr, uint32_t val, MemTxAttrs attrs, MemTxResult *result); +void ADDRESS_SPACE_ST(q)(ARG1_DECL, hwaddr addr, uint64_t val, + MemTxAttrs attrs, MemTxResult *result); =20 #undef ADDRESS_SPACE_LD #undef ADDRESS_SPACE_ST diff --git a/include/system/memory_ldst_phys.h.inc b/include/system/memory_= ldst_phys.h.inc index c3c73419e61..f4c91dc7a91 100644 --- a/include/system/memory_ldst_phys.h.inc +++ b/include/system/memory_ldst_phys.h.inc @@ -19,54 +19,18 @@ * License along with this library; if not, see . */ =20 -static inline uint64_t glue(ldq_phys, SUFFIX)(ARG1_DECL, hwaddr addr) -{ - return glue(address_space_ldq, SUFFIX)(ARG1, addr, - MEMTXATTRS_UNSPECIFIED, NULL); -} - -static inline void glue(stq_phys, SUFFIX)(ARG1_DECL, hwaddr addr, uint64_t= val) -{ - glue(address_space_stq, SUFFIX)(ARG1, addr, val, - MEMTXATTRS_UNSPECIFIED, NULL); -} - static inline uint8_t glue(ldub_phys, SUFFIX)(ARG1_DECL, hwaddr addr) { return glue(address_space_ldub, SUFFIX)(ARG1, addr, MEMTXATTRS_UNSPECIFIED, NULL); } =20 -static inline uint64_t glue(ldq_le_phys, SUFFIX)(ARG1_DECL, hwaddr addr) -{ - return glue(address_space_ldq_le, SUFFIX)(ARG1, addr, - MEMTXATTRS_UNSPECIFIED, NULL= ); -} - -static inline uint64_t glue(ldq_be_phys, SUFFIX)(ARG1_DECL, hwaddr addr) -{ - return glue(address_space_ldq_be, SUFFIX)(ARG1, addr, - MEMTXATTRS_UNSPECIFIED, NULL= ); -} - static inline void glue(stb_phys, SUFFIX)(ARG1_DECL, hwaddr addr, uint8_t = val) { glue(address_space_stb, SUFFIX)(ARG1, addr, val, MEMTXATTRS_UNSPECIFIED, NULL); } =20 -static inline void glue(stq_le_phys, SUFFIX)(ARG1_DECL, hwaddr addr, uint6= 4_t val) -{ - glue(address_space_stq_le, SUFFIX)(ARG1, addr, val, - MEMTXATTRS_UNSPECIFIED, NULL); -} - -static inline void glue(stq_be_phys, SUFFIX)(ARG1_DECL, hwaddr addr, uint6= 4_t val) -{ - glue(address_space_stq_be, SUFFIX)(ARG1, addr, val, - MEMTXATTRS_UNSPECIFIED, NULL); -} - #define ENDIANNESS #include "system/memory_ldst_phys_endian.h.inc" =20 diff --git a/include/system/memory_ldst_phys_endian.h.inc b/include/system/= memory_ldst_phys_endian.h.inc index 1589f34e8e4..820e9dd1f13 100644 --- a/include/system/memory_ldst_phys_endian.h.inc +++ b/include/system/memory_ldst_phys_endian.h.inc @@ -29,6 +29,11 @@ static inline uint32_t LD_PHYS(l)(ARG1_DECL, hwaddr addr) return ADDRESS_SPACE_LD(l)(ARG1, addr, MEMTXATTRS_UNSPECIFIED, NULL); } =20 +static inline uint64_t LD_PHYS(q)(ARG1_DECL, hwaddr addr) +{ + return ADDRESS_SPACE_LD(q)(ARG1, addr, MEMTXATTRS_UNSPECIFIED, NULL); +} + static inline void ST_PHYS(w)(ARG1_DECL, hwaddr addr, uint16_t val) { ADDRESS_SPACE_ST(w)(ARG1, addr, val, MEMTXATTRS_UNSPECIFIED, NULL); @@ -39,6 +44,11 @@ static inline void ST_PHYS(l)(ARG1_DECL, hwaddr addr, ui= nt32_t val) ADDRESS_SPACE_ST(l)(ARG1, addr, val, MEMTXATTRS_UNSPECIFIED, NULL); } =20 +static inline void ST_PHYS(q)(ARG1_DECL, hwaddr addr, uint64_t val) +{ + ADDRESS_SPACE_ST(q)(ARG1, addr, val, MEMTXATTRS_UNSPECIFIED, NULL); +} + #undef LD_PHYS #undef ST_PHYS #undef ADDRESS_SPACE_LD diff --git a/system/memory_ldst.c.inc b/system/memory_ldst.c.inc index ab2df6e429b..823fc3a7561 100644 --- a/system/memory_ldst.c.inc +++ b/system/memory_ldst.c.inc @@ -115,27 +115,6 @@ static inline uint64_t glue(address_space_ldq_internal= , SUFFIX)(ARG1_DECL, return val; } =20 -uint64_t glue(address_space_ldq, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result) -{ - return glue(address_space_ldq_internal, SUFFIX)(ARG1, addr, attrs, res= ult, - DEVICE_NATIVE_ENDIAN); -} - -uint64_t glue(address_space_ldq_le, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result) -{ - return glue(address_space_ldq_internal, SUFFIX)(ARG1, addr, attrs, res= ult, - DEVICE_LITTLE_ENDIAN); -} - -uint64_t glue(address_space_ldq_be, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result) -{ - return glue(address_space_ldq_internal, SUFFIX)(ARG1, addr, attrs, res= ult, - DEVICE_BIG_ENDIAN); -} - uint8_t glue(address_space_ldub, SUFFIX)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result) { @@ -381,27 +360,6 @@ static inline void glue(address_space_stq_internal, SU= FFIX)(ARG1_DECL, RCU_READ_UNLOCK(); } =20 -void glue(address_space_stq, SUFFIX)(ARG1_DECL, - hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result) -{ - glue(address_space_stq_internal, SUFFIX)(ARG1, addr, val, attrs, resul= t, - DEVICE_NATIVE_ENDIAN); -} - -void glue(address_space_stq_le, SUFFIX)(ARG1_DECL, - hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result) -{ - glue(address_space_stq_internal, SUFFIX)(ARG1, addr, val, attrs, resul= t, - DEVICE_LITTLE_ENDIAN); -} - -void glue(address_space_stq_be, SUFFIX)(ARG1_DECL, - hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result) -{ - glue(address_space_stq_internal, SUFFIX)(ARG1, addr, val, attrs, resul= t, - DEVICE_BIG_ENDIAN); -} - #define ENDIANNESS #define DEVICE_ENDIANNESS DEVICE_NATIVE_ENDIAN #include "memory_ldst_endian.c.inc" diff --git a/system/memory_ldst_endian.c.inc b/system/memory_ldst_endian.c.= inc index 5d46524ec4c..791d041b15d 100644 --- a/system/memory_ldst_endian.c.inc +++ b/system/memory_ldst_endian.c.inc @@ -33,6 +33,13 @@ uint32_t ADDRESS_SPACE_LD(l)(ARG1_DECL, hwaddr addr, DEVICE_ENDIANNESS); } =20 +uint64_t ADDRESS_SPACE_LD(q)(ARG1_DECL, hwaddr addr, + MemTxAttrs attrs, MemTxResult *result) +{ + return ADDRESS_SPACE_LD_INTERNAL(q)(ARG1, addr, attrs, result, + DEVICE_ENDIANNESS); +} + void ADDRESS_SPACE_ST(w)(ARG1_DECL, hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *result) { @@ -47,6 +54,13 @@ void ADDRESS_SPACE_ST(l)(ARG1_DECL, hwaddr addr, uint32_= t val, DEVICE_ENDIANNESS); } =20 +void ADDRESS_SPACE_ST(q)(ARG1_DECL, hwaddr addr, uint64_t val, + MemTxAttrs attrs, MemTxResult *result) +{ + ADDRESS_SPACE_ST_INTERNAL(q)(ARG1, addr, val, attrs, result, + DEVICE_ENDIANNESS); +} + #undef ADDRESS_SPACE_LD #undef ADDRESS_SPACE_LD_INTERNAL #undef ADDRESS_SPACE_ST --=20 2.52.0 From nobody Mon Feb 9 04:08:23 2026 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=1766589852; cv=none; d=zohomail.com; s=zohoarc; b=ceUyUM3W+scl6zt5dl54gQf77ozw9LJWsNqswOv/FI9O5lzji6faVS5Qyw2SB7e7fQi4LoZPqhRILQkPzKb7AimWf+gCdw12UAnOOBdI0k438KyrGmbkfSHdO2BTei8fxRSwbLwsIqDkEbYUVEtWsS3K0kSXp1dQvUdK2ReYBIE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766589852; h=Content-Type: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=P2hpwvKk7ET9jTr/WrRA7ZwlKa0SgDvCP9URR6HvV7k=; b=mXxxSfUuxYH+Jm31Kgel9MmKyxvkUtrlhf0NNdBHcfmPZtLz1t4kUMMZXzQAOSxz/+bsVDq0vQDqbwMrZNMEj+w3RyZF/1gH2PDVMTIBhabXRQ+v/7T7M7KTAqX3ojKw/vlTYC45QjXZ3/CnsEewfje/lNTfvdsykPFfxNtiANM= 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 176658985201168.1507756632027; Wed, 24 Dec 2025 07:24:12 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vYQif-0003SL-51; Wed, 24 Dec 2025 10:24:09 -0500 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 1vYQiR-0003KZ-3i for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:23:57 -0500 Received: from mail-ej1-x62a.google.com ([2a00:1450:4864:20::62a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vYQiO-0004k6-Pq for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:23:54 -0500 Received: by mail-ej1-x62a.google.com with SMTP id a640c23a62f3a-b735e278fa1so1059808066b.0 for ; Wed, 24 Dec 2025 07:23:52 -0800 (PST) Received: from localhost.localdomain (188.171.88.92.rev.sfr.net. [92.88.171.188]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b8037a61595sm1822908766b.8.2025.12.24.07.23.48 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 24 Dec 2025 07:23:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1766589831; x=1767194631; 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=P2hpwvKk7ET9jTr/WrRA7ZwlKa0SgDvCP9URR6HvV7k=; b=rNegk4/s1vPIsyO7zve2kGUKSUsmTPehH1bn1BHZBDzJL40IE7qzv9I0TadB2bKx1O 00prkafsvvKo1WwVpMwki8L4eiITfluzvo24544V0RypTvD/U31t3LORqzwNg7g/dq6X y78wYwXRlUwujPShmaS7prgB/MdQ+OYZTi8PyzhTlAA/qpywr+Qceh5uwn4f1Q2b6kws yLu0DP5T3HXP7zyv6htLVuQWhE+q7/m/WjAe4bhyAnG0rI/5mf3b7mfUaiyIwPKYNclD vM6/Z2A+VH1WsH8id3xk5aVz9g96cJuN7sfkSZX+BO/3XgJiC8+5iqhWIjcJNvodXKZc iogA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766589831; x=1767194631; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=P2hpwvKk7ET9jTr/WrRA7ZwlKa0SgDvCP9URR6HvV7k=; b=mW2PQgkhZ0/IRyon5MhblxU0vm3q+9AaIkR8JN8hAx+TXR9rwYzqtwJ0HmcfdStfoN mNwBjxRxz2b61KfanpTDCxu/oFkCoEbIGoFuf7baZmEBEsj8MqF55GfvfVFXzt3IJqAS qhnr2l0nMpMk8a/2rn1tJJrx2jYPvku9Rim4Y6fZvSeSM7zmUE+0Vg8O3uPv70ywlz5Y HiVkJnIby7HWIiHeyrBU8oZXROiXuLWmXfWxgbqCXG9ug8jZEDjvdVnf3BwF3Pg5t/72 7hP2FFwKhmquTR0C3ytDT4a7rBu49am5I9WoUwOkRybwQZ8lOJ7jnjR8J6NEOBO1j+Fw nFBQ== X-Gm-Message-State: AOJu0YxpKeig9t8gSPQCaNip5J0xNfp+ryaPkrvMvABymjFX82qPFFSk LA6YmTKU5Fhsy/Kn0s27QBaXFikJlsJWZXtCfGaoCNdjQNb2Iuc028ttU6cMTw+HVhiUTzIx6eZ BkHOGg2o= X-Gm-Gg: AY/fxX4dtgCpg042P2XcR6YYD1ZdFnxZH3wuv0hPYsxSAUyPyAbTyYCub2LQDaG8T0Y LdMOn5a0I34HTMX8AKgNb9/UvD+4VZ3ssTG5oVlTXwHO4a+spbex1bJ9yRdgTxDVs6Gqo3VteP+ UfzZ6jQ4QJrlli0Gnj5OcGblhW7gRkuRb4HdbkTkWTUa+t6S41olXcA4bCXhjBWUSMxBqDhki6z bjs+LaYqvTiiZnm2d+eyRYOezOc44gB2IXvF3aHKvip7g+vauXaAo+A49Mnd2DW3M8kH9XX2Llv 1OS+Yfc5W61kp3ZLEAy/r3Lq87uUxNGMhXfE2j0GYN7ZRJGVUg76BN+2xddZyLZsTsq4DIEXUbS b4lwrsqXYv3xPuZ3l7Xy20SPG290poReD1l16kNLVvO//kb80WLZe+3na7Y9oQwTg9gscw8M0jY 4ljXYTgtYovKPUfyNtGsrwB+4jDOOv35l60Th9e11jKJtLWHP+9ITHzrKWBYNLMEt+y8XlId0= X-Google-Smtp-Source: AGHT+IGwuxRE0cFlewCnb2clVrH2se/+xqR/0pvYlL0X2yb1bKtPF/rqGqzj6Bxzd7sZQ8UInpYDDg== X-Received: by 2002:a17:907:7753:b0:b83:1326:7d46 with SMTP id a640c23a62f3a-b831326eb32mr147448666b.30.1766589830776; Wed, 24 Dec 2025 07:23:50 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Pierrick Bouvier , Peter Xu , Richard Henderson , Manos Pitsidianakis , Anton Johansson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , David Hildenbrand Subject: [PATCH v3 10/25] system/memory: Factor address_space_ldst[M]_internal() helper out Date: Wed, 24 Dec 2025 16:21:53 +0100 Message-ID: <20251224152210.87880-11-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251224152210.87880-1-philmd@linaro.org> References: <20251224152210.87880-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 (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=2a00:1450:4864:20::62a; envelope-from=philmd@linaro.org; helo=mail-ej1-x62a.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: 1766589854139158500 All the LD/ST[W,L,Q] variants use the same template, only modifying the access size used. Unify as a single pair of LD/ST methods taking a MemOp argument. Thus use the 'm' suffix for MemOp. Keep the pre-existing "warning: addr must be aligned" comment. We leave the wonder about why we aren't asserting alignment for later. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- system/memory_ldst.c.inc | 298 +++++++++------------------------------ 1 file changed, 63 insertions(+), 235 deletions(-) diff --git a/system/memory_ldst.c.inc b/system/memory_ldst.c.inc index 823fc3a7561..39b3930bf50 100644 --- a/system/memory_ldst.c.inc +++ b/system/memory_ldst.c.inc @@ -20,39 +20,43 @@ */ =20 /* warning: addr must be aligned */ -static inline uint32_t glue(address_space_ldl_internal, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result, - enum device_endian endian) +static inline +uint64_t glue(address_space_ldm_internal, SUFFIX)(ARG1_DECL, MemOp mop, + hwaddr addr, + MemTxAttrs attrs, + MemTxResult *result, + enum device_endian endia= n) { + const unsigned size =3D memop_size(mop); uint8_t *ptr; uint64_t val; MemoryRegion *mr; - hwaddr l =3D 4; + hwaddr l =3D size; hwaddr addr1; MemTxResult r; bool release_lock =3D false; =20 RCU_READ_LOCK(); mr =3D TRANSLATE(addr, &addr1, &l, false, attrs); - if (l < 4 || !memory_access_is_direct(mr, false, attrs)) { + if (l < size || !memory_access_is_direct(mr, false, attrs)) { release_lock |=3D prepare_mmio_access(mr); =20 /* I/O case */ r =3D memory_region_dispatch_read(mr, addr1, &val, - MO_32 | devend_memop(endian), attr= s); + mop | devend_memop(endian), attrs); } else { /* RAM case */ - fuzz_dma_read_cb(addr, 4, mr); + fuzz_dma_read_cb(addr, size, mr); ptr =3D qemu_map_ram_ptr(mr->ram_block, addr1); switch (endian) { case DEVICE_LITTLE_ENDIAN: - val =3D ldl_le_p(ptr); + val =3D ldn_le_p(ptr, size); break; case DEVICE_BIG_ENDIAN: - val =3D ldl_be_p(ptr); + val =3D ldn_be_p(ptr, size); break; default: - val =3D ldl_p(ptr); + val =3D ldn_p(ptr, size); break; } r =3D MEMTX_OK; @@ -67,87 +71,30 @@ static inline uint32_t glue(address_space_ldl_internal,= SUFFIX)(ARG1_DECL, return val; } =20 +/* warning: addr must be aligned */ +static inline uint32_t glue(address_space_ldl_internal, SUFFIX)(ARG1_DECL, + hwaddr addr, MemTxAttrs attrs, MemTxResult *result, + enum device_endian endian) +{ + return glue(address_space_ldm_internal, SUFFIX)(ARG1, MO_32, addr, + attrs, result, endian); +} + /* warning: addr must be aligned */ static inline uint64_t glue(address_space_ldq_internal, SUFFIX)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result, enum device_endian endian) { - uint8_t *ptr; - uint64_t val; - MemoryRegion *mr; - hwaddr l =3D 8; - hwaddr addr1; - MemTxResult r; - bool release_lock =3D false; - - RCU_READ_LOCK(); - mr =3D TRANSLATE(addr, &addr1, &l, false, attrs); - if (l < 8 || !memory_access_is_direct(mr, false, attrs)) { - release_lock |=3D prepare_mmio_access(mr); - - /* I/O case */ - r =3D memory_region_dispatch_read(mr, addr1, &val, - MO_64 | devend_memop(endian), attr= s); - } else { - /* RAM case */ - fuzz_dma_read_cb(addr, 8, mr); - ptr =3D qemu_map_ram_ptr(mr->ram_block, addr1); - switch (endian) { - case DEVICE_LITTLE_ENDIAN: - val =3D ldq_le_p(ptr); - break; - case DEVICE_BIG_ENDIAN: - val =3D ldq_be_p(ptr); - break; - default: - val =3D ldq_p(ptr); - break; - } - r =3D MEMTX_OK; - } - if (result) { - *result =3D r; - } - if (release_lock) { - bql_unlock(); - } - RCU_READ_UNLOCK(); - return val; + return glue(address_space_ldm_internal, SUFFIX)(ARG1, MO_64, addr, + attrs, result, endian); } =20 -uint8_t glue(address_space_ldub, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result) +uint8_t glue(address_space_ldub, SUFFIX)(ARG1_DECL, hwaddr addr, + MemTxAttrs attrs, MemTxResult *re= sult) { - uint8_t *ptr; - uint64_t val; - MemoryRegion *mr; - hwaddr l =3D 1; - hwaddr addr1; - MemTxResult r; - bool release_lock =3D false; - - RCU_READ_LOCK(); - mr =3D TRANSLATE(addr, &addr1, &l, false, attrs); - if (!memory_access_is_direct(mr, false, attrs)) { - release_lock |=3D prepare_mmio_access(mr); - - /* I/O case */ - r =3D memory_region_dispatch_read(mr, addr1, &val, MO_8, attrs); - } else { - /* RAM case */ - fuzz_dma_read_cb(addr, 1, mr); - ptr =3D qemu_map_ram_ptr(mr->ram_block, addr1); - val =3D ldub_p(ptr); - r =3D MEMTX_OK; - } - if (result) { - *result =3D r; - } - if (release_lock) { - bql_unlock(); - } - RCU_READ_UNLOCK(); - return val; + return glue(address_space_ldm_internal, SUFFIX)(ARG1, MO_8, addr, + attrs, result, + DEVICE_NATIVE_ENDIAN); } =20 /* warning: addr must be aligned */ @@ -155,37 +102,47 @@ static inline uint16_t glue(address_space_lduw_intern= al, SUFFIX)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result, enum device_endian endian) { + return glue(address_space_ldm_internal, SUFFIX)(ARG1, MO_16, addr, + attrs, result, endian); +} + +/* warning: addr must be aligned */ +static inline +void glue(address_space_stm_internal, SUFFIX)(ARG1_DECL, MemOp mop, + hwaddr addr, uint64_t val, + MemTxAttrs attrs, + MemTxResult *result, + enum device_endian endian) +{ + const unsigned size =3D memop_size(mop); uint8_t *ptr; - uint64_t val; MemoryRegion *mr; - hwaddr l =3D 2; + hwaddr l =3D size; hwaddr addr1; MemTxResult r; bool release_lock =3D false; =20 RCU_READ_LOCK(); - mr =3D TRANSLATE(addr, &addr1, &l, false, attrs); - if (l < 2 || !memory_access_is_direct(mr, false, attrs)) { + mr =3D TRANSLATE(addr, &addr1, &l, true, attrs); + if (l < size || !memory_access_is_direct(mr, true, attrs)) { release_lock |=3D prepare_mmio_access(mr); - - /* I/O case */ - r =3D memory_region_dispatch_read(mr, addr1, &val, - MO_16 | devend_memop(endian), attr= s); + r =3D memory_region_dispatch_write(mr, addr1, val, + mop | devend_memop(endian), attrs= ); } else { /* RAM case */ - fuzz_dma_read_cb(addr, 2, mr); ptr =3D qemu_map_ram_ptr(mr->ram_block, addr1); switch (endian) { case DEVICE_LITTLE_ENDIAN: - val =3D lduw_le_p(ptr); + stn_le_p(ptr, size, val); break; case DEVICE_BIG_ENDIAN: - val =3D lduw_be_p(ptr); + stn_be_p(ptr, size, val); break; default: - val =3D lduw_p(ptr); + stn_p(ptr, size, val); break; } + invalidate_and_set_dirty(mr, addr1, size); r =3D MEMTX_OK; } if (result) { @@ -195,7 +152,6 @@ static inline uint16_t glue(address_space_lduw_internal= , SUFFIX)(ARG1_DECL, bql_unlock(); } RCU_READ_UNLOCK(); - return val; } =20 /* warning: addr must be aligned */ @@ -203,74 +159,16 @@ static inline void glue(address_space_stl_internal, S= UFFIX)(ARG1_DECL, hwaddr addr, uint32_t val, MemTxAttrs attrs, MemTxResult *result, enum device_endian endian) { - uint8_t *ptr; - MemoryRegion *mr; - hwaddr l =3D 4; - hwaddr addr1; - MemTxResult r; - bool release_lock =3D false; - - RCU_READ_LOCK(); - mr =3D TRANSLATE(addr, &addr1, &l, true, attrs); - if (l < 4 || !memory_access_is_direct(mr, true, attrs)) { - release_lock |=3D prepare_mmio_access(mr); - r =3D memory_region_dispatch_write(mr, addr1, val, - MO_32 | devend_memop(endian), att= rs); - } else { - /* RAM case */ - ptr =3D qemu_map_ram_ptr(mr->ram_block, addr1); - switch (endian) { - case DEVICE_LITTLE_ENDIAN: - stl_le_p(ptr, val); - break; - case DEVICE_BIG_ENDIAN: - stl_be_p(ptr, val); - break; - default: - stl_p(ptr, val); - break; - } - invalidate_and_set_dirty(mr, addr1, 4); - r =3D MEMTX_OK; - } - if (result) { - *result =3D r; - } - if (release_lock) { - bql_unlock(); - } - RCU_READ_UNLOCK(); + glue(address_space_stm_internal, SUFFIX)(ARG1, MO_32, addr, val, + attrs, result, endian); } =20 -void glue(address_space_stb, SUFFIX)(ARG1_DECL, - hwaddr addr, uint8_t val, MemTxAttrs attrs, MemTxResult *result) +void glue(address_space_stb, SUFFIX)(ARG1_DECL, hwaddr addr, uint8_t val, + MemTxAttrs attrs, MemTxResult *result) { - uint8_t *ptr; - MemoryRegion *mr; - hwaddr l =3D 1; - hwaddr addr1; - MemTxResult r; - bool release_lock =3D false; - - RCU_READ_LOCK(); - mr =3D TRANSLATE(addr, &addr1, &l, true, attrs); - if (!memory_access_is_direct(mr, true, attrs)) { - release_lock |=3D prepare_mmio_access(mr); - r =3D memory_region_dispatch_write(mr, addr1, val, MO_8, attrs); - } else { - /* RAM case */ - ptr =3D qemu_map_ram_ptr(mr->ram_block, addr1); - stb_p(ptr, val); - invalidate_and_set_dirty(mr, addr1, 1); - r =3D MEMTX_OK; - } - if (result) { - *result =3D r; - } - if (release_lock) { - bql_unlock(); - } - RCU_READ_UNLOCK(); + glue(address_space_stm_internal, SUFFIX)(ARG1, MO_8, addr, val, + attrs, result, + DEVICE_NATIVE_ENDIAN); } =20 /* warning: addr must be aligned */ @@ -278,86 +176,16 @@ static inline void glue(address_space_stw_internal, S= UFFIX)(ARG1_DECL, hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *result, enum device_endian endian) { - uint8_t *ptr; - MemoryRegion *mr; - hwaddr l =3D 2; - hwaddr addr1; - MemTxResult r; - bool release_lock =3D false; - - RCU_READ_LOCK(); - mr =3D TRANSLATE(addr, &addr1, &l, true, attrs); - if (l < 2 || !memory_access_is_direct(mr, true, attrs)) { - release_lock |=3D prepare_mmio_access(mr); - r =3D memory_region_dispatch_write(mr, addr1, val, - MO_16 | devend_memop(endian), att= rs); - } else { - /* RAM case */ - ptr =3D qemu_map_ram_ptr(mr->ram_block, addr1); - switch (endian) { - case DEVICE_LITTLE_ENDIAN: - stw_le_p(ptr, val); - break; - case DEVICE_BIG_ENDIAN: - stw_be_p(ptr, val); - break; - default: - stw_p(ptr, val); - break; - } - invalidate_and_set_dirty(mr, addr1, 2); - r =3D MEMTX_OK; - } - if (result) { - *result =3D r; - } - if (release_lock) { - bql_unlock(); - } - RCU_READ_UNLOCK(); + glue(address_space_stm_internal, SUFFIX)(ARG1, MO_16, addr, val, + attrs, result, endian); } =20 static inline void glue(address_space_stq_internal, SUFFIX)(ARG1_DECL, hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result, enum device_endian endian) { - uint8_t *ptr; - MemoryRegion *mr; - hwaddr l =3D 8; - hwaddr addr1; - MemTxResult r; - bool release_lock =3D false; - - RCU_READ_LOCK(); - mr =3D TRANSLATE(addr, &addr1, &l, true, attrs); - if (l < 8 || !memory_access_is_direct(mr, true, attrs)) { - release_lock |=3D prepare_mmio_access(mr); - r =3D memory_region_dispatch_write(mr, addr1, val, - MO_64 | devend_memop(endian), att= rs); - } else { - /* RAM case */ - ptr =3D qemu_map_ram_ptr(mr->ram_block, addr1); - switch (endian) { - case DEVICE_LITTLE_ENDIAN: - stq_le_p(ptr, val); - break; - case DEVICE_BIG_ENDIAN: - stq_be_p(ptr, val); - break; - default: - stq_p(ptr, val); - break; - } - invalidate_and_set_dirty(mr, addr1, 8); - r =3D MEMTX_OK; - } - if (result) { - *result =3D r; - } - if (release_lock) { - bql_unlock(); - } - RCU_READ_UNLOCK(); + glue(address_space_stm_internal, SUFFIX)(ARG1, MO_64, addr, val, + attrs, result, endian); } =20 #define ENDIANNESS --=20 2.52.0 From nobody Mon Feb 9 04:08:23 2026 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=1766589858; cv=none; d=zohomail.com; s=zohoarc; b=QlLBk5a6kigneFWBU0sLS/m1EvoN/3FdsGLp/B56RIWVzMBm2BGn0Y9Wi28C0XMBlLAJZ7RJmXqUzHlzrGRcHr5vvJA0fQJPp5J3A7XdSv5leEJcfVcTAd/fm+yzy1tGHld2Ej2KBEvLrfG0SEfniGgxkc3toLLzLijZSIQLEyU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766589858; h=Content-Type: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=Uu0YsdTBGNvRl7GKd0ROR30NB9/cvkxUZHZEthSPaaE=; b=MSMOoss4r7jIObaqZRsjf5cOx7gTVjdxhk35xvbzBtkW8O2AE4Dl1n+t5fV1GJqtb5rG/wdZVlansRSLCRhsFf/ukBnG4mqgLQCppdllYTVzd9auAhVPCTMjzhOqQpngYc2zkfRpPsNgvU6xOz/o/m/ExHVW79p4cn5A/723kuU= 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 1766589858778187.18423764558713; Wed, 24 Dec 2025 07:24:18 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vYQik-0003zD-AU; Wed, 24 Dec 2025 10:24:14 -0500 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 1vYQib-0003gQ-UT for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:24:09 -0500 Received: from mail-ej1-x643.google.com ([2a00:1450:4864:20::643]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vYQiY-0004kf-5T for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:24:04 -0500 Received: by mail-ej1-x643.google.com with SMTP id a640c23a62f3a-b73161849e1so1201779366b.2 for ; Wed, 24 Dec 2025 07:24:01 -0800 (PST) Received: from localhost.localdomain (188.171.88.92.rev.sfr.net. [92.88.171.188]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b8045a086fasm1596953566b.70.2025.12.24.07.23.58 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 24 Dec 2025 07:23:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1766589840; x=1767194640; 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=Uu0YsdTBGNvRl7GKd0ROR30NB9/cvkxUZHZEthSPaaE=; b=aRVQA5lO4tRjlcnIcpp2wB3I1OiiyCHDMOCHnk31Lhxj0/Dqd0k/okkoJulVkOpvT4 a9f4+M/zd1UnzJeAn33OVX3f62y88VA0OHOFKXcozEEdSifJH555/3mb+v4ko3gWKqRc an7nkMs5BzhfgyQZS0ZHCNL5ej3p6sn+AeCgM7bjkytMMWwNeGJ8/Y9NBC2XWexHDRd8 QEHtczxfvgsL+iMitFr4ZmclA7VHCzXLn5PGO2PpZMaxmN/Ha5T91LLYUa8fFYTgOb+V jP9BWXcc6cnq8kzTgUPXRhgB6F1XOr+prcnNMgAQ/TRir6wBcwfp6xjYjYWWwwDtEXqE /3XQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766589840; x=1767194640; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Uu0YsdTBGNvRl7GKd0ROR30NB9/cvkxUZHZEthSPaaE=; b=EFPZ2pAnpixOpr2EmNdHHj5ow4b3M26xXY3R4LiggllLZ1jXkGaxAl54lIt6sGq+m2 nBdh0DGBWXZyrtHeaMQtdEtQ9O7zqHOetnKwH2uP2RXt0EMMDicmAWNUhktnCwaozj7T KiAUyk5khD1TqK7ijLrilCftINT/8pVtR4lrXNHIseGKRgw+j8LRhqIapOf/qkzwX9q2 JBzb1oVZjv7+jZiKqYJ3GT5pYaSGC8z+cFSUPZNip+vjZ8FR5HI42IIplf2jtZ6yBzY/ NLUU+Qwn1idbOkq0Uc/vnhi5JwAo13KEqWMCjkbOnuPV08ojcd+nGjhLVW8Aqc6TF+fg ZIVQ== X-Gm-Message-State: AOJu0YwhbbV9dkxFVEhBA5fEozCENzJKWdh2WrkEdlGXDeT9sl14hkZ6 ouR1VjS4MKsvX8MuO2luhV6GuWAgIxywVA+cp4WWjNTyGKVp9GCOTyjL8D1ybhQyt2OzAg5i04h KULfor23sxg== X-Gm-Gg: AY/fxX5NhXtkXCRvdR9LpEVpJh7acg09OnmrfbC5lyCXFREYzc6RoDDShCzZHNJ4YJp N0dZ12oz4s7lyMS4aKxhyu350Jt+kHN62C8R6hUCNWF47uwIapRa+nIluYvMAQ9FeJUjhwESdcY Pwy0QARRhxPN+Fvc0eGzvpuAPlbo5YgdqNA3cbUa7KUj57Nsb1Dg1Kp4N2ZO3hC9268G063yAhe Dax6hqnrVvNRydfcq2FMT11tMgioGNJc75f1B+f44KyHQWfeBIhgXj6sQQtgDcw+bTQ6Vp9FZg3 53AbD2XzT52CTaRc17qSsniH20RqsujJu6cY18qooJuPaP6D1oeepPXRgEE9dynw7TROUrhx7Hk KH+nSXydqJm2Rb8oepxaiGnIl33f5ZwEg3qdispiAfRcrD/St3PlgmyjOCX4234tDpZkqAwJ7DI /Xcc6lySgX4fsBI6xlsshmIrQWZPSNe2UoQweC3MMYwFzcqhXPj+JJrNtwJ7N2SpoezPR2Zws= X-Google-Smtp-Source: AGHT+IHmm4nwBOHkd3F6FsfRapjTCNpntbl/irJqjIunCfZPrDsEC8zNfzlwVnHy8YMB6CyZSZvj5A== X-Received: by 2002:a17:907:1c27:b0:b7c:eb19:6a3f with SMTP id a640c23a62f3a-b803705e31cmr1828522366b.35.1766589840277; Wed, 24 Dec 2025 07:24:00 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Pierrick Bouvier , Peter Xu , Richard Henderson , Manos Pitsidianakis , Anton Johansson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , David Hildenbrand Subject: [PATCH v3 11/25] system/memory: Pass device_endian argument as MemOp bit Date: Wed, 24 Dec 2025 16:21:54 +0100 Message-ID: <20251224152210.87880-12-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251224152210.87880-1-philmd@linaro.org> References: <20251224152210.87880-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 (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=2a00:1450:4864:20::643; envelope-from=philmd@linaro.org; helo=mail-ej1-x643.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: 1766589860058158500 Use the MemOp argument to hold both the access size and its endianness. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- system/memory_ldst.c.inc | 86 ++++++++++++--------------------- system/memory_ldst_endian.c.inc | 26 +++++----- 2 files changed, 44 insertions(+), 68 deletions(-) diff --git a/system/memory_ldst.c.inc b/system/memory_ldst.c.inc index 39b3930bf50..5c8299e0cdc 100644 --- a/system/memory_ldst.c.inc +++ b/system/memory_ldst.c.inc @@ -24,8 +24,7 @@ static inline uint64_t glue(address_space_ldm_internal, SUFFIX)(ARG1_DECL, MemOp mop, hwaddr addr, MemTxAttrs attrs, - MemTxResult *result, - enum device_endian endia= n) + MemTxResult *result) { const unsigned size =3D memop_size(mop); uint8_t *ptr; @@ -42,22 +41,15 @@ uint64_t glue(address_space_ldm_internal, SUFFIX)(ARG1_= DECL, MemOp mop, release_lock |=3D prepare_mmio_access(mr); =20 /* I/O case */ - r =3D memory_region_dispatch_read(mr, addr1, &val, - mop | devend_memop(endian), attrs); + r =3D memory_region_dispatch_read(mr, addr1, &val, mop, attrs); } else { /* RAM case */ fuzz_dma_read_cb(addr, size, mr); ptr =3D qemu_map_ram_ptr(mr->ram_block, addr1); - switch (endian) { - case DEVICE_LITTLE_ENDIAN: + if ((mop & MO_BSWAP) =3D=3D MO_LE) { val =3D ldn_le_p(ptr, size); - break; - case DEVICE_BIG_ENDIAN: + } else { val =3D ldn_be_p(ptr, size); - break; - default: - val =3D ldn_p(ptr, size); - break; } r =3D MEMTX_OK; } @@ -73,37 +65,33 @@ uint64_t glue(address_space_ldm_internal, SUFFIX)(ARG1_= DECL, MemOp mop, =20 /* warning: addr must be aligned */ static inline uint32_t glue(address_space_ldl_internal, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result, - enum device_endian endian) + MemOp mop, hwaddr addr, MemTxAttrs attrs, MemTxResult *result) { - return glue(address_space_ldm_internal, SUFFIX)(ARG1, MO_32, addr, - attrs, result, endian); + return glue(address_space_ldm_internal, SUFFIX)(ARG1, mop | MO_32, add= r, + attrs, result); } =20 /* warning: addr must be aligned */ static inline uint64_t glue(address_space_ldq_internal, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result, - enum device_endian endian) + MemOp mop, hwaddr addr, MemTxAttrs attrs, MemTxResult *result) { - return glue(address_space_ldm_internal, SUFFIX)(ARG1, MO_64, addr, - attrs, result, endian); + return glue(address_space_ldm_internal, SUFFIX)(ARG1, mop | MO_64, add= r, + attrs, result); } =20 uint8_t glue(address_space_ldub, SUFFIX)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *re= sult) { return glue(address_space_ldm_internal, SUFFIX)(ARG1, MO_8, addr, - attrs, result, - DEVICE_NATIVE_ENDIAN); + attrs, result); } =20 /* warning: addr must be aligned */ static inline uint16_t glue(address_space_lduw_internal, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result, - enum device_endian endian) + MemOp mop, hwaddr addr, MemTxAttrs attrs, MemTxResult *result) { - return glue(address_space_ldm_internal, SUFFIX)(ARG1, MO_16, addr, - attrs, result, endian); + return glue(address_space_ldm_internal, SUFFIX)(ARG1, mop | MO_16, add= r, + attrs, result); } =20 /* warning: addr must be aligned */ @@ -111,8 +99,7 @@ static inline void glue(address_space_stm_internal, SUFFIX)(ARG1_DECL, MemOp mop, hwaddr addr, uint64_t val, MemTxAttrs attrs, - MemTxResult *result, - enum device_endian endian) + MemTxResult *result) { const unsigned size =3D memop_size(mop); uint8_t *ptr; @@ -126,21 +113,14 @@ void glue(address_space_stm_internal, SUFFIX)(ARG1_DE= CL, MemOp mop, mr =3D TRANSLATE(addr, &addr1, &l, true, attrs); if (l < size || !memory_access_is_direct(mr, true, attrs)) { release_lock |=3D prepare_mmio_access(mr); - r =3D memory_region_dispatch_write(mr, addr1, val, - mop | devend_memop(endian), attrs= ); + r =3D memory_region_dispatch_write(mr, addr1, val, mop, attrs); } else { /* RAM case */ ptr =3D qemu_map_ram_ptr(mr->ram_block, addr1); - switch (endian) { - case DEVICE_LITTLE_ENDIAN: + if ((mop & MO_BSWAP) =3D=3D MO_LE) { stn_le_p(ptr, size, val); - break; - case DEVICE_BIG_ENDIAN: + } else { stn_be_p(ptr, size, val); - break; - default: - stn_p(ptr, size, val); - break; } invalidate_and_set_dirty(mr, addr1, size); r =3D MEMTX_OK; @@ -156,48 +136,44 @@ void glue(address_space_stm_internal, SUFFIX)(ARG1_DE= CL, MemOp mop, =20 /* warning: addr must be aligned */ static inline void glue(address_space_stl_internal, SUFFIX)(ARG1_DECL, - hwaddr addr, uint32_t val, MemTxAttrs attrs, - MemTxResult *result, enum device_endian endian) + MemOp mop, hwaddr addr, uint32_t val, MemTxAttrs attrs, MemTxResult *r= esult) { - glue(address_space_stm_internal, SUFFIX)(ARG1, MO_32, addr, val, - attrs, result, endian); + glue(address_space_stm_internal, SUFFIX)(ARG1, mop | MO_32, addr, val, + attrs, result); } =20 void glue(address_space_stb, SUFFIX)(ARG1_DECL, hwaddr addr, uint8_t val, MemTxAttrs attrs, MemTxResult *result) { glue(address_space_stm_internal, SUFFIX)(ARG1, MO_8, addr, val, - attrs, result, - DEVICE_NATIVE_ENDIAN); + attrs, result); } =20 /* warning: addr must be aligned */ static inline void glue(address_space_stw_internal, SUFFIX)(ARG1_DECL, - hwaddr addr, uint16_t val, MemTxAttrs attrs, - MemTxResult *result, enum device_endian endian) + MemOp mop, hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *r= esult) { - glue(address_space_stm_internal, SUFFIX)(ARG1, MO_16, addr, val, - attrs, result, endian); + glue(address_space_stm_internal, SUFFIX)(ARG1, mop | MO_16, addr, val, + attrs, result); } =20 static inline void glue(address_space_stq_internal, SUFFIX)(ARG1_DECL, - hwaddr addr, uint64_t val, MemTxAttrs attrs, - MemTxResult *result, enum device_endian endian) + MemOp mop, hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *r= esult) { - glue(address_space_stm_internal, SUFFIX)(ARG1, MO_64, addr, val, - attrs, result, endian); + glue(address_space_stm_internal, SUFFIX)(ARG1, mop | MO_64, addr, val, + attrs, result); } =20 #define ENDIANNESS -#define DEVICE_ENDIANNESS DEVICE_NATIVE_ENDIAN +#define MO_ENDIAN (target_big_endian() ? MO_BE : MO_LE) #include "memory_ldst_endian.c.inc" =20 #define ENDIANNESS _le -#define DEVICE_ENDIANNESS DEVICE_LITTLE_ENDIAN +#define MO_ENDIAN MO_LE #include "memory_ldst_endian.c.inc" =20 #define ENDIANNESS _be -#define DEVICE_ENDIANNESS DEVICE_BIG_ENDIAN +#define MO_ENDIAN MO_BE #include "memory_ldst_endian.c.inc" =20 #undef ARG1_DECL diff --git a/system/memory_ldst_endian.c.inc b/system/memory_ldst_endian.c.= inc index 791d041b15d..9cf36017135 100644 --- a/system/memory_ldst_endian.c.inc +++ b/system/memory_ldst_endian.c.inc @@ -22,43 +22,43 @@ uint16_t ADDRESS_SPACE_LD(uw)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result) { - return ADDRESS_SPACE_LD_INTERNAL(uw)(ARG1, addr, attrs, result, - DEVICE_ENDIANNESS); + return ADDRESS_SPACE_LD_INTERNAL(uw)(ARG1, MO_ENDIAN, + addr, attrs, result); } =20 uint32_t ADDRESS_SPACE_LD(l)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result) { - return ADDRESS_SPACE_LD_INTERNAL(l)(ARG1, addr, attrs, result, - DEVICE_ENDIANNESS); + return ADDRESS_SPACE_LD_INTERNAL(l)(ARG1, MO_ENDIAN, + addr, attrs, result); } =20 uint64_t ADDRESS_SPACE_LD(q)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result) { - return ADDRESS_SPACE_LD_INTERNAL(q)(ARG1, addr, attrs, result, - DEVICE_ENDIANNESS); + return ADDRESS_SPACE_LD_INTERNAL(q)(ARG1, MO_ENDIAN, + addr, attrs, result); } =20 void ADDRESS_SPACE_ST(w)(ARG1_DECL, hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *result) { - ADDRESS_SPACE_ST_INTERNAL(w)(ARG1, addr, val, attrs, result, - DEVICE_ENDIANNESS); + ADDRESS_SPACE_ST_INTERNAL(w)(ARG1, MO_ENDIAN, + addr, val, attrs, result); } =20 void ADDRESS_SPACE_ST(l)(ARG1_DECL, hwaddr addr, uint32_t val, MemTxAttrs attrs, MemTxResult *result) { - ADDRESS_SPACE_ST_INTERNAL(l)(ARG1, addr, val, attrs, result, - DEVICE_ENDIANNESS); + ADDRESS_SPACE_ST_INTERNAL(l)(ARG1, MO_ENDIAN, + addr, val, attrs, result); } =20 void ADDRESS_SPACE_ST(q)(ARG1_DECL, hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result) { - ADDRESS_SPACE_ST_INTERNAL(q)(ARG1, addr, val, attrs, result, - DEVICE_ENDIANNESS); + ADDRESS_SPACE_ST_INTERNAL(q)(ARG1, MO_ENDIAN, + addr, val, attrs, result); } =20 #undef ADDRESS_SPACE_LD @@ -67,4 +67,4 @@ void ADDRESS_SPACE_ST(q)(ARG1_DECL, hwaddr addr, uint64_t= val, #undef ADDRESS_SPACE_ST_INTERNAL =20 #undef ENDIANNESS -#undef DEVICE_ENDIANNESS +#undef MO_ENDIAN --=20 2.52.0 From nobody Mon Feb 9 04:08:23 2026 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=1766589872; cv=none; d=zohomail.com; s=zohoarc; b=ndKrf1mPg46AXxTTnQB7L/fj8qe74l5LtOZFnXLsldACMyaBzQ5U4lA0OhD4ZHrsJrM85kO13B9dkZj1TKpTeArt2cJxH8dIdAelp1yfdhiNLMDQv7n5bAkgGQpLVyWfAmU3HVIwMey4znfxEbcI9dtZXx6YRxn1HamoSEm8Ri4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766589872; h=Content-Type: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=8BdvIOpQD4GCG++XbetfLEXnxOBIlrzQoJl+2ljxiQk=; b=PTgkY4Vajax01Z5U6/nEutiwkHmtz7V5/ugNadhJ0TwIF6uqMnl3g3Wfv/PaSUTUm8q4bZ/7z2K0va+3vn8VjPyACI4xXYCSQA9dupHfVlijpAD/t0fmMBbrC3JswjEqyAK/1bWx6MTWg242d2duXToNlw05YUh46O93BSbVYDE= 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 1766589872252534.1309959389445; Wed, 24 Dec 2025 07:24:32 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vYQil-0004Cw-Kp; Wed, 24 Dec 2025 10:24:15 -0500 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 1vYQij-0003zE-5X for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:24:14 -0500 Received: from mail-ej1-x630.google.com ([2a00:1450:4864:20::630]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vYQih-0004lq-9v for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:24:12 -0500 Received: by mail-ej1-x630.google.com with SMTP id a640c23a62f3a-b8018eba13cso843471166b.1 for ; Wed, 24 Dec 2025 07:24:10 -0800 (PST) Received: from localhost.localdomain (188.171.88.92.rev.sfr.net. [92.88.171.188]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b8037a5bdfesm1786300366b.10.2025.12.24.07.24.07 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 24 Dec 2025 07:24:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1766589849; x=1767194649; 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=8BdvIOpQD4GCG++XbetfLEXnxOBIlrzQoJl+2ljxiQk=; b=q9IXd44R65sdLIoofQIBPDx8xfMuxxBNaBEUZs5VQcvIXIKkL9p0h158sajlnnDC28 UWIDnysh245FszoYYDaBWFk0vSIp9qnTl62rkxEDJB1kxsGswoy24iXzidGA5qJ+LWcy gUl9cOmuUrLhY8ZsdXYaJCF8IvBCj2OGzvw7oDzztWODHwhQQhXbOfDYX4sNg/aOBMol C3aul0fI09XWRq+SpvVIPSq8awyYVYOrQNMUj9j2TLdiWmErUhAbkU4LiolZtOrDefdP kvizbV8JdDgmPwrnQIF80eg3E4jTMcoW5rn56YAgALctzlEt3pWXrz9/X9tUVJiRJ1B6 zWkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766589849; x=1767194649; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=8BdvIOpQD4GCG++XbetfLEXnxOBIlrzQoJl+2ljxiQk=; b=M4w57uf2DkooEACkK8C1OLjNw6XisfIc8V/f9c6tlem/+6HxGZnqxz5Tx6SDezdd7o TiJnA4LdM+c9WyZ7Xny6Ci1HDcg0BY9oAYZ+uCCS57I5LgiY3mHMZqPGOEUpp7x2uzET 0RclrbwGlZ7Dimbm5/t3Aqg7PcZNl4cGee3wVH4qPMb+M8fuK+hdLUg78MlTn9gKiyzi FAEhBpuBmPOkeaHTgbrAX7P742AAhAf277TYK0SvGWZutJy3UdSOQBEOHzeya3lvPtjp uPt6V0pkTNStyIV6nHD0THc0lwFtVCDrthP1ugE6iSvE8IoIY07wplAbLGN6/XsHgg/b qVcA== X-Gm-Message-State: AOJu0YxjobrZr/XlazG/HaAsyvPWsUVh945yRWxCoLtTujs0eyU+hOer 3z7bo7MKlLat+eeL3ACAn3194JmGlq1qimZBZVii3thcqYpOn69OW8U7eH3JeO847xYXv7c5vlA r5qi4vBU= X-Gm-Gg: AY/fxX4RJ5fcd2twsIGyd5RD2uhdmFZuz/KSd4cFTy93Ca61DQ4FtsOVsCw6cnh98Dq SJ5zVQdxd4fHPYm3zPIal5d4Bq87uGeHjonjlpfx6odZV2vSGZHWuFOZmp7VO+topwTeww8olpQ LK966mgZlD1zNFfYNuXISAm1yBLewp2SgCBKGyazH7GJElGz53OSHeHhSR9F1lrMCoB2w9xSRIa F2IO2tsqbSEq5vy5uXW4w6ycn8yhWXViAdCLlA1TSljNquooviL7pViU8OpDQqhygbMxRKe4Rzd anoc67sZY2H9oj502J/3YCSlFD3ky3ZqfcWcljUr078Yebrtf5cfBe8Zy/IKANMhT17ACTknHSK C49W1XWKNaRLc4yMqdvVeuBBv/7MnviMdFaIXzzL+gQkI1SDtkyWujqQjvxg8TJnsX4Mzcjw8qs 7qxpMl8lUV0KQrMDFyOCZhyUY+H/uCg484Sjib2MpX09DZRnFhWhJOCJQfMfchy4AIBw== X-Google-Smtp-Source: AGHT+IGuID2xabHGmTUgpxEEyCT3Ai6chDX0O8bHnFhWcnq6EeJgacZ9W1MI1OSwoW44BY1B5UDvUQ== X-Received: by 2002:a17:907:1c27:b0:b75:7b39:847a with SMTP id a640c23a62f3a-b80372228e5mr1993195966b.60.1766589849358; Wed, 24 Dec 2025 07:24:09 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Pierrick Bouvier , Peter Xu , Richard Henderson , Manos Pitsidianakis , Anton Johansson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , David Hildenbrand Subject: [PATCH v3 12/25] system/memory: Directly call address_space_ldst[M]_internal() helper Date: Wed, 24 Dec 2025 16:21:55 +0100 Message-ID: <20251224152210.87880-13-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251224152210.87880-1-philmd@linaro.org> References: <20251224152210.87880-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 (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=2a00:1450:4864:20::630; envelope-from=philmd@linaro.org; helo=mail-ej1-x630.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=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: 1766589874097158500 Inline internal address_space_ld/st[L,D,Q] helpers, directly calling address_space_ldst[M]_internal(). Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- system/memory_ldst.c.inc | 47 --------------------------------- system/memory_ldst_endian.c.inc | 12 ++++----- 2 files changed, 6 insertions(+), 53 deletions(-) diff --git a/system/memory_ldst.c.inc b/system/memory_ldst.c.inc index 5c8299e0cdc..20a2784e234 100644 --- a/system/memory_ldst.c.inc +++ b/system/memory_ldst.c.inc @@ -63,22 +63,6 @@ uint64_t glue(address_space_ldm_internal, SUFFIX)(ARG1_D= ECL, MemOp mop, return val; } =20 -/* warning: addr must be aligned */ -static inline uint32_t glue(address_space_ldl_internal, SUFFIX)(ARG1_DECL, - MemOp mop, hwaddr addr, MemTxAttrs attrs, MemTxResult *result) -{ - return glue(address_space_ldm_internal, SUFFIX)(ARG1, mop | MO_32, add= r, - attrs, result); -} - -/* warning: addr must be aligned */ -static inline uint64_t glue(address_space_ldq_internal, SUFFIX)(ARG1_DECL, - MemOp mop, hwaddr addr, MemTxAttrs attrs, MemTxResult *result) -{ - return glue(address_space_ldm_internal, SUFFIX)(ARG1, mop | MO_64, add= r, - attrs, result); -} - uint8_t glue(address_space_ldub, SUFFIX)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *re= sult) { @@ -86,14 +70,6 @@ uint8_t glue(address_space_ldub, SUFFIX)(ARG1_DECL, hwad= dr addr, attrs, result); } =20 -/* warning: addr must be aligned */ -static inline uint16_t glue(address_space_lduw_internal, SUFFIX)(ARG1_DECL, - MemOp mop, hwaddr addr, MemTxAttrs attrs, MemTxResult *result) -{ - return glue(address_space_ldm_internal, SUFFIX)(ARG1, mop | MO_16, add= r, - attrs, result); -} - /* warning: addr must be aligned */ static inline void glue(address_space_stm_internal, SUFFIX)(ARG1_DECL, MemOp mop, @@ -134,14 +110,6 @@ void glue(address_space_stm_internal, SUFFIX)(ARG1_DEC= L, MemOp mop, RCU_READ_UNLOCK(); } =20 -/* warning: addr must be aligned */ -static inline void glue(address_space_stl_internal, SUFFIX)(ARG1_DECL, - MemOp mop, hwaddr addr, uint32_t val, MemTxAttrs attrs, MemTxResult *r= esult) -{ - glue(address_space_stm_internal, SUFFIX)(ARG1, mop | MO_32, addr, val, - attrs, result); -} - void glue(address_space_stb, SUFFIX)(ARG1_DECL, hwaddr addr, uint8_t val, MemTxAttrs attrs, MemTxResult *result) { @@ -149,21 +117,6 @@ void glue(address_space_stb, SUFFIX)(ARG1_DECL, hwaddr= addr, uint8_t val, attrs, result); } =20 -/* warning: addr must be aligned */ -static inline void glue(address_space_stw_internal, SUFFIX)(ARG1_DECL, - MemOp mop, hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *r= esult) -{ - glue(address_space_stm_internal, SUFFIX)(ARG1, mop | MO_16, addr, val, - attrs, result); -} - -static inline void glue(address_space_stq_internal, SUFFIX)(ARG1_DECL, - MemOp mop, hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *r= esult) -{ - glue(address_space_stm_internal, SUFFIX)(ARG1, mop | MO_64, addr, val, - attrs, result); -} - #define ENDIANNESS #define MO_ENDIAN (target_big_endian() ? MO_BE : MO_LE) #include "memory_ldst_endian.c.inc" diff --git a/system/memory_ldst_endian.c.inc b/system/memory_ldst_endian.c.= inc index 9cf36017135..fb933de11f8 100644 --- a/system/memory_ldst_endian.c.inc +++ b/system/memory_ldst_endian.c.inc @@ -22,42 +22,42 @@ uint16_t ADDRESS_SPACE_LD(uw)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result) { - return ADDRESS_SPACE_LD_INTERNAL(uw)(ARG1, MO_ENDIAN, + return ADDRESS_SPACE_LD_INTERNAL(m)(ARG1, MO_ENDIAN | MO_16, addr, attrs, result); } =20 uint32_t ADDRESS_SPACE_LD(l)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result) { - return ADDRESS_SPACE_LD_INTERNAL(l)(ARG1, MO_ENDIAN, + return ADDRESS_SPACE_LD_INTERNAL(m)(ARG1, MO_ENDIAN | MO_32, addr, attrs, result); } =20 uint64_t ADDRESS_SPACE_LD(q)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result) { - return ADDRESS_SPACE_LD_INTERNAL(q)(ARG1, MO_ENDIAN, + return ADDRESS_SPACE_LD_INTERNAL(m)(ARG1, MO_ENDIAN | MO_64, addr, attrs, result); } =20 void ADDRESS_SPACE_ST(w)(ARG1_DECL, hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *result) { - ADDRESS_SPACE_ST_INTERNAL(w)(ARG1, MO_ENDIAN, + ADDRESS_SPACE_ST_INTERNAL(m)(ARG1, MO_ENDIAN | MO_16, addr, val, attrs, result); } =20 void ADDRESS_SPACE_ST(l)(ARG1_DECL, hwaddr addr, uint32_t val, MemTxAttrs attrs, MemTxResult *result) { - ADDRESS_SPACE_ST_INTERNAL(l)(ARG1, MO_ENDIAN, + ADDRESS_SPACE_ST_INTERNAL(m)(ARG1, MO_ENDIAN | MO_32, addr, val, attrs, result); } =20 void ADDRESS_SPACE_ST(q)(ARG1_DECL, hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result) { - ADDRESS_SPACE_ST_INTERNAL(q)(ARG1, MO_ENDIAN, + ADDRESS_SPACE_ST_INTERNAL(m)(ARG1, MO_ENDIAN | MO_64, addr, val, attrs, result); } =20 --=20 2.52.0 From nobody Mon Feb 9 04:08:23 2026 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=1766589902; cv=none; d=zohomail.com; s=zohoarc; b=f7llf1ZLwCFLulrd8zdGz2tO5nrdP8/+PqV1V/F6nbPofm92kKA/ykUevuzFn95F/lMPbpv69Q1+roewoKo3cwngjsmX3PgLk2MD7aL6PqFlEpSeIG+8as7Xjcp9wsijAp1agfr5lXSWEBv1wIxXu8HKohnARAACPS1E/Z1XDjM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766589902; h=Content-Type: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=h2LnS2EF/L1vH6qECRnOQ+5+8ETp4HemmgUEoFWxgks=; b=ZAzysT5zf4nV9sHU0iqqvx5h5AuYNgmih82VSA3REdzm7UQyxcs/0iBvPBm+5tUA2HlwPh95KlVS7AgmbMjuj67uaEOT654cAZvSjHGnc4KpF1A5xlhUCnEU1WWkogSh+vQhHwgFPFOVvVOFZD7vIhogIkcI+BnnMmdt9yaW1BM= 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 1766589902798367.76993984954083; Wed, 24 Dec 2025 07:25:02 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vYQjO-0004iS-AT; Wed, 24 Dec 2025 10:24:54 -0500 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 1vYQj7-0004Vw-MK for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:24:42 -0500 Received: from mail-ed1-x52f.google.com ([2a00:1450:4864:20::52f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vYQj3-0004mk-5g for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:24:35 -0500 Received: by mail-ed1-x52f.google.com with SMTP id 4fb4d7f45d1cf-64dfb22c7e4so485815a12.1 for ; Wed, 24 Dec 2025 07:24:21 -0800 (PST) Received: from localhost.localdomain (188.171.88.92.rev.sfr.net. [92.88.171.188]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b8037ab86cesm1796008866b.19.2025.12.24.07.24.16 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 24 Dec 2025 07:24:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1766589860; x=1767194660; 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=h2LnS2EF/L1vH6qECRnOQ+5+8ETp4HemmgUEoFWxgks=; b=AJ6oq5K/rACD8bB/6Ji8M4+FlU1yC0y9K906Ty7TP1805xY6fp3gUZsyk7Z7BolOpG WApbUR/2da3JqQhM0PfO/aoEyyp5ynLVhZ3cMsGn6oxDEgWuCivqOctRrHdP2WaDkc2i AkLtfby7+75usXkj+tUQXqgWc31IfACpsLBUaRB3kADvn/xvxpwWa6PiqVZjFdcTa+NI B79w3Cv5ljon+99i/dvEFbZPHIY78usTp49iCvrVNxzI9tAEym/BVhn9H2D0sEowHibX uYCESrBLmPXBi+Ew8ul4B74unq/nJr9ECzgMWffSpehuHyIWCjIy3zFSuegTNEsEtS/J agEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766589860; x=1767194660; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=h2LnS2EF/L1vH6qECRnOQ+5+8ETp4HemmgUEoFWxgks=; b=OQGPeuB1T3TXLTkaFdh8aUIPrer7Jk4xC/TI7DwVJvlcLDzoUOTOPNs8sOxVKGvli1 5M4flhjlVT/nz4mSrrZGjJ1ZmLQ534vrZ/cjmtibyUyA3kuqC0/RlId+tWRReaOgXgVl w4xpnikWBzG566H4yspkX7UpQskhsk1Hy+d9+KpwCoImINyBn4mGQ8AhZB+dFXennNV4 21/BLzf73QTN1U/vk94ST75T9uRGf3enHTN3vLNj5uZd0sPR/RejFx37DsRjkqfCOeb4 NRLF+sRs2Jfc/5CpYle8pCMyLoX8Eph50YoU7AgCN7HsU31RtiINLvxhSvVHIOcKBg/b Tj8g== X-Gm-Message-State: AOJu0YwHesc3ut9ffIm5Sbh0YDvDpR/ddiI65hLLBACq2w6jryho9Kd+ gyJ6GyfBJme/BiwNjBxBhh0N7EoITisCivcpP04pmyOZqwbBsnKPgdnm23ct2KFOsR9fV1svn07 JMc/O5qA= X-Gm-Gg: AY/fxX5lIsNhlfT1w1neNaKQFv1raAHEhFljrbpdobU2Kir47nlXLNpNOIeovRtZa0k 4dlPzFeZfE5vCkb6zqAQzPOLri1Flmn3UmhkgIbdsmdecr/hCKfPjNKhxbtzxgb/UtswBopnyco fLt9fNoRfCNgE4ZHpLv2Qasnt9ZyEWwls337++uyvduZ7fdMSd8eHIo8+iyhBHSKaAxCHR8mBXK LU2CTR0PtvpHPbt9NbsjA9ARkPNeXKzI9VxLpK+LhT5a7H7i76g7JMJLFfV9x3kZEFNgku8P5fa xbA/3bmXIKtjl3d+wC4coC6XrXcKPxbMuyTotvaz9ek1X8TPUJiALZ6Ij+9v4fGGGBJQrtmKZts KnyYSGH9LV3XieBuN9sIWeC7zJsxV0FYCjk0jkT5k4TClnssK1f2inhEZzok/+YxCOOGxS8Dzxw PTCy8Wc+wHc55fvu1kU8885aIvyIdi4h4dZPlr6c7x66ncVGMSJVixJRE= X-Google-Smtp-Source: AGHT+IEI8eg8MI8pK6JYyCHj3z4uX+yX1iCBv97wIPioNu1mszYKQNcY+4XwW6Dshrd7JfSJNP4yGw== X-Received: by 2002:a17:906:31c4:b0:b80:4060:8a6a with SMTP id a640c23a62f3a-b804060955emr1375279766b.25.1766589859887; Wed, 24 Dec 2025 07:24:19 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Pierrick Bouvier , Peter Xu , Richard Henderson , Manos Pitsidianakis , Anton Johansson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , David Hildenbrand Subject: [PATCH v3 13/25] system/memory: Introduce LD/ST helpers with @n suffix (variable size) Date: Wed, 24 Dec 2025 16:21:56 +0100 Message-ID: <20251224152210.87880-14-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251224152210.87880-1-philmd@linaro.org> References: <20251224152210.87880-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 (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=2a00:1450:4864:20::52f; envelope-from=philmd@linaro.org; helo=mail-ed1-x52f.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: 1766589904140158500 Introduce load/store helpers taking an unsigned size argument. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- docs/devel/loads-stores.rst | 10 ++++++---- include/system/memory_ldst_endian.h.inc | 4 ++++ system/memory_ldst_endian.c.inc | 14 ++++++++++++++ 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/docs/devel/loads-stores.rst b/docs/devel/loads-stores.rst index c906c6509ee..8db6285538e 100644 --- a/docs/devel/loads-stores.rst +++ b/docs/devel/loads-stores.rst @@ -375,6 +375,7 @@ succeeded using a MemTxResult return code. - ``w`` : 16 bits - ``l`` : 32 bits - ``q`` : 64 bits + - ``n`` : size in bytes =20 ``endian`` - ``le`` : little endian @@ -384,8 +385,8 @@ The ``_{endian}`` suffix is omitted for byte accesses. =20 Regexes for git grep: - ``\`` - - ``\`` - - ``\`` + - ``\`` + - ``\`` =20 ``address_space_write_rom`` ~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -431,6 +432,7 @@ device doing the access has no way to report such an er= ror. - ``w`` : 16 bits - ``l`` : 32 bits - ``q`` : 64 bits + - ``n`` : size in bytes =20 ``endian`` - ``le`` : little endian @@ -439,8 +441,8 @@ device doing the access has no way to report such an er= ror. The ``_{endian}_`` infix is omitted for byte accesses. =20 Regexes for git grep: - - ``\`` - - ``\`` + - ``\`` + - ``\`` =20 ``cpu_physical_memory_*`` ~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/include/system/memory_ldst_endian.h.inc b/include/system/memor= y_ldst_endian.h.inc index f5b6b496be5..77850f1a18d 100644 --- a/include/system/memory_ldst_endian.h.inc +++ b/include/system/memory_ldst_endian.h.inc @@ -20,12 +20,16 @@ uint32_t ADDRESS_SPACE_LD(l)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result); uint64_t ADDRESS_SPACE_LD(q)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result); +uint64_t ADDRESS_SPACE_LD(n)(ARG1_DECL, unsigned size, hwaddr addr, + MemTxAttrs attrs, MemTxResult *result); void ADDRESS_SPACE_ST(w)(ARG1_DECL, hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *result); void ADDRESS_SPACE_ST(l)(ARG1_DECL, hwaddr addr, uint32_t val, MemTxAttrs attrs, MemTxResult *result); void ADDRESS_SPACE_ST(q)(ARG1_DECL, hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result); +void ADDRESS_SPACE_ST(n)(ARG1_DECL, unsigned size, hwaddr addr, uint64_t v= al, + MemTxAttrs attrs, MemTxResult *result); =20 #undef ADDRESS_SPACE_LD #undef ADDRESS_SPACE_ST diff --git a/system/memory_ldst_endian.c.inc b/system/memory_ldst_endian.c.= inc index fb933de11f8..4ff050027f5 100644 --- a/system/memory_ldst_endian.c.inc +++ b/system/memory_ldst_endian.c.inc @@ -40,6 +40,13 @@ uint64_t ADDRESS_SPACE_LD(q)(ARG1_DECL, hwaddr addr, addr, attrs, result); } =20 +uint64_t ADDRESS_SPACE_LD(n)(ARG1_DECL, unsigned size, hwaddr addr, + MemTxAttrs attrs, MemTxResult *result) +{ + return ADDRESS_SPACE_LD_INTERNAL(m)(ARG1, MO_ENDIAN | size_memop(size), + addr, attrs, result); +} + void ADDRESS_SPACE_ST(w)(ARG1_DECL, hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *result) { @@ -61,6 +68,13 @@ void ADDRESS_SPACE_ST(q)(ARG1_DECL, hwaddr addr, uint64_= t val, addr, val, attrs, result); } =20 +void ADDRESS_SPACE_ST(n)(ARG1_DECL, unsigned size, hwaddr addr, uint64_t v= al, + MemTxAttrs attrs, MemTxResult *result) +{ + ADDRESS_SPACE_ST_INTERNAL(m)(ARG1, MO_ENDIAN | size_memop(size), + addr, val, attrs, result); +} + #undef ADDRESS_SPACE_LD #undef ADDRESS_SPACE_LD_INTERNAL #undef ADDRESS_SPACE_ST --=20 2.52.0 From nobody Mon Feb 9 04:08:23 2026 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=1766589904; cv=none; d=zohomail.com; s=zohoarc; b=cTR5wzqtL5Ndmmz7xZ0BZCZR2fWFb00nR1i/DQcHftneFBY4iK+XitlZU3zn2WA41lAoVHw6/RNhBmH2AzyRplhPO5Kpms++QFezErxZ/O+Hz0nmSS3DGNgqFzLZc3NZo71yk0niqVANybNVrUgT7QHoYokvEywhEj7xO/GOSNM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766589904; h=Content-Type: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=I6HMTxxs6Ve5Sks2R1l9RktCbKwSNfSiUvebbKXSoPQ=; b=MT9Ux9zuUW1SCMX14X+HRn4cfnMiJjMOlSwF0BMI2Y2nhBQDrwQUZl2l2Z8s1vQfuAf7nXsSCBdb3LCdW9O86RnRWqIYUmGWnMjljODSkckh3TzE0axQHVzADXE+VrVgu0SmeBPTZf/iru8rN7S7L8alj2AOV0RpwGvZYrA4CSw= 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 176658990412965.81426832795285; Wed, 24 Dec 2025 07:25:04 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vYQjP-0004sW-PT; Wed, 24 Dec 2025 10:24:57 -0500 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 1vYQj9-0004ZD-0T for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:24:45 -0500 Received: from mail-ed1-x529.google.com ([2a00:1450:4864:20::529]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vYQj4-0004nC-9g for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:24:36 -0500 Received: by mail-ed1-x529.google.com with SMTP id 4fb4d7f45d1cf-64b4f730a02so9769927a12.0 for ; Wed, 24 Dec 2025 07:24:31 -0800 (PST) Received: from localhost.localdomain (188.171.88.92.rev.sfr.net. [92.88.171.188]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-64b91056726sm16630876a12.10.2025.12.24.07.24.28 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 24 Dec 2025 07:24:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1766589870; x=1767194670; 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=I6HMTxxs6Ve5Sks2R1l9RktCbKwSNfSiUvebbKXSoPQ=; b=Lw8IQ/pRcmKQLYge8+Yz7w0r8nHsMoWoDcrAOtmyJSRETW61udmd+11Y5zYTCkFA94 Es0K/JQUBb3v6ig6jRK8Vw1RugmKAU3kYgdpZNbqcmyK4TIX6A5spjmPEZKjTPGBRBwL GsiCj+hLEdkdksAIXOkP07tRJWkHY3kVYtuqeQKCWsG2II2PlMgoF+SPCdLSVKa1Hw+s QKoQJx9zkXprH8luaQTSuATJpOOB4aVyZZCyd3FQQ3ObqUvxiWXe1s3OPpYSB5nuKI4Z 1Dz9e0hxo8/I8zT8LgYhDYFx/1CnpVR83qsCiRrJZFheTdwVrmQE5jfgzrWExEfTHGCX QUKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766589870; x=1767194670; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=I6HMTxxs6Ve5Sks2R1l9RktCbKwSNfSiUvebbKXSoPQ=; b=OptES95VH+Gad5Bw4URrhWLemkmNL4Ue5Lz9CZFWEnyoaNhatoqzyApotdlr5IHN1s DIlH3uZggQog+06Ie71F0A1fKPH+Vwv7McCrEYCdREmx6AE/+aXrPphjrRdYX1jG+zv0 DClM8srBZnSiVJnOLRrYEYB78APZy97JY3NW6OjEnFyjFQUKzhvdK04ignS1NF/8vkoh BPgw33VuiltoaaIDvQnLjFjXsY8n69E3kMjPXT1uEjYVDuncO0UM91/A2E4nbz3j74AU Xcw15zgAZXFPcmyqMbkHg/xBNPC+gjCmxgxlaBMCGH+yF03ux1x4lFLGptn8DlEykTdT liew== X-Gm-Message-State: AOJu0YydtsVXT9XP+uw8siVjOQVLx6KaQC9jmGNL0A8BshTdB/KdWnJd Eomp4DKMrj7yOt+gP4my09qlW7fWra95iF7TP74mPQMTui8fod+p2cyPP7+WVQcXiEzCVqjeN+k edx85u58= X-Gm-Gg: AY/fxX45MhWEAaTS2EJRy2E39qaLSuBIfBnLKmIQEMAR8R65o6rrCAvLFmgo46tqf9y ZArjLXr5Xwdq3HGRY5l0A2j+WzEX4vXvSuSDOuT/wC8TXM5Ge8gqowaXnLm0Ls2WuPA9KvNaT7E pzIOi/dHILE9Cs+1vq4R6Dy1vrKvP1X+kOZiUS/w7hGPcKgI71TzFB+htGannM1vl3FQIw/01KT 4yp5ktQZIhhcY6JbavDPUgQTIaIWbPY9zIe6Mq0cCoPQAai4HpAp2kNmSaoGv9Q2ybPc68oPsyU kXgCm6QJ1aFrv5ukIhKReuBl2M8sShypLmvMqXUUwZvR8+rGG9eJCJjp5VYHdUBjdaXVFnwouC7 FlNnROnDuhzN0nZ5Toqx4eYHcusbAr3Eom6I/hWZZRcKXYhRNGSyQdLtNvPdM0I/4RHhdCz453c Fy5vRxeoVN0CqTk53YhAdKVakuP4f/5TKVb/TtNyi1JXAgIYGB2K23tAA= X-Google-Smtp-Source: AGHT+IHykvB/+tVzUX2j/nsmsWYciJgYvbhQSmiDYoaGzTUaeOfEnMinypkoyN9q7gjm8BukjHS7aw== X-Received: by 2002:a05:6402:2356:b0:64d:4f75:aa28 with SMTP id 4fb4d7f45d1cf-64d4f75adb0mr11287635a12.18.1766589870379; Wed, 24 Dec 2025 07:24:30 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Pierrick Bouvier , Peter Xu , Richard Henderson , Manos Pitsidianakis , Anton Johansson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , David Hildenbrand Subject: [PATCH v3 14/25] system/memory: Use explicit endianness in ram_device::read/write() Date: Wed, 24 Dec 2025 16:21:57 +0100 Message-ID: <20251224152210.87880-15-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251224152210.87880-1-philmd@linaro.org> References: <20251224152210.87880-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 (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=2a00:1450:4864:20::529; envelope-from=philmd@linaro.org; helo=mail-ed1-x529.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=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: 1766589906165158501 Replace the ldn_he_p/stn_he_p() calls by their explicit endianness variants. Duplicate the MemoryRegionOps, using one entry for BIG and another for LITTLE endianness. Select the proper MemoryRegionOps in memory_region_init_ram_device_ptr(). Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- system/memory.c | 68 ++++++++++++++++++++++++++++++++++--------------- 1 file changed, 48 insertions(+), 20 deletions(-) diff --git a/system/memory.c b/system/memory.c index 8b84661ae36..5bcdeaf0bee 100644 --- a/system/memory.c +++ b/system/memory.c @@ -1361,41 +1361,69 @@ const MemoryRegionOps unassigned_mem_ops =3D { .endianness =3D DEVICE_NATIVE_ENDIAN, }; =20 -static uint64_t memory_region_ram_device_read(void *opaque, - hwaddr addr, unsigned size) +static uint64_t memory_region_ram_device_read_le(void *opaque, + hwaddr addr, unsigned siz= e) { MemoryRegion *mr =3D opaque; - uint64_t data =3D ldn_he_p(mr->ram_block->host + addr, size); + uint64_t data =3D ldn_le_p(mr->ram_block->host + addr, size); =20 trace_memory_region_ram_device_read(get_cpu_index(), mr, addr, data, s= ize); =20 return data; } =20 -static void memory_region_ram_device_write(void *opaque, hwaddr addr, - uint64_t data, unsigned size) +static uint64_t memory_region_ram_device_read_be(void *opaque, + hwaddr addr, unsigned siz= e) +{ + MemoryRegion *mr =3D opaque; + uint64_t data =3D ldn_be_p(mr->ram_block->host + addr, size); + + trace_memory_region_ram_device_read(get_cpu_index(), mr, addr, data, s= ize); + + return data; +} + +static void memory_region_ram_device_write_le(void *opaque, hwaddr addr, + uint64_t data, unsigned size) { MemoryRegion *mr =3D opaque; =20 trace_memory_region_ram_device_write(get_cpu_index(), mr, addr, data, = size); =20 - stn_he_p(mr->ram_block->host + addr, size, data); + stn_le_p(mr->ram_block->host + addr, size, data); } =20 -static const MemoryRegionOps ram_device_mem_ops =3D { - .read =3D memory_region_ram_device_read, - .write =3D memory_region_ram_device_write, - .endianness =3D HOST_BIG_ENDIAN ? DEVICE_BIG_ENDIAN : DEVICE_LITTLE_EN= DIAN, - .valid =3D { - .min_access_size =3D 1, - .max_access_size =3D 8, - .unaligned =3D true, - }, - .impl =3D { - .min_access_size =3D 1, - .max_access_size =3D 8, - .unaligned =3D true, +static void memory_region_ram_device_write_be(void *opaque, hwaddr addr, + uint64_t data, unsigned size) +{ + MemoryRegion *mr =3D opaque; + + trace_memory_region_ram_device_write(get_cpu_index(), mr, addr, data, = size); + + stn_be_p(mr->ram_block->host + addr, size, data); +} + +static const MemoryRegionOps ram_device_mem_ops[2] =3D { + [0 ... 1] =3D { + .valid =3D { + .min_access_size =3D 1, + .max_access_size =3D 8, + .unaligned =3D true, + }, + .impl =3D { + .min_access_size =3D 1, + .max_access_size =3D 8, + .unaligned =3D true, + }, }, + + [0].endianness =3D DEVICE_LITTLE_ENDIAN, + [0].read =3D memory_region_ram_device_read_le, + [0].write =3D memory_region_ram_device_write_le, + + [1].endianness =3D DEVICE_BIG_ENDIAN, + [1].read =3D memory_region_ram_device_read_be, + [1].write =3D memory_region_ram_device_write_be, }; =20 bool memory_region_access_valid(MemoryRegion *mr, @@ -1712,7 +1740,7 @@ void memory_region_init_ram_device_ptr(MemoryRegion *= mr, mr->ram =3D true; mr->terminates =3D true; mr->ram_device =3D true; - mr->ops =3D &ram_device_mem_ops; + mr->ops =3D &ram_device_mem_ops[HOST_BIG_ENDIAN]; mr->opaque =3D mr; mr->destructor =3D memory_region_destructor_ram; =20 --=20 2.52.0 From nobody Mon Feb 9 04:08:23 2026 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=1766589953; cv=none; d=zohomail.com; s=zohoarc; b=NKGVgb8itnfaSUHazlmVYUhJOo9HtWpGqPAxMNFy+pQm+KCizUgxotDyZYBk09ni7BJKvJKnmqFA7We8+IlU8+7XiKgIe4K/J82jmvv/f0qcFEuXmnC1qWOps1XZZErPPVTukX9GQBPERhQwFsdM9fMypuZkH6fx/JrHfQhb/zA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766589953; h=Content-Type: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=g0KML5ZskqhMnCPZDv1dkAtwpKpffc5q5Zjzm5fRR5k=; b=n3nrto8QJWu5JJSnJeE6HlD/QeoqiDN1IvbpnlxswOal0OtzvbWV7D7mf0AJFa/POclzQBVAb3DkzCRGbop44Y5khhizO4CJWv1Qjf++qQydyI0R3g8a0eDn4/KoMg04i56Z6WtIaVBgj0IGxVTLQDAFz9FvXwHerZiGkIwERNg= 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 176658995373092.65516481686393; Wed, 24 Dec 2025 07:25:53 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vYQjZ-0004xc-9z; Wed, 24 Dec 2025 10:25:10 -0500 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 1vYQjL-0004eE-V1 for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:24:53 -0500 Received: from mail-ed1-x533.google.com ([2a00:1450:4864:20::533]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vYQjJ-0004nv-Nk for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:24:51 -0500 Received: by mail-ed1-x533.google.com with SMTP id 4fb4d7f45d1cf-64d2c50f0d6so5233323a12.3 for ; Wed, 24 Dec 2025 07:24:42 -0800 (PST) Received: from localhost.localdomain (188.171.88.92.rev.sfr.net. [92.88.171.188]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-64b91494dd3sm17255402a12.21.2025.12.24.07.24.38 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 24 Dec 2025 07:24:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1766589880; x=1767194680; 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=g0KML5ZskqhMnCPZDv1dkAtwpKpffc5q5Zjzm5fRR5k=; b=cJpQTnQAiocV6S2j7x0nZ67f6iuIIC0KyZ3ufa6MWD0WeMrKPMPHM+4I15pI7y3iRI cTSqI4H0NORgfHGOlwP7fK3IhC+Wy1ovFYT6go2Mreuw9ihExQUHHievt4/ZW7G3VnDv ATv6MC0UsT2JBn0On152MrVhjbn7D8A61qq27GcY5/yoO3F+zEDP1WR52CPNt+WDnN+D zJvXKfaisZdAZd3pNUDeJ5tYaxnOIK/a1zRdbWDxoMCcT5/NvibTDMYThz1+ofpm4TJI duZCjlaiLz28WVp9j13XtuTrfyi42lR+I27rUCXvDVlptG86ytGpaOTtHX+4IIwQIH71 ygzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766589880; x=1767194680; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=g0KML5ZskqhMnCPZDv1dkAtwpKpffc5q5Zjzm5fRR5k=; b=fvKERqpNSiKrfsRK8qKXku9mkG0wqJ99cn9L71EIEwnaut1ykIArYuqECmL3IqsLv6 KcrJMEeVqPaVv99Ao7JRQxJd///MMfRTXsTW7n+HVYRj623Woe8YLJwFujLfsGD1FbW1 R4xPOr4e7r4EbYVsLpqczY5j6R/nh/hSImmZqZycFB21crwd+vIMmdRUH8/AptsRDcay uRIJbstYLZRy2kdaOYNPI6BhvZCCjlKe4OUMiNFWYS6YRPw7HyqG85aG/0c8ckgxa85R A7xJ0Gj8MHvtDNmF9ND/Tx5hwPkwtlPyh3E1y2bB0UxGm7L6Azwmaykx2/6fxaIeC8nO xERQ== X-Gm-Message-State: AOJu0YwkAk4Hv7iEL1agThpB5wkb0brnWScGah1M5Is7yOW5/E5wYHYS 1gA8aSPjFis/gj9X2oniGwGEHPTCltosiNrSjK+kB0VZNolDdDggQW+63jM+KnDUe7mDLEBsBxY ny9UuQpc= X-Gm-Gg: AY/fxX7qAMn+69cCT7a2YQWeR6OlfUBI1Ayv+5dXRdEVwI4R3OQLVgSswIk4PaKVl3n 8uI7T630uTwDtJOlW1pAp47ZT0vhGwlHIL+OKD5SSKOb5BLM76KT8TI4Vyt1g1r/xncZSmIQDaC t2aoy6lYY0AbVpJQv6nxas0RT+03gZNSuFbJfJ+N/084siYMEzsiJ6bi79EWi5PyqSCoKnHfHhM OOMGfDMM7mXRDYJm+5UEoxEQJJMosiyqthxUdup9794LI6OR27bxBbYoLWb/EVssVzcO1s908dj 1j9O8ycLj1wi05ckzv8ghqyrDSM2h5gZGocOIbZX5yHb6PwpSc/bGy+sP75c4rN7ZF16AwScfz6 KSZ0I9MmyUMrmN3FxfmnM2eZI/Oq6vghkn3fex7yxOLNHAxlda2V1cWE+oehpuBpZiz73h+3wH/ mdbjjISLjFcogCZXz/jGgU5SqvCkB2SwN9/tY8R2Ayg0ZOHPWt3EkDzyKcMmk1B0agbg== X-Google-Smtp-Source: AGHT+IFEE3sBAZK1T0rAwSQyVk/nlxG87flOMeYZJrMX+xnbPk90NNCcL3svd+1tZBCse2OCi3t70g== X-Received: by 2002:a05:6402:3586:b0:64d:88c:c2b7 with SMTP id 4fb4d7f45d1cf-64d088cca85mr12130836a12.14.1766589880565; Wed, 24 Dec 2025 07:24:40 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Pierrick Bouvier , Peter Xu , Richard Henderson , Manos Pitsidianakis , Anton Johansson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , David Hildenbrand Subject: [PATCH v3 15/25] system: Allow restricting the legacy ld/st_phys() 'native-endian' API Date: Wed, 24 Dec 2025 16:21:58 +0100 Message-ID: <20251224152210.87880-16-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251224152210.87880-1-philmd@linaro.org> References: <20251224152210.87880-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 (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=2a00:1450:4864:20::533; envelope-from=philmd@linaro.org; helo=mail-ed1-x533.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1766589954308158500 Guard the native endian APIs we want to remove by surrounding them with TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API #ifdef'ry. Since all targets can check the definition, do not poison it. Once a target gets cleaned we'll set the definition in the target config, then the target won't be able to use the legacy API anymore. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Manos Pitsidianakis Reviewed-by: Richard Henderson --- include/system/memory_ldst_phys.h.inc | 2 ++ scripts/make-config-poison.sh | 1 + 2 files changed, 3 insertions(+) diff --git a/include/system/memory_ldst_phys.h.inc b/include/system/memory_= ldst_phys.h.inc index f4c91dc7a91..66bbd3061c2 100644 --- a/include/system/memory_ldst_phys.h.inc +++ b/include/system/memory_ldst_phys.h.inc @@ -31,8 +31,10 @@ static inline void glue(stb_phys, SUFFIX)(ARG1_DECL, hwa= ddr addr, uint8_t val) MEMTXATTRS_UNSPECIFIED, NULL); } =20 +#ifndef TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API #define ENDIANNESS #include "system/memory_ldst_phys_endian.h.inc" +#endif /* TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API */ =20 #define ENDIANNESS _le #include "system/memory_ldst_phys_endian.h.inc" diff --git a/scripts/make-config-poison.sh b/scripts/make-config-poison.sh index 937357b3531..b4d61e8bc9e 100755 --- a/scripts/make-config-poison.sh +++ b/scripts/make-config-poison.sh @@ -11,6 +11,7 @@ exec sed -n \ -e '/CONFIG_USER_ONLY/d' \ -e '/CONFIG_SOFTMMU/d' \ -e '/TARGET_NOT_USING_LEGACY_LDST_PHYS_API/d' \ + -e '/TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API/d' \ -e '/^#define / {' \ -e 's///' \ -e 's/ .*//' \ --=20 2.52.0 From nobody Mon Feb 9 04:08:23 2026 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=1766589955; cv=none; d=zohomail.com; s=zohoarc; b=CEFpbiZX7qU2m/GFZIuIqD9ByWeUHiP6Jzzt04UsPYpui8cOUwfvywUtbut1pcqUnOyg8husBxNknjoFd9XjzT1nJ0BjZVsaiRH554y0F2W5C4XzK1e2pOXMAFy5j/WnRgdf5LUtE5RRgyP3cs/xMd45qzpInODknPT9rfW1P1A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766589955; h=Content-Type: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=E2FATmjfi7jbn0wTMj7Ch37A99U3l9p/Q36CDzawdLM=; b=gBF0XcTfJaD0o1pegFQ3DPaD3SOzzFT6vPUBcWQin6TYiqMAFLwFe4PCS130Z8I00OTsmYXjwSAcTQbgFza8ktz4/x+l81auDgFlEtwROW6tvCMLI2NTEXexFpwgMFEwI0cb9v0bWkTuJX4KyxRRKDw8mWYmPyH/VSRc08L+B3E= 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 1766589955134440.7860944134504; Wed, 24 Dec 2025 07:25:55 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vYQjp-0005JW-Qc; Wed, 24 Dec 2025 10:25:21 -0500 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 1vYQjP-0004r5-4V for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:24:55 -0500 Received: from mail-ed1-x530.google.com ([2a00:1450:4864:20::530]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vYQjL-0004od-OB for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:24:54 -0500 Received: by mail-ed1-x530.google.com with SMTP id 4fb4d7f45d1cf-64b81ec3701so9181042a12.1 for ; Wed, 24 Dec 2025 07:24:51 -0800 (PST) Received: from localhost.localdomain (188.171.88.92.rev.sfr.net. [92.88.171.188]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-64b9ef904bcsm16476641a12.22.2025.12.24.07.24.48 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 24 Dec 2025 07:24:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1766589890; x=1767194690; 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=E2FATmjfi7jbn0wTMj7Ch37A99U3l9p/Q36CDzawdLM=; b=QDZHUkeGRHs1J7F4ZjfMqUOe7yA8qRROZG1i+qSD5CNNS7h/qODqFmW1XzFumIdIcO 4FJ3hmy4syvJVP8vZt/Z2jDtxnm495XxZWzHiUdcxU6R8ZbJIB/ivpR+trt4X1eR0tU0 RMAw+h9Ux1QvkS/PEhv/FKMiFI8ehVRMapDS4n/4szM7KdE9Pa+/6ARqlTzcR6Sgmxji M7+PBnqzTZrOTPsZVsiPscZrBDkMz3uoVRbTw87RI7UrRSKBW/nfQsuG3gOP0FhIBjbd /0NQrjHp7vchdPs7xT8tnAl/zuwmP0ur7aKTcWYakFdODlgznQWRnS1H28OB2XFJAY3v ktbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766589890; x=1767194690; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=E2FATmjfi7jbn0wTMj7Ch37A99U3l9p/Q36CDzawdLM=; b=vJUIz8tYpj0iy8g3w6mBljWyCFtKpj5LvdPhXs8fmXNcsFv5fhDFRDFup7rQdOmAiE wyiW4CsDx/Qa7ByZcqa7MmEOMCZgjDQih2isYoVy7vI+HJ8+HAeFKq6BL8gRyu8kfW0j Q7/XaKimGxxUQDgRS4++tUq34/GZ6bM1Sli3qCp6YSPlt8kNYzANc9/EGU45hx9kfQwv Bo9w8LhgY6FCiNiS5ueAYOjKoFa28fGhsPPsnljDeokAAWWV22sAaKFZ+2b8jwRIr1vR 8vQ+xf5rPiczXvcmNhqYGKV1CCz5IsrxH4MYHkQNSGCOPiXHWrJNiy70cJ7AoyxU/yc2 fU2w== X-Gm-Message-State: AOJu0YynzV4XfB4jV+iSTO4ScCa6D69vYzguFcq160Fv2wcudX76Z/3q zqZjlkDmRM7PMZFPNdDlxcyFAdJRvq46OCHthwPZuWqvrfMGhUjJAombQS2q0z+bm1Px1jUqsSB t0ADfffU= X-Gm-Gg: AY/fxX5C+aCVaIKK2Gr4UAiymO3IVrcbZQANGgIOABmweMJiEmIa1f/WjEUlU3ZwsgC rjlxJam72PvZeXWSFGGMmHaV2LCmBIHPA5MbOFjFxQfm9Rs33mzC9+MAkzzHQBfgEPN+Qrhu3ph dTi2xMSbDGl/c1JOLQY3VUO3Jd42icXCEsqio7R847N2Yas9l2gF6F3gduuZE37h0VuYJxqRUz4 fkYGe0UBVsU3qSzP9YgD3BFppnYxHRUayU+cStkUTFwpmK8sE9kFJaILve+cNIuDXYrUKD0rRlB fpEfzdRt02YPhQFj18NnH6jwXfD5gTwSszAsjwPe419l+BTxo+9q4nZWtnz1j+xX07dTcxd11xZ c5BhcksOMnStc3Kta+EWVHLG857+7HRdMQLk05E4dbM0o4W25GlcBfnYICIxBq/2svZG76pbGae zY7Rt3tr9C7Xn9nZpkC7vra2dn6a1sgDxWGWNen5rGWXyAecBVi/nMKBc= X-Google-Smtp-Source: AGHT+IHzIcvDRnQKADSpZ8zkhWaMire0DZ/61QKA39Pw/VZv+dRARkJNkDeB1+iylVPc9WhPlMC/5Q== X-Received: by 2002:a05:6402:146c:b0:64b:6dfc:dd34 with SMTP id 4fb4d7f45d1cf-64b8e3a95a6mr19985940a12.0.1766589889840; Wed, 24 Dec 2025 07:24:49 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Pierrick Bouvier , Peter Xu , Richard Henderson , Manos Pitsidianakis , Anton Johansson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v3 16/25] system: Allow restricting the legacy ld/st_he() 'native-endian' API Date: Wed, 24 Dec 2025 16:21:59 +0100 Message-ID: <20251224152210.87880-17-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251224152210.87880-1-philmd@linaro.org> References: <20251224152210.87880-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 (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=2a00:1450:4864:20::530; envelope-from=philmd@linaro.org; helo=mail-ed1-x530.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: 1766589956297158501 Guard the native endian APIs we want to remove by surrounding them with TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API #ifdef'ry. Once a target gets cleaned we'll set the definition in the target config, then the target won't be able to use the legacy API anymore. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- include/qemu/bswap.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/include/qemu/bswap.h b/include/qemu/bswap.h index 65a1b3634f4..d1c889e7bc9 100644 --- a/include/qemu/bswap.h +++ b/include/qemu/bswap.h @@ -412,7 +412,9 @@ static inline void stq_be_p(void *ptr, uint64_t v) } \ } =20 +#ifndef TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API DO_STN_LDN_P(he) +#endif DO_STN_LDN_P(le) DO_STN_LDN_P(be) =20 @@ -423,6 +425,7 @@ DO_STN_LDN_P(be) #undef le_bswaps #undef be_bswaps =20 +#ifndef TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API =20 /* Return ld{word}_{le,be}_p following target endianness. */ #define LOAD_IMPL(word, args...) \ @@ -494,4 +497,6 @@ static inline void stn_p(void *ptr, int sz, uint64_t v) =20 #undef STORE_IMPL =20 +#endif /* TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API */ + #endif /* BSWAP_H */ --=20 2.52.0 From nobody Mon Feb 9 04:08:23 2026 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=1766589933; cv=none; d=zohomail.com; s=zohoarc; b=eeHMn3n1J3gNhIKYjRvyANdeiL65mYpDbvyaw+nngrqNl4ycjoxQiKFI5Ez6FEvMeB31IVEwp2ryipwb0qxtqzJnC2dpWMoCNwxFBxtvXbd9muG0Bx4jxiRZMlNC/V2jfXyqV036YqgJgGN4MdJtxPZ/j6klPoz9OM22eX8LZrA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766589933; h=Content-Type: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=ZCJ1tlPjLJjE+wtGLHdyiDA4PF+BOmUksuMCTAUXTnc=; b=NlO2LeQ4LUXyC2bZ2QOyfrRno9syF8QAPjL5iYuMPMm/cPIGzOLao9oPvZ5K4xYe6GKyN8Utv/rhpbMrWFpM/m6bfi/pKlfQxQJS+PzvdpFXFprxYm1uzLB/AbaSFnEPX+sJLXvlmcjYtUIvwZ1PB/lAL+BKMsG6Kh90q8zuDQ4= 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 176658993299940.64918912017174; Wed, 24 Dec 2025 07:25:32 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vYQjq-0005N2-An; Wed, 24 Dec 2025 10:25:26 -0500 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 1vYQjV-0004zt-SX for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:25:03 -0500 Received: from mail-ed1-x52f.google.com ([2a00:1450:4864:20::52f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vYQjU-0004vw-5B for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:25:01 -0500 Received: by mail-ed1-x52f.google.com with SMTP id 4fb4d7f45d1cf-64b7a38f07eso7575779a12.0 for ; Wed, 24 Dec 2025 07:24:59 -0800 (PST) Received: from localhost.localdomain (188.171.88.92.rev.sfr.net. [92.88.171.188]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-64b91494ce2sm16989986a12.17.2025.12.24.07.24.56 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 24 Dec 2025 07:24:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1766589898; x=1767194698; 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=ZCJ1tlPjLJjE+wtGLHdyiDA4PF+BOmUksuMCTAUXTnc=; b=qeQJ4DcIciJMW8URZJ3P3cSYBMRtGPsQlCfgXzWk5RqJwOk9S79PsnV3Zf74fcVT5T KMdvbxFmLdlWct2lXH9hAH3ZF1Xp4mGsgjsWcapZvK3noHEDSMTq9+EqYCW7cOQ76HGO OnMagEwneYb3CV53G2nSB4+lVCcqt9HqMnVFntojQTK16x3bbsNb4ryAX/QX1rIEnQHy sIqGg8VnLMMHuD92P8A2gmy01O6toJO1pKR2LAw4fbqMRFIQAg6o5iEHM93eIEWatZXg TykfNEIy6qKwUBBplQg9BIh1BzIGlYoEeM6lMtdpPtA8J4azGLDydwx65mtA8t3MI+4o Zp9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766589898; x=1767194698; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ZCJ1tlPjLJjE+wtGLHdyiDA4PF+BOmUksuMCTAUXTnc=; b=qtLSSbA0DJyBQdgTWna2r0yXbKKnf5/Iwf326h3SVmyTmRSVB6c6SSVMZgaTL/SOJ4 GpFRniFZbKpBy/6jObrBDhf/xPJaiZ3pCXL5k9D29b3cEN6knsz8g3G3Z8RMJ7I3VpLS uRc1eKdrQqZ53aycSL+xlGMUjDLs+dyrP8u+K3qZFPMHZqs9gbW7djOqYYXPgdzF2gHZ XQXzkrO4gV3hhHLDaDVxrTKrYNRKTQGLyKiBeasP5W65joIUwU9RhnCzahEvqPLC8qtU vZSYVda+CK9i4fxvsA6GM8je08+DoMXmQjXwjCS4G1Q2Es8qd2BDNGBt/5O8ev0GoKrK Lt6Q== X-Gm-Message-State: AOJu0YwzjaPysl6fgoIR2eZKKXOI/Y4OYHWmX4AgOBOpnbRv5eeJy7QP c5XChFWcC3MeGvPFhp89qK8iJl1nhABKD/qOFMLrq/GtB1okdP10VdWffFr/7B11Xcc8b3dUkIo ufXn6xRM= X-Gm-Gg: AY/fxX6tPPk8d/bTwJxXKh/57D5ZgURr744zDKD8PbjsNfCl95iMf7UE8VueOmjc/n/ F56az//lyVMglcLSb2TmlMGcorYzIlJNf4QHi87r9sNDszTp60vjUbJ24pbP+QVq6lrutMkWLEh ar8K0f/dIVzoaiv2axa98GJExDMVICi0SjPj68RDEdMVS7Shnvur9Cpbzsx1Na846H4OiEb118K GqaWPD66cY67cbo8qh74DODWOJWqCo1vkavSXXMs2eOx8DGdnJXOT7Jh8CSjR7KDuOz+Dg4O2/s p0KblUyJ1oheTjXCeKl81CVrZRDCHJqqqigJTEqESbGi2kI9+uWxDTqbIQKLF22bZ9xzxqb2rEP tcbXqIUuWw+im7bVWJPc1ngmqnSSP6MIiFoC7aQNBmEswfsA7MyrUae05tuiYunASajljZ0BmyQ Uo8nhyyhPjwhqQc26wi4kR3uLl/2/An6WESWkumXaG4qT3BuXdImBAklU= X-Google-Smtp-Source: AGHT+IGW37h7sre+BEeKMCinxx2coFEHl3FtLiSSgdBxgAXA7jhZhxO5qvEs7XTgMWe4xL8KT1ATwQ== X-Received: by 2002:a05:6402:510d:b0:64b:7eba:39ed with SMTP id 4fb4d7f45d1cf-64b8eb618f5mr16551561a12.13.1766589898409; Wed, 24 Dec 2025 07:24:58 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Pierrick Bouvier , Peter Xu , Richard Henderson , Manos Pitsidianakis , Anton Johansson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , David Hildenbrand Subject: [PATCH v3 17/25] system: Allow restricting legacy address_space_ldst() native-endian API Date: Wed, 24 Dec 2025 16:22:00 +0100 Message-ID: <20251224152210.87880-18-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251224152210.87880-1-philmd@linaro.org> References: <20251224152210.87880-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 (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=2a00:1450:4864:20::52f; envelope-from=philmd@linaro.org; helo=mail-ed1-x52f.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: 1766589934258158500 Guard the native endian APIs we want to remove by surrounding them with TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API #ifdef'ry. Once a target gets cleaned we'll set the definition in the target config, then the target won't be able to use the legacy API anymore. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- include/system/memory_cached.h | 2 ++ include/system/memory_ldst.h.inc | 2 ++ system/memory_ldst.c.inc | 2 ++ 3 files changed, 6 insertions(+) diff --git a/include/system/memory_cached.h b/include/system/memory_cached.h index 587e8a1453a..e46658400d9 100644 --- a/include/system/memory_cached.h +++ b/include/system/memory_cached.h @@ -77,8 +77,10 @@ static inline void address_space_stb_cached(MemoryRegion= Cache *cache, } } =20 +#ifndef TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API #define ENDIANNESS #include "system/memory_ldst_cached.h.inc" +#endif =20 #define ENDIANNESS _le #include "system/memory_ldst_cached.h.inc" diff --git a/include/system/memory_ldst.h.inc b/include/system/memory_ldst.= h.inc index dd1fb482eac..896550bdd65 100644 --- a/include/system/memory_ldst.h.inc +++ b/include/system/memory_ldst.h.inc @@ -25,8 +25,10 @@ uint8_t glue(address_space_ldub, SUFFIX)(ARG1_DECL, void glue(address_space_stb, SUFFIX)(ARG1_DECL, hwaddr addr, uint8_t val, MemTxAttrs attrs, MemTxResult *result); =20 +#ifndef TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API #define ENDIANNESS #include "system/memory_ldst_endian.h.inc" +#endif /* TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API */ =20 #define ENDIANNESS _le #include "system/memory_ldst_endian.h.inc" diff --git a/system/memory_ldst.c.inc b/system/memory_ldst.c.inc index 20a2784e234..e4b76d26dd9 100644 --- a/system/memory_ldst.c.inc +++ b/system/memory_ldst.c.inc @@ -117,9 +117,11 @@ void glue(address_space_stb, SUFFIX)(ARG1_DECL, hwaddr= addr, uint8_t val, attrs, result); } =20 +#ifndef TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API #define ENDIANNESS #define MO_ENDIAN (target_big_endian() ? MO_BE : MO_LE) #include "memory_ldst_endian.c.inc" +#endif /* TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API */ =20 #define ENDIANNESS _le #define MO_ENDIAN MO_LE --=20 2.52.0 From nobody Mon Feb 9 04:08:23 2026 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=1766589947; cv=none; d=zohomail.com; s=zohoarc; b=X4V7rvSdd1TzQFT3lR9U9TfD9a0FghyJcTc6dzu/3asIJHNTIr49LqtJPWNZCdbWbk3ap64jWiloBKFF4rBOTCCdzUENjSjOl9/iYNVY+7dcV7jegh7dnERcS/eMjfMtn0PPsZ0GQmQxURQLM9KN8vHLGIbCr1Lpj0WqNK7zQVw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766589947; h=Content-Type: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=ivUqCWD2KREPIU5lTjap2u3Qf3HeXg5Qh8hQWzf9tyE=; b=LK9+9+ZABm8Ndv4gedaQy2A49EtoK1DeE3fLU7tcOJiKyy+HYX/guoPk+tRMqNHG2r8hkCUghcJlOsaH9dqZG8hDmOTR70OzcRITGitM+I4cRjpJ4UpiLIMmLBSm7tW/VvrHkIcq6CkITLVNynWcihMVZhsJB1r8p0u378uMzpw= 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 1766589947058412.0566546417664; Wed, 24 Dec 2025 07:25:47 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vYQjy-0005UB-Vn; Wed, 24 Dec 2025 10:25:31 -0500 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 1vYQjg-0005AJ-Lq for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:25:17 -0500 Received: from mail-ej1-x636.google.com ([2a00:1450:4864:20::636]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vYQjd-00059m-Ko for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:25:10 -0500 Received: by mail-ej1-x636.google.com with SMTP id a640c23a62f3a-b7a02592efaso890567366b.1 for ; Wed, 24 Dec 2025 07:25:08 -0800 (PST) Received: from localhost.localdomain (188.171.88.92.rev.sfr.net. [92.88.171.188]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b8037f0e8f1sm1784881366b.53.2025.12.24.07.25.05 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 24 Dec 2025 07:25:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1766589907; x=1767194707; 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=ivUqCWD2KREPIU5lTjap2u3Qf3HeXg5Qh8hQWzf9tyE=; b=ZF7/c6K9RjKNWjIKMzLCGcj+eY2VtTaSNXPVVygR+5pupTGoLi7wDuGC34lAeqxWTt 8W1fqz+NVw0WhZOUabf+jjn49EeQpe4EwT8tY7JhG/o9TvcjnDXB/zOkYwPNdE3URav7 UPj0LBd4IHpO+ymyUeW13EnOwpXmVl17Z5UVJ/IkF7+yV/8YM3knaxq4uP5IXYdT3d5T mDPKX1jgQJMKwnFKmkNgBniS0SijXlNLC5PkDjBeMXnOxjlbjpguHDUej4glgx2xmWvc p435quChuciwgw/Z+aejlWRJSOW8gPg3r+NBg2YV2JEXw1VSGlYyrIPMAdpAz7w6rFLD j+mA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766589907; x=1767194707; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ivUqCWD2KREPIU5lTjap2u3Qf3HeXg5Qh8hQWzf9tyE=; b=USrnZ2reCEKiBfQ5I+2Rg1nZcnD7dqhrXSEtRAvudJIhHKuBIm88PgIOXzFqPz9wkZ YFCCZ1ZV1rM2eiZwNex+uKOK17bR0jdxNdV+I1pu1OfQBahn7yrrGY6bSnjtrVJyiktp +snik++x6ToijP/+Fi8hIIxXyZap7m3upAab74REAsOo4aJcF4bFulqWsy4tDaKML+AK pTIW9RzYWFV8REmENcG9o4Z05qDSkZRxc3MPjKBWWLsexhuBK8nqfUbDDmIsbWzpGyCt nPkUxpnhWYs09jh5sisXE+9kjSxHaA99tKSjD3qqF+GEg71J/WvFfQg2p3z2hZZ7Xf6R R7ZQ== X-Gm-Message-State: AOJu0YzXjrHUDhDHMTEunIBoUvB5H5Z4NV8XAUSPjlGHqhqbtnmnq75h ePBMdAR3a0osReqBzMXhMd1mAEfX+k2IgYWcrQjgWm0rrbCh37AxuX0uKLd8WrlXTfah7qFySfa Yh3oE4cU= X-Gm-Gg: AY/fxX4qRI7jm/dITieiV+46UPGXqTpzIMAiB5pcaxUEH/npL0cofPmhyMxYOWKdewF i9JqlJLdBgP3kMqr/6z4D+QYbkuroUcZ2KfRqr4ZaIjKy9RHA2qm9o+Y1mebG752bGnq59y3ov4 B+5GEEPnBDU5fn4oKczLPeIOZDTvzZA5fbYQJy7ee1FFJz5nIjPFZ5FRDoymaJwiFhH9gwSOXgP ae0js1GaTy8N6wF8M1vAXdTxki4KVXyEoZTrt8gnfg9Q+m/ow/Z0w7ifpyIDJwitSUOCAF55Y6b CRY1gKlcfD1W6aK/g7u5JKHcfO0dkAmAbFimqi09hWuaAOxGpQyMYI1AK0M/Fla/U2NWCAEVbVu qZ7TzU+SpQQSJCuNrPYrJBD6EjxVn0WiQIqMKHh3//01a60901shUHSDlXSL2P2AG5LcKVVs6NV huy21pVl6NfcrFzrXdjhm9cpIf6t4YMBaImaXFkc/LA8SbYzffDyjgg/I= X-Google-Smtp-Source: AGHT+IHPz9/QtP/uoZdBrLbMg1D9gI4dQBO5dJLZOGT5YOam5evVCBFs8GNKwzX8picnukEa5p9+uw== X-Received: by 2002:a17:907:3f9d:b0:b7a:5c1a:85e with SMTP id a640c23a62f3a-b8036f2d03cmr1994974266b.23.1766589906824; Wed, 24 Dec 2025 07:25:06 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Pierrick Bouvier , Peter Xu , Richard Henderson , Manos Pitsidianakis , Anton Johansson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v3 18/25] system: Allow restricting the legacy cpu_ld/st() 'native-endian' API Date: Wed, 24 Dec 2025 16:22:01 +0100 Message-ID: <20251224152210.87880-19-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251224152210.87880-1-philmd@linaro.org> References: <20251224152210.87880-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 (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=2a00:1450:4864:20::636; envelope-from=philmd@linaro.org; helo=mail-ej1-x636.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: 1766589948298158500 Guard the native endian APIs we want to remove by surrounding them with TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API #ifdef'ry. Once a target gets cleaned we'll set the definition in the target config, then the target won't be able to use the legacy API anymore. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- include/accel/tcg/cpu-ldst.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/accel/tcg/cpu-ldst.h b/include/accel/tcg/cpu-ldst.h index 0de7f5eaa6b..a5711bc15a6 100644 --- a/include/accel/tcg/cpu-ldst.h +++ b/include/accel/tcg/cpu-ldst.h @@ -428,6 +428,7 @@ cpu_stq_le_data(CPUArchState *env, abi_ptr addr, uint64= _t val) cpu_stq_le_data_ra(env, addr, val, 0); } =20 +#ifndef TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API #if TARGET_BIG_ENDIAN # define cpu_lduw_data cpu_lduw_be_data # define cpu_ldsw_data cpu_ldsw_be_data @@ -501,5 +502,6 @@ static inline uint64_t cpu_ldq_code(CPUArchState *env, = abi_ptr addr) MemOpIdx oi =3D make_memop_idx(MO_TEUQ, cpu_mmu_index(cs, true)); return cpu_ldq_code_mmu(env, addr, oi, 0); } +#endif /* TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API */ =20 #endif /* ACCEL_TCG_CPU_LDST_H */ --=20 2.52.0 From nobody Mon Feb 9 04:08:23 2026 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=1766589948; cv=none; d=zohomail.com; s=zohoarc; b=Whq+ZVJu0XZhayjMUPc5zwrFGo7KsyA2LbVvpR1GYZCukSfacxzHXwBRzTgjAJ3Iwv5QJClWbM2vMbFc/Epvk5GzpHGnO4I2Ao+LgcVG6zdLwOv7I+CU4HQlP5ZZd7BMdNWzbdf9cZ7wHF2rGSZTazwNx/y0FOVbdOZs+EaNH0k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766589948; h=Content-Type: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=S5/ovXmrcG0g8YopLTxIZH1Zb4vMJsdoapS9D5bHTV0=; b=Yefbgqq9yqb7VlF4Bp5oKXd/ejSZ4W0dyIYUkaTq5U1KTsHILqR7FpPn2soy/aeXkidvXJLYB27uO8bjfOYtKju8WdVDGxIcc4YBSFxtTeeTSOzxIXPULeHFRKVmGOQSD3EnpgkmNGG0295BTQgVxUSwuWEFI++1+ziPYGWgFWw= 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 1766589948299263.3263179304772; Wed, 24 Dec 2025 07:25:48 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vYQk1-0005jU-9e; Wed, 24 Dec 2025 10:25:33 -0500 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 1vYQjm-0005CM-P7 for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:25:20 -0500 Received: from mail-ed1-x52b.google.com ([2a00:1450:4864:20::52b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vYQjl-0005AF-8X for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:25:18 -0500 Received: by mail-ed1-x52b.google.com with SMTP id 4fb4d7f45d1cf-64dfb22c7e4so486880a12.1 for ; Wed, 24 Dec 2025 07:25:16 -0800 (PST) Received: from localhost.localdomain (188.171.88.92.rev.sfr.net. [92.88.171.188]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b80426fc164sm1649783466b.30.2025.12.24.07.25.13 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 24 Dec 2025 07:25:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1766589915; x=1767194715; 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=S5/ovXmrcG0g8YopLTxIZH1Zb4vMJsdoapS9D5bHTV0=; b=IboLRbub2iamHpp6jZvcpoqKF5xsCxqsg70VDD8kqPWSblD5FvyWzceGL1VcWjf/tx p1csvkb3AsDfIEsqPF/gFY9RDsoOd+wup4x/OtQ/dRLTv4jRpKAp2NPsBV/esIakMckj mUcIrMGC1Tf8g+7x2GSdQ/UdNH0UspTwDR8EAM8ONvFlwMnsbnq4BMBTIP9dM9ZZUSRU BR7jxz1awjVuOoEyVfmnJ5Vhw5EhbQcNlGRltDU7V5e3KnchgNF6PzRaE+AYTW1IBRXf bQ3Nht7ICvnJnSwhJJVWYMRktmTKO3r5vBTS3kC898TqHDs8pJ6+N+tdgIBo1ZFjmxqC c2RQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766589915; x=1767194715; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=S5/ovXmrcG0g8YopLTxIZH1Zb4vMJsdoapS9D5bHTV0=; b=IYLIq3dcGwhttdJ1/makL3N2A8CexKDZmq0l+jPqxUNpXhLsh3Ml5Sq1UAY3gjbqOA OnitaEzGZDrTHhXqQtJre4JzLc3ObQ2nG2LnwQHv/ObIbK5MvoKPeRFuFx7lW7QyukA/ pTenLgE8oqriuZOMJDGzwkF4/oJ5EOX5iafLtcAELDrpUCib8yqo7FaF8v1uWrmyZjXF P55QaE5SlvZzcIOIVPD8vAs0bJy5V3tuO+Qj2UB9UjbuMQ3R+pI0/JH0bci9J0qaFFIz StZZms7Uxg6AH1VYzJtY9Xg48qlVwdseIGYrwr0ybYEMp77FGVsVjWSa+Xf1ehQGiQaV N16w== X-Gm-Message-State: AOJu0YxziUAEcLD0dpG0QVYsXV/iXtOLiXSqE7K/aHN1CdPxpfHyQm4D 4QtvxOzGxNX1Kcm0Eex8P5Y33q5y2sRVYOFfIOsGSWjoEc9AxoWbgaYYKRWTRhJdsyPXkixLtHO Y0tFGFDU= X-Gm-Gg: AY/fxX4vQuC3AlYOSMvwTlG/s4Txva0XwjrpZJAfdc8Hc0GMUZIOvtvK6U0GQkMZH/E Jc7w3ZpZIt/fgtwGee0IVqx6uG1duCVFfbpLrYpByYLq6b0uLmN+ppwKFeBaTKGi5zoj8oR27JW hXBoncFoXv8t7o5q+wWtTMN2EDnnxy4DNnpixmmYchVNRsEqNMbzTc/4YNhmvKo5SbE+XRebwPl vBop0+CdzzBDYtIFNKXaGELFJWG5uxOpkgxWDOO1cBJU0ziYoZqd1vIj9ov+58VMCsAHkRM3FSt tGd/uN0IhAUaD1+VwL7/Qq1DbiHvmjP6g6Fz5iuH12hz25ID/mmM980FfqNFwD7uN+wID1OBY+Q xR2sKb/EFkOOX2Bl/Xj/B7oe+ZNgjzd09m7zlCqlwGan/kS2gUPQtoWdAmuWVKhzzI1Ohkd8yK9 mSFkIeRT8rporDp4gmVIRLNAJ2qx76CJia7dbDgU7huE+VAkiqjdEmuwoo4rgUz3duYw== X-Google-Smtp-Source: AGHT+IEQNtUtd4TgSBHRyaiLFd66RBaiJPZ3tOzRSbpjQTtslQYzU5A5d2oFthObj1x3otvlpqF23Q== X-Received: by 2002:a17:907:3e12:b0:b7d:27dd:9a54 with SMTP id a640c23a62f3a-b8020634a93mr2305767366b.31.1766589915188; Wed, 24 Dec 2025 07:25:15 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Pierrick Bouvier , Peter Xu , Richard Henderson , Manos Pitsidianakis , Anton Johansson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v3 19/25] system: Allow restricting the legacy translator_ld() 'native-endian' API Date: Wed, 24 Dec 2025 16:22:02 +0100 Message-ID: <20251224152210.87880-20-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251224152210.87880-1-philmd@linaro.org> References: <20251224152210.87880-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 (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=2a00:1450:4864:20::52b; envelope-from=philmd@linaro.org; helo=mail-ed1-x52b.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: 1766589950334158500 Guard the native endian APIs we want to remove by surrounding them with TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API #ifdef'ry. Once a target gets cleaned we'll set the definition in the target config, then the target won't be able to use the legacy API anymore. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- include/exec/translator.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/include/exec/translator.h b/include/exec/translator.h index 3c326555696..8d343627bd9 100644 --- a/include/exec/translator.h +++ b/include/exec/translator.h @@ -188,7 +188,8 @@ uint32_t translator_ldl_end(CPUArchState *env, DisasCon= textBase *db, uint64_t translator_ldq_end(CPUArchState *env, DisasContextBase *db, vaddr pc, MemOp endian); =20 -#ifdef COMPILING_PER_TARGET +#if !defined(TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API) \ + && defined(COMPILING_PER_TARGET) static inline uint16_t translator_lduw(CPUArchState *env, DisasContextBase *db, vaddr pc) { @@ -227,7 +228,7 @@ translator_ldq_swap(CPUArchState *env, DisasContextBase= *db, { return translator_ldq_end(env, db, pc, MO_TE ^ (do_swap * MO_BSWAP)); } -#endif /* COMPILING_PER_TARGET */ +#endif /* !TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API && COMPILING_PER_TARG= ET */ =20 /** * translator_fake_ld - fake instruction load --=20 2.52.0 From nobody Mon Feb 9 04:08:23 2026 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=1766589961; cv=none; d=zohomail.com; s=zohoarc; b=CsGqr0aL7GhvH8S2ZZj9rDxS21KXXSV07Gf+ezNvBIIrObre+uzchj05KH+5cXDOhikQbZRI0D4C2nO+mGGtSU54QP/QGDiqL3f5shmENxw2ihWylcnCxdWiVsXw46o2yudN6L9KgLKJ+zkrebyT4E8MDDAr7vgoV1OlSITaA1c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766589961; h=Content-Type: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=D7tE0kUMhdBqFLhbKfrJibgQATMsXG5ZR21KHojJdYE=; b=Yvmuf4TYhyzvtu/3m1094lbiGF2KatEWWrJrTOUMW8GSAdFZFJ2BhYuPTJx80aCrWUniseOCGCoe6ZPPmk5+RPFk1GQRfiGIobsfciUN1WowQ+TdtS1W5i0F6V3qbaTj/Y27OIATRj6d4FoCkQ/kJsZPbehJnejdBomaNzWxHnE= 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 1766589961933520.3383990661517; Wed, 24 Dec 2025 07:26:01 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vYQk3-00065T-66; Wed, 24 Dec 2025 10:25:35 -0500 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 1vYQjy-0005eO-3G for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:25:30 -0500 Received: from mail-ej1-x635.google.com ([2a00:1450: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 1vYQjw-0005Ax-It for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:25:29 -0500 Received: by mail-ej1-x635.google.com with SMTP id a640c23a62f3a-b7a72874af1so1037432266b.3 for ; Wed, 24 Dec 2025 07:25:26 -0800 (PST) Received: from localhost.localdomain (188.171.88.92.rev.sfr.net. [92.88.171.188]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b8037f51a74sm1824118766b.63.2025.12.24.07.25.22 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 24 Dec 2025 07:25:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1766589925; x=1767194725; 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=D7tE0kUMhdBqFLhbKfrJibgQATMsXG5ZR21KHojJdYE=; b=N801J7LyrW+IVMe0ehUcSpQbRHGlVVisSRKe4gkKZrPKddfRggHRzs2Ss103R4+UEI 2DWXb8/siXml87nLGNHiI2Re8ASoDeaNn7icLVGDNGVeSxq+nuyjm8E3jJWmXVpcTjCu gz5HIRQc1vD4dgdmPijhjVIOAh8rlybLNWE85zTw8paH0PjXjKXRW7gTO9ECIfXJDaOj tIb0wKkCXPimLZMnHwQUr0KLyYtGQBp38wpLfhynGCcY3eneOieVkP6AlaZ5niuNQVeV eP/5EDitRwqT1J5jCB7Ekfzgjaal4CjcRq7v7KP9QjltIRNvJu3r3NqEZUMbBa+3XK8T GOXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766589925; x=1767194725; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=D7tE0kUMhdBqFLhbKfrJibgQATMsXG5ZR21KHojJdYE=; b=PMzcB7Cwjng4QVkUxjnBSZp/09XtCwtG0ZSCkVsLIWlHqULk1BfWv6BtdgL58rslsJ 0N5PqgWQHgQC0Mqj9d8YsEzX/6roNKrMhbYMbueQvk4oS/GmrnHgmn6fj19Mm80HY/I9 YpCjt1lgireC13t+TksQgt436UaNj/hPOGN9ZBSnKMDLTBgRm353MkoJOsjMhCKBxC3N k3Rj997uLPAADBsJrLCIX9bt4pmXUO6GQwR5RKNrFjIWA7LisS6Rg1PM1FqMrAdl9kHx 81SsN/+Wq3efTXaan45d9L3eN4RddaFuWrnx97Tfm6+s1gU7DSFDI/6WI9jYEG66qxRR vGFw== X-Gm-Message-State: AOJu0YzeetL0m1rleD6ziiYa+xCgBWYF2iKLIDA2QVwk3siulXjveq8+ ZLQVXss3vMyLTlDadvfeLpWOdTdBXY3BY4RNLaHTwS8zP0NGJijv6uMnLPD/r23KjS43UooYmqY r0n+ekO0= X-Gm-Gg: AY/fxX5SgfEA1hKglxWb++3qQ91O+QD0QXZYTrNsz1UbqEtBouQjr6XwISgNPSbhc87 Ze2W5Saj+IRbZXvwM8EJCEHnZ93WHVl5Er+cespPtkUvZ2ywAgClkyXtAA4yA1LPSHHcClsiw0W AaX+UE6tAtXxh9Ho6vPDWs5HOk+b+VID/8D64o/v26I+yggPr2L6ZzQXHaClu8OKkBELclaQMwE kZlBu0U6lruzO1rhutzXPu0iwiVygVeP6YfO2P3VOQ0+6l8E/KdwLtR4XRd1jK/3pQaPqMqE9xT IAHvvfgl2mraqQV4cEmGJhjrfQXIrDs2AreuqD5u3j9U/CfLT12BbQNHt3ROXxGdUhTrejNKHcS mb63fgdJICXpvI44OqjO5cGQvZjSXk9HbSIdLGCifMUxRIBvHn6547Vh/hnYBWeGqvllPqCIKOw jWsAuMEjjnlJwV8as05G9mAez5sSxoVT7XF4BP2bEPIXRbbuehMyL+KhWcBSSHHdBuEA== X-Google-Smtp-Source: AGHT+IH/YZO/ZzZMHSLASKGHQF/sn5WdX5DbbnGdufWHLO3HjhOifNymbSwLRJY44D1XZN9Sid2B/A== X-Received: by 2002:a17:907:6094:b0:b73:9368:ad5e with SMTP id a640c23a62f3a-b8037051288mr1893766666b.34.1766589924977; Wed, 24 Dec 2025 07:25:24 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Pierrick Bouvier , Peter Xu , Richard Henderson , Manos Pitsidianakis , Anton Johansson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v3 20/25] system: Allow restricting the legacy tswap() 'native-endian' API Date: Wed, 24 Dec 2025 16:22:03 +0100 Message-ID: <20251224152210.87880-21-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251224152210.87880-1-philmd@linaro.org> References: <20251224152210.87880-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 (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=2a00:1450:4864:20::635; envelope-from=philmd@linaro.org; helo=mail-ej1-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=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: 1766589962408158500 Guard the native endian APIs we want to remove by surrounding them with TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API #ifdef'ry. Once a target gets cleaned we'll set the definition in the target config, then the target won't be able to use the legacy API anymore. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- include/exec/tswap.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/exec/tswap.h b/include/exec/tswap.h index 72219e2c431..9e94fa0021c 100644 --- a/include/exec/tswap.h +++ b/include/exec/tswap.h @@ -21,6 +21,8 @@ #define target_needs_bswap() (HOST_BIG_ENDIAN !=3D target_big_endian()) #endif /* COMPILING_PER_TARGET */ =20 +#if defined(CONFIG_USER_ONLY) \ + || !defined(TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API) static inline uint16_t tswap16(uint16_t s) { if (target_needs_bswap()) { @@ -68,5 +70,6 @@ static inline void tswap64s(uint64_t *s) *s =3D bswap64(*s); } } +#endif =20 #endif /* TSWAP_H */ --=20 2.52.0 From nobody Mon Feb 9 04:08:23 2026 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=1766589968; cv=none; d=zohomail.com; s=zohoarc; b=hBmdwnJRt8B6lUCPvjKKVpsJIzgkvl8zQK0GWKaPuWDY2/DntwVllwx3LRLpAWx+U+gKWWdm3/WKpmjlOZJ7TkcTZKZLdjqzpTdSTUDy9CGEdw0/5qxlGCsdg5j2wrQszP7BwWs63n4IqIPAptoM0R5kVPUcZIVjwJLJBWyFo/I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766589968; h=Content-Type: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=rHOVluu9kB0fVsABBF3cJLWm84ZoSOynpEXEKwuisGo=; b=no6seSrMoa4cC24Yxz1dJJewANV0VO2O0sJ2OEUDIvkCwR2VeYTeVsL+Sdx0Zm4h2328RedS9yhyq5zR8Prj8bUR1fCDPWO3KDfpSTWoP77Sc9LF+G8em6ciIGXb0pxZAaHl84p/w/F3n9rdJQjMgRghKMn2m5GZQsEja8/Oe6E= 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 17665899685681001.6161574898659; Wed, 24 Dec 2025 07:26:08 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vYQkR-0007yG-Ru; Wed, 24 Dec 2025 10:25:59 -0500 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 1vYQkP-0007ki-FP for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:25:57 -0500 Received: from mail-ed1-x535.google.com ([2a00:1450:4864:20::535]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vYQk3-0005Bf-Sf for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:25:57 -0500 Received: by mail-ed1-x535.google.com with SMTP id 4fb4d7f45d1cf-64b8e5d1611so7292261a12.3 for ; Wed, 24 Dec 2025 07:25:35 -0800 (PST) Received: from localhost.localdomain (188.171.88.92.rev.sfr.net. [92.88.171.188]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b8037ddffd2sm1702183166b.33.2025.12.24.07.25.32 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 24 Dec 2025 07:25:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1766589934; x=1767194734; 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=rHOVluu9kB0fVsABBF3cJLWm84ZoSOynpEXEKwuisGo=; b=VSYF1D8VFLoVpij2uN3yTn0PoTvo7XAnfmvRZcETT6FhuvV0+g1r9DCzhhC3pBbsPl dLFCXpqU2gEgpWzx6dDYNXGLjPP3qnaE31lTkTXK3X3j/ydZBEtRxraZiq58yI3dvooa z6F3irBbl/Tz26TTT/B3xo/uJYWdRuXTOP75ptQJwXukpUslP291Ydrv2c6a7Qm5UXLi 0CY2TTqCt+S4q1h7LIjFSIIiLc1fQpF9IGfrAvcc6OXP89ho6QcUrJGhypImPVXh5a5V aJesJpkaExVUaTqwF86d2PkiMyNBZp7TB6Uq50F5HpfazFV8HfyLrX1C/FvE+PwkKS2L +DcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766589934; x=1767194734; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=rHOVluu9kB0fVsABBF3cJLWm84ZoSOynpEXEKwuisGo=; b=r5rENd9AG1eKDHrgEnPDoqmJa0g2lxzCmrq0pxTQNEp9FC1g/yPTp5n3a9HkULT9rb eg4hwVggIWMCp+dT5fp0WvTrcLWE82P9OwioLP1m8wJIOLgo78Fno16xndNCoqVUlxlF b6rLh0tLDAVRZfrP8mw5h/ytMrMvPZm+H/MEKEhysP1LKJrShb4jEaXKhUE55XsmGuhB niZrX+l5djPsXkQlQ1LH8mSycHOHID+beMLCeLVZVzZxkCe0j/RjQ0sLhlmaGljZ5T6/ XJF8/ljGy6Q4qxEdtQDXunluLaOO72PCW4bIIyd4lOLzcAAMsiZzBeDGmWjjQObPv092 /mBQ== X-Gm-Message-State: AOJu0YzVaoVtgz9WqSmiES62YFIR5C1CsPdbuhqdONthhfoyDE685HWE xDyrwNV9h9WcoOEYeoL1V68K2tSldquiw+edvTKCuc49ftwEye9pGVg3O55tAKvr1xxZHS12RA6 jg0yfFQI= X-Gm-Gg: AY/fxX5UomlJ3F/1+EcmnmzYCHqil1Hw95wpo71fd3yryDNBFbtu+aM8DFOhM78R9Wc SRjn5jYe4/4xKZlZSWrji0au1GC9aB2evd/9rJYTZH2M/WbxjNKSb5jHN0HFDanWrLE5AJnrTNM ImDrAGXwxqXUKayu+9VXQBYvF7wyO6z60tmrZjOkxJFcVQ5OVfae7GzLBO6Wa3E/bFW+0bvlaJC cdQ7/4Odjo3LdOYsgzDVssUcxUhAvoX2yi4Tvgs8yxoH6CiFCObzhQlE6EY9PnCttjm9lSog1vo L+9oL56WJNvJOXOXaYvT/al+6UPLOZxW8O8VA42gtO0aNYXwmskNjObVfxMSNeZm6erPiIfzQG1 R3wf6YIPYL4nOifsqdeQrkUXp6HAHGjm+tHEYQxoIEoE2P6ILsQ43ghoWRaSoD8IVUYcbs3T2UM 21czIhvrVMgo9XE2zbi6W3Vpzfqj9wwMytd2ibY/QNRgrbg5iV4tG9n3Y= X-Google-Smtp-Source: AGHT+IFmSjHTpcIezrUwuMTY1I1Uo3+p9B7kn5YPyAoTTTJVwxlfon9CwCYKgZB+1cUuZ6o58HyRtQ== X-Received: by 2002:a17:906:7315:b0:b73:398c:c5a7 with SMTP id a640c23a62f3a-b80371a7253mr1830677166b.41.1766589933937; Wed, 24 Dec 2025 07:25:33 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Pierrick Bouvier , Peter Xu , Richard Henderson , Manos Pitsidianakis , Anton Johansson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , David Hildenbrand Subject: [PATCH v3 21/25] system: Allow restricting the legacy MO_TE* 'native-endian' definitions Date: Wed, 24 Dec 2025 16:22:04 +0100 Message-ID: <20251224152210.87880-22-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251224152210.87880-1-philmd@linaro.org> References: <20251224152210.87880-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 (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=2a00:1450:4864:20::535; envelope-from=philmd@linaro.org; helo=mail-ed1-x535.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=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: 1766589970378158500 Guard the native endian definitions we want to remove by surrounding them with TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API #ifdef'ry. Once a target gets cleaned we'll set the definition in the target config, then the target won't be able to use the legacy API anymore. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- include/exec/memop.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/exec/memop.h b/include/exec/memop.h index 799b5b42218..4aaa6a0ab02 100644 --- a/include/exec/memop.h +++ b/include/exec/memop.h @@ -36,11 +36,13 @@ typedef enum MemOp { MO_BE =3D MO_BSWAP, #endif #ifdef COMPILING_PER_TARGET +#ifndef TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API #if TARGET_BIG_ENDIAN MO_TE =3D MO_BE, #else MO_TE =3D MO_LE, #endif +#endif #endif =20 /* @@ -150,6 +152,7 @@ typedef enum MemOp { MO_BESQ =3D MO_BE | MO_SQ, =20 #ifdef COMPILING_PER_TARGET +#ifndef TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API MO_TEUW =3D MO_TE | MO_UW, MO_TEUL =3D MO_TE | MO_UL, MO_TEUQ =3D MO_TE | MO_UQ, @@ -157,6 +160,7 @@ typedef enum MemOp { MO_TESW =3D MO_TE | MO_SW, MO_TESL =3D MO_TE | MO_SL, MO_TESQ =3D MO_TE | MO_SQ, +#endif #endif =20 MO_SSIZE =3D MO_SIZE | MO_SIGN, --=20 2.52.0 From nobody Mon Feb 9 04:08:23 2026 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=1766589961; cv=none; d=zohomail.com; s=zohoarc; b=FZuuwnvLQL0KlVC9vpY6ksjh9zMAGjyoK2yzbaRYem1gj/ztvs6buMTO/RGQ87mG/P1/SJ4f65kJjJZwgBJJ+zbQx9fEfovn0QVGab9EZ1A6lWHSzMrs50PqvmrMl91ef8bEHAZRh2B6srqLceFvrVXutjXQCbO4V/iTQQh94IM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766589961; h=Content-Type: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=vQGh0l206MdToCjytCGMmdsOnEQoIAlyoUIlLQmPYxQ=; b=cI7KkQXnYKsDOfBIOn/Fs4Bfl4PS6ZXzHKU+CAlO1lkF2vyKPoMDuJvklj9UDP6OzxMw+EYemKFuGwcl6YhAaHTrL861XbXflBNM01p25vIJzwYA5fK8YbLHt6RDJgWu+98ipwWkLIjO6Iu5VXEhrKPgohB9eMDHu4mrq+pKXJE= 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 176658996171457.18702691832311; Wed, 24 Dec 2025 07:26:01 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vYQkJ-0007Dn-5v; Wed, 24 Dec 2025 10:25:51 -0500 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 1vYQkH-00070o-4r for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:25:49 -0500 Received: from mail-ed1-x534.google.com ([2a00:1450: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 1vYQkF-0005CG-EA for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:25:48 -0500 Received: by mail-ed1-x534.google.com with SMTP id 4fb4d7f45d1cf-64b8e5d1611so7292388a12.3 for ; Wed, 24 Dec 2025 07:25:47 -0800 (PST) Received: from localhost.localdomain (188.171.88.92.rev.sfr.net. [92.88.171.188]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b8037de1421sm1821135066b.41.2025.12.24.07.25.41 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 24 Dec 2025 07:25:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1766589943; x=1767194743; 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=vQGh0l206MdToCjytCGMmdsOnEQoIAlyoUIlLQmPYxQ=; b=E9EoGnj7N2ly7x+UjZlDmOVccd5xSVpnGboCFBSWiVFkvzFeUI8PyJltBSaMoMWl32 e/wh3OqYlf3EUUxSou11zJ2h5WJb7POyTkobTDeDRTRV4rr8gPreCCbji5wScHLcJe5R JbnOJkz8WMw1UKE7TzPfWr4HbboWd4K9n6W9Q0Lx5OV5VJpY40XbEEofw7N/CjsFXv1r qVZGpJsIDnpI9aVBVGM07GostGf3fLJ3DyQCjHkRsqO67i+2dtOD+CAguu8hZMdCrg1O fGutfI603UtT97F5cnxmqei0NdFf2s3gHfq1uhO2zUOm+V8UWVhImOR0wsEreK4GBOxX SlAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766589943; x=1767194743; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=vQGh0l206MdToCjytCGMmdsOnEQoIAlyoUIlLQmPYxQ=; b=ARRKRI8S7KJiOKl4bdJEAjgCditDBB4GMRs0MgdLRhPBnpS5B9DZEHIrrlx7AQ202a BuVxXc+EOtuk9HgL8RsRC8w2fRC4TgvTqDQ05GrpT58k+uajfb2hOk0Js07icNZ7dShq 6uW69x5p+Cnm86B5hufI6/UWP6TaclBOw2u9N2CXqfbO7pWvZAwofBHaxQ6aVcJzbLy0 3LOkri2Ye2v+7ttX/8uodYWkrvpgMjOndWoHv1ATvJBu4eTspgjZSokUqWaonLpqu404 bMkZX2DzlsPgZO84AeUQIOHR79Hdi7aN2AuNHagzIsJs3QVSCUHmwf6Vpe+Bp2ZWPt0m onBw== X-Gm-Message-State: AOJu0YydgSs1J2WteJyy7K1Q8LFeNUJyui2rVRN4UQQyLc96WuP9y9s8 DFtdWSjy//YmaAawMfURxliNH/6jKtO5AVLrBIrIWlX38JL+194OvglfJJvM9DtTkTePBfnFgkz 7aP2I4Rg= X-Gm-Gg: AY/fxX42MmB1WRw8qPeSe+QyaEwPS2ZEowBY0O40M6X7Bi4kzF997zYyEzPcX0hzXSJ jpPgLH+wjJ7xMSE7gzQF7+Zyojds+KV13/mPabIIJVs8QYnh+X7T3tPdFotVZC0/FAs1RjL/VHU HkAodSberUP8ooRKlK88EFybDHs3yR8KQvGfD4sfY26YtZyZmn5YBWrtW0qxiVRibwDZucuHSC1 88B5MD8Apkx2Jly1eKZVUHwXtKROpxMoSHKiz2WyluEimWLzuKPfODWCPPFnQnzXvX7Fu9+pB5c glYbYmCdq7jUO9a4pr/HMux4PPZpHYPsl1962+jNbo+T4QaMsEQc494gEVmCFWpD/2hKAUjeiby cR19O16jV1JmVzKUoJwmv5RRqrEzg9mCwp4TYoN88WUU8eL5z+hE0DyTuYX9vCpH2VoPDleXFG8 5oSQhb15Da2kD8D8WZv1VtbPHuxqTUl2yvqfUaNZarq7LywiDL5wrMmoU= X-Google-Smtp-Source: AGHT+IHmC4PIhEocvAh29+V51V8ZadpUapvjzKheUN9zYAad4COpDKYPq8P0Q2HxSt24xF4yadrmUA== X-Received: by 2002:a17:907:c1b:b0:b6d:67b0:ca0b with SMTP id a640c23a62f3a-b803725c920mr1896452666b.61.1766589943409; Wed, 24 Dec 2025 07:25:43 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Pierrick Bouvier , Peter Xu , Richard Henderson , Manos Pitsidianakis , Anton Johansson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , David Hildenbrand Subject: [PATCH v3 22/25] system: Allow restricting the legacy DEVICE_NATIVE_ENDIAN definition Date: Wed, 24 Dec 2025 16:22:05 +0100 Message-ID: <20251224152210.87880-23-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251224152210.87880-1-philmd@linaro.org> References: <20251224152210.87880-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 (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=2a00:1450:4864:20::534; envelope-from=philmd@linaro.org; helo=mail-ed1-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=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: 1766589962421158500 Guard the native endian definition we want to remove by surrounding it with TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API #ifdef'ry. Once a target gets cleaned we'll set the definition in the target config, then the target won't be able to use the legacy API anymore. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- include/exec/cpu-common.h | 2 ++ system/memory-internal.h | 2 ++ 2 files changed, 4 insertions(+) diff --git a/include/exec/cpu-common.h b/include/exec/cpu-common.h index e0be4ee2b8f..f4961a20911 100644 --- a/include/exec/cpu-common.h +++ b/include/exec/cpu-common.h @@ -39,7 +39,9 @@ void tcg_iommu_init_notifier_list(CPUState *cpu); void tcg_iommu_free_notifier_list(CPUState *cpu); =20 enum device_endian { +#ifndef TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API DEVICE_NATIVE_ENDIAN, +#endif DEVICE_BIG_ENDIAN, DEVICE_LITTLE_ENDIAN, }; diff --git a/system/memory-internal.h b/system/memory-internal.h index 46f758fa7e4..5f0524756eb 100644 --- a/system/memory-internal.h +++ b/system/memory-internal.h @@ -41,9 +41,11 @@ void mtree_print_dispatch(struct AddressSpaceDispatch *d, /* returns true if end is big endian. */ static inline bool devend_big_endian(enum device_endian end) { +#ifndef TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API if (end =3D=3D DEVICE_NATIVE_ENDIAN) { return target_big_endian(); } +#endif return end =3D=3D DEVICE_BIG_ENDIAN; } =20 --=20 2.52.0 From nobody Mon Feb 9 04:08:23 2026 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=1766589978; cv=none; d=zohomail.com; s=zohoarc; b=DnUDUz8h+8xTwwvsqImlTNgd5YZcKU5za8RhtTERfYmP+76ViEEBAIeL6nxJUAx9qRDdq604aG3yi1zdcT/Uw70lVNHAnTtPFUhje608drDumHsDkAjEtrK9gzbAVpT96YsVFGoOlXMOBVwj2bXct7jngWaRsSltwLJMGFfvgpc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766589978; h=Content-Type: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=xSaQ9Qe9gNNW74tyZulPjxgdKifD8+Rh/MPoJOBFnM8=; b=Ekq9p/ngyUpQD9ivnamj6Ji76qUNQNoBwFYdUhrVyOrnTPxjxroGud2AaNPx2VedfxtXqHUwGCZIpZKGlmTI6U6z719/EqFoJL1LsVyeNY+28F1c3cR8Qjt5oVPS3BOBdQRoFxh2X49i/6m8DPCiMTQBzvLY/q7TneoyLXtLyBs= 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 1766589978295198.76235722961292; Wed, 24 Dec 2025 07:26:18 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vYQkS-00086G-TP; Wed, 24 Dec 2025 10:26:01 -0500 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 1vYQkQ-0007s9-T9 for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:25:58 -0500 Received: from mail-ed1-x535.google.com ([2a00:1450:4864:20::535]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vYQkP-0005Dj-0C for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:25:58 -0500 Received: by mail-ed1-x535.google.com with SMTP id 4fb4d7f45d1cf-64b8e5d1611so7292562a12.3 for ; Wed, 24 Dec 2025 07:25:56 -0800 (PST) Received: from localhost.localdomain (188.171.88.92.rev.sfr.net. [92.88.171.188]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b8037f519c0sm1771545366b.71.2025.12.24.07.25.51 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 24 Dec 2025 07:25:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1766589955; x=1767194755; 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=xSaQ9Qe9gNNW74tyZulPjxgdKifD8+Rh/MPoJOBFnM8=; b=hkndrOPVRp3k1mIL/I0pVWhRuxDCTBm/EL5QunOvcpj21FEb7yAosXNGJBqXgGprBY JVFk2CjygN6613BXyUEUiRyklkUMRoojmitSHiDzCyrP1N+lOnDcZlo6VrXIP0pYEjN9 CyMSzXC7GShZuJc3QwMIV4JZFSbWbDK8/9G1ZOW0rzXHOnTsXQ53F4qlMH2Sv8aQabz6 liYX+O2uVpCJ1VaXBBISSles4e73b8Uflm3I78bWxYnP6h75adB92bHBLXs0TDMr+hk3 BM0pS3V1CGDc8/0LcHacu2ZGZ/LGIB/KozmyxG+XPKtbm5HYeelHYQKQ9tPOqljLKml7 DcRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766589955; x=1767194755; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=xSaQ9Qe9gNNW74tyZulPjxgdKifD8+Rh/MPoJOBFnM8=; b=Owkr29RqvParFdbIClZIsf0UGbwV2KBVX68aQcIJS7t6o1Ssj+DwAD9S4L+z/2Ba1i 5M9JmoILhnyOqsb5AvL1DL/QIB9NXbGQsLBbAM5/XYRyQuq/yLceEp3lSjybHX46zFjQ vnwnecKcJGTlDcHub+XmDhJai2MmRFOvpJxdtVtW6hMPNIBqtc0qm/S+xNlqKSWOVpNl Sy8dvzGocyP6geN9uHghvefsUkhmj3wWFjW1v3NueapEEDkaSsr2THxFD2p/TRV1hkEQ nnHQwDaN02NdR52k5eJxgaE90XX4ptDfM8roVKpuxs+ILSrZEyZzZwKUJWo/Q6n0vtJn MMFQ== X-Gm-Message-State: AOJu0YxKm4XSab1WRnhAZKfd5pPwtxxt6+MczPSgqTXcWpavdX3sj3Te +DECeFNI1kQ2M9TW14/+KvGbHz/8v6rHDWs5GNOggVmf4yFJix8FII1zTDbM9Avr3gurC0+g4OJ FjFl93Jw= X-Gm-Gg: AY/fxX6Zj1Dy7QRP5hhrNvhdosO69htHd9tL6iDVBTOcvTUvxcAPOTuccmMSxItQi4a /7DnamvjnZ95CafcszJjJXD0MzAHOksuftQJhMWvPJau6pYwhytP2KNiZdlYKQTaxGbOuCk/SYV VeRJIvC8eKHlM1+aZk0lROQmat8oX/UiCaSFtII7/ow3Ari/lpPWFRYIfGzwkno4MCSTmglHm+4 iMbI5FpWUQ2+PkZ95OYI2zKdvXFODpzJ/DzKo5UOkBLy4sQTPRXg41Nos3fN3iX+uPPmOnIaswp 3nJa5yMANqyb+QtwUSqxM78KyF5hCTObijVjHITNac3oBz42l4z3phVPzR5dTMIXhePMX+y+vX0 J9VDxFO8Dp1hvmweF4oEIkMnTDOeOQBR85+SJNTR/82mjZ1rdn56W1/DCMDy9EjLSps2snThl79 sfjPPeq14A9iLFAI1srtUa6IdiHIAZHmgp9/ylCoXlacecgz/CCyrxwz0= X-Google-Smtp-Source: AGHT+IFkbLr7aY1nUOqUyXb6DfAsCWmmWLGM/P+M6MBBkPouRZ+JQvcKtbXY6DooiBbooHfGQmxCAQ== X-Received: by 2002:a17:907:3fa7:b0:b73:6f8c:6127 with SMTP id a640c23a62f3a-b8036f113femr2073226166b.12.1766589955159; Wed, 24 Dec 2025 07:25:55 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Pierrick Bouvier , Peter Xu , Richard Henderson , Manos Pitsidianakis , Anton Johansson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Peter Maydell , Steven Lee , Troy Lee , Jamin Lin , Andrew Jeffery , Joel Stanley , Fabiano Rosas , Laurent Vivier , Gerd Hoffmann , Nicholas Piggin , Aditya Gupta , Glenn Miles , Gautam Menghani , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Ani Sinha , qemu-arm@nongnu.org, qemu-ppc@nongnu.org Subject: [PATCH v3 23/25] tests/qtest: Remove unnecessary 'qemu/bswap.h' include Date: Wed, 24 Dec 2025 16:22:06 +0100 Message-ID: <20251224152210.87880-24-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251224152210.87880-1-philmd@linaro.org> References: <20251224152210.87880-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 (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=2a00:1450:4864:20::535; envelope-from=philmd@linaro.org; helo=mail-ed1-x535.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1766589980566158500 None of these files use API declared in "qemu/bswap.h", remove the unnecessary inclusion. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: C=C3=A9dric Le Goater Reviewed-by: Manos Pitsidianakis Reviewed-by: Richard Henderson --- tests/qtest/pnv-xive2-common.h | 1 - tests/qtest/aspeed_smc-test.c | 1 - tests/qtest/ast2700-smc-test.c | 1 - tests/qtest/libqos/fw_cfg.c | 1 - tests/qtest/libqos/i2c-omap.c | 1 - tests/qtest/pnv-spi-seeprom-test.c | 1 - tests/qtest/vmcoreinfo-test.c | 1 - 7 files changed, 7 deletions(-) diff --git a/tests/qtest/pnv-xive2-common.h b/tests/qtest/pnv-xive2-common.h index 2077c05ebc7..3b842274243 100644 --- a/tests/qtest/pnv-xive2-common.h +++ b/tests/qtest/pnv-xive2-common.h @@ -15,7 +15,6 @@ #define PPC_BITMASK(bs, be) ((PPC_BIT(bs) - PPC_BIT(be)) | PPC_BIT(bs)) #define PPC_BITMASK32(bs, be) ((PPC_BIT32(bs) - PPC_BIT32(be)) | \ PPC_BIT32(bs)) -#include "qemu/bswap.h" #include "hw/intc/pnv_xive2_regs.h" #include "hw/ppc/xive_regs.h" #include "hw/ppc/xive2_regs.h" diff --git a/tests/qtest/aspeed_smc-test.c b/tests/qtest/aspeed_smc-test.c index 50a87e62500..39af1df0ed7 100644 --- a/tests/qtest/aspeed_smc-test.c +++ b/tests/qtest/aspeed_smc-test.c @@ -24,7 +24,6 @@ */ =20 #include "qemu/osdep.h" -#include "qemu/bswap.h" #include "libqtest-single.h" #include "qemu/bitops.h" #include "aspeed-smc-utils.h" diff --git a/tests/qtest/ast2700-smc-test.c b/tests/qtest/ast2700-smc-test.c index 62d538d8a3a..33fc47230ee 100644 --- a/tests/qtest/ast2700-smc-test.c +++ b/tests/qtest/ast2700-smc-test.c @@ -7,7 +7,6 @@ */ =20 #include "qemu/osdep.h" -#include "qemu/bswap.h" #include "libqtest-single.h" #include "qemu/bitops.h" #include "aspeed-smc-utils.h" diff --git a/tests/qtest/libqos/fw_cfg.c b/tests/qtest/libqos/fw_cfg.c index 0ab3959171b..8611f648c14 100644 --- a/tests/qtest/libqos/fw_cfg.c +++ b/tests/qtest/libqos/fw_cfg.c @@ -17,7 +17,6 @@ #include "malloc-pc.h" #include "libqos-malloc.h" #include "../libqtest.h" -#include "qemu/bswap.h" #include "hw/nvram/fw_cfg.h" =20 void qfw_cfg_select(QFWCFG *fw_cfg, uint16_t key) diff --git a/tests/qtest/libqos/i2c-omap.c b/tests/qtest/libqos/i2c-omap.c index 6f98f54820b..71f70c64f85 100644 --- a/tests/qtest/libqos/i2c-omap.c +++ b/tests/qtest/libqos/i2c-omap.c @@ -10,7 +10,6 @@ #include "i2c.h" =20 =20 -#include "qemu/bswap.h" #include "../libqtest.h" =20 enum OMAPI2CRegisters { diff --git a/tests/qtest/pnv-spi-seeprom-test.c b/tests/qtest/pnv-spi-seepr= om-test.c index 8033261758b..44e0b92730b 100644 --- a/tests/qtest/pnv-spi-seeprom-test.c +++ b/tests/qtest/pnv-spi-seeprom-test.c @@ -7,7 +7,6 @@ */ #include "qemu/osdep.h" #include "libqtest.h" -#include "qemu/bswap.h" #include "hw/ssi/pnv_spi_regs.h" #include "pnv-xscom.h" =20 diff --git a/tests/qtest/vmcoreinfo-test.c b/tests/qtest/vmcoreinfo-test.c index dcf3b5ae058..0110dcceffa 100644 --- a/tests/qtest/vmcoreinfo-test.c +++ b/tests/qtest/vmcoreinfo-test.c @@ -16,7 +16,6 @@ #include "libqtest.h" #include "standard-headers/linux/qemu_fw_cfg.h" #include "libqos/fw_cfg.h" -#include "qemu/bswap.h" #include "hw/misc/vmcoreinfo.h" =20 static void test_vmcoreinfo_write_basic(void) --=20 2.52.0 From nobody Mon Feb 9 04:08:23 2026 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=1766589980; cv=none; d=zohomail.com; s=zohoarc; b=TD56VTCY6wa3zYNTgOKZ6aQqfNb7fs6rUm/pFWDT0yxvGlKy5e7ILMZqo1yL0I82mRtm6rVy9rwj0B0650zMCydgViixFhJ+gfqk/juE58wk8EH4lcmV2An8LR2td4ZBSq5/d0DnVIkatPJYZS8AA+tHTh9VL8cZAUvgqmLydK4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766589980; h=Content-Type: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=Dy6/NslyxJqRDTVGf5fd5Uvb/GCGYxxTwE0EkQ6kp1o=; b=jvRipVX4vpt58eCUMkdna2gS+7Z8c5yrcyGFFhXjVfTdR/CoKxz7sAV8Yrg9m/xD8mV6TV5/X7dvplEYliw52SodrBtysvXXoBVEm2PwD8SRUrCLr08As1Q58p/SL1+xbcaXmdXlGW1FljEnJHmywzetMWgSpThr6Dg/RblM/WU= 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 1766589980429144.5652016151355; Wed, 24 Dec 2025 07:26:20 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vYQkc-0000pZ-Us; Wed, 24 Dec 2025 10:26:10 -0500 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 1vYQka-0000XC-77 for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:26:08 -0500 Received: from mail-ej1-x634.google.com ([2a00:1450:4864:20::634]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vYQkY-0005G5-9d for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:26:07 -0500 Received: by mail-ej1-x634.google.com with SMTP id a640c23a62f3a-b8018eba13cso843699066b.1 for ; Wed, 24 Dec 2025 07:26:05 -0800 (PST) Received: from localhost.localdomain (188.171.88.92.rev.sfr.net. [92.88.171.188]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b8037a5c4dfsm1788823966b.14.2025.12.24.07.26.02 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 24 Dec 2025 07:26:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1766589964; x=1767194764; 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=Dy6/NslyxJqRDTVGf5fd5Uvb/GCGYxxTwE0EkQ6kp1o=; b=G8bFoBvwiWhK/fD112TOmPnpXMLr/mn5g2LtNSnzvE2E6kghcXQq15uSQdhHVnE3/e jAbWkV083WpghONTsj7qUchfU9aMScnHUOOH8CB5FFib2X2HguchkZdNCjbGFvFjP/ua D4lB82K8hAo7bUhs7gCmvS6CkZ6Tbpy/eDdLzcoCpkwo9LMVKWumw8ak89M1IjdcOzYa qIMo/WS33UdSCLSImTtiUJWxYaYJ+aa2LRID/Al4CUm0mwxdEsjN9+HSuKrbhGVg0auX sAe/EQTQ7/GUU1/gUZhrXPGfOv0Q/uv7peUduP/9bopjWKfZbNjg50G/uwb7FYWehqf2 gQdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766589964; x=1767194764; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Dy6/NslyxJqRDTVGf5fd5Uvb/GCGYxxTwE0EkQ6kp1o=; b=YZd34eT70rsU6o64R2r+CGZ2vJEs1uJwjnMed0BX8vRmQ+odV12ZsWxQLJEYtn9NAa jvf3jLCPLEdg2OIW3eO2h4OOmfJNbsX0jULpsSgJSy++g8Y8DDgSl8CodNLInwxrAZJP Q2i6d6mtf+cKCtubsstimWnol09qUhBaq9o4CWEN6pt6dl+vTLmtrSdwXVfC+5Uzy55E +zkg1n0nCSNkgRfCgO9uF1JLyeoqiwIxf5qe1LxtEaTm81mGIVdoqv4jewDuXeLmOgOf CTXx6NlQUJpqxZPaZuNcUACCtit/QJbugmpswqlQRKCbxT2Ab6ixoHGN6+TxU3UU9Pvk djYg== X-Gm-Message-State: AOJu0YyJjQ+kAmGcQ2cb8lM8m9dfPQ1IDHkqOr6PunjXr4uAMrpzArn1 9Rh2AueMufOVoEaGtfi/wBwyC2zQg3FslIY891rPvmbDH6FJEq8fIJFdtBAE2LbKPnAN/qmaSEq vuYl4xr0= X-Gm-Gg: AY/fxX4D3t7aY2BYmWn71NDdWxlF0lUMJ3HdDCe92atSM9IIQh5Amx4yzHXPGGJDUtp lpHRwTx8EZe8WBaBoC5jxoFVdrIxuiWPWDKttXQYBMURMy1BkuFS/eJfy/5FeOf1YpLTqPnYfaU TSlx03mtV4FDzt2c8K8ydbvWLNgXV3LFfD6WITTm+AyAwqXjbVYk5k/e54qOOVbNfjfEP4TKbos QBjA18+lP08cwDUeT0FJZYv4tDmh6ET5Y6qy1zw4b1YhaenWkGBRnYlJIIzwYE6kk/kolSRIQgv hV0O3cwwKQ8/O3ZtUbFhA8dssu1F9/lbkwVhRcSqjA4mufrM3/R2NRS9C2A/ZfM5AIT4+u45zZ0 d1JVvrwlGVQ0iUvRwsqM/HXH3aMmltl+x3fSoHaF16hFFjpn0QUBhLIIQc7U3qFylYC92iY3GCp +2e4qLSwG9FTSJtqjWkf8G/IcGDoHyIB1tvwrqkF+4NQePPe0/L6JM87w= X-Google-Smtp-Source: AGHT+IHxwwBYhJsuxjucfTRtDi1OzVw9yyqXlo5ViKDFqq6PVVZTXEn+aTNJeYFIZANbWyz1N2RmeA== X-Received: by 2002:a17:907:3fa2:b0:b72:5fac:d05a with SMTP id a640c23a62f3a-b80371790a3mr1888464166b.37.1766589964200; Wed, 24 Dec 2025 07:26:04 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Pierrick Bouvier , Peter Xu , Richard Henderson , Manos Pitsidianakis , Anton Johansson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , David Hildenbrand , Fabiano Rosas , Laurent Vivier Subject: [PATCH v3 24/25] system/ioport: Declare x86-specific I/O port in little-endian order Date: Wed, 24 Dec 2025 16:22:07 +0100 Message-ID: <20251224152210.87880-25-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251224152210.87880-1-philmd@linaro.org> References: <20251224152210.87880-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 (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=2a00:1450:4864:20::634; envelope-from=philmd@linaro.org; helo=mail-ej1-x634.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=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: 1766589982480158500 X86 in/out port (related to ISA bus) uses little endianness: - enforce little endianness in x86 cpu_in/out() accessors, - serialize QTest in/out port accesses as little-endian. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Fabiano Rosas Reviewed-by: Richard Henderson --- system/ioport.c | 10 +++++----- tests/qtest/endianness-test.c | 10 ++++++---- tests/qtest/libqtest.c | 13 +++++++++---- 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/system/ioport.c b/system/ioport.c index 4f96e9119fc..35ad256c940 100644 --- a/system/ioport.c +++ b/system/ioport.c @@ -55,7 +55,7 @@ static void unassigned_io_write(void *opaque, hwaddr addr= , uint64_t val, const MemoryRegionOps unassigned_io_ops =3D { .read =3D unassigned_io_read, .write =3D unassigned_io_write, - .endianness =3D DEVICE_NATIVE_ENDIAN, + .endianness =3D DEVICE_LITTLE_ENDIAN, }; =20 void cpu_outb(uint32_t addr, uint8_t val) @@ -70,7 +70,7 @@ void cpu_outw(uint32_t addr, uint16_t val) uint8_t buf[2]; =20 trace_cpu_out(addr, 'w', val); - stw_p(buf, val); + stw_le_p(buf, val); address_space_write(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, buf, 2); } @@ -80,7 +80,7 @@ void cpu_outl(uint32_t addr, uint32_t val) uint8_t buf[4]; =20 trace_cpu_out(addr, 'l', val); - stl_p(buf, val); + stl_le_p(buf, val); address_space_write(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, buf, 4); } @@ -101,7 +101,7 @@ uint16_t cpu_inw(uint32_t addr) uint16_t val; =20 address_space_read(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, bu= f, 2); - val =3D lduw_p(buf); + val =3D lduw_le_p(buf); trace_cpu_in(addr, 'w', val); return val; } @@ -112,7 +112,7 @@ uint32_t cpu_inl(uint32_t addr) uint32_t val; =20 address_space_read(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, bu= f, 4); - val =3D ldl_p(buf); + val =3D ldl_le_p(buf); trace_cpu_in(addr, 'l', val); return val; } diff --git a/tests/qtest/endianness-test.c b/tests/qtest/endianness-test.c index 222d116fae2..2b2f92099d0 100644 --- a/tests/qtest/endianness-test.c +++ b/tests/qtest/endianness-test.c @@ -65,8 +65,9 @@ static uint16_t isa_inw(QTestState *qts, const TestCase *= test, uint16_t addr) value =3D qtest_inw(qts, addr); } else { value =3D qtest_readw(qts, test->isa_base + addr); + value =3D test->bswap ? bswap16(value) : value; } - return test->bswap ? bswap16(value) : value; + return value; } =20 static uint32_t isa_inl(QTestState *qts, const TestCase *test, uint16_t ad= dr) @@ -76,8 +77,9 @@ static uint32_t isa_inl(QTestState *qts, const TestCase *= test, uint16_t addr) value =3D qtest_inl(qts, addr); } else { value =3D qtest_readl(qts, test->isa_base + addr); + value =3D test->bswap ? bswap32(value) : value; } - return test->bswap ? bswap32(value) : value; + return value; } =20 static void isa_outb(QTestState *qts, const TestCase *test, uint16_t addr, @@ -93,10 +95,10 @@ static void isa_outb(QTestState *qts, const TestCase *t= est, uint16_t addr, static void isa_outw(QTestState *qts, const TestCase *test, uint16_t addr, uint16_t value) { - value =3D test->bswap ? bswap16(value) : value; if (test->isa_base =3D=3D -1) { qtest_outw(qts, addr, value); } else { + value =3D test->bswap ? bswap16(value) : value; qtest_writew(qts, test->isa_base + addr, value); } } @@ -104,10 +106,10 @@ static void isa_outw(QTestState *qts, const TestCase = *test, uint16_t addr, static void isa_outl(QTestState *qts, const TestCase *test, uint16_t addr, uint32_t value) { - value =3D test->bswap ? bswap32(value) : value; if (test->isa_base =3D=3D -1) { qtest_outl(qts, addr, value); } else { + value =3D test->bswap ? bswap32(value) : value; qtest_writel(qts, test->isa_base + addr, value); } } diff --git a/tests/qtest/libqtest.c b/tests/qtest/libqtest.c index 622464e3656..132aa511375 100644 --- a/tests/qtest/libqtest.c +++ b/tests/qtest/libqtest.c @@ -31,6 +31,7 @@ #include "libqtest.h" #include "libqmp.h" #include "qemu/accel.h" +#include "qemu/bswap.h" #include "qemu/ctype.h" #include "qemu/cutils.h" #include "qemu/exit-with-parent.h" @@ -1190,12 +1191,12 @@ void qtest_outb(QTestState *s, uint16_t addr, uint8= _t value) =20 void qtest_outw(QTestState *s, uint16_t addr, uint16_t value) { - qtest_out(s, "outw", addr, value); + qtest_out(s, "outw", addr, qtest_big_endian(s) ? bswap16(value) : valu= e); } =20 void qtest_outl(QTestState *s, uint16_t addr, uint32_t value) { - qtest_out(s, "outl", addr, value); + qtest_out(s, "outl", addr, qtest_big_endian(s) ? bswap32(value) : valu= e); } =20 static uint32_t qtest_in(QTestState *s, const char *cmd, uint16_t addr) @@ -1220,12 +1221,16 @@ uint8_t qtest_inb(QTestState *s, uint16_t addr) =20 uint16_t qtest_inw(QTestState *s, uint16_t addr) { - return qtest_in(s, "inw", addr); + uint16_t v =3D qtest_in(s, "inw", addr); + + return qtest_big_endian(s) ? bswap16(v) : v; } =20 uint32_t qtest_inl(QTestState *s, uint16_t addr) { - return qtest_in(s, "inl", addr); + uint32_t v =3D qtest_in(s, "inl", addr); + + return qtest_big_endian(s) ? bswap32(v) : v; } =20 static void qtest_write(QTestState *s, const char *cmd, uint64_t addr, --=20 2.52.0 From nobody Mon Feb 9 04:08:23 2026 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=1766589993; cv=none; d=zohomail.com; s=zohoarc; b=C0RP7t19onES0X5Bn+L8xr8IIRVdi5V9cl9pkXUuseKmV6G1YaZ8D7EPe/WVsbTkKNEjMCLebWqJx/Lne/5CyLiBCmzQ6hRF4D9Z114p7P0QTvqf4iypafcYe12J/q8hc1z+jGDiJIUArJ1bKeQJOiogRmdd+4zTk4mlYxVXKAI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766589993; h=Content-Type: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=ciHvWMdrW5Sv2qvr8WHVSOrW+TYMJuHWb7J/Tww5uQw=; b=iuDUDWMoBAyWUP7UbHBvD+h/t4uCddiuW5Xx+u5c8tZRVwW6jML6IHERkprt6l62hqkFjCCzO6w/sBPxqkmtjKeNuuXbW0H3O5C/w8a6STfoanTDZDONrJdlWPdVdPQQ/r65wxRYHT33xsHqBBqGD3ckluqrW7zRZTB5syG/9GU= 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 176658999331086.77611110600094; Wed, 24 Dec 2025 07:26:33 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vYQkn-0001Tv-Hi; Wed, 24 Dec 2025 10:26:23 -0500 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 1vYQkk-0001HZ-04 for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:26:18 -0500 Received: from mail-ed1-x531.google.com ([2a00:1450:4864:20::531]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vYQkh-0005Hr-8b for qemu-devel@nongnu.org; Wed, 24 Dec 2025 10:26:16 -0500 Received: by mail-ed1-x531.google.com with SMTP id 4fb4d7f45d1cf-64d30dc4ed7so6051665a12.0 for ; Wed, 24 Dec 2025 07:26:14 -0800 (PST) Received: from localhost.localdomain (188.171.88.92.rev.sfr.net. [92.88.171.188]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b80620c4520sm1231188266b.28.2025.12.24.07.26.11 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 24 Dec 2025 07:26:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1766589973; x=1767194773; 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=ciHvWMdrW5Sv2qvr8WHVSOrW+TYMJuHWb7J/Tww5uQw=; b=QWDP2rAMMOeFcm1MF5qq6YodrXLCXklSPZeMLm0Gz9xeHe2vabUKyRs81AXt4O4/95 Vm1QHTkQIIZeharHsRbiD2VGksm5YhUxjnKXgNqZU5Q1oTo5eIbXa+edH2i777ujafkL Jx2kUiuv5UTQR++oHB//GIlz0wEudNtQrnT47koXJBS7JeyP0UsU0BdpGeMVullWLdL7 uxgeBO1A54FZ/k/wyXuQQ0dvM7Ux/W+P52i6v0DexARC0y3kCkI1I4mz/0oBcdL8lYut rE99Fwyiwzu+WLqL3NNJbtPRPcFoFbhogRyaD6HiCiB08LG1fTw0xOwi6nngm67gffLS MnHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766589973; x=1767194773; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ciHvWMdrW5Sv2qvr8WHVSOrW+TYMJuHWb7J/Tww5uQw=; b=UcvJhl+BhfXZBng6E1KU6mTkwvzSP0yxj4M/MqP7XuMHkqw8BGoY79ZEBTqQFqDKVr N724fiZ7H9jsIA1sUi+/du+YCUUComeSvBxRFBXrPxsxxPpYxT7Ac8scuyW0OMlzCNSX zMrwJBEVd+Bmmrraac4THSte2AJs9zn1OiShz9nVlEeLcymRtdKGamRC0TAMxHZQqDuG gqU3Gwu3uh2O4yIIWolZi7xzMx7M8JFbkKyCHEjCGx5vkkcl4GzC8g00TLeq8b6Nlu7U 8zLyUERhCuk7RMB+B3Wsnnf37/dY5Aywpu+H/zJFY+HYKz6hFxRskjm90h9ZNWbuByFG XqUA== X-Gm-Message-State: AOJu0YyieaE3TCyajYkEmkL0zuLpQmHk7z88kWquXy+pontBN7nZBPXI g3drqg8XNho8T5jfuPAIjePjsUIAAj+0sAQtmNZDjZ0EZgJrDEDGmaH5poqz0oaEaNrLyk8OO1/ ksBTxwIw= X-Gm-Gg: AY/fxX56J4uq0NgZY+Rh/8fwWfRhx1madKdMT9hCuVCR+mtRjEEBY5MmOEzrQN/Tx9N I3HCHhGEoEJCRU5d1t2HkrT+VB9GnVW1xbjocb1Z/zxTv1+umCchJLYjk35NxEeDbfZ94LG9g0+ K7ZP11IINdknl+2SCNQ/F1dm1DdAkJ5hzd6b5voIp2sS4HbTW+bUFU/ejI8DjbTWTdntfinIFPC bfWzAAdx+r8BogeNRuvF3MK4uDiYIgX3t2rM5QodLVMbzE7MQnoivBDLSlFhO+ckru/SrkMhFb2 qtgGTcA7XZubwp37lE//UpTb5ng9plcPFAQijkPLMG8LjEFWIYuz/5il2/LTBPBssAUjEuCNnUN 9QIPt8sU9jssBrqPoe5MXb1sF0EbQoDqV7yhrlicD9jM0GZcD3h4YTtW2iAzCI10L/Za3Lbvmoe at9iUmzMa3QCW5/5uQ2BcbKXuFcGiKgFxLKR3Q1PysXSidL1Zl9GaCwh0= X-Google-Smtp-Source: AGHT+IGEBh2/gMyJLa7wUw2/GaVeqYlmAeW0ALlO0G9kMvdQK/loO8X7EiXDGTY6phUO/69UMsujTQ== X-Received: by 2002:a17:907:3e1f:b0:b80:3346:496 with SMTP id a640c23a62f3a-b80371529aemr1767972966b.42.1766589972983; Wed, 24 Dec 2025 07:26:12 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Pierrick Bouvier , Peter Xu , Richard Henderson , Manos Pitsidianakis , Anton Johansson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , David Hildenbrand Subject: [PATCH v3 25/25] system/ioport: Do not open-code address_space_ld/st_le() methods Date: Wed, 24 Dec 2025 16:22:08 +0100 Message-ID: <20251224152210.87880-26-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251224152210.87880-1-philmd@linaro.org> References: <20251224152210.87880-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 (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=2a00:1450:4864:20::531; envelope-from=philmd@linaro.org; helo=mail-ed1-x531.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: 1766589994574158500 When a variable size is known, prefer the address_space_ld/st() API. Keep address_space_read/write() for blobs. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- system/ioport.c | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/system/ioport.c b/system/ioport.c index 35ad256c940..5cc71906b9f 100644 --- a/system/ioport.c +++ b/system/ioport.c @@ -61,58 +61,50 @@ const MemoryRegionOps unassigned_io_ops =3D { void cpu_outb(uint32_t addr, uint8_t val) { trace_cpu_out(addr, 'b', val); - address_space_write(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, - &val, 1); + address_space_stb(&address_space_io, addr, val, + MEMTXATTRS_UNSPECIFIED, NULL); } =20 void cpu_outw(uint32_t addr, uint16_t val) { - uint8_t buf[2]; - trace_cpu_out(addr, 'w', val); - stw_le_p(buf, val); - address_space_write(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, - buf, 2); + address_space_stw_le(&address_space_io, addr, val, + MEMTXATTRS_UNSPECIFIED, NULL); } =20 void cpu_outl(uint32_t addr, uint32_t val) { - uint8_t buf[4]; - trace_cpu_out(addr, 'l', val); - stl_le_p(buf, val); - address_space_write(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, - buf, 4); + address_space_stl_le(&address_space_io, addr, val, + MEMTXATTRS_UNSPECIFIED, NULL); } =20 uint8_t cpu_inb(uint32_t addr) { uint8_t val; =20 - address_space_read(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, - &val, 1); + val =3D address_space_ldub(&address_space_io, addr, + MEMTXATTRS_UNSPECIFIED, NULL); trace_cpu_in(addr, 'b', val); return val; } =20 uint16_t cpu_inw(uint32_t addr) { - uint8_t buf[2]; uint16_t val; =20 - address_space_read(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, bu= f, 2); - val =3D lduw_le_p(buf); + val =3D address_space_lduw_le(&address_space_io, addr, + MEMTXATTRS_UNSPECIFIED, NULL); trace_cpu_in(addr, 'w', val); return val; } =20 uint32_t cpu_inl(uint32_t addr) { - uint8_t buf[4]; uint32_t val; =20 - address_space_read(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, bu= f, 4); - val =3D ldl_le_p(buf); + val =3D address_space_ldl_le(&address_space_io, addr, + MEMTXATTRS_UNSPECIFIED, NULL); trace_cpu_in(addr, 'l', val); return val; } --=20 2.52.0