{"id":2197059,"url":"http://patchwork.ozlabs.org/api/1.0/covers/2197059/?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":"<20260216225228.53959-1-philmd@linaro.org>","date":"2026-02-16T22:52:16","name":"[00/11] monitor/hmp: Automatically handle gdb-xml exposed registers","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":492361,"url":"http://patchwork.ozlabs.org/api/1.0/series/492361/?format=json","date":"2026-02-16T22:52:16","name":"monitor/hmp: Automatically handle gdb-xml exposed registers","version":1,"mbox":"http://patchwork.ozlabs.org/series/492361/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=DO4J3m4c;\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 4fFJ2W23Hcz1xwD\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 17 Feb 2026 09:52:51 +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 1vs7SH-0001hs-GW; Mon, 16 Feb 2026 17:52:37 -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 1vs7SE-0001hP-3f\n for qemu-devel@nongnu.org; Mon, 16 Feb 2026 17:52:35 -0500","from mail-wm1-x335.google.com ([2a00:1450:4864:20::335])\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 1vs7SC-0006Qr-IS\n for qemu-devel@nongnu.org; Mon, 16 Feb 2026 17:52:33 -0500","by mail-wm1-x335.google.com with SMTP id\n 5b1f17b1804b1-4837584120eso23470625e9.1\n for <qemu-devel@nongnu.org>; Mon, 16 Feb 2026 14:52:32 -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-43796ad0166sm30751164f8f.35.2026.02.16.14.52.29\n (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);\n Mon, 16 Feb 2026 14:52:29 -0800 (PST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1771282351; x=1771887151; 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=FvpYsvVz0njvhav/k+RkLNonp6k+us6Bz/UhZrU2Jio=;\n b=DO4J3m4cr8QPr+wV2TA6QEmk+MPXOQJilBoC7x3vufUup56Ybh0u6/+4ohEY5O6Iou\n Se2TneRm3DOJj14b4Rv0cfb7C0oVPoDlihtnuAtrdPIYvU1+VN+gbDch5DvU65tC4wh/\n 4MdbbHLbsRlzcSAX9CaZxjOVGrQfAPoMGSd6KKYtbR8Yo+vwMzSL+H3wL6zo1QG7oN0L\n uBw4HjkhADXVQhJSbcpfyz6F/guS2/OtBwRchT8yFjiUyVG5/fX47cAGZRCHkAvmjrc6\n CTGHL4wTLel+v85RMUrPqzLWvQgLqT1T5ahZk7F5hh8OOBYOoL/LtFSxachWYxFSg+Sz\n 7HJA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1771282351; x=1771887151;\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=FvpYsvVz0njvhav/k+RkLNonp6k+us6Bz/UhZrU2Jio=;\n b=H6rjTRHCQrwgXMeDnf+F7lHuo2pfXXG9wytgjZAHgOBZ4dvfvjB6+rEmRNZlu/7Lmx\n v+a/ZMQ80ELmdXd6mh43GhiYhRlqDVU+iAWA6N40BBXanmYGJiZpbRr0nEGPBn9UYCVV\n DCFSfyCXr/yYA4xzFLYsNzS5KWyiRvRtXTa7dRMctBahhp1nDiij5Z4BUr0N+xo8M4Sq\n s+yQosHeMoH2pzCF8OfLldM0c0ZcHCuYbolWG09P+5a30RgaF6rD0GOXZ1BKTCoC6UVk\n OjBf54JBr7AMW3xvKI0j9LK6Nvde0aLlGhQhCXvN/gVVgpy/1JCXwQQo60ZjmKCvh3Jc\n cWJg==","X-Gm-Message-State":"AOJu0Yw/C1SKUTFlHyOyluOBtWL3MSSLFp7CvuvCQE+B0U0B+aiBYE0h\n 6RiyE54FoDYWox4t/yil0av+FFeNftJk7v8KSz0dblq+d3oHQ51CgtEfbWmJ1jMo6CeXhL8CA5V\n xpf+Seio=","X-Gm-Gg":"AZuq6aJi4PLKN3pmSMxA4I/JeqmyhGplE8QhtTwccV9eNxC9S2C+pOHY0mszQcAupDM\n H27S4banaCIs/CBkuN0SBnSHH4ZlTwLpcpdJ2BhIahOywlHJm9tFItFBZFF/sjLm/VHCCOf6f2g\n T9AyoZ4s/F4ljW+oU+ecVq631yl784IjC8d0BvZLqvEGUFmLqFUEYwe6FhJvwP2nbjGqChoyzKD\n J/0k1PSmyuuFMh1xDj4LSfS6PWRIqJXJvurkU75IH0p4auFvYmEoYOr62a5vhaVdPCxPKkXuRBd\n XQWqRyZrRjdw2kjBf27b8QFwebuuU/alJaffTzgavUyljYA2oobi5C2pNE9Ba8F5jDplil+FdxO\n hWvLg3uY4eWLMa+F/4nE/0+3CVnSC3in7fW1aTcnNjCse3qD8RgrMW/2d278e/EVOZiEur1LFJ8\n tVMk3rlSE3yPLPOJUzA49mm9HXQD2tCw5+5xxYrcWGx0MjCtZPFB+X5aAF/6yW7RGatjVvjK+Na\n j6QrmTEDrw=","X-Received":"by 2002:a05:600c:8b30:b0:480:1c69:9d36 with SMTP id\n 5b1f17b1804b1-48379bd7462mr165446135e9.17.1771282350586;\n Mon, 16 Feb 2026 14:52:30 -0800 (PST)","From":"=?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>","To":"qemu-devel@nongnu.org","Cc":"Laurent Vivier <laurent@vivier.eu>,\n \"Dr. David Alan Gilbert\" <dave@treblig.org>,\n Nicholas Piggin <npiggin@gmail.com>, Chinmay Rath <rathc@linux.ibm.com>,\n\t=?utf-8?q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>,\n Zhao Liu <zhao1.liu@intel.com>,\n Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,\n Pierrick Bouvier <pierrick.bouvier@linaro.org>,\n Artyom Tarasenko <atar4qemu@gmail.com>,\n Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>,\n Gustavo Romero <gustavo.romero@linaro.org>,\n Paolo Bonzini <pbonzini@redhat.com>, unisono@quyllur.org, =?utf-8?q?Philipp?=\n\t=?utf-8?q?e_Mathieu-Daud=C3=A9?= <philmd@linaro.org>, qemu-ppc@nongnu.org","Subject":"[PATCH 00/11] monitor/hmp: Automatically handle gdb-xml exposed\n registers","Date":"Mon, 16 Feb 2026 23:52:16 +0100","Message-ID":"<20260216225228.53959-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::335;\n envelope-from=philmd@linaro.org; helo=mail-wm1-x335.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 development <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":"MonitorDef registers parsing is one of the oldest APIs in QEMU,\nthus predates gdbstub and XML register files. The latters are\nmaintained by the GDB/binutils project and are more up-to-date.\nGetting the target register list from them allows to expose\nall accessible registers to the HMP commands.\n\nThis series adds gdb_get_register() to monitor to use XML\ngenerated registers, and remove the legacy MonitorDef entries\nwhich became unreachable.\n\nFirst we need to have the SPARC target better follow the\ngdb-xml API.\n\nPhilippe Mathieu-Daudé (11):\n  target/sparc: Introduce sparc_cpu_register_gdb_regs() stub\n  target/sparc: Restore 'gdb-xml/sparc64-cp0.xml'\n  target/sparc: Restore 'gdb-xml/sparc64-fpu.xml'\n  target/sparc: Restore 'gdb-xml/sparc64-cpu.xml'\n  target/sparc: Expose gdbstub registers to sparc32plus target\n  target/sparc: Expose gdbstub registers to sparc32 targets\n  monitor/hmp: Handle gdb-xml exposed registers via  gdb_get_register()\n  target/sparc: Remove MonitorDef register entries available via gdbstub\n  target/i386: Remove MonitorDef register entries available via gdbstub\n  target/m68k: Remove MonitorDef register entries available via gdbstub\n  target/ppc: Remove MonitorDef register entries available via gdbstub\n\n configs/targets/sparc-linux-user.mak          |   1 +\n configs/targets/sparc-softmmu.mak             |   1 +\n configs/targets/sparc32plus-linux-user.mak    |   1 +\n configs/targets/sparc64-linux-user.mak        |   2 +-\n configs/targets/sparc64-softmmu.mak           |   2 +-\n target/sparc/cpu.h                            |   1 +\n monitor/hmp.c                                 |  49 ++-\n target/i386/monitor.c                         |  35 ---\n target/m68k/monitor.c                         |  18 --\n target/ppc/ppc-qmp-cmds.c                     |   5 -\n target/sparc/cpu.c                            |   9 +-\n target/sparc/gdbstub.c                        | 295 +++++++++++-------\n target/sparc/monitor.c                        | 107 -------\n gdb-xml/sparc32-cp0.xml                       |  18 ++\n gdb-xml/sparc32-cpu.xml                       |  42 +++\n gdb-xml/sparc32-fpu.xml                       |  42 +++\n gdb-xml/sparc64-cp0.xml                       |  16 +\n gdb-xml/sparc64-cpu.xml                       |  42 +++\n gdb-xml/{sparc64-core.xml => sparc64-fpu.xml} |  44 +--\n 19 files changed, 403 insertions(+), 327 deletions(-)\n create mode 100644 gdb-xml/sparc32-cp0.xml\n create mode 100644 gdb-xml/sparc32-cpu.xml\n create mode 100644 gdb-xml/sparc32-fpu.xml\n create mode 100644 gdb-xml/sparc64-cp0.xml\n create mode 100644 gdb-xml/sparc64-cpu.xml\n rename gdb-xml/{sparc64-core.xml => sparc64-fpu.xml} (59%)"}