{"id":1882140,"url":"http://patchwork.ozlabs.org/api/patches/1882140/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/patch/20240103173349.398526-31-alex.bennee@linaro.org/","project":{"id":14,"url":"http://patchwork.ozlabs.org/api/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":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20240103173349.398526-31-alex.bennee@linaro.org>","list_archive_url":null,"date":"2024-01-03T17:33:36","name":"[v2,30/43] gdbstub: Use GDBFeature for GDBRegisterState","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"e9757014eff1dfd549e3ad45bdb0e21c552435cb","submitter":{"id":39532,"url":"http://patchwork.ozlabs.org/api/people/39532/?format=json","name":"Alex Bennée","email":"alex.bennee@linaro.org"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/qemu-devel/patch/20240103173349.398526-31-alex.bennee@linaro.org/mbox/","series":[{"id":388742,"url":"http://patchwork.ozlabs.org/api/series/388742/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/list/?series=388742","date":"2024-01-03T17:33:08","name":"testing and plugin updates for 9.0 (pre-PR)","version":2,"mbox":"http://patchwork.ozlabs.org/series/388742/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/1882140/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/1882140/checks/","tags":{},"related":[],"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=xaybZ25a;\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 4T4xz46VLmz1yQ5\n\tfor <incoming@patchwork.ozlabs.org>; Thu,  4 Jan 2024 04:48:32 +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 1rL5De-0008Ia-Me; Wed, 03 Jan 2024 12:39:54 -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 <alex.bennee@linaro.org>)\n id 1rL5DU-0007rK-SZ\n for qemu-devel@nongnu.org; Wed, 03 Jan 2024 12:39:44 -0500","from mail-wr1-x42a.google.com ([2a00:1450:4864:20::42a])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <alex.bennee@linaro.org>)\n id 1rL5D0-0000hp-8p\n for qemu-devel@nongnu.org; Wed, 03 Jan 2024 12:39:44 -0500","by mail-wr1-x42a.google.com with SMTP id\n ffacd0b85a97d-33723ad790cso4120253f8f.1\n for <qemu-devel@nongnu.org>; Wed, 03 Jan 2024 09:39:13 -0800 (PST)","from draig.lan ([85.9.250.243]) by smtp.gmail.com with ESMTPSA id\n m12-20020adffe4c000000b0033677aae2e2sm30939987wrs.107.2024.01.03.09.39.06\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Wed, 03 Jan 2024 09:39:08 -0800 (PST)","from draig.lan (localhost [IPv6:::1])\n by draig.lan (Postfix) with ESMTP id 383255F9CC;\n Wed,  3 Jan 2024 17:33:52 +0000 (GMT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1704303552; x=1704908352; darn=nongnu.org;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=TgDW5VAJqq7zKC6xI7H/BZAKg5Ps7sHcrddcH+tFs60=;\n b=xaybZ25a5sbfByqKrUUH63hT/sTyYWYwrttHo61ZwQo4PPwaR4ll/kzCnNlkgPesI8\n cY2xWyMFk5CHnjvreTqP2D0N04lcFUHcsR4nmhs/L3k2X9RltTkyUm2i2oXJTR8iftc+\n WJAOwKhrTzVn+5hQB3wEv5OoZnn4cX1Y2Nmaz4eI5DUfPV0drqZ3FTLzdYPxR7L3/Wz9\n 1mFk+tAEH2uCiovbpaMZ4QWzuMgsPjX3nNmKTufR0MiufHm20Zyt/rVyRldzn0MIbvKi\n xq0FZ0oLRlH3RJ/CFh/zNwIWB18v4NEhyOLu9UsrVG0i4mbAdZEomEZV52grQQOCYEi7\n 4TyA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1704303552; x=1704908352;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc\n :subject:date:message-id:reply-to;\n bh=TgDW5VAJqq7zKC6xI7H/BZAKg5Ps7sHcrddcH+tFs60=;\n b=HeZ8Cu2ES13LB4AYxb2Qmnbcp2fOT3yp6Xm8BebpMiO5xVlPsUNxW3gcqoDutqM83m\n pllXKxAp/L9xMJvei+FJe9EiQwgeikirMNUnYbAlHVssBiQWajkkf8imuji7QIwLgrMy\n NfCgwDrKsK4QLdm02DjfMjyEa2F58A4hOK3GqU7Cb4YKftk8GP8tBqo5oRbdscB72ddi\n +Kc/HMzVIHrBrm7KO5V/ZX2iiYv8wmwMCiPtVrt8p9WtDBswcTl1j9jtlsDOlmqhXNZC\n b0qWMJ5jDIchV2w9OSPhHYEjqzoNXvy+WBQSE7iA2MBa/IKaq5Qe25lUjDkb247jkAJf\n l2NQ==","X-Gm-Message-State":"AOJu0YzzS0kmhmkHfwy88pPTENg6iXEbm3XI4JeU6QkFo4NEKOsj9YWQ\n AJeKncaPquBDbe4tcmkI62+m2u143PNM1Q==","X-Google-Smtp-Source":"\n AGHT+IFN2XNaTPLQi4TeezWeNzP+ujUHb1GUzynDw6q3G/sh74fGgLj1IT1Zawi7t4PUydsXUEfGaw==","X-Received":"by 2002:a5d:6789:0:b0:336:566e:ffdc with SMTP id\n v9-20020a5d6789000000b00336566effdcmr6879484wru.101.1704303552300;\n Wed, 03 Jan 2024 09:39:12 -0800 (PST)","From":"=?utf-8?q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>","To":"qemu-devel@nongnu.org","Cc":"qemu-s390x@nongnu.org, qemu-ppc@nongnu.org,\n Richard Henderson <richard.henderson@linaro.org>,\n Song Gao <gaosong@loongson.cn>,\n =?utf-8?q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@redhat.com>,\n David Hildenbrand <david@redhat.com>, Aurelien Jarno <aurelien@aurel32.net>,\n Yoshinori Sato <ysato@users.sourceforge.jp>,\n Yanan Wang <wangyanan55@huawei.com>, Bin Meng <bin.meng@windriver.com>,\n Laurent Vivier <lvivier@redhat.com>, Michael Rolnik <mrolnik@gmail.com>,\n Alexandre Iooss <erdnaxe@crans.org>, David Woodhouse <dwmw2@infradead.org>,\n Laurent Vivier <laurent@vivier.eu>, Paolo Bonzini <pbonzini@redhat.com>,\n Brian Cain <bcain@quicinc.com>,\n Daniel Henrique Barboza <danielhb413@gmail.com>,\n Beraldo Leal <bleal@redhat.com>, Paul Durrant <paul@xen.org>,\n Mahmoud Mandour <ma.mandourr@gmail.com>, Thomas Huth <thuth@redhat.com>,\n Liu Zhiwei <zhiwei_liu@linux.alibaba.com>, Cleber Rosa <crosa@redhat.com>,\n kvm@vger.kernel.org, Peter Maydell <peter.maydell@linaro.org>,\n Wainer dos Santos Moschetta <wainersm@redhat.com>, =?utf-8?q?Alex_Benn?=\n\t=?utf-8?q?=C3=A9e?= <alex.bennee@linaro.org>, qemu-arm@nongnu.org,\n Weiwei Li <liwei1518@gmail.com>,\n =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,\n John Snow <jsnow@redhat.com>,\n Daniel Henrique Barboza <dbarboza@ventanamicro.com>,\n Nicholas Piggin <npiggin@gmail.com>, Palmer Dabbelt <palmer@dabbelt.com>,\n Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,\n Ilya Leoshkevich <iii@linux.ibm.com>,\n =?utf-8?q?C=C3=A9dric_Le_Goater?= <clg@kaod.org>,\n \"Edgar E. Iglesias\" <edgar.iglesias@gmail.com>,\n Eduardo Habkost <eduardo@habkost.net>,\n Pierrick Bouvier <pierrick.bouvier@linaro.org>, qemu-riscv@nongnu.org,\n Alistair Francis <alistair.francis@wdc.com>,\n Akihiko Odaki <akihiko.odaki@daynix.com>","Subject":"[PATCH v2 30/43] gdbstub: Use GDBFeature for GDBRegisterState","Date":"Wed,  3 Jan 2024 17:33:36 +0000","Message-Id":"<20240103173349.398526-31-alex.bennee@linaro.org>","X-Mailer":"git-send-email 2.39.2","In-Reply-To":"<20240103173349.398526-1-alex.bennee@linaro.org>","References":"<20240103173349.398526-1-alex.bennee@linaro.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"8bit","Received-SPF":"pass client-ip=2a00:1450:4864:20::42a;\n envelope-from=alex.bennee@linaro.org; helo=mail-wr1-x42a.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, SPF_PASS=-0.001,\n T_SCC_BODY_TEXT_LINE=-0.01,\n T_SPF_HELO_TEMPERROR=0.01 autolearn=unavailable autolearn_force=no","X-Spam_action":"no action","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<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":"From: Akihiko Odaki <akihiko.odaki@daynix.com>\n\nSimplify GDBRegisterState by replacing num_regs and xml members with\none member that points to GDBFeature.\n\nSigned-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>\nReviewed-by: Alex Bennée <alex.bennee@linaro.org>\nMessage-Id: <20231213-gdb-v17-5-777047380591@daynix.com>\nSigned-off-by: Alex Bennée <alex.bennee@linaro.org>\n---\n gdbstub/gdbstub.c | 14 ++++++--------\n 1 file changed, 6 insertions(+), 8 deletions(-)","diff":"diff --git a/gdbstub/gdbstub.c b/gdbstub/gdbstub.c\nindex 068180c83c7..a80729436b6 100644\n--- a/gdbstub/gdbstub.c\n+++ b/gdbstub/gdbstub.c\n@@ -47,10 +47,9 @@\n \n typedef struct GDBRegisterState {\n     int base_reg;\n-    int num_regs;\n     gdb_get_reg_cb get_reg;\n     gdb_set_reg_cb set_reg;\n-    const char *xml;\n+    const GDBFeature *feature;\n } GDBRegisterState;\n \n GDBState gdbserver_state;\n@@ -391,7 +390,7 @@ static const char *get_feature_xml(const char *p, const char **newp,\n                     g_ptr_array_add(\n                         xml,\n                         g_markup_printf_escaped(\"<xi:include href=\\\"%s\\\"/>\",\n-                                                r->xml));\n+                                                r->feature->xmlname));\n                 }\n             }\n             g_ptr_array_add(xml, g_strdup(\"</target>\"));\n@@ -513,7 +512,7 @@ static int gdb_read_register(CPUState *cpu, GByteArray *buf, int reg)\n     if (cpu->gdb_regs) {\n         for (guint i = 0; i < cpu->gdb_regs->len; i++) {\n             r = &g_array_index(cpu->gdb_regs, GDBRegisterState, i);\n-            if (r->base_reg <= reg && reg < r->base_reg + r->num_regs) {\n+            if (r->base_reg <= reg && reg < r->base_reg + r->feature->num_regs) {\n                 return r->get_reg(env, buf, reg - r->base_reg);\n             }\n         }\n@@ -534,7 +533,7 @@ static int gdb_write_register(CPUState *cpu, uint8_t *mem_buf, int reg)\n     if (cpu->gdb_regs) {\n         for (guint i = 0; i < cpu->gdb_regs->len; i++) {\n             r =  &g_array_index(cpu->gdb_regs, GDBRegisterState, i);\n-            if (r->base_reg <= reg && reg < r->base_reg + r->num_regs) {\n+            if (r->base_reg <= reg && reg < r->base_reg + r->feature->num_regs) {\n                 return r->set_reg(env, mem_buf, reg - r->base_reg);\n             }\n         }\n@@ -553,7 +552,7 @@ void gdb_register_coprocessor(CPUState *cpu,\n         for (i = 0; i < cpu->gdb_regs->len; i++) {\n             /* Check for duplicates.  */\n             s = &g_array_index(cpu->gdb_regs, GDBRegisterState, i);\n-            if (strcmp(s->xml, feature->xmlname) == 0) {\n+            if (s->feature == feature) {\n                 return;\n             }\n         }\n@@ -565,10 +564,9 @@ void gdb_register_coprocessor(CPUState *cpu,\n     g_array_set_size(cpu->gdb_regs, i + 1);\n     s = &g_array_index(cpu->gdb_regs, GDBRegisterState, i);\n     s->base_reg = cpu->gdb_num_regs;\n-    s->num_regs = feature->num_regs;\n     s->get_reg = get_reg;\n     s->set_reg = set_reg;\n-    s->xml = feature->xml;\n+    s->feature = feature;\n \n     /* Add to end of list.  */\n     cpu->gdb_num_regs += feature->num_regs;\n","prefixes":["v2","30/43"]}