{"id":2175765,"url":"http://patchwork.ozlabs.org/api/1.0/covers/2175765/?format=json","project":{"id":14,"url":"http://patchwork.ozlabs.org/api/1.0/projects/14/?format=json","name":"QEMU Development","link_name":"qemu-devel","list_id":"qemu-devel.nongnu.org","list_email":"qemu-devel@nongnu.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20251218212814.61445-1-philmd@linaro.org>","date":"2025-12-18T21:28:10","name":"[0/4] system/memory: Allow restricting legacy 'native-endian' APIs","submitter":{"id":85046,"url":"http://patchwork.ozlabs.org/api/1.0/people/85046/?format=json","name":"Philippe Mathieu-Daudé","email":"philmd@linaro.org"},"series":[{"id":485917,"url":"http://patchwork.ozlabs.org/api/1.0/series/485917/?format=json","date":"2025-12-18T21:28:11","name":"system/memory: Allow restricting legacy 'native-endian' APIs","version":1,"mbox":"http://patchwork.ozlabs.org/series/485917/mbox/"}],"headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=Ka66YiLw;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists.gnu.org (lists.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4dXP2D6233z1y2r\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 19 Dec 2025 08:29:40 +1100 (AEDT)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1vWLXy-0001DE-Hh; Thu, 18 Dec 2025 16:28:30 -0500","from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <philmd@linaro.org>) id 1vWLXq-0001Al-Nx\n for qemu-devel@nongnu.org; Thu, 18 Dec 2025 16:28:22 -0500","from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <philmd@linaro.org>) id 1vWLXo-0007D8-W0\n for qemu-devel@nongnu.org; Thu, 18 Dec 2025 16:28:22 -0500","by mail-wr1-x42e.google.com with SMTP id\n ffacd0b85a97d-42fb0fc5aa4so947973f8f.1\n for <qemu-devel@nongnu.org>; Thu, 18 Dec 2025 13:28:20 -0800 (PST)","from localhost.localdomain (88-187-86-199.subs.proxad.net.\n [88.187.86.199]) by smtp.gmail.com with ESMTPSA id\n ffacd0b85a97d-4324eab2ebfsm961098f8f.40.2025.12.18.13.28.16\n (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);\n Thu, 18 Dec 2025 13:28:16 -0800 (PST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1766093298; x=1766698098; darn=nongnu.org;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:from:to:cc:subject:date:message-id:reply-to;\n bh=NSN5g1gmcQDvfqX06c2vxNvSnIv7HqynZqyCdun5704=;\n b=Ka66YiLwh2PUjPn3ypgvaTmQiRMNFg0xeNK3D3EfaLTXnfp4qfF7ulCOTTR56P9ltR\n Dlp+W8CLDOhxjMuMJypz77puqV4YIvhCcKhUHctSS76iws0jeK3v/r9+vjgUeaHdPAL8\n pc2oy6tcaWVMtVpzWdDjB0GAiksny747gMJgUPxnfu3T0dZlG2dmPawwDAJI7WSmEjVx\n 3PPtDYWdSeT7pOEggAPb/80wiHUKvHaVwgk61hHF7y2Y0pPpitle1ndVyaEAPa6qLwPX\n iyVmQT2IIMqHt0wpJQrSXsxkOrp1i9uFvvf5gNRAxi3GkX+DM91zhxEBwjVR6/6qOLrZ\n iC5Q==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1766093298; x=1766698098;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=NSN5g1gmcQDvfqX06c2vxNvSnIv7HqynZqyCdun5704=;\n b=gBdaXWnv0bdW4Ror5aAAn6F6c3nj/1hrNHDlFU0tjkV3H2GFCE8Kg0dOlwd53zDEXB\n IxRdujPfe9aWkPJZgfZDOcgmRrSn2SoXDoeO15aLVTSlNnutsAhEUFF3T7IuYH/rBx+G\n +TRsxOTXeCJkJnottz30e0Ulm7PUlovN7di0t9YS79lbZmFR4KRMUHquBGjq4IcVSKFP\n 3aoPWoSC2nhSOQjgz6cP4HAhSk/k1tJqpMAko/VkTkNGOMaY2yTJrYCTJs8MO7Wm3Taj\n Rn6CLao8UYBffqxoYXmp2NMHzOJcEU/AhfbsAs+AsUH5APWtDer3s4p47EJUEMe9jtHa\n eaog==","X-Gm-Message-State":"AOJu0YwHGrMP5EaGeE2we8XOZMRGZlyqM0W7J9Oqj2T5t06J3w9aAO1M\n MmoJ6zpvK6dwsfePQG0HFDa2TQGSiEINQ6gcjtWbmVzo34TJI4u8nVFnkOudclwKV/G4BQkgZcI\n AojkT+d8=","X-Gm-Gg":"AY/fxX6wr+nBLxiEnAcuE3Ci27JUVEG0YIE94MCSrM1TXhXQngsFTR2CosbOeMR95nY\n iJ03VIAGL96EyLrx0UGIWIBR6ZtssdbnRF0MDKCY2/wd4Vhs+0+vfQHyt2iFVlyyxwuioYeTF4g\n aY9m8srhjBzcpGrnciguquy0cc6dWFWJ7QJcylJEGiHhgsgy1g0/zv09ZiX90k8F3LTo4H+slrV\n +j1y8/zy1TDbMAp5Wye1bWDDHxO7k9ggB/5LVg2F4YgCOUFLYU73FK+xG1j/bb0fsOaJhNecaaY\n LS4VsLlgJCJI7HHOgTclGOyXJhRHMmhLkbEj1g70fwgCw4HFW3Elf0IQDC5vEIv3iRaeeoWHQHg\n RxXExaYUA6CCx0ZWv6PWbQGZI5q4CDRXCRzqvxl9gQkp0pSZJzw2lLogA0A50TzALiNAi7RyAEh\n 06BS+U0RUVO8kcUnS8PehQ7LTstMpZ+2E+pShkPgQMryEoS09ijrfVI/Kv/F24zxgF2N1EW1E=","X-Google-Smtp-Source":"\n AGHT+IE51sVWa+tGQjh0ssGMxGJFVVsnC9OVkJBkzOSrqx7ulPCpa8YpbaJMavj6FU5bxK8mD6/yOA==","X-Received":"by 2002:a05:6000:1448:b0:430:f742:fbb2 with SMTP id\n ffacd0b85a97d-4324e4cd56emr1016899f8f.19.1766093298467;\n Thu, 18 Dec 2025 13:28:18 -0800 (PST)","From":"=?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>","To":"qemu-devel@nongnu.org","Cc":"Anton Johansson <anjo@rev.ng>,\n Richard Henderson <richard.henderson@linaro.org>,\n Daniel Henrique Barboza <dbarboza@ventanamicro.com>,\n Pierrick Bouvier <pierrick.bouvier@linaro.org>, =?utf-8?q?Philippe_Mathieu-?=\n\t=?utf-8?q?Daud=C3=A9?= <philmd@linaro.org>","Subject":"[PATCH 0/4] system/memory: Allow restricting legacy 'native-endian'\n APIs","Date":"Thu, 18 Dec 2025 22:28:10 +0100","Message-ID":"<20251218212814.61445-1-philmd@linaro.org>","X-Mailer":"git-send-email 2.52.0","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"8bit","Received-SPF":"pass client-ip=2a00:1450:4864:20::42e;\n envelope-from=philmd@linaro.org; helo=mail-wr1-x42e.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,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,\n 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":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"},"content":"Have all targets set the TARGET_USE_LEGACY_NATIVE_ENDIAN_API\ndefinition, then restrict our headers to only expose legacy\n\"native\" endian declarations when this definition exists.\nThis will allow us to gradually clean the repository,\neventually removing the legacy API.\n\n(The motivation is the single-binary project).\n\nPhilippe Mathieu-Daudé (4):\n  system/memory: Use explicit endianness in ram_device::read/write()\n  system/memory: Introduce LD/ST helpers with @m suffix (for MemOp)\n  configs/targets: Introduce TARGET_USE_LEGACY_NATIVE_ENDIAN_API\n  system/memory: Restrict legacy 'native-endian' APIs\n\n docs/devel/loads-stores.rst                  | 10 +--\n configs/targets/aarch64-softmmu.mak          |  1 +\n configs/targets/alpha-softmmu.mak            |  1 +\n configs/targets/arm-softmmu.mak              |  1 +\n configs/targets/avr-softmmu.mak              |  1 +\n configs/targets/hppa-softmmu.mak             |  1 +\n configs/targets/i386-softmmu.mak             |  1 +\n configs/targets/loongarch64-softmmu.mak      |  1 +\n configs/targets/m68k-softmmu.mak             |  1 +\n configs/targets/microblaze-softmmu.mak       |  1 +\n configs/targets/microblazeel-softmmu.mak     |  1 +\n configs/targets/mips-softmmu.mak             |  1 +\n configs/targets/mips64-softmmu.mak           |  1 +\n configs/targets/mips64el-softmmu.mak         |  1 +\n configs/targets/mipsel-softmmu.mak           |  1 +\n configs/targets/or1k-softmmu.mak             |  1 +\n configs/targets/ppc-softmmu.mak              |  1 +\n configs/targets/ppc64-softmmu.mak            |  1 +\n configs/targets/riscv32-softmmu.mak          |  1 +\n configs/targets/riscv64-softmmu.mak          |  1 +\n configs/targets/rx-softmmu.mak               |  1 +\n configs/targets/s390x-softmmu.mak            |  1 +\n configs/targets/sh4-softmmu.mak              |  1 +\n configs/targets/sh4eb-softmmu.mak            |  1 +\n configs/targets/sparc-softmmu.mak            |  1 +\n configs/targets/sparc64-softmmu.mak          |  1 +\n configs/targets/tricore-softmmu.mak          |  1 +\n configs/targets/x86_64-softmmu.mak           |  1 +\n configs/targets/xtensa-softmmu.mak           |  1 +\n configs/targets/xtensaeb-softmmu.mak         |  1 +\n include/accel/tcg/cpu-ldst.h                 |  2 +\n include/exec/translator.h                    |  2 +-\n include/qemu/bswap.h                         |  5 ++\n include/system/memory_cached.h               |  2 +\n system/memory-internal.h                     |  2 +\n include/exec/memory_ldst.h.inc               |  2 +\n include/exec/memory_ldst_cached.h.inc        | 30 +++++++++\n include/exec/memory_ldst_phys.h.inc          |  2 +\n include/system/memory_ldst_endian.h.inc      |  4 ++\n include/system/memory_ldst_phys_endian.h.inc | 10 +++\n system/memory.c                              | 68 ++++++++++++++------\n system/memory_ldst.c.inc                     |  2 +\n scripts/make-config-poison.sh                |  1 +\n 43 files changed, 146 insertions(+), 25 deletions(-)"}