From patchwork Fri Aug 28 20:41:51 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= X-Patchwork-Id: 2294316 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=AHyP8+qz; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists1p.gnu.org; envelope-from=qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=patchwork.ozlabs.org) Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4hWr43632pz1xpT for ; Sat, 29 Aug 2026 06:45:07 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x03Pf-0006GB-9Y; Fri, 28 Aug 2026 16:42:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x03Pa-0005rm-43 for qemu-ppc@nongnu.org; Fri, 28 Aug 2026 16:42:54 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x03PW-0008BL-Ji for qemu-ppc@nongnu.org; Fri, 28 Aug 2026 16:42:52 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1787949766; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=uU8sds7aM6wAilrJnyaQ3kr01ihnKymK2P5WMvoYwbg=; b=AHyP8+qzefj5jqrwQOQbnAx+xSHU7F/TU+uOwYsmQ7ERXZtRtfbN+V6NELzIubPZRT7Tga GtosIlG/yMc9Xu1bLbjqTBR+LAEqdbrIpsRAbTKF5wplM7JNzoecufJBVIlDsFBD8O9SJm wX9JjeOSn61igawqNpsZV5EAfd71ZeU= Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-294-Y1pwp4HgMXu1sZJUpo3SPA-1; Fri, 28 Aug 2026 16:42:44 -0400 X-MC-Unique: Y1pwp4HgMXu1sZJUpo3SPA-1 X-Mimecast-MFC-AGG-ID: Y1pwp4HgMXu1sZJUpo3SPA_1787949763 Received: from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 3C5F618A3C11; Fri, 28 Aug 2026 20:42:43 +0000 (UTC) Received: from localhost (headnet04.pony-001.prod.iad2.dc.redhat.com [10.2.32.116]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 60D281955F0A; Fri, 28 Aug 2026 20:42:42 +0000 (UTC) From: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Date: Sat, 29 Aug 2026 00:41:51 +0400 Subject: [GIT PULL 12/50] tests/qtest/pnv: drop unnecessary -serial mon:stdio MIME-Version: 1.0 Message-Id: <20260829-nohmp-v1-12-4dcc2b4b0055@redhat.com> References: <20260829-nohmp-v1-0-4dcc2b4b0055@redhat.com> In-Reply-To: <20260829-nohmp-v1-0-4dcc2b4b0055@redhat.com> To: qemu-devel@nongnu.org Cc: richard.henderson@linaro.org, Nicholas Piggin , Aditya Gupta , Glenn Miles , Harsh Prateek Bora , Fabiano Rosas , Laurent Vivier , Paolo Bonzini , Gautam Menghani , qemu-ppc@nongnu.org X-Developer-Signature: v=1; a=openpgp-sha256; l=1840; i=marcandre.lureau@redhat.com; h=from:subject:message-id; bh=qZLyCeiYWh2MeR/q2fqqG83AqU+7LAiJGxG5LAGGE0s=; b=owEBbQKS/ZANAwAKAdro4Ql1lpzlAcsmYgBqkfKUPXoBC2fUDOnVl03NcDGH0lHCmlEQeH9CW q0DtsfAuqiJAjMEAAEKAB0WIQSHqb2TP4fGBtJ29i3a6OEJdZac5QUCapHylAAKCRDa6OEJdZac 5bVBD/46SxRdy6lOG7+N2W0HVpsjdW9qaf16lc8MiA+AFDk7Lpu1iNBEPUr0c4pIQbzcPH2ZT9F J6NBumD5FurpHMa7aw/C+tpYJlo7rIWOCioYfopZnCj1EjwivggeBzpjspKrvqLwFyXhfa6Vvrf ZbkPz+OYuqWQ6CC2Iwp7pS+GeDh8eRrpueWkXN8osyXv7YvUzJplukk4NlEwjBgk7Gqph4wCrHG hJu9CW5ghosNKBpf3YYpNcD/AHkOsv58iM17jfhPD/iIcKvIwFXxzj2jQ/iHfd4+uXLNEUUxHKD R/Axq0/uwNjTj9oDgFrGsDoeAW8xzlgGH/DmGHE5Xv34Dt4MUGF8luXSwxTC8Qv9Qv4IpQHnvsk EzIQgnO/Vnt+gVNcsQ0cXMUDXIfmabDHliiMQ+4Hj5cYrcW7Tur5zNqEQurgaDaOMszqfufg/Po 68uOLQ4+W09IoC6IOfWaXz3SGNOmfjWP/3n2Un4RfmYWKLoLmkoESGw3Dvi56Sos+snxcCdgRjA C9jW8X7Va3PicgGDqFtJdSuZEK6VKAxUdXIMy/jdD86RML0TRbfUzXGGfDp2als2Dzo0WhmsScw lYW/hiq30YC4X5DxiPLh9/ENj4bfHH3Jd6sT7APwaoOPyK7cNBBJptYkL9icayOXZNPJ1jYiSGt fel2/HPS3Zcz2Fg== X-Developer-Key: i=marcandre.lureau@redhat.com; a=openpgp; fpr=87A9BD933F87C606D276F62DDAE8E10975969CE5 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 X-Mimecast-MFC-PROC-ID: rk7qCWMEt3e7s3r0dSYlgi9VjmZblQKtOLG0nsm8Dxo_1787949763 X-Mimecast-Originator: redhat.com Received-SPF: pass client-ip=170.10.133.124; envelope-from=marcandre.lureau@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-ppc@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-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org The pnv-xive2-test and pnv-host-i2c-test pass "-serial mon:stdio" but never use HMP commands. The "mon:" chardev prefix creates an HMP monitor mux, which fails when HMP is disabled. Other pnv tests (e.g. pnv-spi-seeprom-test) don't specify -serial at all. Drop the unnecessary -serial mon:stdio option. Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Daniel P. Berrangé Signed-off-by: Marc-André Lureau Message-ID: <20260828-qemu-no-hmp-v5-12-9227de146347@redhat.com> --- tests/qtest/pnv-host-i2c-test.c | 2 +- tests/qtest/pnv-xive2-test.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/qtest/pnv-host-i2c-test.c b/tests/qtest/pnv-host-i2c-test.c index 5fd54f9de771..f97f6f65eed3 100644 --- a/tests/qtest/pnv-host-i2c-test.c +++ b/tests/qtest/pnv-host-i2c-test.c @@ -414,7 +414,7 @@ static void test_host_i2c(const void *data) } qts = qtest_initf("-M %s -smp %d,cores=1,threads=%d -nographic " - "-nodefaults -serial mon:stdio -S " + "-nodefaults -S " "-d guest_errors", machine, SMT, SMT); diff --git a/tests/qtest/pnv-xive2-test.c b/tests/qtest/pnv-xive2-test.c index 9f67a0066864..a0892c0f8e89 100644 --- a/tests/qtest/pnv-xive2-test.c +++ b/tests/qtest/pnv-xive2-test.c @@ -552,7 +552,7 @@ static void test_xive(const void *data) QTestState *qts; qts = qtest_initf("-M %s -smp %d,cores=1,threads=%d -nographic " - "-nodefaults -serial mon:stdio -S " + "-nodefaults -S " "-d guest_errors -trace '*xive*'", machine, SMT, SMT); init_xive(qts); From patchwork Fri Aug 28 20:42:10 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= X-Patchwork-Id: 2294345 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=LOquLNCQ; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists1p.gnu.org; envelope-from=qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=patchwork.ozlabs.org) Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4hWr5g0QzYz1xpT for ; Sat, 29 Aug 2026 06:46:31 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x03Qv-0002yC-MW; Fri, 28 Aug 2026 16:44:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x03Qr-0002nW-P4 for qemu-ppc@nongnu.org; Fri, 28 Aug 2026 16:44:14 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x03Qh-0000Nw-2K for qemu-ppc@nongnu.org; Fri, 28 Aug 2026 16:44:09 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1787949842; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=cFoxPtLu3Ck35QSCzEloxQU1yiQKuRhEpzYxa4Nk+fU=; b=LOquLNCQVqKaDI8WGmiKfyIGjwL0afmqEg3LBSqvFU9ofvRbWx/j54aF8wtHRvPvmJ2irY gmX/3YGXDvwqMRqCzOOU0fTCWlO9/Q3SwpbJSKxb3cZzTZbaljkOprDvF7SEJ3X5SHqNQn kERq8WYRrNBGS82s5Ns3WbKeax42tBI= Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-586-5wIVm95oOJq-xu2dbm6biA-1; Fri, 28 Aug 2026 16:43:59 -0400 X-MC-Unique: 5wIVm95oOJq-xu2dbm6biA-1 X-Mimecast-MFC-AGG-ID: 5wIVm95oOJq-xu2dbm6biA_1787949835 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 992BD1907BF8; Fri, 28 Aug 2026 20:43:53 +0000 (UTC) Received: from localhost (headnet04.pony-001.prod.iad2.dc.redhat.com [10.2.32.116]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 46D1F18001CF; Fri, 28 Aug 2026 20:43:49 +0000 (UTC) From: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Date: Sat, 29 Aug 2026 00:42:10 +0400 Subject: [GIT PULL 31/50] monitor: change HMPCommand cmd to take MonitorHMP MIME-Version: 1.0 Message-Id: <20260829-nohmp-v1-31-4dcc2b4b0055@redhat.com> References: <20260829-nohmp-v1-0-4dcc2b4b0055@redhat.com> In-Reply-To: <20260829-nohmp-v1-0-4dcc2b4b0055@redhat.com> To: qemu-devel@nongnu.org Cc: richard.henderson@linaro.org, Gerd Hoffmann , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , "Gonglei (Arei)" , zhenwei pi , Kevin Wolf , Hanna Reitz , Paolo Bonzini , Ani Sinha , David Woodhouse , Paul Durrant , "Michael S. Tsirkin" , Marcelo Tosatti , Mark Cave-Ayland , Jiri Pirko , Jason Wang , Halil Pasic , Christian Borntraeger , Jason Herne , Ilya Leoshkevich , David Hildenbrand , Cornelia Huck , Eric Farman , Matthew Rosato , "Dr. David Alan Gilbert" , =?utf-8?q?Daniel_P=2E_Berrang?= =?utf-8?q?=C3=A9?= , Samuel Thibault , Hyman Huang , Peter Xu , Fabiano Rosas , Markus Armbruster , =?utf-8?q?Alex_Benn=C3=A9e?= , Stefan Berger , Zhao Liu , Laurent Vivier , Nicholas Piggin , Chinmay Rath , Glenn Miles , Harsh Prateek Bora , Palmer Dabbelt , Alistair Francis , Weiwei Li , Daniel Henrique Barboza , Liu Zhiwei , Chao Liu , Yoshinori Sato , Artyom Tarasenko , Max Filippov , Stefan Hajnoczi , qemu-block@nongnu.org, kvm@vger.kernel.org, qemu-ppc@nongnu.org, qemu-s390x@nongnu.org, qemu-riscv@nongnu.org X-Developer-Signature: v=1; a=openpgp-sha256; l=108582; i=marcandre.lureau@redhat.com; h=from:subject:message-id; bh=yn6dyABfVLQUK2T3OLQkYLf2GR4UFPHk72clDER1lFk=; b=owEBbQKS/ZANAwAKAdro4Ql1lpzlAcsmYgBqkfKVcLtKrqfa1qYX8VwvBmzMD/nH6mb0vVJ72 dWyXvYwox2JAjMEAAEKAB0WIQSHqb2TP4fGBtJ29i3a6OEJdZac5QUCapHylQAKCRDa6OEJdZac 5XOaEACrWUiMhg9BAgldQi8map/Yf7+1Z5btlC+1b9RxA/P3GQs8UrfVbQCapgj5lJXihrJvQqG 0sIRHgdaT7Z4QQQZ7R0V8FZ/7/7AwbmdfbXRC68zDdV2Ek2BPh2WoHo6hBct9lgYb0t2sn+8UHl YyPlaaHmRD1BF8KmgFGl09FTjBgz1R7n5Q0lh8yWCT/tROR8FEMZ97uS5FHph5k8Mnv4c6R7Cpa B670RYC8fQMSG94KqUIoOQ3LCt+IEiUkDJcrASdeMipuW/Livv3DVBGMTWF9DawGiaPYpgorIVK ZEFpyshNyyXJyzL5TzS57sdgKpvBWfbZ91s0Q+NOycCKzgQXycFLBLEMmWAxcLDS4SD6jNlfGRl JZsYhTvF05V5ILZNGkfRYgMgindBYTgryD6keuIyKjFyJZEjBhzbOOWuww/3L5rBFfsgzp2O26U q5MrsDUSh6gK9NKgHVLB8+7NhK2rVePxD/ltV/k2tTKJUymVH1ZFQKH721yoglMDLjCc9KakWzw BqaWZrm9nU59ERg6GnCA4jyq+kP+kdMoGaHYHms/wp61XBkq8exX+ubAIm64jtFHXcPDd3kc0CG f9LO0Aq98O32KGW7pZ3maQLXgpDuSRfIFOIS+hh7Fe9hOxf4u8Z3ufYDH91kQ7LNT6dTw9b2crx I8qKDjZzL843R3A== X-Developer-Key: i=marcandre.lureau@redhat.com; a=openpgp; fpr=87A9BD933F87C606D276F62DDAE8E10975969CE5 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 X-Mimecast-MFC-PROC-ID: O-UpQ0qNhZo1Ab0XgoE1tQj-9V8Drkb_VkxsYZWqxwk_1787949835 X-Mimecast-Originator: redhat.com Received-SPF: pass client-ip=170.10.133.124; envelope-from=marcandre.lureau@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: 12 X-Spam_score: 1.2 X-Spam_bar: + X-Spam_report: (1.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_SBL_CSS=3.335, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-ppc@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-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org HMP commands are specific to the HMP monitor, so make the cmd function pointer in HMPCommand take MonitorHMP * instead of Monitor *. This strengthens type safety and makes the HMP-specific nature of these handlers explicit. Handler functions are renamed to take MonitorHMP *hmp, with a local Monitor *mon = MONITOR(hmp) added where the body needs the base type. Following patches will drop it, since most functions are HMP specific. Reviewed-by: Daniel P. Berrangé Reviewed-by: Jason J. Herne Reviewed-by: Dr. David Alan Gilbert Signed-off-by: Marc-André Lureau Message-ID: <20260828-qemu-no-hmp-v5-31-9227de146347@redhat.com> --- audio/audio-hmp-cmds.c | 8 +- backends/cryptodev-hmp-cmds.c | 3 +- block/monitor/block-hmp-cmds.c | 78 +++++++---- chardev/char-hmp-cmds.c | 21 ++- dump/dump-hmp-cmds.c | 6 +- hw/core/machine-hmp-cmds.c | 49 ++++--- hw/i386/kvm/xen-stubs.c | 6 +- hw/i386/kvm/xen_evtchn.c | 6 +- hw/i386/sgx-hmp-stub.c | 3 +- hw/i386/sgx.c | 3 +- hw/misc/mos6522-stub.c | 3 +- hw/misc/mos6522.c | 3 +- hw/net/rocker/rocker-hmp-cmds.c | 12 +- hw/pci/pci-hmp-cmds.c | 6 +- hw/pci/pci-stub.c | 5 +- hw/s390x/s390-skeys.c | 5 +- hw/s390x/s390-stattrib.c | 6 +- hw/uefi/ovmf-log.c | 3 +- hw/usb/host-libusb.c | 3 +- hw/virtio/virtio-hmp-cmds.c | 15 +- include/block/block-hmp-cmds.h | 55 ++++---- include/hw/usb/usb.h | 3 +- include/monitor/hmp.h | 294 ++++++++++++++++++++-------------------- include/monitor/qdev.h | 5 +- include/net/net.h | 5 +- include/net/slirp.h | 8 +- migration/dirtyrate.c | 6 +- migration/migration-hmp-cmds.c | 48 ++++--- monitor/hmp-cmds.c | 96 ++++++++----- monitor/hmp.c | 17 ++- monitor/monitor-internal.h | 2 +- net/net-hmp-cmds.c | 14 +- net/slirp.c | 9 +- qom/qom-hmp-cmds.c | 18 ++- replay/replay-debugging.c | 9 +- replay/stubs-system.c | 8 +- stats/stats-hmp-cmds.c | 3 +- stubs/hmp-cmd-info_sev.c | 3 +- system/dirtylimit-hmp-cmds.c | 9 +- system/qdev-monitor.c | 11 +- system/runstate-hmp-cmds.c | 9 +- system/tpm-hmp-cmds.c | 3 +- target/i386/cpu-apic.c | 3 +- target/i386/monitor.c | 9 +- target/i386/sev.c | 3 +- target/m68k/monitor.c | 3 +- target/ppc/monitor.c | 3 +- target/riscv/monitor.c | 3 +- target/sh4/monitor.c | 3 +- target/sparc/monitor.c | 3 +- target/xtensa/monitor.c | 3 +- trace/trace-hmp-cmds.c | 8 +- ui/ui-hmp-cmds.c | 31 +++-- 53 files changed, 561 insertions(+), 390 deletions(-) diff --git a/audio/audio-hmp-cmds.c b/audio/audio-hmp-cmds.c index 1ffb5ebc7420..4d326ec99fdf 100644 --- a/audio/audio-hmp-cmds.c +++ b/audio/audio-hmp-cmds.c @@ -32,8 +32,9 @@ static QLIST_HEAD (capture_list_head, CaptureState) capture_head; -void hmp_info_capture(Monitor *mon, const QDict *qdict) +void hmp_info_capture(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); int i; CaptureState *s; @@ -45,7 +46,7 @@ void hmp_info_capture(Monitor *mon, const QDict *qdict) } } -void hmp_stopcapture(Monitor *mon, const QDict *qdict) +void hmp_stopcapture(MonitorHMP *hmp, const QDict *qdict) { int i; int n = qdict_get_int(qdict, "n"); @@ -63,8 +64,9 @@ void hmp_stopcapture(Monitor *mon, const QDict *qdict) } } -void hmp_wavcapture(Monitor *mon, const QDict *qdict) +void hmp_wavcapture(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *path = qdict_get_str(qdict, "path"); int freq = qdict_get_try_int(qdict, "freq", 44100); int bits = qdict_get_try_int(qdict, "bits", 16); diff --git a/backends/cryptodev-hmp-cmds.c b/backends/cryptodev-hmp-cmds.c index 01396d227c88..fb62428d795a 100644 --- a/backends/cryptodev-hmp-cmds.c +++ b/backends/cryptodev-hmp-cmds.c @@ -17,8 +17,9 @@ #include "qobject/qdict.h" -void hmp_info_cryptodev(Monitor *mon, const QDict *qdict) +void hmp_info_cryptodev(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); QCryptodevInfoList *il; QCryptodevBackendServiceTypeList *sl; QCryptodevBackendClientList *cl; diff --git a/block/monitor/block-hmp-cmds.c b/block/monitor/block-hmp-cmds.c index 22fa03089ea3..3914b5189d56 100644 --- a/block/monitor/block-hmp-cmds.c +++ b/block/monitor/block-hmp-cmds.c @@ -87,8 +87,9 @@ out: hmp_handle_error(mon, err); } -void hmp_drive_add(Monitor *mon, const QDict *qdict) +void hmp_drive_add(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; DriveInfo *dinfo; QemuOpts *opts; @@ -135,8 +136,9 @@ err: hmp_handle_error(mon, err); } -void hmp_drive_del(Monitor *mon, const QDict *qdict) +void hmp_drive_del(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *id = qdict_get_str(qdict, "id"); BlockBackend *blk; BlockDriverState *bs; @@ -194,8 +196,9 @@ unlock: hmp_handle_error(mon, err); } -void hmp_commit(Monitor *mon, const QDict *qdict) +void hmp_commit(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *device = qdict_get_str(qdict, "device"); BlockBackend *blk; int ret; @@ -232,8 +235,9 @@ end: hmp_handle_error(mon, err); } -void hmp_drive_mirror(Monitor *mon, const QDict *qdict) +void hmp_drive_mirror(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *filename = qdict_get_str(qdict, "target"); const char *format = qdict_get_try_str(qdict, "format"); bool reuse = qdict_get_try_bool(qdict, "reuse", false); @@ -258,8 +262,9 @@ end: hmp_handle_error(mon, err); } -void hmp_drive_backup(Monitor *mon, const QDict *qdict) +void hmp_drive_backup(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *device = qdict_get_str(qdict, "device"); const char *filename = qdict_get_str(qdict, "target"); const char *format = qdict_get_try_str(qdict, "format"); @@ -288,8 +293,9 @@ end: hmp_handle_error(mon, err); } -void hmp_block_job_set_speed(Monitor *mon, const QDict *qdict) +void hmp_block_job_set_speed(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *error = NULL; const char *device = qdict_get_str(qdict, "device"); int64_t value = qdict_get_int(qdict, "speed"); @@ -299,8 +305,9 @@ void hmp_block_job_set_speed(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, error); } -void hmp_block_job_cancel(Monitor *mon, const QDict *qdict) +void hmp_block_job_cancel(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *error = NULL; const char *device = qdict_get_str(qdict, "device"); bool force = qdict_get_try_bool(qdict, "force", false); @@ -310,8 +317,9 @@ void hmp_block_job_cancel(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, error); } -void hmp_block_job_pause(Monitor *mon, const QDict *qdict) +void hmp_block_job_pause(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *error = NULL; const char *device = qdict_get_str(qdict, "device"); @@ -320,8 +328,9 @@ void hmp_block_job_pause(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, error); } -void hmp_block_job_resume(Monitor *mon, const QDict *qdict) +void hmp_block_job_resume(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *error = NULL; const char *device = qdict_get_str(qdict, "device"); @@ -330,8 +339,9 @@ void hmp_block_job_resume(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, error); } -void hmp_block_job_complete(Monitor *mon, const QDict *qdict) +void hmp_block_job_complete(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *error = NULL; const char *device = qdict_get_str(qdict, "device"); @@ -340,8 +350,9 @@ void hmp_block_job_complete(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, error); } -void hmp_snapshot_blkdev(Monitor *mon, const QDict *qdict) +void hmp_snapshot_blkdev(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *device = qdict_get_str(qdict, "device"); const char *filename = qdict_get_str(qdict, "snapshot-file"); const char *format = qdict_get_try_str(qdict, "format"); @@ -355,8 +366,9 @@ void hmp_snapshot_blkdev(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, err); } -void hmp_snapshot_blkdev_internal(Monitor *mon, const QDict *qdict) +void hmp_snapshot_blkdev_internal(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *device = qdict_get_str(qdict, "device"); const char *name = qdict_get_str(qdict, "name"); Error *err = NULL; @@ -365,8 +377,9 @@ void hmp_snapshot_blkdev_internal(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, err); } -void hmp_snapshot_delete_blkdev_internal(Monitor *mon, const QDict *qdict) +void hmp_snapshot_delete_blkdev_internal(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *device = qdict_get_str(qdict, "device"); const char *name = qdict_get_str(qdict, "name"); const char *id = qdict_get_try_str(qdict, "id"); @@ -376,8 +389,9 @@ void hmp_snapshot_delete_blkdev_internal(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, err); } -void hmp_nbd_server_start(Monitor *mon, const QDict *qdict) +void hmp_nbd_server_start(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *uri = qdict_get_str(qdict, "uri"); bool writable = qdict_get_try_bool(qdict, "writable", false); bool all = qdict_get_try_bool(qdict, "all", false); @@ -438,8 +452,9 @@ exit: hmp_handle_error(mon, local_err); } -void hmp_nbd_server_add(Monitor *mon, const QDict *qdict) +void hmp_nbd_server_add(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *device = qdict_get_str(qdict, "device"); const char *name = qdict_get_try_str(qdict, "name"); bool writable = qdict_get_try_bool(qdict, "writable", false); @@ -456,8 +471,9 @@ void hmp_nbd_server_add(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, local_err); } -void hmp_nbd_server_remove(Monitor *mon, const QDict *qdict) +void hmp_nbd_server_remove(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *name = qdict_get_str(qdict, "name"); bool force = qdict_get_try_bool(qdict, "force", false); Error *err = NULL; @@ -467,16 +483,18 @@ void hmp_nbd_server_remove(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, err); } -void hmp_nbd_server_stop(Monitor *mon, const QDict *qdict) +void hmp_nbd_server_stop(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; qmp_nbd_server_stop(&err); hmp_handle_error(mon, err); } -void coroutine_fn hmp_block_resize(Monitor *mon, const QDict *qdict) +void coroutine_fn hmp_block_resize(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *device = qdict_get_str(qdict, "device"); int64_t size = qdict_get_int(qdict, "size"); Error *err = NULL; @@ -485,8 +503,9 @@ void coroutine_fn hmp_block_resize(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, err); } -void hmp_block_stream(Monitor *mon, const QDict *qdict) +void hmp_block_stream(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *error = NULL; const char *device = qdict_get_str(qdict, "device"); const char *base = qdict_get_try_str(qdict, "base"); @@ -500,8 +519,9 @@ void hmp_block_stream(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, error); } -void hmp_block_set_io_throttle(Monitor *mon, const QDict *qdict) +void hmp_block_set_io_throttle(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; char *device = (char *) qdict_get_str(qdict, "device"); BlockIOThrottle throttle = { @@ -528,8 +548,9 @@ void hmp_block_set_io_throttle(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, err); } -void hmp_eject(Monitor *mon, const QDict *qdict) +void hmp_eject(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); bool force = qdict_get_try_bool(qdict, "force", false); const char *device = qdict_get_str(qdict, "device"); Error *err = NULL; @@ -538,8 +559,9 @@ void hmp_eject(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, err); } -void hmp_qemu_io(Monitor *mon, const QDict *qdict) +void hmp_qemu_io(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); bool qdev = qdict_get_try_bool(qdict, "qdev", false); const char *device = qdict_get_str(qdict, "device"); const char *command = qdict_get_str(qdict, "command"); @@ -666,8 +688,9 @@ static void print_block_info(Monitor *mon, BlockInfo *info, } } -void hmp_info_block(Monitor *mon, const QDict *qdict) +void hmp_info_block(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); BlockInfoList *block_list, *info; BlockDeviceInfoList *blockdev_list, *blockdev; const char *device = qdict_get_try_str(qdict, "device"); @@ -719,8 +742,9 @@ void hmp_info_block(Monitor *mon, const QDict *qdict) qapi_free_BlockDeviceInfoList(blockdev_list); } -void hmp_info_blockstats(Monitor *mon, const QDict *qdict) +void hmp_info_blockstats(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); BlockStatsList *stats_list, *stats; stats_list = qmp_query_blockstats(false, false, NULL); @@ -757,8 +781,9 @@ void hmp_info_blockstats(Monitor *mon, const QDict *qdict) qapi_free_BlockStatsList(stats_list); } -void hmp_info_block_jobs(Monitor *mon, const QDict *qdict) +void hmp_info_block_jobs(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); BlockJobInfoList *list; list = qmp_query_block_jobs(&error_abort); @@ -793,8 +818,9 @@ void hmp_info_block_jobs(Monitor *mon, const QDict *qdict) qapi_free_BlockJobInfoList(list); } -void hmp_info_snapshots(Monitor *mon, const QDict *qdict) +void hmp_info_snapshots(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); BlockDriverState *bs, *bs1; BdrvNextIterator it1; QEMUSnapshotInfo *sn_tab, *sn; diff --git a/chardev/char-hmp-cmds.c b/chardev/char-hmp-cmds.c index f377e00b6991..d4a5a3a255a5 100644 --- a/chardev/char-hmp-cmds.c +++ b/chardev/char-hmp-cmds.c @@ -24,8 +24,9 @@ #include "qemu/config-file.h" #include "qemu/option.h" -void hmp_info_chardev(Monitor *mon, const QDict *qdict) +void hmp_info_chardev(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); ChardevInfoList *char_info, *info; char_info = qmp_query_chardev(NULL); @@ -37,8 +38,9 @@ void hmp_info_chardev(Monitor *mon, const QDict *qdict) qapi_free_ChardevInfoList(char_info); } -void hmp_ringbuf_write(Monitor *mon, const QDict *qdict) +void hmp_ringbuf_write(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *chardev = qdict_get_str(qdict, "device"); const char *data = qdict_get_str(qdict, "data"); Error *err = NULL; @@ -48,8 +50,9 @@ void hmp_ringbuf_write(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, err); } -void hmp_ringbuf_read(Monitor *mon, const QDict *qdict) +void hmp_ringbuf_read(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); uint32_t size = qdict_get_int(qdict, "size"); const char *chardev = qdict_get_str(qdict, "device"); char *data; @@ -77,8 +80,9 @@ void hmp_ringbuf_read(Monitor *mon, const QDict *qdict) g_free(data); } -void hmp_chardev_add(Monitor *mon, const QDict *qdict) +void hmp_chardev_add(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *args = qdict_get_str(qdict, "args"); Error *err = NULL; QemuOpts *opts; @@ -93,8 +97,9 @@ void hmp_chardev_add(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, err); } -void hmp_chardev_change(Monitor *mon, const QDict *qdict) +void hmp_chardev_change(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *args = qdict_get_str(qdict, "args"); const char *id; Error *err = NULL; @@ -127,16 +132,18 @@ end: hmp_handle_error(mon, err); } -void hmp_chardev_remove(Monitor *mon, const QDict *qdict) +void hmp_chardev_remove(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *local_err = NULL; qmp_chardev_remove(qdict_get_str(qdict, "id"), &local_err); hmp_handle_error(mon, local_err); } -void hmp_chardev_send_break(Monitor *mon, const QDict *qdict) +void hmp_chardev_send_break(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *local_err = NULL; qmp_chardev_send_break(qdict_get_str(qdict, "id"), &local_err); diff --git a/dump/dump-hmp-cmds.c b/dump/dump-hmp-cmds.c index 21023db6fd85..ba78ad026f1e 100644 --- a/dump/dump-hmp-cmds.c +++ b/dump/dump-hmp-cmds.c @@ -12,8 +12,9 @@ #include "qapi/qapi-commands-dump.h" #include "qobject/qdict.h" -void hmp_dump_guest_memory(Monitor *mon, const QDict *qdict) +void hmp_dump_guest_memory(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; bool win_dmp = qdict_get_try_bool(qdict, "windmp", false); bool paging = qdict_get_try_bool(qdict, "paging", false); @@ -83,8 +84,9 @@ void hmp_dump_guest_memory(Monitor *mon, const QDict *qdict) g_free(prot); } -void hmp_info_dump(Monitor *mon, const QDict *qdict) +void hmp_info_dump(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); DumpQueryResult *result = qmp_query_dump(NULL); assert(result && result->status < DUMP_STATUS__MAX); diff --git a/hw/core/machine-hmp-cmds.c b/hw/core/machine-hmp-cmds.c index 1c700aad3587..48fa27f12705 100644 --- a/hw/core/machine-hmp-cmds.c +++ b/hw/core/machine-hmp-cmds.c @@ -25,8 +25,9 @@ #include "system/numa.h" #include "hw/core/boards.h" -void hmp_info_cpus(Monitor *mon, const QDict *qdict) +void hmp_info_cpus(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); CpuInfoFastList *cpu_list, *cpu; cpu_list = qmp_query_cpus_fast(NULL); @@ -48,8 +49,9 @@ void hmp_info_cpus(Monitor *mon, const QDict *qdict) qapi_free_CpuInfoFastList(cpu_list); } -void hmp_hotpluggable_cpus(Monitor *mon, const QDict *qdict) +void hmp_hotpluggable_cpus(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; HotpluggableCPUList *l = qmp_query_hotpluggable_cpus(&err); HotpluggableCPUList *saved = l; @@ -106,8 +108,9 @@ void hmp_hotpluggable_cpus(Monitor *mon, const QDict *qdict) qapi_free_HotpluggableCPUList(saved); } -void hmp_info_memdev(Monitor *mon, const QDict *qdict) +void hmp_info_memdev(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; MemdevList *memdev_list = qmp_query_memdev(&err); MemdevList *m = memdev_list; @@ -147,8 +150,9 @@ void hmp_info_memdev(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, err); } -void hmp_info_kvm(Monitor *mon, const QDict *qdict) +void hmp_info_kvm(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); KvmInfo *info; info = qmp_query_kvm(NULL); @@ -162,8 +166,9 @@ void hmp_info_kvm(Monitor *mon, const QDict *qdict) qapi_free_KvmInfo(info); } -void hmp_info_accelerators(Monitor *mon, const QDict *qdict) +void hmp_info_accelerators(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); AcceleratorInfo *info; AcceleratorList *accel; @@ -180,8 +185,9 @@ void hmp_info_accelerators(Monitor *mon, const QDict *qdict) qapi_free_AcceleratorInfo(info); } -void hmp_info_uuid(Monitor *mon, const QDict *qdict) +void hmp_info_uuid(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); UuidInfo *info; info = qmp_query_uuid(NULL); @@ -189,8 +195,9 @@ void hmp_info_uuid(Monitor *mon, const QDict *qdict) qapi_free_UuidInfo(info); } -void hmp_info_balloon(Monitor *mon, const QDict *qdict) +void hmp_info_balloon(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); BalloonInfo *info; Error *err = NULL; @@ -204,18 +211,19 @@ void hmp_info_balloon(Monitor *mon, const QDict *qdict) qapi_free_BalloonInfo(info); } -void hmp_system_reset(Monitor *mon, const QDict *qdict) +void hmp_system_reset(MonitorHMP *hmp, const QDict *qdict) { qmp_system_reset(NULL); } -void hmp_system_powerdown(Monitor *mon, const QDict *qdict) +void hmp_system_powerdown(MonitorHMP *hmp, const QDict *qdict) { qmp_system_powerdown(NULL); } -void hmp_memsave(Monitor *mon, const QDict *qdict) +void hmp_memsave(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); uint32_t size = qdict_get_int(qdict, "size"); const char *filename = qdict_get_str(qdict, "filename"); uint64_t addr = qdict_get_int(qdict, "val"); @@ -231,8 +239,9 @@ void hmp_memsave(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, err); } -void hmp_pmemsave(Monitor *mon, const QDict *qdict) +void hmp_pmemsave(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); uint32_t size = qdict_get_int(qdict, "size"); const char *filename = qdict_get_str(qdict, "filename"); uint64_t addr = qdict_get_int(qdict, "val"); @@ -242,24 +251,27 @@ void hmp_pmemsave(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, err); } -void hmp_system_wakeup(Monitor *mon, const QDict *qdict) +void hmp_system_wakeup(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; qmp_system_wakeup(&err); hmp_handle_error(mon, err); } -void hmp_nmi(Monitor *mon, const QDict *qdict) +void hmp_nmi(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; qmp_inject_nmi(&err); hmp_handle_error(mon, err); } -void hmp_balloon(Monitor *mon, const QDict *qdict) +void hmp_balloon(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); int64_t value = qdict_get_int(qdict, "value"); Error *err = NULL; @@ -267,8 +279,9 @@ void hmp_balloon(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, err); } -void hmp_info_memory_devices(Monitor *mon, const QDict *qdict) +void hmp_info_memory_devices(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; MemoryDeviceInfoList *info_list = qmp_query_memory_devices(&err); MemoryDeviceInfoList *info; @@ -370,8 +383,9 @@ void hmp_info_memory_devices(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, err); } -void hmp_info_vm_generation_id(Monitor *mon, const QDict *qdict) +void hmp_info_vm_generation_id(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; GuidInfo *info = qmp_query_vm_generation_id(&err); if (info) { @@ -381,8 +395,9 @@ void hmp_info_vm_generation_id(Monitor *mon, const QDict *qdict) qapi_free_GuidInfo(info); } -void hmp_info_memory_size_summary(Monitor *mon, const QDict *qdict) +void hmp_info_memory_size_summary(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; MemoryInfo *info = qmp_query_memory_size_summary(&err); if (info) { diff --git a/hw/i386/kvm/xen-stubs.c b/hw/i386/kvm/xen-stubs.c index bf6ac28bef47..ab1eb14f99e0 100644 --- a/hw/i386/kvm/xen-stubs.c +++ b/hw/i386/kvm/xen-stubs.c @@ -40,12 +40,14 @@ void xen_primary_console_set_be_port(uint16_t port) { } -void hmp_xen_event_list(Monitor *mon, const QDict *qdict) +void hmp_xen_event_list(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); monitor_printf(mon, "XEN emulation is not available in this QEMU\n"); } -void hmp_xen_event_inject(Monitor *mon, const QDict *qdict) +void hmp_xen_event_inject(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); monitor_printf(mon, "XEN emulation is not available in this QEMU\n"); } diff --git a/hw/i386/kvm/xen_evtchn.c b/hw/i386/kvm/xen_evtchn.c index 8b243984e412..845838c372d5 100644 --- a/hw/i386/kvm/xen_evtchn.c +++ b/hw/i386/kvm/xen_evtchn.c @@ -2344,8 +2344,9 @@ void qmp_xen_event_inject(uint32_t port, Error **errp) } } -void hmp_xen_event_list(Monitor *mon, const QDict *qdict) +void hmp_xen_event_list(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); EvtchnInfoList *iter, *info_list; Error *err = NULL; @@ -2379,8 +2380,9 @@ void hmp_xen_event_list(Monitor *mon, const QDict *qdict) qapi_free_EvtchnInfoList(info_list); } -void hmp_xen_event_inject(Monitor *mon, const QDict *qdict) +void hmp_xen_event_inject(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); int port = qdict_get_int(qdict, "port"); Error *err = NULL; diff --git a/hw/i386/sgx-hmp-stub.c b/hw/i386/sgx-hmp-stub.c index cf1d9a6344b0..a4848ae1d1a7 100644 --- a/hw/i386/sgx-hmp-stub.c +++ b/hw/i386/sgx-hmp-stub.c @@ -10,7 +10,8 @@ #include "monitor/hmp.h" #include "monitor/monitor.h" -void hmp_info_sgx(Monitor *mon, const QDict *qdict) +void hmp_info_sgx(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); monitor_printf(mon, "SGX is not available in this QEMU\n"); } diff --git a/hw/i386/sgx.c b/hw/i386/sgx.c index 7e4c509f5a4a..77b41d234c9f 100644 --- a/hw/i386/sgx.c +++ b/hw/i386/sgx.c @@ -234,8 +234,9 @@ SgxInfo *qmp_query_sgx(Error **errp) return info; } -void hmp_info_sgx(Monitor *mon, const QDict *qdict) +void hmp_info_sgx(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; SgxEpcSectionList *section_list, *section; g_autoptr(SgxInfo) info = qmp_query_sgx(&err); diff --git a/hw/misc/mos6522-stub.c b/hw/misc/mos6522-stub.c index 85eb0ee36ee1..6a7d76292f00 100644 --- a/hw/misc/mos6522-stub.c +++ b/hw/misc/mos6522-stub.c @@ -10,7 +10,8 @@ #include "monitor/monitor.h" #include "monitor/hmp.h" -void hmp_info_via(Monitor *mon, const QDict *qdict) +void hmp_info_via(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); monitor_printf(mon, "MOS6522 VIA is not available in this QEMU\n"); } diff --git a/hw/misc/mos6522.c b/hw/misc/mos6522.c index bae766ef1782..15a6a1a75745 100644 --- a/hw/misc/mos6522.c +++ b/hw/misc/mos6522.c @@ -586,8 +586,9 @@ static HumanReadableText *qmp_x_query_via(Error **errp) return human_readable_text_from_str(buf); } -void hmp_info_via(Monitor *mon, const QDict *qdict) +void hmp_info_via(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; g_autoptr(HumanReadableText) info = qmp_x_query_via(&err); diff --git a/hw/net/rocker/rocker-hmp-cmds.c b/hw/net/rocker/rocker-hmp-cmds.c index df40991f6d20..856aaef5e210 100644 --- a/hw/net/rocker/rocker-hmp-cmds.c +++ b/hw/net/rocker/rocker-hmp-cmds.c @@ -20,8 +20,9 @@ #include "qapi/qapi-commands-rocker.h" #include "qobject/qdict.h" -void hmp_rocker(Monitor *mon, const QDict *qdict) +void hmp_rocker(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *name = qdict_get_str(qdict, "name"); RockerSwitch *rocker; Error *err = NULL; @@ -38,8 +39,9 @@ void hmp_rocker(Monitor *mon, const QDict *qdict) qapi_free_RockerSwitch(rocker); } -void hmp_rocker_ports(Monitor *mon, const QDict *qdict) +void hmp_rocker_ports(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); RockerPortList *list, *port; const char *name = qdict_get_str(qdict, "name"); Error *err = NULL; @@ -65,8 +67,9 @@ void hmp_rocker_ports(Monitor *mon, const QDict *qdict) qapi_free_RockerPortList(list); } -void hmp_rocker_of_dpa_flows(Monitor *mon, const QDict *qdict) +void hmp_rocker_of_dpa_flows(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); RockerOfDpaFlowList *list, *info; const char *name = qdict_get_str(qdict, "name"); uint32_t tbl_id = qdict_get_try_int(qdict, "tbl_id", -1); @@ -214,8 +217,9 @@ void hmp_rocker_of_dpa_flows(Monitor *mon, const QDict *qdict) qapi_free_RockerOfDpaFlowList(list); } -void hmp_rocker_of_dpa_groups(Monitor *mon, const QDict *qdict) +void hmp_rocker_of_dpa_groups(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); RockerOfDpaGroupList *list, *g; const char *name = qdict_get_str(qdict, "name"); uint8_t type = qdict_get_try_int(qdict, "type", 9); diff --git a/hw/pci/pci-hmp-cmds.c b/hw/pci/pci-hmp-cmds.c index a5f6483cc3d2..be24aecc8ac8 100644 --- a/hw/pci/pci-hmp-cmds.c +++ b/hw/pci/pci-hmp-cmds.c @@ -117,8 +117,9 @@ static void hmp_info_pci_device(Monitor *mon, const PciDeviceInfo *dev) } } -void hmp_info_pci(Monitor *mon, const QDict *qdict) +void hmp_info_pci(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); PciInfoList *info_list, *info; info_list = qmp_query_pci(&error_abort); @@ -170,8 +171,9 @@ void pcibus_dev_print(Monitor *mon, DeviceState *dev, int indent) } } -void hmp_pcie_aer_inject_error(Monitor *mon, const QDict *qdict) +void hmp_pcie_aer_inject_error(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; const char *id = qdict_get_str(qdict, "id"); const char *error_name; diff --git a/hw/pci/pci-stub.c b/hw/pci/pci-stub.c index 3397d0c82ea8..a80e34175462 100644 --- a/hw/pci/pci-stub.c +++ b/hw/pci/pci-stub.c @@ -34,12 +34,13 @@ PciInfoList *qmp_query_pci(Error **errp) return NULL; } -void hmp_info_pci(Monitor *mon, const QDict *qdict) +void hmp_info_pci(MonitorHMP *hmp, const QDict *qdict) { } -void hmp_pcie_aer_inject_error(Monitor *mon, const QDict *qdict) +void hmp_pcie_aer_inject_error(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); monitor_printf(mon, "PCI devices not supported\n"); } diff --git a/hw/s390x/s390-skeys.c b/hw/s390x/s390-skeys.c index 7dca67d6618c..d8afaf730639 100644 --- a/hw/s390x/s390-skeys.c +++ b/hw/s390x/s390-skeys.c @@ -104,8 +104,9 @@ static void write_keys(FILE *f, uint8_t *keys, uint64_t startgfn, } } -void hmp_info_skeys(Monitor *mon, const QDict *qdict) +void hmp_info_skeys(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); S390SKeysState *ss = s390_get_skeys_device(); S390SKeysClass *skeyclass = S390_SKEYS_GET_CLASS(ss); uint64_t addr = qdict_get_int(qdict, "addr"); @@ -134,7 +135,7 @@ void hmp_info_skeys(Monitor *mon, const QDict *qdict) monitor_printf(mon, " key: 0x%X\n", key); } -void hmp_dump_skeys(Monitor *mon, const QDict *qdict) +void hmp_dump_skeys(MonitorHMP *hmp, const QDict *qdict) { const char *filename = qdict_get_str(qdict, "filename"); Error *err = NULL; diff --git a/hw/s390x/s390-stattrib.c b/hw/s390x/s390-stattrib.c index b0f04eb30c7f..b4a405455901 100644 --- a/hw/s390x/s390-stattrib.c +++ b/hw/s390x/s390-stattrib.c @@ -59,8 +59,9 @@ void s390_stattrib_init(void) /* Console commands: */ -void hmp_migrationmode(Monitor *mon, const QDict *qdict) +void hmp_migrationmode(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); S390StAttribState *sas = s390_get_stattrib_device(); S390StAttribClass *sac = S390_STATTRIB_GET_CLASS(sas); uint64_t what = qdict_get_int(qdict, "mode"); @@ -74,8 +75,9 @@ void hmp_migrationmode(Monitor *mon, const QDict *qdict) } } -void hmp_info_cmma(Monitor *mon, const QDict *qdict) +void hmp_info_cmma(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); S390StAttribState *sas = s390_get_stattrib_device(); S390StAttribClass *sac = S390_STATTRIB_GET_CLASS(sas); uint64_t addr = qdict_get_int(qdict, "addr"); diff --git a/hw/uefi/ovmf-log.c b/hw/uefi/ovmf-log.c index 3a24afd9417d..c97622b2aad6 100644 --- a/hw/uefi/ovmf-log.c +++ b/hw/uefi/ovmf-log.c @@ -256,8 +256,9 @@ FirmwareLog *qmp_query_firmware_log(bool have_max_size, uint64_t max_size, return ret; } -void hmp_info_firmware_log(Monitor *mon, const QDict *qdict) +void hmp_info_firmware_log(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); g_autofree gchar *log_esc = NULL; g_autofree guchar *log_out = NULL; Error *err = NULL; diff --git a/hw/usb/host-libusb.c b/hw/usb/host-libusb.c index af67d5dfeb10..c02343d3a655 100644 --- a/hw/usb/host-libusb.c +++ b/hw/usb/host-libusb.c @@ -1920,8 +1920,9 @@ static void usb_host_auto_check(void *unused) timer_mod(usb_auto_timer, qemu_clock_get_ms(QEMU_CLOCK_REALTIME) + 2000); } -void hmp_info_usbhost(Monitor *mon, const QDict *qdict) +void hmp_info_usbhost(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); libusb_device **devs = NULL; struct libusb_device_descriptor ddesc; char port[16]; diff --git a/hw/virtio/virtio-hmp-cmds.c b/hw/virtio/virtio-hmp-cmds.c index a91bb7dbeda5..49f3367785ba 100644 --- a/hw/virtio/virtio-hmp-cmds.c +++ b/hw/virtio/virtio-hmp-cmds.c @@ -80,8 +80,9 @@ static void hmp_virtio_dump_features(Monitor *mon, } } -void hmp_virtio_query(Monitor *mon, const QDict *qdict) +void hmp_virtio_query(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; VirtioInfoList *list = qmp_x_query_virtio(&err); VirtioInfoList *node; @@ -105,8 +106,9 @@ void hmp_virtio_query(Monitor *mon, const QDict *qdict) qapi_free_VirtioInfoList(list); } -void hmp_virtio_status(Monitor *mon, const QDict *qdict) +void hmp_virtio_status(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; const char *path = qdict_get_try_str(qdict, "path"); VirtioStatus *s = qmp_x_query_virtio_status(path, &err); @@ -183,8 +185,9 @@ void hmp_virtio_status(Monitor *mon, const QDict *qdict) qapi_free_VirtioStatus(s); } -void hmp_vhost_queue_status(Monitor *mon, const QDict *qdict) +void hmp_vhost_queue_status(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; const char *path = qdict_get_try_str(qdict, "path"); int queue = qdict_get_int(qdict, "queue"); @@ -216,8 +219,9 @@ void hmp_vhost_queue_status(Monitor *mon, const QDict *qdict) qapi_free_VirtVhostQueueStatus(s); } -void hmp_virtio_queue_status(Monitor *mon, const QDict *qdict) +void hmp_virtio_queue_status(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; const char *path = qdict_get_try_str(qdict, "path"); int queue = qdict_get_int(qdict, "queue"); @@ -261,8 +265,9 @@ void hmp_virtio_queue_status(Monitor *mon, const QDict *qdict) qapi_free_VirtQueueStatus(s); } -void hmp_virtio_queue_element(Monitor *mon, const QDict *qdict) +void hmp_virtio_queue_element(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; const char *path = qdict_get_try_str(qdict, "path"); int queue = qdict_get_int(qdict, "queue"); diff --git a/include/block/block-hmp-cmds.h b/include/block/block-hmp-cmds.h index 71113cd7efa4..0f5908958f05 100644 --- a/include/block/block-hmp-cmds.h +++ b/include/block/block-hmp-cmds.h @@ -16,41 +16,42 @@ #define BLOCK_BLOCK_HMP_CMDS_H #include "qemu/coroutine.h" +#include "monitor/hmp.h" -void hmp_drive_add(Monitor *mon, const QDict *qdict); +void hmp_drive_add(MonitorHMP *hmp, const QDict *qdict); -void hmp_commit(Monitor *mon, const QDict *qdict); -void hmp_drive_del(Monitor *mon, const QDict *qdict); +void hmp_commit(MonitorHMP *hmp, const QDict *qdict); +void hmp_drive_del(MonitorHMP *hmp, const QDict *qdict); -void hmp_drive_mirror(Monitor *mon, const QDict *qdict); -void hmp_drive_backup(Monitor *mon, const QDict *qdict); +void hmp_drive_mirror(MonitorHMP *hmp, const QDict *qdict); +void hmp_drive_backup(MonitorHMP *hmp, const QDict *qdict); -void hmp_block_job_set_speed(Monitor *mon, const QDict *qdict); -void hmp_block_job_cancel(Monitor *mon, const QDict *qdict); -void hmp_block_job_pause(Monitor *mon, const QDict *qdict); -void hmp_block_job_resume(Monitor *mon, const QDict *qdict); -void hmp_block_job_complete(Monitor *mon, const QDict *qdict); +void hmp_block_job_set_speed(MonitorHMP *hmp, const QDict *qdict); +void hmp_block_job_cancel(MonitorHMP *hmp, const QDict *qdict); +void hmp_block_job_pause(MonitorHMP *hmp, const QDict *qdict); +void hmp_block_job_resume(MonitorHMP *hmp, const QDict *qdict); +void hmp_block_job_complete(MonitorHMP *hmp, const QDict *qdict); -void hmp_snapshot_blkdev(Monitor *mon, const QDict *qdict); -void hmp_snapshot_blkdev_internal(Monitor *mon, const QDict *qdict); -void hmp_snapshot_delete_blkdev_internal(Monitor *mon, const QDict *qdict); +void hmp_snapshot_blkdev(MonitorHMP *hmp, const QDict *qdict); +void hmp_snapshot_blkdev_internal(MonitorHMP *hmp, const QDict *qdict); +void hmp_snapshot_delete_blkdev_internal(MonitorHMP *hmp, const QDict *qdict); -void hmp_nbd_server_start(Monitor *mon, const QDict *qdict); -void hmp_nbd_server_add(Monitor *mon, const QDict *qdict); -void hmp_nbd_server_remove(Monitor *mon, const QDict *qdict); -void hmp_nbd_server_stop(Monitor *mon, const QDict *qdict); +void hmp_nbd_server_start(MonitorHMP *hmp, const QDict *qdict); +void hmp_nbd_server_add(MonitorHMP *hmp, const QDict *qdict); +void hmp_nbd_server_remove(MonitorHMP *hmp, const QDict *qdict); +void hmp_nbd_server_stop(MonitorHMP *hmp, const QDict *qdict); -void coroutine_fn hmp_block_resize(Monitor *mon, const QDict *qdict); -void hmp_block_stream(Monitor *mon, const QDict *qdict); -void hmp_block_passwd(Monitor *mon, const QDict *qdict); -void hmp_block_set_io_throttle(Monitor *mon, const QDict *qdict); -void hmp_eject(Monitor *mon, const QDict *qdict); +void coroutine_fn hmp_block_resize(MonitorHMP *hmp, const QDict *qdict); +void hmp_block_stream(MonitorHMP *hmp, const QDict *qdict); +void hmp_block_passwd(MonitorHMP *hmp, const QDict *qdict); +void hmp_block_set_io_throttle(MonitorHMP *hmp, const QDict *qdict); +void hmp_eject(MonitorHMP *hmp, const QDict *qdict); -void hmp_qemu_io(Monitor *mon, const QDict *qdict); +void hmp_qemu_io(MonitorHMP *hmp, const QDict *qdict); -void hmp_info_block(Monitor *mon, const QDict *qdict); -void hmp_info_blockstats(Monitor *mon, const QDict *qdict); -void hmp_info_block_jobs(Monitor *mon, const QDict *qdict); -void hmp_info_snapshots(Monitor *mon, const QDict *qdict); +void hmp_info_block(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_blockstats(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_block_jobs(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_snapshots(MonitorHMP *hmp, const QDict *qdict); #endif diff --git a/include/hw/usb/usb.h b/include/hw/usb/usb.h index 78e2ceedd7fd..cbd4711933e8 100644 --- a/include/hw/usb/usb.h +++ b/include/hw/usb/usb.h @@ -31,6 +31,7 @@ #include "qemu/queue.h" #include "qom/object.h" #include "qapi/error.h" +#include "monitor/hmp.h" /* Constants related to the USB / PCI interaction */ #define USB_SBRN 0x60 /* Serial Bus Release Number Register */ @@ -466,7 +467,7 @@ void usb_wakeup(USBEndpoint *ep, unsigned int stream); void usb_generic_async_ctrl_complete(USBDevice *s, USBPacket *p); /* usb-linux.c */ -void hmp_info_usbhost(Monitor *mon, const QDict *qdict); +void hmp_info_usbhost(MonitorHMP *hmp, const QDict *qdict); /* usb ports of the VM */ diff --git a/include/monitor/hmp.h b/include/monitor/hmp.h index 166cd4100c63..7a270ad3f25c 100644 --- a/include/monitor/hmp.h +++ b/include/monitor/hmp.h @@ -22,7 +22,7 @@ OBJECT_DECLARE_TYPE(MonitorHMP, MonitorHMPClass, MONITOR_HMP); #define HMP_STUB(cmd) \ - void hmp_##cmd(Monitor *mon, const QDict *qdict) \ + void hmp_##cmd(MonitorHMP *hmp, const QDict *qdict) \ { \ g_assert_not_reached(); \ } @@ -46,7 +46,7 @@ int monitor_hmp_read_password(MonitorHMP *hmp, ReadLineFunc *readline_func, void *opaque); void monitor_register_hmp(const char *name, bool info, - void (*cmd)(Monitor *mon, const QDict *qdict)); + void (*cmd)(MonitorHMP *mon, const QDict *qdict)); void monitor_register_hmp_info_hrt(const char *name, HumanReadableText *(*handler)(Error **errp)); @@ -58,58 +58,58 @@ bool hmp_handle_error(Monitor *mon, Error *err); void hmp_help_cmd(Monitor *mon, const char *name); strList *hmp_split_at_comma(const char *str); -void hmp_info_name(Monitor *mon, const QDict *qdict); -void hmp_info_version(Monitor *mon, const QDict *qdict); -void hmp_info_kvm(Monitor *mon, const QDict *qdict); -void hmp_info_accelerators(Monitor *mon, const QDict *qdict); -void hmp_info_status(Monitor *mon, const QDict *qdict); -void hmp_info_uuid(Monitor *mon, const QDict *qdict); -void hmp_info_chardev(Monitor *mon, const QDict *qdict); -void hmp_info_mice(Monitor *mon, const QDict *qdict); -void hmp_info_migrate(Monitor *mon, const QDict *qdict); -void hmp_info_migrate_capabilities(Monitor *mon, const QDict *qdict); -void hmp_info_migrate_parameters(Monitor *mon, const QDict *qdict); -void hmp_info_cpus(Monitor *mon, const QDict *qdict); -void hmp_info_vnc(Monitor *mon, const QDict *qdict); -void hmp_info_spice(Monitor *mon, const QDict *qdict); -void hmp_info_balloon(Monitor *mon, const QDict *qdict); -void hmp_info_pci(Monitor *mon, const QDict *qdict); -void hmp_info_tpm(Monitor *mon, const QDict *qdict); -void hmp_info_iothreads(Monitor *mon, const QDict *qdict); -void hmp_quit(Monitor *mon, const QDict *qdict); -void hmp_stop(Monitor *mon, const QDict *qdict); -void hmp_sync_profile(Monitor *mon, const QDict *qdict); -void hmp_system_reset(Monitor *mon, const QDict *qdict); -void hmp_system_powerdown(Monitor *mon, const QDict *qdict); -void hmp_exit_preconfig(Monitor *mon, const QDict *qdict); -void hmp_announce_self(Monitor *mon, const QDict *qdict); -void hmp_cpu(Monitor *mon, const QDict *qdict); -void hmp_memsave(Monitor *mon, const QDict *qdict); -void hmp_pmemsave(Monitor *mon, const QDict *qdict); -void hmp_ringbuf_write(Monitor *mon, const QDict *qdict); -void hmp_ringbuf_read(Monitor *mon, const QDict *qdict); -void hmp_cont(Monitor *mon, const QDict *qdict); -void hmp_system_wakeup(Monitor *mon, const QDict *qdict); -void hmp_nmi(Monitor *mon, const QDict *qdict); -void hmp_info_network(Monitor *mon, const QDict *qdict); -void hmp_set_link(Monitor *mon, const QDict *qdict); -void hmp_balloon(Monitor *mon, const QDict *qdict); -void hmp_loadvm(Monitor *mon, const QDict *qdict); -void hmp_savevm(Monitor *mon, const QDict *qdict); -void hmp_delvm(Monitor *mon, const QDict *qdict); -void hmp_migrate_cancel(Monitor *mon, const QDict *qdict); -void hmp_migrate_continue(Monitor *mon, const QDict *qdict); -void hmp_migrate_incoming(Monitor *mon, const QDict *qdict); -void hmp_migrate_recover(Monitor *mon, const QDict *qdict); -void hmp_migrate_pause(Monitor *mon, const QDict *qdict); -void hmp_migrate_set_capability(Monitor *mon, const QDict *qdict); -void hmp_migrate_set_parameter(Monitor *mon, const QDict *qdict); -void hmp_client_migrate_info(Monitor *mon, const QDict *qdict); -void hmp_migrate_start_postcopy(Monitor *mon, const QDict *qdict); -void hmp_x_colo_lost_heartbeat(Monitor *mon, const QDict *qdict); -void hmp_set_password(Monitor *mon, const QDict *qdict); -void hmp_expire_password(Monitor *mon, const QDict *qdict); -void hmp_change(Monitor *mon, const QDict *qdict); +void hmp_info_name(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_version(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_kvm(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_accelerators(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_status(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_uuid(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_chardev(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_mice(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_migrate(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_migrate_capabilities(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_migrate_parameters(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_cpus(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_vnc(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_spice(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_balloon(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_pci(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_tpm(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_iothreads(MonitorHMP *hmp, const QDict *qdict); +void hmp_quit(MonitorHMP *hmp, const QDict *qdict); +void hmp_stop(MonitorHMP *hmp, const QDict *qdict); +void hmp_sync_profile(MonitorHMP *hmp, const QDict *qdict); +void hmp_system_reset(MonitorHMP *hmp, const QDict *qdict); +void hmp_system_powerdown(MonitorHMP *hmp, const QDict *qdict); +void hmp_exit_preconfig(MonitorHMP *hmp, const QDict *qdict); +void hmp_announce_self(MonitorHMP *hmp, const QDict *qdict); +void hmp_cpu(MonitorHMP *hmp, const QDict *qdict); +void hmp_memsave(MonitorHMP *hmp, const QDict *qdict); +void hmp_pmemsave(MonitorHMP *hmp, const QDict *qdict); +void hmp_ringbuf_write(MonitorHMP *hmp, const QDict *qdict); +void hmp_ringbuf_read(MonitorHMP *hmp, const QDict *qdict); +void hmp_cont(MonitorHMP *hmp, const QDict *qdict); +void hmp_system_wakeup(MonitorHMP *hmp, const QDict *qdict); +void hmp_nmi(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_network(MonitorHMP *hmp, const QDict *qdict); +void hmp_set_link(MonitorHMP *hmp, const QDict *qdict); +void hmp_balloon(MonitorHMP *hmp, const QDict *qdict); +void hmp_loadvm(MonitorHMP *hmp, const QDict *qdict); +void hmp_savevm(MonitorHMP *hmp, const QDict *qdict); +void hmp_delvm(MonitorHMP *hmp, const QDict *qdict); +void hmp_migrate_cancel(MonitorHMP *hmp, const QDict *qdict); +void hmp_migrate_continue(MonitorHMP *hmp, const QDict *qdict); +void hmp_migrate_incoming(MonitorHMP *hmp, const QDict *qdict); +void hmp_migrate_recover(MonitorHMP *hmp, const QDict *qdict); +void hmp_migrate_pause(MonitorHMP *hmp, const QDict *qdict); +void hmp_migrate_set_capability(MonitorHMP *hmp, const QDict *qdict); +void hmp_migrate_set_parameter(MonitorHMP *hmp, const QDict *qdict); +void hmp_client_migrate_info(MonitorHMP *hmp, const QDict *qdict); +void hmp_migrate_start_postcopy(MonitorHMP *hmp, const QDict *qdict); +void hmp_x_colo_lost_heartbeat(MonitorHMP *hmp, const QDict *qdict); +void hmp_set_password(MonitorHMP *hmp, const QDict *qdict); +void hmp_expire_password(MonitorHMP *hmp, const QDict *qdict); +void hmp_change(MonitorHMP *hmp, const QDict *qdict); #ifdef CONFIG_VNC void hmp_change_vnc(Monitor *mon, const char *device, const char *target, const char *arg, const char *read_only, bool force, @@ -118,101 +118,101 @@ void hmp_change_vnc(Monitor *mon, const char *device, const char *target, void hmp_change_medium(Monitor *mon, const char *device, const char *target, const char *arg, const char *read_only, bool force, Error **errp); -void hmp_migrate(Monitor *mon, const QDict *qdict); -void hmp_device_add(Monitor *mon, const QDict *qdict); -void hmp_device_del(Monitor *mon, const QDict *qdict); -void hmp_dump_guest_memory(Monitor *mon, const QDict *qdict); -void hmp_netdev_add(Monitor *mon, const QDict *qdict); -void hmp_netdev_del(Monitor *mon, const QDict *qdict); -void hmp_getfd(Monitor *mon, const QDict *qdict); -void hmp_closefd(Monitor *mon, const QDict *qdict); -void hmp_mouse_move(Monitor *mon, const QDict *qdict); -void hmp_mouse_button(Monitor *mon, const QDict *qdict); -void hmp_mouse_set(Monitor *mon, const QDict *qdict); -void hmp_sendkey(Monitor *mon, const QDict *qdict); -void coroutine_fn hmp_screendump(Monitor *mon, const QDict *qdict); -void hmp_chardev_add(Monitor *mon, const QDict *qdict); -void hmp_chardev_change(Monitor *mon, const QDict *qdict); -void hmp_chardev_remove(Monitor *mon, const QDict *qdict); -void hmp_chardev_send_break(Monitor *mon, const QDict *qdict); -void hmp_object_add(Monitor *mon, const QDict *qdict); -void hmp_object_del(Monitor *mon, const QDict *qdict); -void hmp_info_memdev(Monitor *mon, const QDict *qdict); -void hmp_info_memory_devices(Monitor *mon, const QDict *qdict); -void hmp_qom_list(Monitor *mon, const QDict *qdict); -void hmp_qom_get(Monitor *mon, const QDict *qdict); -void hmp_qom_set(Monitor *mon, const QDict *qdict); -void hmp_info_qom_tree(Monitor *mon, const QDict *dict); -void hmp_virtio_query(Monitor *mon, const QDict *qdict); -void hmp_virtio_status(Monitor *mon, const QDict *qdict); -void hmp_virtio_queue_status(Monitor *mon, const QDict *qdict); -void hmp_vhost_queue_status(Monitor *mon, const QDict *qdict); -void hmp_virtio_queue_element(Monitor *mon, const QDict *qdict); -void hmp_xen_event_inject(Monitor *mon, const QDict *qdict); -void hmp_xen_event_list(Monitor *mon, const QDict *qdict); -void hmp_rocker(Monitor *mon, const QDict *qdict); -void hmp_rocker_ports(Monitor *mon, const QDict *qdict); -void hmp_rocker_of_dpa_flows(Monitor *mon, const QDict *qdict); -void hmp_rocker_of_dpa_groups(Monitor *mon, const QDict *qdict); -void hmp_info_dump(Monitor *mon, const QDict *qdict); -void hmp_hotpluggable_cpus(Monitor *mon, const QDict *qdict); -void hmp_info_vm_generation_id(Monitor *mon, const QDict *qdict); -void hmp_info_memory_size_summary(Monitor *mon, const QDict *qdict); -void hmp_info_replay(Monitor *mon, const QDict *qdict); -void hmp_replay_break(Monitor *mon, const QDict *qdict); -void hmp_replay_delete_break(Monitor *mon, const QDict *qdict); -void hmp_replay_seek(Monitor *mon, const QDict *qdict); -void hmp_info_dirty_rate(Monitor *mon, const QDict *qdict); -void hmp_calc_dirty_rate(Monitor *mon, const QDict *qdict); -void hmp_set_vcpu_dirty_limit(Monitor *mon, const QDict *qdict); -void hmp_cancel_vcpu_dirty_limit(Monitor *mon, const QDict *qdict); -void hmp_info_vcpu_dirty_limit(Monitor *mon, const QDict *qdict); +void hmp_migrate(MonitorHMP *hmp, const QDict *qdict); +void hmp_device_add(MonitorHMP *hmp, const QDict *qdict); +void hmp_device_del(MonitorHMP *hmp, const QDict *qdict); +void hmp_dump_guest_memory(MonitorHMP *hmp, const QDict *qdict); +void hmp_netdev_add(MonitorHMP *hmp, const QDict *qdict); +void hmp_netdev_del(MonitorHMP *hmp, const QDict *qdict); +void hmp_getfd(MonitorHMP *hmp, const QDict *qdict); +void hmp_closefd(MonitorHMP *hmp, const QDict *qdict); +void hmp_mouse_move(MonitorHMP *hmp, const QDict *qdict); +void hmp_mouse_button(MonitorHMP *hmp, const QDict *qdict); +void hmp_mouse_set(MonitorHMP *hmp, const QDict *qdict); +void hmp_sendkey(MonitorHMP *hmp, const QDict *qdict); +void coroutine_fn hmp_screendump(MonitorHMP *hmp, const QDict *qdict); +void hmp_chardev_add(MonitorHMP *hmp, const QDict *qdict); +void hmp_chardev_change(MonitorHMP *hmp, const QDict *qdict); +void hmp_chardev_remove(MonitorHMP *hmp, const QDict *qdict); +void hmp_chardev_send_break(MonitorHMP *hmp, const QDict *qdict); +void hmp_object_add(MonitorHMP *hmp, const QDict *qdict); +void hmp_object_del(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_memdev(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_memory_devices(MonitorHMP *hmp, const QDict *qdict); +void hmp_qom_list(MonitorHMP *hmp, const QDict *qdict); +void hmp_qom_get(MonitorHMP *hmp, const QDict *qdict); +void hmp_qom_set(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_qom_tree(MonitorHMP *hmp, const QDict *dict); +void hmp_virtio_query(MonitorHMP *hmp, const QDict *qdict); +void hmp_virtio_status(MonitorHMP *hmp, const QDict *qdict); +void hmp_virtio_queue_status(MonitorHMP *hmp, const QDict *qdict); +void hmp_vhost_queue_status(MonitorHMP *hmp, const QDict *qdict); +void hmp_virtio_queue_element(MonitorHMP *hmp, const QDict *qdict); +void hmp_xen_event_inject(MonitorHMP *hmp, const QDict *qdict); +void hmp_xen_event_list(MonitorHMP *hmp, const QDict *qdict); +void hmp_rocker(MonitorHMP *hmp, const QDict *qdict); +void hmp_rocker_ports(MonitorHMP *hmp, const QDict *qdict); +void hmp_rocker_of_dpa_flows(MonitorHMP *hmp, const QDict *qdict); +void hmp_rocker_of_dpa_groups(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_dump(MonitorHMP *hmp, const QDict *qdict); +void hmp_hotpluggable_cpus(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_vm_generation_id(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_memory_size_summary(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_replay(MonitorHMP *hmp, const QDict *qdict); +void hmp_replay_break(MonitorHMP *hmp, const QDict *qdict); +void hmp_replay_delete_break(MonitorHMP *hmp, const QDict *qdict); +void hmp_replay_seek(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_dirty_rate(MonitorHMP *hmp, const QDict *qdict); +void hmp_calc_dirty_rate(MonitorHMP *hmp, const QDict *qdict); +void hmp_set_vcpu_dirty_limit(MonitorHMP *hmp, const QDict *qdict); +void hmp_cancel_vcpu_dirty_limit(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_vcpu_dirty_limit(MonitorHMP *hmp, const QDict *qdict); void hmp_human_readable_text_helper(Monitor *mon, HumanReadableText *(*qmp_handler)(Error **)); -void hmp_info_stats(Monitor *mon, const QDict *qdict); -void hmp_one_insn_per_tb(Monitor *mon, const QDict *qdict); -void hmp_watchdog_action(Monitor *mon, const QDict *qdict); -void hmp_pcie_aer_inject_error(Monitor *mon, const QDict *qdict); -void hmp_info_capture(Monitor *mon, const QDict *qdict); -void hmp_stopcapture(Monitor *mon, const QDict *qdict); -void hmp_wavcapture(Monitor *mon, const QDict *qdict); -void hmp_trace_event(Monitor *mon, const QDict *qdict); -void hmp_trace_file(Monitor *mon, const QDict *qdict); -void hmp_info_trace_events(Monitor *mon, const QDict *qdict); -void hmp_help(Monitor *mon, const QDict *qdict); -void hmp_clear(Monitor *mon, const QDict *qdict); -void hmp_info_help(Monitor *mon, const QDict *qdict); -void hmp_info_sync_profile(Monitor *mon, const QDict *qdict); -void hmp_info_history(Monitor *mon, const QDict *qdict); -void hmp_logfile(Monitor *mon, const QDict *qdict); -void hmp_log(Monitor *mon, const QDict *qdict); -void hmp_gdbserver(Monitor *mon, const QDict *qdict); -void hmp_print(Monitor *mon, const QDict *qdict); -void hmp_sum(Monitor *mon, const QDict *qdict); -void hmp_ioport_read(Monitor *mon, const QDict *qdict); -void hmp_ioport_write(Monitor *mon, const QDict *qdict); -void hmp_boot_set(Monitor *mon, const QDict *qdict); -void hmp_info_mtree(Monitor *mon, const QDict *qdict); -void hmp_info_cryptodev(Monitor *mon, const QDict *qdict); -void hmp_dumpdtb(Monitor *mon, const QDict *qdict); -void hmp_info_firmware_log(Monitor *mon, const QDict *qdict); -void hmp_info_mem(Monitor *mon, const QDict *qdict); -void hmp_info_tlb(Monitor *mon, const QDict *qdict); -void hmp_mce(Monitor *mon, const QDict *qdict); -void hmp_info_local_apic(Monitor *mon, const QDict *qdict); -void hmp_info_sev(Monitor *mon, const QDict *qdict); -void hmp_info_sgx(Monitor *mon, const QDict *qdict); -void hmp_info_via(Monitor *mon, const QDict *qdict); -void hmp_memory_dump(Monitor *mon, const QDict *qdict); -void hmp_physical_memory_dump(Monitor *mon, const QDict *qdict); -void hmp_info_registers(Monitor *mon, const QDict *qdict); -void hmp_gva2gpa(Monitor *mon, const QDict *qdict); -void hmp_gpa2hva(Monitor *mon, const QDict *qdict); -void hmp_gpa2hpa(Monitor *mon, const QDict *qdict); +void hmp_info_stats(MonitorHMP *hmp, const QDict *qdict); +void hmp_one_insn_per_tb(MonitorHMP *hmp, const QDict *qdict); +void hmp_watchdog_action(MonitorHMP *hmp, const QDict *qdict); +void hmp_pcie_aer_inject_error(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_capture(MonitorHMP *hmp, const QDict *qdict); +void hmp_stopcapture(MonitorHMP *hmp, const QDict *qdict); +void hmp_wavcapture(MonitorHMP *hmp, const QDict *qdict); +void hmp_trace_event(MonitorHMP *hmp, const QDict *qdict); +void hmp_trace_file(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_trace_events(MonitorHMP *hmp, const QDict *qdict); +void hmp_help(MonitorHMP *hmp, const QDict *qdict); +void hmp_clear(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_help(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_sync_profile(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_history(MonitorHMP *hmp, const QDict *qdict); +void hmp_logfile(MonitorHMP *hmp, const QDict *qdict); +void hmp_log(MonitorHMP *hmp, const QDict *qdict); +void hmp_gdbserver(MonitorHMP *hmp, const QDict *qdict); +void hmp_print(MonitorHMP *hmp, const QDict *qdict); +void hmp_sum(MonitorHMP *hmp, const QDict *qdict); +void hmp_ioport_read(MonitorHMP *hmp, const QDict *qdict); +void hmp_ioport_write(MonitorHMP *hmp, const QDict *qdict); +void hmp_boot_set(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_mtree(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_cryptodev(MonitorHMP *hmp, const QDict *qdict); +void hmp_dumpdtb(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_firmware_log(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_mem(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict); +void hmp_mce(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_local_apic(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_sev(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_sgx(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_via(MonitorHMP *hmp, const QDict *qdict); +void hmp_memory_dump(MonitorHMP *hmp, const QDict *qdict); +void hmp_physical_memory_dump(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_registers(MonitorHMP *hmp, const QDict *qdict); +void hmp_gva2gpa(MonitorHMP *hmp, const QDict *qdict); +void hmp_gpa2hva(MonitorHMP *hmp, const QDict *qdict); +void hmp_gpa2hpa(MonitorHMP *hmp, const QDict *qdict); -void hmp_dump_skeys(Monitor *mon, const QDict *qdict); -void hmp_info_skeys(Monitor *mon, const QDict *qdict); -void hmp_info_cmma(Monitor *mon, const QDict *qdict); -void hmp_migrationmode(Monitor *mon, const QDict *qdict); +void hmp_dump_skeys(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_skeys(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_cmma(MonitorHMP *hmp, const QDict *qdict); +void hmp_migrationmode(MonitorHMP *hmp, const QDict *qdict); #endif diff --git a/include/monitor/qdev.h b/include/monitor/qdev.h index f85f25738d58..8f7e2f616cf3 100644 --- a/include/monitor/qdev.h +++ b/include/monitor/qdev.h @@ -2,11 +2,12 @@ #define MONITOR_QDEV_H #include "hw/core/qdev.h" +#include "monitor/hmp.h" /*** monitor commands ***/ -void hmp_info_qtree(Monitor *mon, const QDict *qdict); -void hmp_info_qdm(Monitor *mon, const QDict *qdict); +void hmp_info_qtree(MonitorHMP *hmp, const QDict *qdict); +void hmp_info_qdm(MonitorHMP *hmp, const QDict *qdict); void qmp_device_add(QDict *qdict, QObject **ret_data, Error **errp); int qdev_device_help(QemuOpts *opts); diff --git a/include/net/net.h b/include/net/net.h index a7c49c543783..626b99794806 100644 --- a/include/net/net.h +++ b/include/net/net.h @@ -5,6 +5,7 @@ #include "qapi/qapi-types-net.h" #include "net/queue.h" #include "hw/core/qdev-properties-system.h" +#include "monitor/hmp.h" #define MAC_FMT "%02X:%02X:%02X:%02X:%02X:%02X" #define MAC_ARG(x) ((uint8_t *)(x))[0], ((uint8_t *)(x))[1], \ @@ -318,8 +319,8 @@ void net_init_clients(void); void net_check_clients(void); void net_client_set_link(NetClientState **ncs, int queues, bool up); void net_cleanup(void); -void hmp_host_net_add(Monitor *mon, const QDict *qdict); -void hmp_host_net_remove(Monitor *mon, const QDict *qdict); +void hmp_host_net_add(MonitorHMP *hmp, const QDict *qdict); +void hmp_host_net_remove(MonitorHMP *hmp, const QDict *qdict); void netdev_add(QemuOpts *opts, Error **errp); int net_hub_id_for_client(NetClientState *nc, int *id); diff --git a/include/net/slirp.h b/include/net/slirp.h index bad3e1e2416b..38859edf58ae 100644 --- a/include/net/slirp.h +++ b/include/net/slirp.h @@ -24,13 +24,13 @@ #ifndef QEMU_NET_SLIRP_H #define QEMU_NET_SLIRP_H - #ifdef CONFIG_SLIRP +#include "monitor/hmp.h" -void hmp_hostfwd_add(Monitor *mon, const QDict *qdict); -void hmp_hostfwd_remove(Monitor *mon, const QDict *qdict); +void hmp_hostfwd_add(MonitorHMP *hmp, const QDict *qdict); +void hmp_hostfwd_remove(MonitorHMP *hmp, const QDict *qdict); -void hmp_info_usernet(Monitor *mon, const QDict *qdict); +void hmp_info_usernet(MonitorHMP *hmp, const QDict *qdict); #endif diff --git a/migration/dirtyrate.c b/migration/dirtyrate.c index b360f49efeaf..567abab321cc 100644 --- a/migration/dirtyrate.c +++ b/migration/dirtyrate.c @@ -856,8 +856,9 @@ struct DirtyRateInfo *qmp_query_dirty_rate(bool has_calc_time_unit, has_calc_time_unit ? calc_time_unit : TIME_UNIT_SECOND); } -void hmp_info_dirty_rate(Monitor *mon, const QDict *qdict) +void hmp_info_dirty_rate(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); DirtyRateInfo *info = query_dirty_rate_info(TIME_UNIT_SECOND); monitor_printf(mon, "Status: %s\n", @@ -891,8 +892,9 @@ void hmp_info_dirty_rate(Monitor *mon, const QDict *qdict) g_free(info); } -void hmp_calc_dirty_rate(Monitor *mon, const QDict *qdict) +void hmp_calc_dirty_rate(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); int64_t sec = qdict_get_try_int(qdict, "second", 0); int64_t sample_pages = qdict_get_try_int(qdict, "sample_pages_per_GB", -1); bool has_sample_pages = (sample_pages != -1); diff --git a/migration/migration-hmp-cmds.c b/migration/migration-hmp-cmds.c index ad68fa23aa4b..8d2e8735277e 100644 --- a/migration/migration-hmp-cmds.c +++ b/migration/migration-hmp-cmds.c @@ -135,8 +135,9 @@ static void migration_dump_blocktime(Monitor *mon, MigrationInfo *info) } } -void hmp_info_migrate(Monitor *mon, const QDict *qdict) +void hmp_info_migrate(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); bool show_all = qdict_get_try_bool(qdict, "all", false); MigrationInfo *info; @@ -297,8 +298,9 @@ out: qapi_free_MigrationInfo(info); } -void hmp_info_migrate_capabilities(Monitor *mon, const QDict *qdict) +void hmp_info_migrate_capabilities(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); MigrationCapabilityStatusList *caps, *cap; caps = qmp_query_migrate_capabilities(NULL); @@ -326,8 +328,9 @@ static void monitor_print_cpr_exec_command(Monitor *mon, strList *args) monitor_printf(mon, "\n"); } -void hmp_info_migrate_parameters(Monitor *mon, const QDict *qdict) +void hmp_info_migrate_parameters(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); MigrationParameters *params; MigrationState *s = migrate_get_current(); @@ -473,8 +476,9 @@ void hmp_info_migrate_parameters(Monitor *mon, const QDict *qdict) qapi_free_MigrationParameters(params); } -void hmp_loadvm(Monitor *mon, const QDict *qdict) +void hmp_loadvm(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); RunState saved_state = runstate_get(); const char *name = qdict_get_str(qdict, "name"); @@ -489,8 +493,9 @@ void hmp_loadvm(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, err); } -void hmp_savevm(Monitor *mon, const QDict *qdict) +void hmp_savevm(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; save_snapshot(qdict_get_try_str(qdict, "name"), @@ -498,8 +503,9 @@ void hmp_savevm(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, err); } -void hmp_delvm(Monitor *mon, const QDict *qdict) +void hmp_delvm(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; const char *name = qdict_get_str(qdict, "name"); @@ -507,13 +513,14 @@ void hmp_delvm(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, err); } -void hmp_migrate_cancel(Monitor *mon, const QDict *qdict) +void hmp_migrate_cancel(MonitorHMP *hmp, const QDict *qdict) { qmp_migrate_cancel(NULL); } -void hmp_migrate_continue(Monitor *mon, const QDict *qdict) +void hmp_migrate_continue(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; const char *state = qdict_get_str(qdict, "state"); int val = qapi_enum_parse(&MigrationStatus_lookup, state, -1, &err); @@ -525,8 +532,9 @@ void hmp_migrate_continue(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, err); } -void hmp_migrate_incoming(Monitor *mon, const QDict *qdict) +void hmp_migrate_incoming(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; const char *uri = qdict_get_str(qdict, "uri"); MigrationChannelList *caps = NULL; @@ -544,8 +552,9 @@ end: hmp_handle_error(mon, err); } -void hmp_migrate_recover(Monitor *mon, const QDict *qdict) +void hmp_migrate_recover(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; const char *uri = qdict_get_str(qdict, "uri"); @@ -554,8 +563,9 @@ void hmp_migrate_recover(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, err); } -void hmp_migrate_pause(Monitor *mon, const QDict *qdict) +void hmp_migrate_pause(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; qmp_migrate_pause(&err); @@ -564,8 +574,9 @@ void hmp_migrate_pause(Monitor *mon, const QDict *qdict) } -void hmp_migrate_set_capability(Monitor *mon, const QDict *qdict) +void hmp_migrate_set_capability(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *cap = qdict_get_str(qdict, "capability"); bool state = qdict_get_bool(qdict, "state"); Error *err = NULL; @@ -589,8 +600,9 @@ end: hmp_handle_error(mon, err); } -void hmp_migrate_set_parameter(Monitor *mon, const QDict *qdict) +void hmp_migrate_set_parameter(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *param = qdict_get_str(qdict, "parameter"); const char *valuestr = qdict_get_str(qdict, "value"); Visitor *v = string_input_visitor_new(valuestr); @@ -790,16 +802,18 @@ void hmp_migrate_set_parameter(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, err); } -void hmp_migrate_start_postcopy(Monitor *mon, const QDict *qdict) +void hmp_migrate_start_postcopy(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; qmp_migrate_start_postcopy(&err); hmp_handle_error(mon, err); } #ifdef CONFIG_REPLICATION -void hmp_x_colo_lost_heartbeat(Monitor *mon, const QDict *qdict) +void hmp_x_colo_lost_heartbeat(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; qmp_x_colo_lost_heartbeat(&err); @@ -833,8 +847,9 @@ static void hmp_migrate_status_cb(void *opaque) qapi_free_MigrationInfo(info); } -void hmp_migrate(Monitor *mon, const QDict *qdict) +void hmp_migrate(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); bool detach = qdict_get_try_bool(qdict, "detach", false); bool resume = qdict_get_try_bool(qdict, "resume", false); const char *uri = qdict_get_str(qdict, "uri"); @@ -873,7 +888,6 @@ void hmp_migrate(Monitor *mon, const QDict *qdict) if (!detach) { HMPMigrationStatus *status; - MonitorHMP *hmp = MONITOR_HMP(mon); if (!hmp->use_readline) { monitor_printf(mon, "terminal does not allow synchronous " diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index 7c3fedb91936..31ce54e28449 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -103,8 +103,9 @@ strList *hmp_split_at_comma(const char *str) return res; } -void hmp_info_name(Monitor *mon, const QDict *qdict) +void hmp_info_name(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); NameInfo *info; info = qmp_query_name(NULL); @@ -114,8 +115,9 @@ void hmp_info_name(Monitor *mon, const QDict *qdict) qapi_free_NameInfo(info); } -void hmp_info_version(Monitor *mon, const QDict *qdict) +void hmp_info_version(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); VersionInfo *info; info = qmp_query_version(NULL); @@ -127,22 +129,23 @@ void hmp_info_version(Monitor *mon, const QDict *qdict) qapi_free_VersionInfo(info); } -void hmp_quit(Monitor *mon, const QDict *qdict) +void hmp_quit(MonitorHMP *hmp, const QDict *qdict) { - MonitorHMP *hmp = MONITOR_HMP(mon); + Monitor *mon = MONITOR(hmp); if (hmp->use_readline) { monitor_suspend(mon); } qmp_quit(NULL); } -void hmp_stop(Monitor *mon, const QDict *qdict) +void hmp_stop(MonitorHMP *hmp, const QDict *qdict) { qmp_stop(NULL); } -void hmp_sync_profile(Monitor *mon, const QDict *qdict) +void hmp_sync_profile(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *op = qdict_get_try_str(qdict, "op"); if (op == NULL) { @@ -166,16 +169,18 @@ void hmp_sync_profile(Monitor *mon, const QDict *qdict) } } -void hmp_exit_preconfig(Monitor *mon, const QDict *qdict) +void hmp_exit_preconfig(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; qmp_x_exit_preconfig(&err); hmp_handle_error(mon, err); } -void hmp_cpu(Monitor *mon, const QDict *qdict) +void hmp_cpu(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); int64_t cpu_index; /* XXX: drop the monitor_set_cpu() usage when all HMP commands that @@ -186,16 +191,18 @@ void hmp_cpu(Monitor *mon, const QDict *qdict) } } -void hmp_cont(Monitor *mon, const QDict *qdict) +void hmp_cont(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; qmp_cont(&err); hmp_handle_error(mon, err); } -void hmp_change(Monitor *mon, const QDict *qdict) +void hmp_change(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *device = qdict_get_str(qdict, "device"); const char *target = qdict_get_str(qdict, "target"); const char *arg = qdict_get_try_str(qdict, "arg"); @@ -216,8 +223,9 @@ void hmp_change(Monitor *mon, const QDict *qdict) } #ifdef CONFIG_POSIX -void hmp_getfd(Monitor *mon, const QDict *qdict) +void hmp_getfd(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *fdname = qdict_get_str(qdict, "fdname"); Error *err = NULL; @@ -226,8 +234,9 @@ void hmp_getfd(Monitor *mon, const QDict *qdict) } #endif -void hmp_closefd(Monitor *mon, const QDict *qdict) +void hmp_closefd(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *fdname = qdict_get_str(qdict, "fdname"); Error *err = NULL; @@ -235,8 +244,9 @@ void hmp_closefd(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, err); } -void hmp_info_iothreads(Monitor *mon, const QDict *qdict) +void hmp_info_iothreads(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); IOThreadInfoList *info_list = qmp_query_iothreads(NULL); IOThreadInfoList *info; IOThreadInfo *value; @@ -256,13 +266,15 @@ void hmp_info_iothreads(Monitor *mon, const QDict *qdict) qapi_free_IOThreadInfoList(info_list); } -void hmp_help(Monitor *mon, const QDict *qdict) +void hmp_help(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); hmp_help_cmd(mon, qdict_get_try_str(qdict, "name")); } -void hmp_clear(Monitor *mon, const QDict *qdict) +void hmp_clear(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); /* * Send an ANSI escape sequence: * "\x1b[H" - move cursor to top-left @@ -272,12 +284,13 @@ void hmp_clear(Monitor *mon, const QDict *qdict) monitor_printf(mon, "\x1b[H\x1b[2J\x1b[3J"); } -void hmp_info_help(Monitor *mon, const QDict *qdict) +void hmp_info_help(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); hmp_help_cmd(mon, "info"); } -void hmp_info_sync_profile(Monitor *mon, const QDict *qdict) +void hmp_info_sync_profile(MonitorHMP *hmp, const QDict *qdict) { int64_t max = qdict_get_try_int(qdict, "max", 10); bool mean = qdict_get_try_bool(qdict, "mean", false); @@ -288,9 +301,9 @@ void hmp_info_sync_profile(Monitor *mon, const QDict *qdict) qsp_report(max, sort_by, coalesce); } -void hmp_info_history(Monitor *mon, const QDict *qdict) +void hmp_info_history(MonitorHMP *hmp, const QDict *qdict) { - MonitorHMP *hmp = MONITOR_HMP(mon); + Monitor *mon = MONITOR(hmp); int i; const char *str; @@ -308,7 +321,7 @@ void hmp_info_history(Monitor *mon, const QDict *qdict) } } -void hmp_logfile(Monitor *mon, const QDict *qdict) +void hmp_logfile(MonitorHMP *hmp, const QDict *qdict) { Error *err = NULL; @@ -317,8 +330,9 @@ void hmp_logfile(Monitor *mon, const QDict *qdict) } } -void hmp_log(Monitor *mon, const QDict *qdict) +void hmp_log(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); int mask; const char *items = qdict_get_str(qdict, "items"); Error *err = NULL; @@ -338,8 +352,9 @@ void hmp_log(Monitor *mon, const QDict *qdict) } } -void hmp_gdbserver(Monitor *mon, const QDict *qdict) +void hmp_gdbserver(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; const char *device = qdict_get_try_str(qdict, "device"); @@ -357,8 +372,9 @@ void hmp_gdbserver(Monitor *mon, const QDict *qdict) } } -void hmp_print(Monitor *mon, const QDict *qdict) +void hmp_print(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); int format = qdict_get_int(qdict, "format"); hwaddr val = qdict_get_int(qdict, "val"); @@ -383,8 +399,9 @@ void hmp_print(Monitor *mon, const QDict *qdict) monitor_printf(mon, "\n"); } -void hmp_sum(Monitor *mon, const QDict *qdict) +void hmp_sum(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); uint32_t addr; uint16_t sum; uint32_t start = qdict_get_int(qdict, "start"); @@ -401,8 +418,9 @@ void hmp_sum(Monitor *mon, const QDict *qdict) monitor_printf(mon, "%05d\n", sum); } -void hmp_ioport_read(Monitor *mon, const QDict *qdict) +void hmp_ioport_read(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); int size = qdict_get_int(qdict, "size"); int addr = qdict_get_int(qdict, "addr"); int has_index = qdict_haskey(qdict, "index"); @@ -435,7 +453,7 @@ void hmp_ioport_read(Monitor *mon, const QDict *qdict) suffix, addr, size * 2, val); } -void hmp_ioport_write(Monitor *mon, const QDict *qdict) +void hmp_ioport_write(MonitorHMP *hmp, const QDict *qdict) { int size = qdict_get_int(qdict, "size"); int addr = qdict_get_int(qdict, "addr"); @@ -457,8 +475,9 @@ void hmp_ioport_write(Monitor *mon, const QDict *qdict) } } -void hmp_boot_set(Monitor *mon, const QDict *qdict) +void hmp_boot_set(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *local_err = NULL; const char *bootdevice = qdict_get_str(qdict, "bootdevice"); @@ -470,7 +489,7 @@ void hmp_boot_set(Monitor *mon, const QDict *qdict) } } -void hmp_info_mtree(Monitor *mon, const QDict *qdict) +void hmp_info_mtree(MonitorHMP *hmp, const QDict *qdict) { bool flatview = qdict_get_try_bool(qdict, "flatview", false); bool dispatch_tree = qdict_get_try_bool(qdict, "dispatch_tree", false); @@ -481,8 +500,9 @@ void hmp_info_mtree(Monitor *mon, const QDict *qdict) } #if defined(CONFIG_FDT) -void hmp_dumpdtb(Monitor *mon, const QDict *qdict) +void hmp_dumpdtb(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *filename = qdict_get_str(qdict, "filename"); Error *local_err = NULL; @@ -558,8 +578,9 @@ int monitor_get_cpu_index(Monitor *mon) return cs ? cs->cpu_index : UNASSIGNED_CPU_INDEX; } -void hmp_info_registers(Monitor *mon, const QDict *qdict) +void hmp_info_registers(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); bool all_cpus = qdict_get_try_bool(qdict, "cpustate_all", false); int vcpu = qdict_get_try_int(qdict, "vcpu", -1); CPUState *cs; @@ -694,8 +715,9 @@ static void memory_dump(Monitor *mon, int count, int format, int wsize, } } -void hmp_memory_dump(Monitor *mon, const QDict *qdict) +void hmp_memory_dump(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); int count = qdict_get_int(qdict, "count"); int format = qdict_get_int(qdict, "format"); int size = qdict_get_int(qdict, "size"); @@ -704,8 +726,9 @@ void hmp_memory_dump(Monitor *mon, const QDict *qdict) memory_dump(mon, count, format, size, addr, false); } -void hmp_physical_memory_dump(Monitor *mon, const QDict *qdict) +void hmp_physical_memory_dump(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); int count = qdict_get_int(qdict, "count"); int format = qdict_get_int(qdict, "format"); int size = qdict_get_int(qdict, "size"); @@ -714,8 +737,9 @@ void hmp_physical_memory_dump(Monitor *mon, const QDict *qdict) memory_dump(mon, count, format, size, addr, true); } -void hmp_gpa2hva(Monitor *mon, const QDict *qdict) +void hmp_gpa2hva(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); hwaddr addr = qdict_get_int(qdict, "addr"); Error *local_err = NULL; MemoryRegion *mr = NULL; @@ -734,8 +758,9 @@ void hmp_gpa2hva(Monitor *mon, const QDict *qdict) memory_region_unref(mr); } -void hmp_gva2gpa(Monitor *mon, const QDict *qdict) +void hmp_gva2gpa(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); vaddr addr = qdict_get_int(qdict, "addr"); CPUState *cs = mon_get_cpu(mon); TranslateForDebugResult tres; @@ -787,8 +812,9 @@ out: return ret; } -void hmp_gpa2hpa(Monitor *mon, const QDict *qdict) +void hmp_gpa2hpa(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); hwaddr addr = qdict_get_int(qdict, "addr"); Error *local_err = NULL; MemoryRegion *mr = NULL; diff --git a/monitor/hmp.c b/monitor/hmp.c index b4d05d47c4bf..6e6334b64685 100644 --- a/monitor/hmp.c +++ b/monitor/hmp.c @@ -1228,12 +1228,12 @@ static void hmp_info_human_readable_text(Monitor *mon, monitor_puts(mon, info->human_readable_text); } -static void handle_hmp_command_exec(Monitor *mon, +static void handle_hmp_command_exec(MonitorHMP *mon, const HMPCommand *cmd, QDict *qdict) { if (cmd->cmd_info_hrt) { - hmp_info_human_readable_text(mon, + hmp_info_human_readable_text(MONITOR(mon), cmd->cmd_info_hrt); } else { cmd->cmd(mon, qdict); @@ -1241,7 +1241,7 @@ static void handle_hmp_command_exec(Monitor *mon, } typedef struct HandleHmpCommandCo { - Monitor *mon; + MonitorHMP *mon; const HMPCommand *cmd; QDict *qdict; bool done; @@ -1289,19 +1289,18 @@ void handle_hmp_command(MonitorHMP *hmp, const char *cmdline) if (!cmd->coroutine) { /* old_mon is non-NULL when called from qmp_human_monitor_command() */ - Monitor *old_mon = monitor_set_cur(qemu_coroutine_self(), - &hmp->parent_obj); - handle_hmp_command_exec(&hmp->parent_obj, cmd, qdict); + Monitor *old_mon = monitor_set_cur(qemu_coroutine_self(), MONITOR(hmp)); + handle_hmp_command_exec(hmp, cmd, qdict); monitor_set_cur(qemu_coroutine_self(), old_mon); } else { HandleHmpCommandCo data = { - .mon = &hmp->parent_obj, + .mon = hmp, .cmd = cmd, .qdict = qdict, .done = false, }; Coroutine *co = qemu_coroutine_create(handle_hmp_command_co, &data); - monitor_set_cur(co, &hmp->parent_obj); + monitor_set_cur(co, MONITOR(hmp)); aio_co_enter(qemu_get_aio_context(), co); AIO_WAIT_WHILE_UNLOCKED(NULL, !data.done); } @@ -1689,7 +1688,7 @@ int hmp_compare_cmd(const char *name, const char *list) } void monitor_register_hmp(const char *name, bool info, - void (*cmd)(Monitor *mon, const QDict *qdict)) + void (*cmd)(MonitorHMP *mon, const QDict *qdict)) { HMPCommand *table = hmp_cmds_for_target(info); diff --git a/monitor/monitor-internal.h b/monitor/monitor-internal.h index ee9ba0c8231e..a0fa37c887ed 100644 --- a/monitor/monitor-internal.h +++ b/monitor/monitor-internal.h @@ -77,7 +77,7 @@ typedef struct HMPCommand { const char *params; const char *help; const char *flags; /* p=preconfig */ - void (*cmd)(Monitor *mon, const QDict *qdict); + void (*cmd)(MonitorHMP *mon, const QDict *qdict); /* * If implementing a command that takes no arguments and simply * prints formatted data, then leave @cmd NULL, and then set diff --git a/net/net-hmp-cmds.c b/net/net-hmp-cmds.c index 52ac8da770d9..702103b6a920 100644 --- a/net/net-hmp-cmds.c +++ b/net/net-hmp-cmds.c @@ -45,8 +45,9 @@ static void hmp_print_client_info(Monitor *mon, NetworkClientInfo *ci) } } -void hmp_info_network(Monitor *mon, const QDict *qdict) +void hmp_info_network(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; g_autoptr(NetworkInfo) info = qmp_x_query_network(&err); NetHubInfoList *h; @@ -83,8 +84,9 @@ void hmp_info_network(Monitor *mon, const QDict *qdict) } } -void hmp_set_link(Monitor *mon, const QDict *qdict) +void hmp_set_link(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *name = qdict_get_str(qdict, "name"); bool up = qdict_get_bool(qdict, "up"); Error *err = NULL; @@ -94,7 +96,7 @@ void hmp_set_link(Monitor *mon, const QDict *qdict) } -void hmp_announce_self(Monitor *mon, const QDict *qdict) +void hmp_announce_self(MonitorHMP *hmp, const QDict *qdict) { const char *interfaces_str = qdict_get_try_str(qdict, "interfaces"); const char *id = qdict_get_try_str(qdict, "id"); @@ -109,8 +111,9 @@ void hmp_announce_self(Monitor *mon, const QDict *qdict) qapi_free_AnnounceParameters(params); } -void hmp_netdev_add(Monitor *mon, const QDict *qdict) +void hmp_netdev_add(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; QemuOpts *opts; const char *type = qdict_get_try_str(qdict, "type"); @@ -133,8 +136,9 @@ out: hmp_handle_error(mon, err); } -void hmp_netdev_del(Monitor *mon, const QDict *qdict) +void hmp_netdev_del(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *id = qdict_get_str(qdict, "id"); Error *err = NULL; diff --git a/net/slirp.c b/net/slirp.c index 9bf09a2c8bc9..d5c190b48b76 100644 --- a/net/slirp.c +++ b/net/slirp.c @@ -733,8 +733,9 @@ static SlirpState *slirp_lookup(Monitor *mon, const char *id) } } -void hmp_hostfwd_remove(Monitor *mon, const QDict *qdict) +void hmp_hostfwd_remove(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); /* TODO: support removing unix fwd */ struct sockaddr_in host_addr = { .sin_family = AF_INET, @@ -957,8 +958,9 @@ static int slirp_hostfwd(SlirpState *s, const char *redir_str, Error **errp) return -1; } -void hmp_hostfwd_add(Monitor *mon, const QDict *qdict) +void hmp_hostfwd_add(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *redir_str; SlirpState *s; const char *arg1 = qdict_get_str(qdict, "arg1"); @@ -1224,8 +1226,9 @@ UsernetInfoList *qmp_x_query_usernet(Error **errp) return head; } -void hmp_info_usernet(Monitor *mon, const QDict *qdict) +void hmp_info_usernet(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); g_autoptr(UsernetInfoList) list = NULL; UsernetInfoList *entry; diff --git a/qom/qom-hmp-cmds.c b/qom/qom-hmp-cmds.c index 47110ca58c0d..16847d1ce261 100644 --- a/qom/qom-hmp-cmds.c +++ b/qom/qom-hmp-cmds.c @@ -18,8 +18,9 @@ #include "qom/object.h" #include "qom/object_interfaces.h" -void hmp_qom_list(Monitor *mon, const QDict *qdict) +void hmp_qom_list(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *path = qdict_get_try_str(qdict, "path"); ObjectPropertyInfoList *list; Error *err = NULL; @@ -44,8 +45,9 @@ void hmp_qom_list(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, err); } -void hmp_qom_set(Monitor *mon, const QDict *qdict) +void hmp_qom_set(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const bool json = qdict_get_try_bool(qdict, "json", false); const char *path = qdict_get_str(qdict, "path"); const char *property = qdict_get_str(qdict, "property"); @@ -72,8 +74,9 @@ void hmp_qom_set(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, err); } -void hmp_qom_get(Monitor *mon, const QDict *qdict) +void hmp_qom_get(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *path = qdict_get_str(qdict, "path"); const char *property = qdict_get_str(qdict, "property"); Error *err = NULL; @@ -132,8 +135,9 @@ static void print_qom_composition(Monitor *mon, Object *obj, int indent) g_array_free(children, TRUE); } -void hmp_info_qom_tree(Monitor *mon, const QDict *dict) +void hmp_info_qom_tree(MonitorHMP *hmp, const QDict *dict) { + Monitor *mon = MONITOR(hmp); const char *path = qdict_get_try_str(dict, "path"); Object *obj; bool ambiguous = false; @@ -154,8 +158,9 @@ void hmp_info_qom_tree(Monitor *mon, const QDict *dict) print_qom_composition(mon, obj, 0); } -void hmp_object_add(Monitor *mon, const QDict *qdict) +void hmp_object_add(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *options = qdict_get_str(qdict, "object"); Error *err = NULL; @@ -163,8 +168,9 @@ void hmp_object_add(Monitor *mon, const QDict *qdict) hmp_handle_error(mon, err); } -void hmp_object_del(Monitor *mon, const QDict *qdict) +void hmp_object_del(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *id = qdict_get_str(qdict, "id"); Error *err = NULL; diff --git a/replay/replay-debugging.c b/replay/replay-debugging.c index 7b904a141654..ef69d23ff507 100644 --- a/replay/replay-debugging.c +++ b/replay/replay-debugging.c @@ -31,8 +31,9 @@ bool replay_running_debug(void) return replay_is_debugging; } -void hmp_info_replay(Monitor *mon, const QDict *qdict) +void hmp_info_replay(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); if (replay_mode == REPLAY_MODE_NONE) { monitor_printf(mon, "Record/replay is not active\n"); } else { @@ -103,7 +104,7 @@ void qmp_replay_break(int64_t icount, Error **errp) } } -void hmp_replay_break(Monitor *mon, const QDict *qdict) +void hmp_replay_break(MonitorHMP *hmp, const QDict *qdict) { int64_t icount = qdict_get_try_int(qdict, "icount", -1LL); Error *err = NULL; @@ -124,7 +125,7 @@ void qmp_replay_delete_break(Error **errp) } } -void hmp_replay_delete_break(Monitor *mon, const QDict *qdict) +void hmp_replay_delete_break(MonitorHMP *hmp, const QDict *qdict) { Error *err = NULL; @@ -209,7 +210,7 @@ void qmp_replay_seek(int64_t icount, Error **errp) replay_seek(icount, replay_stop_vm, errp); } -void hmp_replay_seek(Monitor *mon, const QDict *qdict) +void hmp_replay_seek(MonitorHMP *hmp, const QDict *qdict) { int64_t icount = qdict_get_try_int(qdict, "icount", -1LL); Error *err = NULL; diff --git a/replay/stubs-system.c b/replay/stubs-system.c index f8e17dcf1ce9..15e7411591ab 100644 --- a/replay/stubs-system.c +++ b/replay/stubs-system.c @@ -63,19 +63,19 @@ void replay_vmstate_init(void) #include "qapi/error.h" #include "qemu/error-report.h" -void hmp_info_replay(Monitor *mon, const QDict *qdict) +void hmp_info_replay(MonitorHMP *hmp, const QDict *qdict) { error_report("replay support not available"); } -void hmp_replay_break(Monitor *mon, const QDict *qdict) +void hmp_replay_break(MonitorHMP *hmp, const QDict *qdict) { error_report("replay support not available"); } -void hmp_replay_delete_break(Monitor *mon, const QDict *qdict) +void hmp_replay_delete_break(MonitorHMP *hmp, const QDict *qdict) { error_report("replay support not available"); } -void hmp_replay_seek(Monitor *mon, const QDict *qdict) +void hmp_replay_seek(MonitorHMP *hmp, const QDict *qdict) { error_report("replay support not available"); } diff --git a/stats/stats-hmp-cmds.c b/stats/stats-hmp-cmds.c index b93b471b1b25..f280ad8c4314 100644 --- a/stats/stats-hmp-cmds.c +++ b/stats/stats-hmp-cmds.c @@ -187,8 +187,9 @@ static StatsFilter *stats_filter(StatsTarget target, const char *names, return filter; } -void hmp_info_stats(Monitor *mon, const QDict *qdict) +void hmp_info_stats(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *target_str = qdict_get_str(qdict, "target"); const char *provider_str = qdict_get_try_str(qdict, "provider"); const char *names = qdict_get_try_str(qdict, "names"); diff --git a/stubs/hmp-cmd-info_sev.c b/stubs/hmp-cmd-info_sev.c index f3624423a334..6f2b87d1ad10 100644 --- a/stubs/hmp-cmd-info_sev.c +++ b/stubs/hmp-cmd-info_sev.c @@ -10,7 +10,8 @@ #include "monitor/hmp.h" #include "monitor/monitor.h" -void hmp_info_sev(Monitor *mon, const QDict *qdict) +void hmp_info_sev(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); monitor_printf(mon, "SEV is not available in this QEMU\n"); } diff --git a/system/dirtylimit-hmp-cmds.c b/system/dirtylimit-hmp-cmds.c index 4928d57cc8e3..4c100783778f 100644 --- a/system/dirtylimit-hmp-cmds.c +++ b/system/dirtylimit-hmp-cmds.c @@ -15,8 +15,9 @@ #include "monitor/monitor.h" #include "system/dirtylimit.h" -void hmp_cancel_vcpu_dirty_limit(Monitor *mon, const QDict *qdict) +void hmp_cancel_vcpu_dirty_limit(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); int64_t cpu_index = qdict_get_try_int(qdict, "cpu_index", -1); Error *err = NULL; @@ -30,8 +31,9 @@ void hmp_cancel_vcpu_dirty_limit(Monitor *mon, const QDict *qdict) "dirty limit for virtual CPU]\n"); } -void hmp_set_vcpu_dirty_limit(Monitor *mon, const QDict *qdict) +void hmp_set_vcpu_dirty_limit(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); int64_t dirty_rate = qdict_get_int(qdict, "dirty_rate"); int64_t cpu_index = qdict_get_try_int(qdict, "cpu_index", -1); Error *err = NULL; @@ -47,8 +49,9 @@ out: hmp_handle_error(mon, err); } -void hmp_info_vcpu_dirty_limit(Monitor *mon, const QDict *qdict) +void hmp_info_vcpu_dirty_limit(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); DirtyLimitInfoList *info; g_autoptr(DirtyLimitInfoList) head = NULL; Error *err = NULL; diff --git a/system/qdev-monitor.c b/system/qdev-monitor.c index 00fed791cce1..e27b9724867a 100644 --- a/system/qdev-monitor.c +++ b/system/qdev-monitor.c @@ -851,8 +851,9 @@ static void qbus_print(Monitor *mon, BusState *bus, int indent, bool details) } #undef qdev_printf -void hmp_info_qtree(Monitor *mon, const QDict *qdict) +void hmp_info_qtree(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); bool details = !qdict_get_try_bool(qdict, "brief", false); if (sysbus_get_default()) { @@ -860,7 +861,7 @@ void hmp_info_qtree(Monitor *mon, const QDict *qdict) } } -void hmp_info_qdm(Monitor *mon, const QDict *qdict) +void hmp_info_qdm(MonitorHMP *hmp, const QDict *qdict) { qdev_print_devinfos(true); } @@ -1001,8 +1002,9 @@ void qmp_device_sync_config(const char *id, Error **errp) qdev_sync_config(dev, errp); } -void hmp_device_add(Monitor *mon, const QDict *qdict) +void hmp_device_add(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; QemuOpts *opts; DeviceState *dev; @@ -1035,8 +1037,9 @@ out: hmp_handle_error(mon, err); } -void hmp_device_del(Monitor *mon, const QDict *qdict) +void hmp_device_del(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *id = qdict_get_str(qdict, "id"); Error *err = NULL; diff --git a/system/runstate-hmp-cmds.c b/system/runstate-hmp-cmds.c index 02d1d42bf392..834b95835339 100644 --- a/system/runstate-hmp-cmds.c +++ b/system/runstate-hmp-cmds.c @@ -23,8 +23,9 @@ #include "qobject/qdict.h" #include "qemu/accel.h" -void hmp_info_status(Monitor *mon, const QDict *qdict) +void hmp_info_status(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); StatusInfo *info; info = qmp_query_status(NULL); @@ -41,8 +42,9 @@ void hmp_info_status(Monitor *mon, const QDict *qdict) qapi_free_StatusInfo(info); } -void hmp_one_insn_per_tb(Monitor *mon, const QDict *qdict) +void hmp_one_insn_per_tb(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *option = qdict_get_try_str(qdict, "option"); AccelState *accel = current_accel(); bool newval; @@ -66,8 +68,9 @@ void hmp_one_insn_per_tb(Monitor *mon, const QDict *qdict) newval, &error_abort); } -void hmp_watchdog_action(Monitor *mon, const QDict *qdict) +void hmp_watchdog_action(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; WatchdogAction action; char *qapi_value; diff --git a/system/tpm-hmp-cmds.c b/system/tpm-hmp-cmds.c index 9ed6ad6c4d46..094c3f16cf50 100644 --- a/system/tpm-hmp-cmds.c +++ b/system/tpm-hmp-cmds.c @@ -11,8 +11,9 @@ #include "monitor/hmp.h" #include "qapi/error.h" -void hmp_info_tpm(Monitor *mon, const QDict *qdict) +void hmp_info_tpm(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); #ifdef CONFIG_TPM TPMInfoList *info_list, *info; Error *err = NULL; diff --git a/target/i386/cpu-apic.c b/target/i386/cpu-apic.c index b4cf048a7c0f..3219f78bd12a 100644 --- a/target/i386/cpu-apic.c +++ b/target/i386/cpu-apic.c @@ -83,8 +83,9 @@ void x86_cpu_apic_realize(X86CPU *cpu, Error **errp) } } -void hmp_info_local_apic(Monitor *mon, const QDict *qdict) +void hmp_info_local_apic(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); CPUState *cs; if (qdict_haskey(qdict, "apic-id")) { diff --git a/target/i386/monitor.c b/target/i386/monitor.c index 9ed772e6d7f2..f1d2a327ddad 100644 --- a/target/i386/monitor.c +++ b/target/i386/monitor.c @@ -209,8 +209,9 @@ static void tlb_info_la57(Monitor *mon, CPUArchState *env, AddressSpace *as) } #endif /* TARGET_X86_64 */ -void hmp_info_tlb(Monitor *mon, const QDict *qdict) +void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); CPUArchState *env; AddressSpace *as; @@ -535,8 +536,9 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env, AddressSpace *as) } #endif /* TARGET_X86_64 */ -void hmp_info_mem(Monitor *mon, const QDict *qdict) +void hmp_info_mem(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); CPUArchState *env; AddressSpace *as; @@ -569,8 +571,9 @@ void hmp_info_mem(Monitor *mon, const QDict *qdict) } } -void hmp_mce(Monitor *mon, const QDict *qdict) +void hmp_mce(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); X86CPU *cpu; CPUState *cs; int cpu_index = qdict_get_int(qdict, "cpu_index"); diff --git a/target/i386/sev.c b/target/i386/sev.c index 4d875d10ff23..a3f6ee95aaed 100644 --- a/target/i386/sev.c +++ b/target/i386/sev.c @@ -784,8 +784,9 @@ SevInfo *qmp_query_sev(Error **errp) return info; } -void hmp_info_sev(Monitor *mon, const QDict *qdict) +void hmp_info_sev(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); SevInfo *info = sev_get_info(); if (!info || !info->enabled) { diff --git a/target/m68k/monitor.c b/target/m68k/monitor.c index 3e0df40a6b8b..0414474f2ffb 100644 --- a/target/m68k/monitor.c +++ b/target/m68k/monitor.c @@ -10,8 +10,9 @@ #include "monitor/hmp.h" #include "monitor/monitor.h" -void hmp_info_tlb(Monitor *mon, const QDict *qdict) +void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); CPUArchState *env1 = mon_get_cpu_env(mon); if (!env1) { diff --git a/target/ppc/monitor.c b/target/ppc/monitor.c index 7c88e0e2bda0..99eda7351877 100644 --- a/target/ppc/monitor.c +++ b/target/ppc/monitor.c @@ -11,8 +11,9 @@ #include "monitor/hmp.h" #include "cpu.h" -void hmp_info_tlb(Monitor *mon, const QDict *qdict) +void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); CPUArchState *env1 = mon_get_cpu_env(mon); if (!env1) { diff --git a/target/riscv/monitor.c b/target/riscv/monitor.c index f8042db9cdf3..496d519c978d 100644 --- a/target/riscv/monitor.c +++ b/target/riscv/monitor.c @@ -215,8 +215,9 @@ static void mem_info_svxx(Monitor *mon, CPUArchState *env) last_paddr + last_size - pbase, last_attr); } -void hmp_info_mem(Monitor *mon, const QDict *qdict) +void hmp_info_mem(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); CPUArchState *env; env = mon_get_cpu_env(mon); diff --git a/target/sh4/monitor.c b/target/sh4/monitor.c index 50324d3600c4..50da650b2e04 100644 --- a/target/sh4/monitor.c +++ b/target/sh4/monitor.c @@ -38,8 +38,9 @@ static void print_tlb(Monitor *mon, int idx, tlb_t *tlb) tlb->d, tlb->wt); } -void hmp_info_tlb(Monitor *mon, const QDict *qdict) +void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); CPUArchState *env = mon_get_cpu_env(mon); int i; diff --git a/target/sparc/monitor.c b/target/sparc/monitor.c index 36f3d8d58e9d..09a15b821a1a 100644 --- a/target/sparc/monitor.c +++ b/target/sparc/monitor.c @@ -27,8 +27,9 @@ #include "monitor/hmp.h" -void hmp_info_tlb(Monitor *mon, const QDict *qdict) +void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); CPUArchState *env1 = mon_get_cpu_env(mon); if (!env1) { diff --git a/target/xtensa/monitor.c b/target/xtensa/monitor.c index 2af84934f83d..a1082c44e11c 100644 --- a/target/xtensa/monitor.c +++ b/target/xtensa/monitor.c @@ -26,8 +26,9 @@ #include "monitor/monitor.h" #include "monitor/hmp.h" -void hmp_info_tlb(Monitor *mon, const QDict *qdict) +void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); CPUArchState *env1 = mon_get_cpu_env(mon); if (!env1) { diff --git a/trace/trace-hmp-cmds.c b/trace/trace-hmp-cmds.c index c8f0133abecf..5a8158f4f4b6 100644 --- a/trace/trace-hmp-cmds.c +++ b/trace/trace-hmp-cmds.c @@ -33,7 +33,7 @@ #include "trace/simple.h" #endif -void hmp_trace_event(Monitor *mon, const QDict *qdict) +void hmp_trace_event(MonitorHMP *hmp, const QDict *qdict) { const char *tp_name = qdict_get_str(qdict, "name"); bool new_state = qdict_get_bool(qdict, "option"); @@ -47,8 +47,9 @@ void hmp_trace_event(Monitor *mon, const QDict *qdict) } #ifdef CONFIG_TRACE_SIMPLE -void hmp_trace_file(Monitor *mon, const QDict *qdict) +void hmp_trace_file(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *op = qdict_get_try_str(qdict, "op"); const char *arg = qdict_get_try_str(qdict, "arg"); @@ -71,8 +72,9 @@ void hmp_trace_file(Monitor *mon, const QDict *qdict) } #endif -void hmp_info_trace_events(Monitor *mon, const QDict *qdict) +void hmp_info_trace_events(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *name = qdict_get_try_str(qdict, "name"); TraceEventInfoList *events; TraceEventInfoList *elem; diff --git a/ui/ui-hmp-cmds.c b/ui/ui-hmp-cmds.c index 4ef459490ba2..5f3522943c56 100644 --- a/ui/ui-hmp-cmds.c +++ b/ui/ui-hmp-cmds.c @@ -29,7 +29,7 @@ static int mouse_button_state; -void hmp_mouse_move(Monitor *mon, const QDict *qdict) +void hmp_mouse_move(MonitorHMP *hmp, const QDict *qdict) { int dx, dy, dz, button; const char *dx_str = qdict_get_str(qdict, "dx_str"); @@ -53,7 +53,7 @@ void hmp_mouse_move(Monitor *mon, const QDict *qdict) qemu_input_event_sync(); } -void hmp_mouse_button(Monitor *mon, const QDict *qdict) +void hmp_mouse_button(MonitorHMP *hmp, const QDict *qdict) { /* HMP mouse_button bitmask: 1=L, 2=R, 4=M */ static uint32_t bmap[INPUT_BUTTON__MAX] = { @@ -71,16 +71,18 @@ void hmp_mouse_button(Monitor *mon, const QDict *qdict) mouse_button_state = button_state; } -void hmp_mouse_set(Monitor *mon, const QDict *qdict) +void hmp_mouse_set(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; qemu_mouse_set(qdict_get_int(qdict, "index"), &err); hmp_handle_error(mon, err); } -void hmp_info_mice(Monitor *mon, const QDict *qdict) +void hmp_info_mice(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); MouseInfoList *mice_list, *mouse; mice_list = qmp_query_mice(NULL); @@ -148,8 +150,9 @@ static void hmp_info_vnc_servers(Monitor *mon, VncServerInfo2List *server) } } -void hmp_info_vnc(Monitor *mon, const QDict *qdict) +void hmp_info_vnc(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); VncInfo2List *info2l, *info2l_head; Error *err = NULL; @@ -189,8 +192,9 @@ void hmp_info_vnc(Monitor *mon, const QDict *qdict) #endif #ifdef CONFIG_SPICE -void hmp_info_spice(Monitor *mon, const QDict *qdict) +void hmp_info_spice(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); SpiceChannelList *chan; SpiceInfo *info; const char *channel_name; @@ -260,8 +264,9 @@ out: } #endif -void hmp_set_password(Monitor *mon, const QDict *qdict) +void hmp_set_password(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *protocol = qdict_get_str(qdict, "protocol"); const char *password = qdict_get_str(qdict, "password"); const char *display = qdict_get_try_str(qdict, "display"); @@ -295,8 +300,9 @@ out: hmp_handle_error(mon, err); } -void hmp_expire_password(Monitor *mon, const QDict *qdict) +void hmp_expire_password(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *protocol = qdict_get_str(qdict, "protocol"); const char *whenstr = qdict_get_str(qdict, "time"); const char *display = qdict_get_try_str(qdict, "display"); @@ -366,8 +372,9 @@ static int index_from_key(const char *key, size_t key_length) return i; } -void hmp_sendkey(Monitor *mon, const QDict *qdict) +void hmp_sendkey(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *keys = qdict_get_str(qdict, "keys"); KeyValue *v = NULL; KeyValueList *head = NULL, **tail = &head; @@ -456,8 +463,9 @@ void sendkey_completion(ReadLineState *rs, int nb_args, const char *str) #ifdef CONFIG_PIXMAN void coroutine_fn -hmp_screendump(Monitor *mon, const QDict *qdict) +hmp_screendump(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); const char *filename = qdict_get_str(qdict, "filename"); const char *id = qdict_get_try_str(qdict, "device"); int64_t head = qdict_get_try_int(qdict, "head", 0); @@ -478,8 +486,9 @@ end: } #endif -void hmp_client_migrate_info(Monitor *mon, const QDict *qdict) +void hmp_client_migrate_info(MonitorHMP *hmp, const QDict *qdict) { + Monitor *mon = MONITOR(hmp); Error *err = NULL; const char *protocol = qdict_get_str(qdict, "protocol"); const char *hostname = qdict_get_str(qdict, "hostname"); From patchwork Fri Aug 28 20:42:11 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= X-Patchwork-Id: 2294309 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=OBAALVYD; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists1p.gnu.org; envelope-from=qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=patchwork.ozlabs.org) Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4hWr3q4VfGz1xpY for ; Sat, 29 Aug 2026 06:44:55 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x03Qx-00037w-K6; Fri, 28 Aug 2026 16:44:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x03Qv-0002yj-Ra for qemu-ppc@nongnu.org; Fri, 28 Aug 2026 16:44:17 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x03Qo-0000Q6-2e for qemu-ppc@nongnu.org; Fri, 28 Aug 2026 16:44:17 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1787949845; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=li8Ae/m9oZTeYNA/59sT/lhdymbLjMM8UfStvvVWHqo=; b=OBAALVYDdvDI1AxLIAOVHnCRWw/zDcF0nv8JJYy3ri/UpfmOIsgWcvzr5ixN4uxYczFzNo 4kgFDes82Lxs/O0qDBbF4uLbKO/3SZlJwBeGOUAmA7tTi9pRNJfmh/sbjAbLavS3laMmpX poCdBqZLBkZ68AO0c4d1bK3ol/fOLZ8= Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-584-5qd3hwRIOFGOzf2vIzvZ_Q-1; Fri, 28 Aug 2026 16:44:01 -0400 X-MC-Unique: 5qd3hwRIOFGOzf2vIzvZ_Q-1 X-Mimecast-MFC-AGG-ID: 5qd3hwRIOFGOzf2vIzvZ_Q_1787949839 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id BEA9419540EA; Fri, 28 Aug 2026 20:43:58 +0000 (UTC) Received: from localhost (headnet04.pony-001.prod.iad2.dc.redhat.com [10.2.32.116]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 897433001D3E; Fri, 28 Aug 2026 20:43:55 +0000 (UTC) From: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Date: Sat, 29 Aug 2026 00:42:11 +0400 Subject: [GIT PULL 32/50] monitor: make hmp_handle_error() take MonitorHMP MIME-Version: 1.0 Message-Id: <20260829-nohmp-v1-32-4dcc2b4b0055@redhat.com> References: <20260829-nohmp-v1-0-4dcc2b4b0055@redhat.com> In-Reply-To: <20260829-nohmp-v1-0-4dcc2b4b0055@redhat.com> To: qemu-devel@nongnu.org Cc: richard.henderson@linaro.org, Kevin Wolf , Hanna Reitz , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , Paolo Bonzini , Ani Sinha , David Woodhouse , Paul Durrant , "Michael S. Tsirkin" , Mark Cave-Ayland , Jiri Pirko , Jason Wang , Gerd Hoffmann , "Dr. David Alan Gilbert" , Hyman Huang , Peter Xu , Fabiano Rosas , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Zhao Liu , qemu-block@nongnu.org, qemu-ppc@nongnu.org X-Developer-Signature: v=1; a=openpgp-sha256; l=45187; i=marcandre.lureau@redhat.com; h=from:subject:message-id; bh=UBl0r09xHDY3Lk5h5/hSogL3ErGmH2KO87hG91A+CpE=; b=owEBbQKS/ZANAwAKAdro4Ql1lpzlAcsmYgBqkfKV8a5UxhWoJC/bTqnDlPj4eb2VqQAq3gjqP nY7++Xv2aCJAjMEAAEKAB0WIQSHqb2TP4fGBtJ29i3a6OEJdZac5QUCapHylQAKCRDa6OEJdZac 5Z6ND/0e52n3zfpv5IVjks1gz0Qqoehh8NpeSZ49ROcq3sRMDhgoz8eSyOEFo9jqAuTTg5gS/sf Oanr2e9d6x2GWi/7CaQ2bXUFOGqlTJ6b5/VZDn18P1WlS9sRCXUg5l96YmlJy284JLkh/1GdBqb j6bVHTYkaSjYW5bly4IoPCU6iUchw9oHqFRv6cDweHaHJJXVid851cZgke4M3mannQmRB5oG7eC 1EuA7ehcIsPp46Pmha7Wy1CbWJ1ARaXzoYs/lDA452qBcNPpUSRnp7p6yEMyin7ZkZoz9xkY1OK pu0cUeCo3YlAiIUBPz29hFQNIB/TiRjfDvaoBXyzh7TU/oUjPf2nYT2qIMbPklp/vmlGkgacSDL 6N6XA3chCF+Ofdbc46tv2xf3108GBAeZzo66k12Z+uJGrSJ8IMbM0si0LVi8Tm64ap8a1qVN0Y6 YwADtusu5oIEf96fV/CJhtvyNs+QRSE536qvVLOQnlpFI6l4Xp0LG/CbFLnGilqr7PbRphEHOKP KX+cTdf5pnXhwQitNJ+jrE2gau7lx8ehb767Psm7m8HYCLpd7Dr27Zh3dzEu1OTlEx2/xOkA8En +TamACxi8/jeGWv63L+3QZGKShFTDzwTd/XYTNxfznA2a3oMDMnTkalVgg6/wOdTvDuW7O2Huu4 QflDdpG1tAvRr+Q== X-Developer-Key: i=marcandre.lureau@redhat.com; a=openpgp; fpr=87A9BD933F87C606D276F62DDAE8E10975969CE5 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 X-Mimecast-MFC-PROC-ID: fMiQo14BF0SyulZBRc4lUz14BElAqNrnIq3EuDIAS8k_1787949839 X-Mimecast-Originator: redhat.com Received-SPF: pass client-ip=170.10.133.124; envelope-from=marcandre.lureau@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: 12 X-Spam_score: 1.2 X-Spam_bar: + X-Spam_report: (1.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_SBL_CSS=3.335, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-ppc@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-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org Mostly mechanical, with a few adjustments around it. Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Daniel P. Berrangé Reviewed-by: Dr. David Alan Gilbert Signed-off-by: Marc-André Lureau Message-ID: <20260828-qemu-no-hmp-v5-32-9227de146347@redhat.com> --- block/monitor/block-hmp-cmds.c | 73 +++++++++++++++-------------------------- chardev/char-hmp-cmds.c | 17 ++++------ dump/dump-hmp-cmds.c | 5 ++- hw/core/machine-hmp-cmds.c | 26 +++++++-------- hw/i386/kvm/xen_evtchn.c | 4 +-- hw/misc/mos6522.c | 2 +- hw/net/rocker/rocker-hmp-cmds.c | 8 ++--- hw/pci/pci-hmp-cmds.c | 2 +- hw/uefi/ovmf-log.c | 2 +- hw/virtio/virtio-hmp-cmds.c | 10 +++--- include/monitor/hmp.h | 2 +- migration/dirtyrate.c | 2 +- migration/migration-hmp-cmds.c | 41 +++++++++-------------- monitor/hmp-cmds.c | 23 +++++-------- monitor/hmp.c | 12 +++---- net/net-hmp-cmds.c | 11 +++---- qom/qom-hmp-cmds.c | 13 +++----- system/dirtylimit-hmp-cmds.c | 7 ++-- system/qdev-monitor.c | 6 ++-- system/runstate-hmp-cmds.c | 3 +- target/i386/monitor.c | 3 +- ui/ui-hmp-cmds.c | 19 ++++------- 22 files changed, 114 insertions(+), 177 deletions(-) diff --git a/block/monitor/block-hmp-cmds.c b/block/monitor/block-hmp-cmds.c index 3914b5189d56..a2666e2f1b9b 100644 --- a/block/monitor/block-hmp-cmds.c +++ b/block/monitor/block-hmp-cmds.c @@ -57,7 +57,7 @@ #include "block/block_int.h" #include "block/block-hmp-cmds.h" -static void hmp_drive_add_node(Monitor *mon, const char *optstr) +static void hmp_drive_add_node(MonitorHMP *hmp, const char *optstr) { QemuOpts *opts; QDict *qdict; @@ -84,7 +84,7 @@ static void hmp_drive_add_node(Monitor *mon, const char *optstr) bdrv_set_monitor_owned(bs); out: qemu_opts_del(opts); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_drive_add(MonitorHMP *hmp, const QDict *qdict) @@ -98,7 +98,7 @@ void hmp_drive_add(MonitorHMP *hmp, const QDict *qdict) bool node = qdict_get_try_bool(qdict, "node", false); if (node) { - hmp_drive_add_node(mon, optstr); + hmp_drive_add_node(hmp, optstr); return; } @@ -133,12 +133,11 @@ err: monitor_remove_blk(blk); blk_unref(blk); } - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_drive_del(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *id = qdict_get_str(qdict, "id"); BlockBackend *blk; BlockDriverState *bs; @@ -193,12 +192,11 @@ void hmp_drive_del(MonitorHMP *hmp, const QDict *qdict) unlock: bdrv_graph_rdunlock_main_loop(); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_commit(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *device = qdict_get_str(qdict, "device"); BlockBackend *blk; int ret; @@ -232,12 +230,11 @@ void hmp_commit(MonitorHMP *hmp, const QDict *qdict) } end: - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_drive_mirror(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *filename = qdict_get_str(qdict, "target"); const char *format = qdict_get_try_str(qdict, "format"); bool reuse = qdict_get_try_bool(qdict, "reuse", false); @@ -259,12 +256,11 @@ void hmp_drive_mirror(MonitorHMP *hmp, const QDict *qdict) } qmp_drive_mirror(&mirror, &err); end: - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_drive_backup(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *device = qdict_get_str(qdict, "device"); const char *filename = qdict_get_str(qdict, "target"); const char *format = qdict_get_try_str(qdict, "format"); @@ -290,69 +286,63 @@ void hmp_drive_backup(MonitorHMP *hmp, const QDict *qdict) qmp_drive_backup(&backup, &err); end: - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_block_job_set_speed(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *error = NULL; const char *device = qdict_get_str(qdict, "device"); int64_t value = qdict_get_int(qdict, "speed"); qmp_block_job_set_speed(device, value, &error); - hmp_handle_error(mon, error); + hmp_handle_error(hmp, error); } void hmp_block_job_cancel(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *error = NULL; const char *device = qdict_get_str(qdict, "device"); bool force = qdict_get_try_bool(qdict, "force", false); qmp_block_job_cancel(device, true, force, &error); - hmp_handle_error(mon, error); + hmp_handle_error(hmp, error); } void hmp_block_job_pause(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *error = NULL; const char *device = qdict_get_str(qdict, "device"); qmp_block_job_pause(device, &error); - hmp_handle_error(mon, error); + hmp_handle_error(hmp, error); } void hmp_block_job_resume(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *error = NULL; const char *device = qdict_get_str(qdict, "device"); qmp_block_job_resume(device, &error); - hmp_handle_error(mon, error); + hmp_handle_error(hmp, error); } void hmp_block_job_complete(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *error = NULL; const char *device = qdict_get_str(qdict, "device"); qmp_block_job_complete(device, &error); - hmp_handle_error(mon, error); + hmp_handle_error(hmp, error); } void hmp_snapshot_blkdev(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *device = qdict_get_str(qdict, "device"); const char *filename = qdict_get_str(qdict, "snapshot-file"); const char *format = qdict_get_try_str(qdict, "format"); @@ -363,35 +353,32 @@ void hmp_snapshot_blkdev(MonitorHMP *hmp, const QDict *qdict) mode = reuse ? NEW_IMAGE_MODE_EXISTING : NEW_IMAGE_MODE_ABSOLUTE_PATHS; qmp_blockdev_snapshot_sync(device, NULL, filename, NULL, format, true, mode, &err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_snapshot_blkdev_internal(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *device = qdict_get_str(qdict, "device"); const char *name = qdict_get_str(qdict, "name"); Error *err = NULL; qmp_blockdev_snapshot_internal_sync(device, name, &err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_snapshot_delete_blkdev_internal(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *device = qdict_get_str(qdict, "device"); const char *name = qdict_get_str(qdict, "name"); const char *id = qdict_get_try_str(qdict, "id"); Error *err = NULL; qmp_blockdev_snapshot_delete_internal_sync(device, id, name, &err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_nbd_server_start(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *uri = qdict_get_str(qdict, "uri"); bool writable = qdict_get_try_bool(qdict, "writable", false); bool all = qdict_get_try_bool(qdict, "all", false); @@ -449,12 +436,11 @@ void hmp_nbd_server_start(MonitorHMP *hmp, const QDict *qdict) qapi_free_BlockInfoList(block_list); exit: - hmp_handle_error(mon, local_err); + hmp_handle_error(hmp, local_err); } void hmp_nbd_server_add(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *device = qdict_get_str(qdict, "device"); const char *name = qdict_get_try_str(qdict, "name"); bool writable = qdict_get_try_bool(qdict, "writable", false); @@ -468,44 +454,40 @@ void hmp_nbd_server_add(MonitorHMP *hmp, const QDict *qdict) }; qmp_nbd_server_add(&export, &local_err); - hmp_handle_error(mon, local_err); + hmp_handle_error(hmp, local_err); } void hmp_nbd_server_remove(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *name = qdict_get_str(qdict, "name"); bool force = qdict_get_try_bool(qdict, "force", false); Error *err = NULL; /* Rely on BLOCK_EXPORT_REMOVE_MODE_SAFE being the default */ qmp_nbd_server_remove(name, force, BLOCK_EXPORT_REMOVE_MODE_HARD, &err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_nbd_server_stop(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; qmp_nbd_server_stop(&err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void coroutine_fn hmp_block_resize(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *device = qdict_get_str(qdict, "device"); int64_t size = qdict_get_int(qdict, "size"); Error *err = NULL; qmp_block_resize(device, NULL, size, &err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_block_stream(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *error = NULL; const char *device = qdict_get_str(qdict, "device"); const char *base = qdict_get_try_str(qdict, "base"); @@ -516,12 +498,11 @@ void hmp_block_stream(MonitorHMP *hmp, const QDict *qdict) true, BLOCKDEV_ON_ERROR_REPORT, NULL, false, false, false, false, &error); - hmp_handle_error(mon, error); + hmp_handle_error(hmp, error); } void hmp_block_set_io_throttle(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; char *device = (char *) qdict_get_str(qdict, "device"); BlockIOThrottle throttle = { @@ -545,23 +526,21 @@ void hmp_block_set_io_throttle(MonitorHMP *hmp, const QDict *qdict) } qmp_block_set_io_throttle(&throttle, &err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_eject(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); bool force = qdict_get_try_bool(qdict, "force", false); const char *device = qdict_get_str(qdict, "device"); Error *err = NULL; qmp_eject(device, NULL, true, force, &err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_qemu_io(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); bool qdev = qdict_get_try_bool(qdict, "qdev", false); const char *device = qdict_get_str(qdict, "device"); const char *command = qdict_get_str(qdict, "command"); @@ -570,7 +549,7 @@ void hmp_qemu_io(MonitorHMP *hmp, const QDict *qdict) qmp_x_qemu_io(qdev ? NULL : device, qdev ? device : NULL, command, &err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } static void print_block_info(Monitor *mon, BlockInfo *info, @@ -851,7 +830,7 @@ void hmp_info_snapshots(MonitorHMP *hmp, const QDict *qdict) bs = bdrv_all_find_vmstate_bs(NULL, false, NULL, &err); if (!bs) { - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); return; } diff --git a/chardev/char-hmp-cmds.c b/chardev/char-hmp-cmds.c index d4a5a3a255a5..71017fd2d19e 100644 --- a/chardev/char-hmp-cmds.c +++ b/chardev/char-hmp-cmds.c @@ -40,14 +40,13 @@ void hmp_info_chardev(MonitorHMP *hmp, const QDict *qdict) void hmp_ringbuf_write(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *chardev = qdict_get_str(qdict, "device"); const char *data = qdict_get_str(qdict, "data"); Error *err = NULL; qmp_ringbuf_write(chardev, data, false, 0, &err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_ringbuf_read(MonitorHMP *hmp, const QDict *qdict) @@ -60,7 +59,7 @@ void hmp_ringbuf_read(MonitorHMP *hmp, const QDict *qdict) int i; data = qmp_ringbuf_read(chardev, size, false, 0, &err); - if (hmp_handle_error(mon, err)) { + if (hmp_handle_error(hmp, err)) { return; } @@ -82,7 +81,6 @@ void hmp_ringbuf_read(MonitorHMP *hmp, const QDict *qdict) void hmp_chardev_add(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *args = qdict_get_str(qdict, "args"); Error *err = NULL; QemuOpts *opts; @@ -94,12 +92,11 @@ void hmp_chardev_add(MonitorHMP *hmp, const QDict *qdict) qemu_chr_new_from_opts(opts, NULL, &err); qemu_opts_del(opts); } - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_chardev_change(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *args = qdict_get_str(qdict, "args"); const char *id; Error *err = NULL; @@ -129,25 +126,23 @@ end: qapi_free_ChardevReturn(ret); qapi_free_ChardevBackend(backend); qemu_opts_del(opts); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_chardev_remove(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *local_err = NULL; qmp_chardev_remove(qdict_get_str(qdict, "id"), &local_err); - hmp_handle_error(mon, local_err); + hmp_handle_error(hmp, local_err); } void hmp_chardev_send_break(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *local_err = NULL; qmp_chardev_send_break(qdict_get_str(qdict, "id"), &local_err); - hmp_handle_error(mon, local_err); + hmp_handle_error(hmp, local_err); } void chardev_add_completion(ReadLineState *rs, int nb_args, const char *str) diff --git a/dump/dump-hmp-cmds.c b/dump/dump-hmp-cmds.c index ba78ad026f1e..104ab5d2a53a 100644 --- a/dump/dump-hmp-cmds.c +++ b/dump/dump-hmp-cmds.c @@ -14,7 +14,6 @@ void hmp_dump_guest_memory(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; bool win_dmp = qdict_get_try_bool(qdict, "windmp", false); bool paging = qdict_get_try_bool(qdict, "paging", false); @@ -34,7 +33,7 @@ void hmp_dump_guest_memory(MonitorHMP *hmp, const QDict *qdict) if (zlib + lzo + snappy + win_dmp > 1) { error_setg(&err, "only one of '-z|-l|-s|-w' can be set"); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); return; } @@ -80,7 +79,7 @@ void hmp_dump_guest_memory(MonitorHMP *hmp, const QDict *qdict) qmp_dump_guest_memory(paging, prot, true, detach, has_begin, begin, has_length, length, true, dump_format, &err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); g_free(prot); } diff --git a/hw/core/machine-hmp-cmds.c b/hw/core/machine-hmp-cmds.c index 48fa27f12705..4e2f0c212b0d 100644 --- a/hw/core/machine-hmp-cmds.c +++ b/hw/core/machine-hmp-cmds.c @@ -57,7 +57,7 @@ void hmp_hotpluggable_cpus(MonitorHMP *hmp, const QDict *qdict) HotpluggableCPUList *saved = l; CpuInstanceProperties *c; - if (hmp_handle_error(mon, err)) { + if (hmp_handle_error(hmp, err)) { return; } @@ -147,7 +147,7 @@ void hmp_info_memdev(MonitorHMP *hmp, const QDict *qdict) monitor_printf(mon, "\n"); qapi_free_MemdevList(memdev_list); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_info_kvm(MonitorHMP *hmp, const QDict *qdict) @@ -202,7 +202,7 @@ void hmp_info_balloon(MonitorHMP *hmp, const QDict *qdict) Error *err = NULL; info = qmp_query_balloon(&err); - if (hmp_handle_error(mon, err)) { + if (hmp_handle_error(hmp, err)) { return; } @@ -236,47 +236,43 @@ void hmp_memsave(MonitorHMP *hmp, const QDict *qdict) } qmp_memsave(addr, size, filename, true, cpu_index, &err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_pmemsave(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); uint32_t size = qdict_get_int(qdict, "size"); const char *filename = qdict_get_str(qdict, "filename"); uint64_t addr = qdict_get_int(qdict, "val"); Error *err = NULL; qmp_pmemsave(addr, size, filename, &err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_system_wakeup(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; qmp_system_wakeup(&err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_nmi(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; qmp_inject_nmi(&err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_balloon(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); int64_t value = qdict_get_int(qdict, "value"); Error *err = NULL; qmp_balloon(value, &err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_info_memory_devices(MonitorHMP *hmp, const QDict *qdict) @@ -380,7 +376,7 @@ void hmp_info_memory_devices(MonitorHMP *hmp, const QDict *qdict) } qapi_free_MemoryDeviceInfoList(info_list); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_info_vm_generation_id(MonitorHMP *hmp, const QDict *qdict) @@ -391,7 +387,7 @@ void hmp_info_vm_generation_id(MonitorHMP *hmp, const QDict *qdict) if (info) { monitor_printf(mon, "%s\n", info->guid); } - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); qapi_free_GuidInfo(info); } @@ -411,5 +407,5 @@ void hmp_info_memory_size_summary(MonitorHMP *hmp, const QDict *qdict) qapi_free_MemoryInfo(info); } - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } diff --git a/hw/i386/kvm/xen_evtchn.c b/hw/i386/kvm/xen_evtchn.c index 845838c372d5..00dff6ee8760 100644 --- a/hw/i386/kvm/xen_evtchn.c +++ b/hw/i386/kvm/xen_evtchn.c @@ -2352,7 +2352,7 @@ void hmp_xen_event_list(MonitorHMP *hmp, const QDict *qdict) info_list = qmp_xen_event_list(&err); if (err) { - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); return; } @@ -2388,7 +2388,7 @@ void hmp_xen_event_inject(MonitorHMP *hmp, const QDict *qdict) qmp_xen_event_inject(port, &err); if (err) { - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } else { monitor_printf(mon, "Delivered port %d\n", port); } diff --git a/hw/misc/mos6522.c b/hw/misc/mos6522.c index 15a6a1a75745..1c20c7582c34 100644 --- a/hw/misc/mos6522.c +++ b/hw/misc/mos6522.c @@ -592,7 +592,7 @@ void hmp_info_via(MonitorHMP *hmp, const QDict *qdict) Error *err = NULL; g_autoptr(HumanReadableText) info = qmp_x_query_via(&err); - if (hmp_handle_error(mon, err)) { + if (hmp_handle_error(hmp, err)) { return; } monitor_puts(mon, info->human_readable_text); diff --git a/hw/net/rocker/rocker-hmp-cmds.c b/hw/net/rocker/rocker-hmp-cmds.c index 856aaef5e210..6405ce26dd65 100644 --- a/hw/net/rocker/rocker-hmp-cmds.c +++ b/hw/net/rocker/rocker-hmp-cmds.c @@ -28,7 +28,7 @@ void hmp_rocker(MonitorHMP *hmp, const QDict *qdict) Error *err = NULL; rocker = qmp_query_rocker(name, &err); - if (hmp_handle_error(mon, err)) { + if (hmp_handle_error(hmp, err)) { return; } @@ -47,7 +47,7 @@ void hmp_rocker_ports(MonitorHMP *hmp, const QDict *qdict) Error *err = NULL; list = qmp_query_rocker_ports(name, &err); - if (hmp_handle_error(mon, err)) { + if (hmp_handle_error(hmp, err)) { return; } @@ -76,7 +76,7 @@ void hmp_rocker_of_dpa_flows(MonitorHMP *hmp, const QDict *qdict) Error *err = NULL; list = qmp_query_rocker_of_dpa_flows(name, tbl_id != -1, tbl_id, &err); - if (hmp_handle_error(mon, err)) { + if (hmp_handle_error(hmp, err)) { return; } @@ -226,7 +226,7 @@ void hmp_rocker_of_dpa_groups(MonitorHMP *hmp, const QDict *qdict) Error *err = NULL; list = qmp_query_rocker_of_dpa_groups(name, type != 9, type, &err); - if (hmp_handle_error(mon, err)) { + if (hmp_handle_error(hmp, err)) { return; } diff --git a/hw/pci/pci-hmp-cmds.c b/hw/pci/pci-hmp-cmds.c index be24aecc8ac8..51d95d76620e 100644 --- a/hw/pci/pci-hmp-cmds.c +++ b/hw/pci/pci-hmp-cmds.c @@ -247,5 +247,5 @@ void hmp_pcie_aer_inject_error(MonitorHMP *hmp, const QDict *qdict) PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn)); out: - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } diff --git a/hw/uefi/ovmf-log.c b/hw/uefi/ovmf-log.c index c97622b2aad6..0d59a74ad60e 100644 --- a/hw/uefi/ovmf-log.c +++ b/hw/uefi/ovmf-log.c @@ -269,7 +269,7 @@ void hmp_info_firmware_log(MonitorHMP *hmp, const QDict *qdict) maxsize = qdict_get_try_int(qdict, "max-size", -1); log = qmp_query_firmware_log(maxsize != -1, (uint64_t)maxsize, &err); if (err) { - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); return; } diff --git a/hw/virtio/virtio-hmp-cmds.c b/hw/virtio/virtio-hmp-cmds.c index 49f3367785ba..fb36c8b9274c 100644 --- a/hw/virtio/virtio-hmp-cmds.c +++ b/hw/virtio/virtio-hmp-cmds.c @@ -88,7 +88,7 @@ void hmp_virtio_query(MonitorHMP *hmp, const QDict *qdict) VirtioInfoList *node; if (err != NULL) { - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); return; } @@ -114,7 +114,7 @@ void hmp_virtio_status(MonitorHMP *hmp, const QDict *qdict) VirtioStatus *s = qmp_x_query_virtio_status(path, &err); if (err != NULL) { - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); return; } @@ -195,7 +195,7 @@ void hmp_vhost_queue_status(MonitorHMP *hmp, const QDict *qdict) qmp_x_query_virtio_vhost_queue_status(path, queue, &err); if (err != NULL) { - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); return; } @@ -228,7 +228,7 @@ void hmp_virtio_queue_status(MonitorHMP *hmp, const QDict *qdict) VirtQueueStatus *s = qmp_x_query_virtio_queue_status(path, queue, &err); if (err != NULL) { - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); return; } @@ -278,7 +278,7 @@ void hmp_virtio_queue_element(MonitorHMP *hmp, const QDict *qdict) e = qmp_x_query_virtio_queue_element(path, queue, index != -1, index, &err); if (err != NULL) { - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); return; } diff --git a/include/monitor/hmp.h b/include/monitor/hmp.h index 7a270ad3f25c..827a56144824 100644 --- a/include/monitor/hmp.h +++ b/include/monitor/hmp.h @@ -54,7 +54,7 @@ void monitor_register_hmp_info_hrt(const char *name, CPUArchState *mon_get_cpu_env(Monitor *mon); CPUState *mon_get_cpu(Monitor *mon); -bool hmp_handle_error(Monitor *mon, Error *err); +bool hmp_handle_error(MonitorHMP *hmp, Error *err); void hmp_help_cmd(Monitor *mon, const char *name); strList *hmp_split_at_comma(const char *str); diff --git a/migration/dirtyrate.c b/migration/dirtyrate.c index 567abab321cc..3c0931796ce2 100644 --- a/migration/dirtyrate.c +++ b/migration/dirtyrate.c @@ -926,7 +926,7 @@ void hmp_calc_dirty_rate(MonitorHMP *hmp, const QDict *qdict) true, mode, &err); if (err) { - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); return; } diff --git a/migration/migration-hmp-cmds.c b/migration/migration-hmp-cmds.c index 8d2e8735277e..a164a59080c5 100644 --- a/migration/migration-hmp-cmds.c +++ b/migration/migration-hmp-cmds.c @@ -478,7 +478,6 @@ void hmp_info_migrate_parameters(MonitorHMP *hmp, const QDict *qdict) void hmp_loadvm(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); RunState saved_state = runstate_get(); const char *name = qdict_get_str(qdict, "name"); @@ -490,27 +489,25 @@ void hmp_loadvm(MonitorHMP *hmp, const QDict *qdict) load_snapshot_resume(saved_state); } - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_savevm(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; save_snapshot(qdict_get_try_str(qdict, "name"), true, NULL, false, NULL, &err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_delvm(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; const char *name = qdict_get_str(qdict, "name"); delete_snapshot(name, false, NULL, &err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_migrate_cancel(MonitorHMP *hmp, const QDict *qdict) @@ -520,7 +517,6 @@ void hmp_migrate_cancel(MonitorHMP *hmp, const QDict *qdict) void hmp_migrate_continue(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; const char *state = qdict_get_str(qdict, "state"); int val = qapi_enum_parse(&MigrationStatus_lookup, state, -1, &err); @@ -529,12 +525,11 @@ void hmp_migrate_continue(MonitorHMP *hmp, const QDict *qdict) qmp_migrate_continue(val, &err); } - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_migrate_incoming(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; const char *uri = qdict_get_str(qdict, "uri"); MigrationChannelList *caps = NULL; @@ -549,34 +544,31 @@ void hmp_migrate_incoming(MonitorHMP *hmp, const QDict *qdict) qapi_free_MigrationChannelList(caps); end: - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_migrate_recover(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; const char *uri = qdict_get_str(qdict, "uri"); qmp_migrate_recover(uri, &err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_migrate_pause(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; qmp_migrate_pause(&err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_migrate_set_capability(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *cap = qdict_get_str(qdict, "capability"); bool state = qdict_get_bool(qdict, "state"); Error *err = NULL; @@ -597,12 +589,11 @@ void hmp_migrate_set_capability(MonitorHMP *hmp, const QDict *qdict) qapi_free_MigrationCapabilityStatusList(caps); end: - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_migrate_set_parameter(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *param = qdict_get_str(qdict, "parameter"); const char *valuestr = qdict_get_str(qdict, "value"); Visitor *v = string_input_visitor_new(valuestr); @@ -799,25 +790,23 @@ void hmp_migrate_set_parameter(MonitorHMP *hmp, const QDict *qdict) cleanup: qapi_free_MigrationParameters(p); visit_free(v); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_migrate_start_postcopy(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; qmp_migrate_start_postcopy(&err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } #ifdef CONFIG_REPLICATION void hmp_x_colo_lost_heartbeat(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; qmp_x_colo_lost_heartbeat(&err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } #endif @@ -860,7 +849,7 @@ void hmp_migrate(MonitorHMP *hmp, const QDict *qdict) g_autoptr(MigrationChannel) channel_cpr = NULL; if (!migrate_uri_parse(uri, &channel, &err)) { - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); return; } QAPI_LIST_PREPEND(caps, g_steal_pointer(&channel)); @@ -868,12 +857,12 @@ void hmp_migrate(MonitorHMP *hmp, const QDict *qdict) if (uri_cpr) { if (migrate_mode() != MIG_MODE_CPR_TRANSFER) { error_setg(&err, "-c can only be used in cpr-transfer mode"); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); return; } if (!migrate_uri_parse(uri_cpr, &channel_cpr, &err)) { - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); return; } @@ -882,7 +871,7 @@ void hmp_migrate(MonitorHMP *hmp, const QDict *qdict) } qmp_migrate(NULL, true, caps, true, resume, &err); - if (hmp_handle_error(mon, err)) { + if (hmp_handle_error(hmp, err)) { return; } diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index 31ce54e28449..e2a967516e0a 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -75,7 +75,7 @@ static void __attribute__((__constructor__)) sortcmdlist(void) compare_mon_cmd); } -bool hmp_handle_error(Monitor *mon, Error *err) +bool hmp_handle_error(MonitorHMP *hmp, Error *err) { if (err) { error_reportf_err(err, "Error: "); @@ -165,17 +165,16 @@ void hmp_sync_profile(MonitorHMP *hmp, const QDict *qdict) error_setg(&err, "invalid parameter '%s'," " expecting 'on', 'off', or 'reset'", op); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } } void hmp_exit_preconfig(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; qmp_x_exit_preconfig(&err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_cpu(MonitorHMP *hmp, const QDict *qdict) @@ -193,11 +192,10 @@ void hmp_cpu(MonitorHMP *hmp, const QDict *qdict) void hmp_cont(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; qmp_cont(&err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_change(MonitorHMP *hmp, const QDict *qdict) @@ -219,29 +217,27 @@ void hmp_change(MonitorHMP *hmp, const QDict *qdict) hmp_change_medium(mon, device, target, arg, read_only, force, &err); } - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } #ifdef CONFIG_POSIX void hmp_getfd(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *fdname = qdict_get_str(qdict, "fdname"); Error *err = NULL; qmp_getfd(fdname, &err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } #endif void hmp_closefd(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *fdname = qdict_get_str(qdict, "fdname"); Error *err = NULL; qmp_closefd(fdname, &err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_info_iothreads(MonitorHMP *hmp, const QDict *qdict) @@ -502,17 +498,16 @@ void hmp_info_mtree(MonitorHMP *hmp, const QDict *qdict) #if defined(CONFIG_FDT) void hmp_dumpdtb(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *filename = qdict_get_str(qdict, "filename"); Error *local_err = NULL; qmp_dumpdtb(filename, &local_err); - if (hmp_handle_error(mon, local_err)) { + if (hmp_handle_error(hmp, local_err)) { return; } - monitor_printf(mon, "DTB dumped to '%s'\n", filename); + monitor_printf(MONITOR(hmp), "DTB dumped to '%s'\n", filename); } #endif diff --git a/monitor/hmp.c b/monitor/hmp.c index 6e6334b64685..57c4127641ac 100644 --- a/monitor/hmp.c +++ b/monitor/hmp.c @@ -1215,28 +1215,28 @@ fail: return NULL; } -static void hmp_info_human_readable_text(Monitor *mon, +static void hmp_info_human_readable_text(MonitorHMP *hmp, HumanReadableText *(*handler)(Error **)) { Error *err = NULL; g_autoptr(HumanReadableText) info = handler(&err); - if (hmp_handle_error(mon, err)) { + if (hmp_handle_error(hmp, err)) { return; } - monitor_puts(mon, info->human_readable_text); + monitor_puts(MONITOR(hmp), info->human_readable_text); } -static void handle_hmp_command_exec(MonitorHMP *mon, +static void handle_hmp_command_exec(MonitorHMP *hmp, const HMPCommand *cmd, QDict *qdict) { if (cmd->cmd_info_hrt) { - hmp_info_human_readable_text(MONITOR(mon), + hmp_info_human_readable_text(hmp, cmd->cmd_info_hrt); } else { - cmd->cmd(mon, qdict); + cmd->cmd(hmp, qdict); } } diff --git a/net/net-hmp-cmds.c b/net/net-hmp-cmds.c index 702103b6a920..5b1c678f5d89 100644 --- a/net/net-hmp-cmds.c +++ b/net/net-hmp-cmds.c @@ -53,7 +53,7 @@ void hmp_info_network(MonitorHMP *hmp, const QDict *qdict) NetHubInfoList *h; NetworkClientInfoList *entry; - if (hmp_handle_error(mon, err)) { + if (hmp_handle_error(hmp, err)) { return; } @@ -86,13 +86,12 @@ void hmp_info_network(MonitorHMP *hmp, const QDict *qdict) void hmp_set_link(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *name = qdict_get_str(qdict, "name"); bool up = qdict_get_bool(qdict, "up"); Error *err = NULL; qmp_set_link(name, up, &err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } @@ -113,7 +112,6 @@ void hmp_announce_self(MonitorHMP *hmp, const QDict *qdict) void hmp_netdev_add(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; QemuOpts *opts; const char *type = qdict_get_try_str(qdict, "type"); @@ -133,17 +131,16 @@ void hmp_netdev_add(MonitorHMP *hmp, const QDict *qdict) } out: - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_netdev_del(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *id = qdict_get_str(qdict, "id"); Error *err = NULL; qmp_netdev_del(id, &err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } diff --git a/qom/qom-hmp-cmds.c b/qom/qom-hmp-cmds.c index 16847d1ce261..2e2eb33371e2 100644 --- a/qom/qom-hmp-cmds.c +++ b/qom/qom-hmp-cmds.c @@ -42,12 +42,11 @@ void hmp_qom_list(MonitorHMP *hmp, const QDict *qdict) } qapi_free_ObjectPropertyInfoList(start); } - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_qom_set(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const bool json = qdict_get_try_bool(qdict, "json", false); const char *path = qdict_get_str(qdict, "path"); const char *property = qdict_get_str(qdict, "property"); @@ -71,7 +70,7 @@ void hmp_qom_set(MonitorHMP *hmp, const QDict *qdict) } } - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_qom_get(MonitorHMP *hmp, const QDict *qdict) @@ -89,7 +88,7 @@ void hmp_qom_get(MonitorHMP *hmp, const QDict *qdict) } qobject_unref(obj); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } typedef struct QOMCompositionState { @@ -160,22 +159,20 @@ void hmp_info_qom_tree(MonitorHMP *hmp, const QDict *dict) void hmp_object_add(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *options = qdict_get_str(qdict, "object"); Error *err = NULL; user_creatable_add_from_str(options, &err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_object_del(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *id = qdict_get_str(qdict, "id"); Error *err = NULL; user_creatable_del(id, &err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void object_add_completion(ReadLineState *rs, int nb_args, const char *str) diff --git a/system/dirtylimit-hmp-cmds.c b/system/dirtylimit-hmp-cmds.c index 4c100783778f..75194add7931 100644 --- a/system/dirtylimit-hmp-cmds.c +++ b/system/dirtylimit-hmp-cmds.c @@ -23,7 +23,7 @@ void hmp_cancel_vcpu_dirty_limit(MonitorHMP *hmp, const QDict *qdict) qmp_cancel_vcpu_dirty_limit(!!(cpu_index != -1), cpu_index, &err); if (err) { - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); return; } @@ -33,7 +33,6 @@ void hmp_cancel_vcpu_dirty_limit(MonitorHMP *hmp, const QDict *qdict) void hmp_set_vcpu_dirty_limit(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); int64_t dirty_rate = qdict_get_int(qdict, "dirty_rate"); int64_t cpu_index = qdict_get_try_int(qdict, "cpu_index", -1); Error *err = NULL; @@ -46,7 +45,7 @@ void hmp_set_vcpu_dirty_limit(MonitorHMP *hmp, const QDict *qdict) qmp_set_vcpu_dirty_limit(!!(cpu_index != -1), cpu_index, dirty_rate, &err); out: - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_info_vcpu_dirty_limit(MonitorHMP *hmp, const QDict *qdict) @@ -63,7 +62,7 @@ void hmp_info_vcpu_dirty_limit(MonitorHMP *hmp, const QDict *qdict) head = qmp_query_vcpu_dirty_limit(&err); if (err) { - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); return; } diff --git a/system/qdev-monitor.c b/system/qdev-monitor.c index e27b9724867a..5c2de2f53cc9 100644 --- a/system/qdev-monitor.c +++ b/system/qdev-monitor.c @@ -1004,7 +1004,6 @@ void qmp_device_sync_config(const char *id, Error **errp) void hmp_device_add(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; QemuOpts *opts; DeviceState *dev; @@ -1034,17 +1033,16 @@ void hmp_device_add(MonitorHMP *hmp, const QDict *qdict) } object_unref(dev); out: - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_device_del(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *id = qdict_get_str(qdict, "id"); Error *err = NULL; qmp_device_del(id, &err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void device_add_completion(ReadLineState *rs, int nb_args, const char *str) diff --git a/system/runstate-hmp-cmds.c b/system/runstate-hmp-cmds.c index 834b95835339..051ee45ee74c 100644 --- a/system/runstate-hmp-cmds.c +++ b/system/runstate-hmp-cmds.c @@ -70,7 +70,6 @@ void hmp_one_insn_per_tb(MonitorHMP *hmp, const QDict *qdict) void hmp_watchdog_action(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; WatchdogAction action; char *qapi_value; @@ -79,7 +78,7 @@ void hmp_watchdog_action(MonitorHMP *hmp, const QDict *qdict) action = qapi_enum_parse(&WatchdogAction_lookup, qapi_value, -1, &err); g_free(qapi_value); if (err) { - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); return; } qmp_watchdog_set_action(action, &error_abort); diff --git a/target/i386/monitor.c b/target/i386/monitor.c index f1d2a327ddad..f68dd38ac225 100644 --- a/target/i386/monitor.c +++ b/target/i386/monitor.c @@ -573,7 +573,6 @@ void hmp_info_mem(MonitorHMP *hmp, const QDict *qdict) void hmp_mce(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); X86CPU *cpu; CPUState *cs; int cpu_index = qdict_get_int(qdict, "cpu_index"); @@ -596,5 +595,5 @@ void hmp_mce(MonitorHMP *hmp, const QDict *qdict) } else { error_setg(&err, "Invalid CPU %d", cpu_index); } - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } diff --git a/ui/ui-hmp-cmds.c b/ui/ui-hmp-cmds.c index 5f3522943c56..186209fd0234 100644 --- a/ui/ui-hmp-cmds.c +++ b/ui/ui-hmp-cmds.c @@ -73,11 +73,10 @@ void hmp_mouse_button(MonitorHMP *hmp, const QDict *qdict) void hmp_mouse_set(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; qemu_mouse_set(qdict_get_int(qdict, "index"), &err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_info_mice(MonitorHMP *hmp, const QDict *qdict) @@ -158,7 +157,7 @@ void hmp_info_vnc(MonitorHMP *hmp, const QDict *qdict) info2l = qmp_query_vnc_servers(&err); info2l_head = info2l; - if (hmp_handle_error(mon, err)) { + if (hmp_handle_error(hmp, err)) { return; } if (!info2l) { @@ -266,7 +265,6 @@ out: void hmp_set_password(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *protocol = qdict_get_str(qdict, "protocol"); const char *password = qdict_get_str(qdict, "password"); const char *display = qdict_get_try_str(qdict, "display"); @@ -297,12 +295,11 @@ void hmp_set_password(MonitorHMP *hmp, const QDict *qdict) qmp_set_password(&opts, &err); out: - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } void hmp_expire_password(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *protocol = qdict_get_str(qdict, "protocol"); const char *whenstr = qdict_get_str(qdict, "time"); const char *display = qdict_get_try_str(qdict, "display"); @@ -325,7 +322,7 @@ void hmp_expire_password(MonitorHMP *hmp, const QDict *qdict) qmp_expire_password(&opts, &err); out: - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } #ifdef CONFIG_VNC @@ -427,7 +424,7 @@ void hmp_sendkey(MonitorHMP *hmp, const QDict *qdict) } qmp_send_key(head, has_hold_time, hold_time, &err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); out: qapi_free_KeyValue(v); @@ -465,7 +462,6 @@ void sendkey_completion(ReadLineState *rs, int nb_args, const char *str) void coroutine_fn hmp_screendump(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *filename = qdict_get_str(qdict, "filename"); const char *id = qdict_get_try_str(qdict, "device"); int64_t head = qdict_get_try_int(qdict, "head", 0); @@ -482,13 +478,12 @@ hmp_screendump(MonitorHMP *hmp, const QDict *qdict) qmp_screendump(filename, id, id != NULL, head, input_format != NULL, format, &err); end: - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } #endif void hmp_client_migrate_info(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; const char *protocol = qdict_get_str(qdict, "protocol"); const char *hostname = qdict_get_str(qdict, "hostname"); @@ -501,5 +496,5 @@ void hmp_client_migrate_info(MonitorHMP *hmp, const QDict *qdict) qmp_client_migrate_info(protocol, hostname, has_port, port, has_tls_port, tls_port, cert_subject, &err); - hmp_handle_error(mon, err); + hmp_handle_error(hmp, err); } From patchwork Fri Aug 28 20:42:15 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= X-Patchwork-Id: 2294336 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=JlWzycD4; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists1p.gnu.org; envelope-from=qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=patchwork.ozlabs.org) Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4hWr524Gjzz1xpT for ; Sat, 29 Aug 2026 06:45:58 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x03R3-0003Ym-DW; Fri, 28 Aug 2026 16:44:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x03R2-0003UJ-4b for qemu-ppc@nongnu.org; Fri, 28 Aug 2026 16:44:24 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x03Qy-0000Xt-Jg for qemu-ppc@nongnu.org; Fri, 28 Aug 2026 16:44:23 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1787949860; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gf5JudHu8ARiFpDn+QA5RlWjgIlsNXgRcKR2fS5zbh0=; b=JlWzycD45tmynfTZ9TfFgpjGpQxjwlDYnAFDz7UDKQoC6YxkN8qKaC7ylq1YvdMjsncgZR 4kqND74dzdM4lrsaFEiTaJZWlTEhPhP1G8LsBJYZxu1nvqJeKu1GHPBJX8/FWkiqgeQk/s PrHPCpxuZDMj/seY/+BiyjIjTenjp8U= Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-390-xLwrrcOgP7aK0wccz0T3_A-1; Fri, 28 Aug 2026 16:44:16 -0400 X-MC-Unique: xLwrrcOgP7aK0wccz0T3_A-1 X-Mimecast-MFC-AGG-ID: xLwrrcOgP7aK0wccz0T3_A_1787949853 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 344E118A3C04; Fri, 28 Aug 2026 20:44:13 +0000 (UTC) Received: from localhost (headnet04.pony-001.prod.iad2.dc.redhat.com [10.2.32.116]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 4CBB81803A40; Fri, 28 Aug 2026 20:44:11 +0000 (UTC) From: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Date: Sat, 29 Aug 2026 00:42:15 +0400 Subject: [GIT PULL 36/50] monitor: tighten monitor_set_cpu()/get_cpu() MIME-Version: 1.0 Message-Id: <20260829-nohmp-v1-36-4dcc2b4b0055@redhat.com> References: <20260829-nohmp-v1-0-4dcc2b4b0055@redhat.com> In-Reply-To: <20260829-nohmp-v1-0-4dcc2b4b0055@redhat.com> To: qemu-devel@nongnu.org Cc: richard.henderson@linaro.org, "Dr. David Alan Gilbert" , Markus Armbruster , Paolo Bonzini , Zhao Liu , Laurent Vivier , Nicholas Piggin , Chinmay Rath , Glenn Miles , Harsh Prateek Bora , Palmer Dabbelt , Alistair Francis , Weiwei Li , Daniel Henrique Barboza , Liu Zhiwei , Chao Liu , Yoshinori Sato , Mark Cave-Ayland , Artyom Tarasenko , Max Filippov , qemu-ppc@nongnu.org, qemu-riscv@nongnu.org X-Developer-Signature: v=1; a=openpgp-sha256; l=17750; i=marcandre.lureau@redhat.com; h=from:subject:message-id; bh=c9GOFdDDkyOOn3Rpfbus7/WkcrZ9EbMiyBL0wwGq66o=; b=owEBbQKS/ZANAwAKAdro4Ql1lpzlAcsmYgBqkfKV7Jg20axv5SWTAu4t+JJhTSNi+iiWTLwCP UUsMiQRV2eJAjMEAAEKAB0WIQSHqb2TP4fGBtJ29i3a6OEJdZac5QUCapHylQAKCRDa6OEJdZac 5Qp5D/0ei9sCz7saUgG/G4yUOkJ7hQJKF2MUp8HzKcqV6liqH6oMvTkRBvMHKU/sgij5+sEDYWL c0ZIPbSH6RKvEQCYy2tiAV3qPSUunuTnkNpJnkgb0bFrKHx6xMHJBGU786c8epOsCR2E5XqIypy ibZEkLQtwB95TE3Yswb++U4rx6RABSfE+clSI7mETAJ8kacwPuZXvHry/QgPwtO5EFqOqPLRxyb oFBh0Ec8EdFLRCKozUEXjSeiu+aK7/JS3LDWJoU5NUx4xZ6nyvZthIHPyruPaPzHV1P7oWA10lO 3bnZJ8jNMBCssrEfT1Bi8C3jzBTHaqAGgOy/tvaTGQcFTVVpKBgwD4HPblHc4RGnFRPZwR6SerM c+UNBRKDN5NTbEIqcXJENqP2QzgzqCc4oUpkH8VAqeQdoVOfI96BBQgQihxetW7ygLuwLr/UzF1 sf2+afsAiE0SHZSZWwrLei/OSsZK5Q92QXZBdqrd7UR6JuqYWmdMxtbOBu0tvpdtRW3Kwr/Gxqn 1ORHur+/4vDPnTu0T2Gjklxv46wOPqlrHnNZF7HzcqSIQkkDdx+qOgfJ4FuQIoEPc+v5ZQKH4Lb 0oRctcXAu9llUSgmxkcsyqIK2ltOmAetDk+CiUQnzzL+McINbFA74wzlts2t1/LMlyFov6vHWV3 S/wzSn9tXh4/FPA== X-Developer-Key: i=marcandre.lureau@redhat.com; a=openpgp; fpr=87A9BD933F87C606D276F62DDAE8E10975969CE5 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 X-Mimecast-MFC-PROC-ID: dm-vwJMGiC5FbcLFdszUeGfTyyLxdrQPzg8QFVrgrQw_1787949853 X-Mimecast-Originator: redhat.com Received-SPF: pass client-ip=170.10.133.124; envelope-from=marcandre.lureau@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-ppc@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-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org These functions access mon_cpu_path, which is a MonitorHMP-specific field. Narrowing their signatures from Monitor* to MonitorHMP* makes the type system enforce what was already true at runtime: every caller is in an HMP context. The expression parser's MONITOR_HMP() casts are safe because it is only reachable from handle_hmp_command(), they will be dropped with later patches. Reviewed-by: Dr. David Alan Gilbert Signed-off-by: Marc-André Lureau Message-ID: <20260828-qemu-no-hmp-v5-36-9227de146347@redhat.com> --- hw/core/machine-hmp-cmds.c | 4 ++-- include/monitor/hmp.h | 7 ++++--- include/monitor/monitor.h | 1 - monitor/hmp-cmds.c | 39 ++++++++++++++++++--------------------- monitor/hmp.c | 18 +++++++++--------- monitor/monitor-internal.h | 2 +- monitor/qmp-cmds.c | 2 +- stats/stats-hmp-cmds.c | 2 +- target/i386/cpu-apic.c | 2 +- target/i386/cpu.c | 4 ++-- target/i386/monitor.c | 4 ++-- target/m68k/monitor.c | 2 +- target/ppc/monitor.c | 2 +- target/riscv/monitor.c | 2 +- target/sh4/monitor.c | 2 +- target/sparc/monitor.c | 2 +- target/xtensa/monitor.c | 2 +- 17 files changed, 47 insertions(+), 50 deletions(-) diff --git a/hw/core/machine-hmp-cmds.c b/hw/core/machine-hmp-cmds.c index 4e2f0c212b0d..702c798ccc56 100644 --- a/hw/core/machine-hmp-cmds.c +++ b/hw/core/machine-hmp-cmds.c @@ -36,7 +36,7 @@ void hmp_info_cpus(MonitorHMP *hmp, const QDict *qdict) g_autofree char *cpu_model = cpu_model_from_type(cpu->value->qom_type); int active = ' '; - if (cpu->value->cpu_index == monitor_get_cpu_index(mon)) { + if (cpu->value->cpu_index == monitor_hmp_get_cpu_index(hmp)) { active = '*'; } @@ -228,7 +228,7 @@ void hmp_memsave(MonitorHMP *hmp, const QDict *qdict) const char *filename = qdict_get_str(qdict, "filename"); uint64_t addr = qdict_get_int(qdict, "val"); Error *err = NULL; - int cpu_index = monitor_get_cpu_index(mon); + int cpu_index = monitor_hmp_get_cpu_index(hmp); if (cpu_index < 0) { monitor_printf(mon, "No CPU available\n"); diff --git a/include/monitor/hmp.h b/include/monitor/hmp.h index 6aa562ddbaa2..3fd17048b319 100644 --- a/include/monitor/hmp.h +++ b/include/monitor/hmp.h @@ -30,7 +30,7 @@ OBJECT_DECLARE_TYPE(MonitorHMP, MonitorHMPClass, MONITOR_HMP); struct MonitorDef { const char *name; int offset; - int64_t (*get_value)(Monitor *mon, const MonitorDef *md, int offset); + int64_t (*get_value)(MonitorHMP *hmp, const MonitorDef *md, int offset); }; void monitor_new_hmp(const char *id, const char *chardev_id, @@ -53,8 +53,9 @@ void monitor_register_hmp_info_hrt(const char *name, HumanReadableText *(*handler)(Error **errp)); -CPUArchState *mon_get_cpu_env(Monitor *mon); -CPUState *mon_get_cpu(Monitor *mon); +CPUArchState *monitor_hmp_get_cpu_env(MonitorHMP *hmp); +CPUState *monitor_hmp_get_cpu(MonitorHMP *hmp); +int monitor_hmp_get_cpu_index(MonitorHMP *hmp); bool hmp_handle_error(MonitorHMP *hmp, Error *err); void hmp_help_cmd(Monitor *mon, const char *name); diff --git a/include/monitor/monitor.h b/include/monitor/monitor.h index 72a8f6ea5b4f..2a550aec023f 100644 --- a/include/monitor/monitor.h +++ b/include/monitor/monitor.h @@ -39,7 +39,6 @@ int monitor_fd_param(Monitor *mon, const char *fdname, Error **errp); int monitor_puts(Monitor *mon, const char *str); void monitor_flush(Monitor *mon); -int monitor_get_cpu_index(Monitor *mon); int monitor_puts_locked(Monitor *mon, const char *str); void monitor_flush_locked(Monitor *mon); diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index e2a967516e0a..89cc19c2431d 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -182,10 +182,10 @@ void hmp_cpu(MonitorHMP *hmp, const QDict *qdict) Monitor *mon = MONITOR(hmp); int64_t cpu_index; - /* XXX: drop the monitor_set_cpu() usage when all HMP commands that + /* XXX: drop the monitor_hmp_set_cpu() usage when all HMP commands that use it are converted to the QAPI */ cpu_index = qdict_get_int(qdict, "index"); - if (monitor_set_cpu(mon, cpu_index) < 0) { + if (monitor_hmp_set_cpu(hmp, cpu_index) < 0) { monitor_printf(mon, "invalid CPU index\n"); } } @@ -512,9 +512,8 @@ void hmp_dumpdtb(MonitorHMP *hmp, const QDict *qdict) #endif /* Set the current CPU defined by the user. Callers must hold BQL. */ -int monitor_set_cpu(Monitor *mon, int cpu_index) +int monitor_hmp_set_cpu(MonitorHMP *hmp, int cpu_index) { - MonitorHMP *hmp = MONITOR_HMP(mon); CPUState *cpu; cpu = qemu_get_cpu(cpu_index); @@ -527,9 +526,8 @@ int monitor_set_cpu(Monitor *mon, int cpu_index) } /* Callers must hold BQL. */ -static CPUState *mon_get_cpu_sync(Monitor *mon, bool synchronize) +static CPUState *monitor_hmp_get_cpu_sync(MonitorHMP *hmp, bool synchronize) { - MonitorHMP *hmp = MONITOR_HMP(mon); CPUState *cpu = NULL; if (hmp->mon_cpu_path) { @@ -544,7 +542,7 @@ static CPUState *mon_get_cpu_sync(Monitor *mon, bool synchronize) if (!first_cpu) { return NULL; } - monitor_set_cpu(mon, first_cpu->cpu_index); + monitor_hmp_set_cpu(hmp, first_cpu->cpu_index); cpu = first_cpu; } assert(cpu != NULL); @@ -554,21 +552,21 @@ static CPUState *mon_get_cpu_sync(Monitor *mon, bool synchronize) return cpu; } -CPUState *mon_get_cpu(Monitor *mon) +CPUState *monitor_hmp_get_cpu(MonitorHMP *hmp) { - return mon_get_cpu_sync(mon, true); + return monitor_hmp_get_cpu_sync(hmp, true); } -CPUArchState *mon_get_cpu_env(Monitor *mon) +CPUArchState *monitor_hmp_get_cpu_env(MonitorHMP *hmp) { - CPUState *cs = mon_get_cpu(mon); + CPUState *cs = monitor_hmp_get_cpu(hmp); return cs ? cpu_env(cs) : NULL; } -int monitor_get_cpu_index(Monitor *mon) +int monitor_hmp_get_cpu_index(MonitorHMP *hmp) { - CPUState *cs = mon_get_cpu_sync(mon, false); + CPUState *cs = monitor_hmp_get_cpu_sync(hmp, false); return cs ? cs->cpu_index : UNASSIGNED_CPU_INDEX; } @@ -586,7 +584,7 @@ void hmp_info_registers(MonitorHMP *hmp, const QDict *qdict) cpu_dump_state(cs, NULL, CPU_DUMP_FPU | CPU_DUMP_VPU); } } else { - cs = vcpu >= 0 ? qemu_get_cpu(vcpu) : mon_get_cpu(mon); + cs = vcpu >= 0 ? qemu_get_cpu(vcpu) : monitor_hmp_get_cpu(hmp); if (!cs) { if (vcpu >= 0) { @@ -602,13 +600,14 @@ void hmp_info_registers(MonitorHMP *hmp, const QDict *qdict) } } -static void memory_dump(Monitor *mon, int count, int format, int wsize, +static void memory_dump(MonitorHMP *hmp, int count, int format, int wsize, uint64_t addr, bool is_physical) { + Monitor *mon = MONITOR(hmp); int l, line_size, i, max_digits, len; uint8_t buf[16]; uint64_t v; - CPUState *cs = mon_get_cpu(mon); + CPUState *cs = monitor_hmp_get_cpu(hmp); const unsigned int addr_width = is_physical ? 8 : (target_long_bits() / 4); const bool big_endian = target_big_endian(); @@ -712,24 +711,22 @@ static void memory_dump(Monitor *mon, int count, int format, int wsize, void hmp_memory_dump(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); int count = qdict_get_int(qdict, "count"); int format = qdict_get_int(qdict, "format"); int size = qdict_get_int(qdict, "size"); vaddr addr = qdict_get_int(qdict, "addr"); - memory_dump(mon, count, format, size, addr, false); + memory_dump(hmp, count, format, size, addr, false); } void hmp_physical_memory_dump(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); int count = qdict_get_int(qdict, "count"); int format = qdict_get_int(qdict, "format"); int size = qdict_get_int(qdict, "size"); hwaddr addr = qdict_get_int(qdict, "addr"); - memory_dump(mon, count, format, size, addr, true); + memory_dump(hmp, count, format, size, addr, true); } void hmp_gpa2hva(MonitorHMP *hmp, const QDict *qdict) @@ -757,7 +754,7 @@ void hmp_gva2gpa(MonitorHMP *hmp, const QDict *qdict) { Monitor *mon = MONITOR(hmp); vaddr addr = qdict_get_int(qdict, "addr"); - CPUState *cs = mon_get_cpu(mon); + CPUState *cs = monitor_hmp_get_cpu(hmp); TranslateForDebugResult tres; if (!cs) { diff --git a/monitor/hmp.c b/monitor/hmp.c index 47fb7cef6de2..2484a2310dff 100644 --- a/monitor/hmp.c +++ b/monitor/hmp.c @@ -411,10 +411,10 @@ void hmp_help_cmd(Monitor *mon, const char *name) * Set @pval to the value in the register identified by @name. * return %true if the register is found, %false otherwise. */ -static bool gdb_get_register(Monitor *mon, int64_t *pval, const char *name) +static bool gdb_get_register(MonitorHMP *hmp, int64_t *pval, const char *name) { g_autoptr(GArray) regs = NULL; - CPUState *cs = mon_get_cpu(mon); + CPUState *cs = monitor_hmp_get_cpu(hmp); if (cs == NULL) { return false; @@ -452,7 +452,7 @@ static bool gdb_get_register(Monitor *mon, int64_t *pval, const char *name) static const char *pch; static sigjmp_buf expr_env; -static int get_monitor_def(Monitor *mon, int64_t *pval, const char *name); +static int get_monitor_def(MonitorHMP *mon, int64_t *pval, const char *name); static G_NORETURN G_GNUC_PRINTF(2, 3) void expr_error(Monitor *mon, const char *fmt, ...) @@ -535,8 +535,8 @@ static int64_t expr_unary(Monitor *mon) pch++; } *q = 0; - if (!gdb_get_register(mon, ®, buf) - && get_monitor_def(mon, ®, buf) < 0) { + if (!gdb_get_register(MONITOR_HMP(mon), ®, buf) + && get_monitor_def(MONITOR_HMP(mon), ®, buf) < 0) { expr_error(mon, "unknown register"); } n = reg; @@ -1733,9 +1733,9 @@ void monitor_register_hmp_info_hrt(const char *name, * Set @pval to the value in the register identified by @name. * return 0 if OK, -1 if not found */ -static int get_monitor_def(Monitor *mon, int64_t *pval, const char *name) +static int get_monitor_def(MonitorHMP *hmp, int64_t *pval, const char *name) { - CPUState *cs = mon_get_cpu(mon); + CPUState *cs = monitor_hmp_get_cpu(hmp); const MonitorDef *md; void *ptr; @@ -1750,9 +1750,9 @@ static int get_monitor_def(Monitor *mon, int64_t *pval, const char *name) for (; md->name != NULL; md++) { if (hmp_compare_cmd(name, md->name)) { if (md->get_value) { - *pval = md->get_value(mon, md, md->offset); + *pval = md->get_value(hmp, md, md->offset); } else { - CPUArchState *env = mon_get_cpu_env(mon); + CPUArchState *env = monitor_hmp_get_cpu_env(hmp); ptr = (uint8_t *)env + md->offset; *pval = *(int32_t *)ptr; } diff --git a/monitor/monitor-internal.h b/monitor/monitor-internal.h index a0fa37c887ed..afdda1386080 100644 --- a/monitor/monitor-internal.h +++ b/monitor/monitor-internal.h @@ -215,7 +215,7 @@ int monitor_can_read(void *opaque); void monitor_cancel_out_watch(Monitor *mon); void monitor_list_append(Monitor *mon); void monitor_fdsets_cleanup(void); -int monitor_set_cpu(Monitor *mon, int cpu_index); +int monitor_hmp_set_cpu(MonitorHMP *mon, int cpu_index); void qmp_send_response(MonitorQMP *mon, const QDict *rsp); void monitor_data_destroy_qmp(MonitorQMP *mon); diff --git a/monitor/qmp-cmds.c b/monitor/qmp-cmds.c index 6cb0b587fbd4..b16119f4858c 100644 --- a/monitor/qmp-cmds.c +++ b/monitor/qmp-cmds.c @@ -169,7 +169,7 @@ char *qmp_human_monitor_command(const char *command_line, bool has_cpu_index, MonitorHMP *hmp = MONITOR_HMP(object_new(TYPE_MONITOR_HMP)); if (has_cpu_index) { - int ret = monitor_set_cpu(&hmp->parent_obj, cpu_index); + int ret = monitor_hmp_set_cpu(hmp, cpu_index); if (ret < 0) { error_setg(errp, QERR_INVALID_PARAMETER_VALUE, "cpu-index", "a CPU number"); diff --git a/stats/stats-hmp-cmds.c b/stats/stats-hmp-cmds.c index f280ad8c4314..cd1f1deb58bc 100644 --- a/stats/stats-hmp-cmds.c +++ b/stats/stats-hmp-cmds.c @@ -226,7 +226,7 @@ void hmp_info_stats(MonitorHMP *hmp, const QDict *qdict) filter = stats_filter(target, names, -1, provider); break; case STATS_TARGET_VCPU: {} - int cpu_index = monitor_get_cpu_index(mon); + int cpu_index = monitor_hmp_get_cpu_index(hmp); filter = stats_filter(target, names, cpu_index, provider); break; case STATS_TARGET_CRYPTODEV: diff --git a/target/i386/cpu-apic.c b/target/i386/cpu-apic.c index 3219f78bd12a..af67f00dad32 100644 --- a/target/i386/cpu-apic.c +++ b/target/i386/cpu-apic.c @@ -96,7 +96,7 @@ void hmp_info_local_apic(MonitorHMP *hmp, const QDict *qdict) cpu_synchronize_state(cs); } } else { - cs = mon_get_cpu(mon); + cs = monitor_hmp_get_cpu(hmp); } diff --git a/target/i386/cpu.c b/target/i386/cpu.c index e5ffb10d1565..f0687b5c482d 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -10853,10 +10853,10 @@ static const Property x86_cpu_properties[] = { #ifndef CONFIG_USER_ONLY -static int64_t monitor_get_pc(Monitor *mon, const struct MonitorDef *md, +static int64_t monitor_get_pc(MonitorHMP *hmp, const struct MonitorDef *md, int offset) { - CPUArchState *env = mon_get_cpu_env(mon); + CPUArchState *env = monitor_hmp_get_cpu_env(hmp); int64_t ret = env->eip + env->segs[R_CS].base; if (!(env->hflags & HF_CS64_MASK)) { diff --git a/target/i386/monitor.c b/target/i386/monitor.c index f68dd38ac225..72bcab131f77 100644 --- a/target/i386/monitor.c +++ b/target/i386/monitor.c @@ -215,7 +215,7 @@ void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict) CPUArchState *env; AddressSpace *as; - env = mon_get_cpu_env(mon); + env = monitor_hmp_get_cpu_env(hmp); if (!env) { monitor_printf(mon, "No CPU available\n"); return; @@ -542,7 +542,7 @@ void hmp_info_mem(MonitorHMP *hmp, const QDict *qdict) CPUArchState *env; AddressSpace *as; - env = mon_get_cpu_env(mon); + env = monitor_hmp_get_cpu_env(hmp); if (!env) { monitor_printf(mon, "No CPU available\n"); return; diff --git a/target/m68k/monitor.c b/target/m68k/monitor.c index 0414474f2ffb..5645a5d4d4f5 100644 --- a/target/m68k/monitor.c +++ b/target/m68k/monitor.c @@ -13,7 +13,7 @@ void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict) { Monitor *mon = MONITOR(hmp); - CPUArchState *env1 = mon_get_cpu_env(mon); + CPUArchState *env1 = monitor_hmp_get_cpu_env(hmp); if (!env1) { monitor_printf(mon, "No CPU available\n"); diff --git a/target/ppc/monitor.c b/target/ppc/monitor.c index 99eda7351877..5769829bdd7e 100644 --- a/target/ppc/monitor.c +++ b/target/ppc/monitor.c @@ -14,7 +14,7 @@ void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict) { Monitor *mon = MONITOR(hmp); - CPUArchState *env1 = mon_get_cpu_env(mon); + CPUArchState *env1 = monitor_hmp_get_cpu_env(hmp); if (!env1) { monitor_printf(mon, "No CPU available\n"); diff --git a/target/riscv/monitor.c b/target/riscv/monitor.c index 496d519c978d..4c9c0c793b36 100644 --- a/target/riscv/monitor.c +++ b/target/riscv/monitor.c @@ -220,7 +220,7 @@ void hmp_info_mem(MonitorHMP *hmp, const QDict *qdict) Monitor *mon = MONITOR(hmp); CPUArchState *env; - env = mon_get_cpu_env(mon); + env = monitor_hmp_get_cpu_env(hmp); if (!env) { monitor_printf(mon, "No CPU available\n"); return; diff --git a/target/sh4/monitor.c b/target/sh4/monitor.c index 50da650b2e04..4e443152bf56 100644 --- a/target/sh4/monitor.c +++ b/target/sh4/monitor.c @@ -41,7 +41,7 @@ static void print_tlb(Monitor *mon, int idx, tlb_t *tlb) void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict) { Monitor *mon = MONITOR(hmp); - CPUArchState *env = mon_get_cpu_env(mon); + CPUArchState *env = monitor_hmp_get_cpu_env(hmp); int i; if (!env) { diff --git a/target/sparc/monitor.c b/target/sparc/monitor.c index 09a15b821a1a..e826e584a918 100644 --- a/target/sparc/monitor.c +++ b/target/sparc/monitor.c @@ -30,7 +30,7 @@ void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict) { Monitor *mon = MONITOR(hmp); - CPUArchState *env1 = mon_get_cpu_env(mon); + CPUArchState *env1 = monitor_hmp_get_cpu_env(hmp); if (!env1) { monitor_printf(mon, "No CPU available\n"); diff --git a/target/xtensa/monitor.c b/target/xtensa/monitor.c index a1082c44e11c..b7b7387706f3 100644 --- a/target/xtensa/monitor.c +++ b/target/xtensa/monitor.c @@ -29,7 +29,7 @@ void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict) { Monitor *mon = MONITOR(hmp); - CPUArchState *env1 = mon_get_cpu_env(mon); + CPUArchState *env1 = monitor_hmp_get_cpu_env(hmp); if (!env1) { monitor_printf(mon, "No CPU available\n"); From patchwork Fri Aug 28 20:42:16 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= X-Patchwork-Id: 2294339 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=RsxDCikU; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists1p.gnu.org; envelope-from=qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=patchwork.ozlabs.org) Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4hWr5H65b4z1xpT for ; Sat, 29 Aug 2026 06:46:11 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x03RN-00042D-Qp; Fri, 28 Aug 2026 16:44:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x03RJ-0003ge-NG for qemu-ppc@nongnu.org; Fri, 28 Aug 2026 16:44:41 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x03R8-0000dQ-6p for qemu-ppc@nongnu.org; Fri, 28 Aug 2026 16:44:38 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1787949869; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gJWaIUQ+Rh5ZZTSNCUYk7XQu3SgPv11Eaab7cvEsj6k=; b=RsxDCikU+JITzveDp65SwMQ/xyMQuNFGNUW5ECh5lBqv4RFK+zAH/gXXfZb455SrRKuqRz E9DTdsS62dcdJJYkRqEbMDCc7iVRA0DDxH4KLj4kRMkSXzeHhki2WyUWQ6FF252mzStBfN aSTflP4OYSBH8V0NuvG6gVx3cVEAr4g= Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-278-poRlay46OteKBs3Hmh4_Ew-1; Fri, 28 Aug 2026 16:44:25 -0400 X-MC-Unique: poRlay46OteKBs3Hmh4_Ew-1 X-Mimecast-MFC-AGG-ID: poRlay46OteKBs3Hmh4_Ew_1787949859 Received: from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 9082118A3C12; Fri, 28 Aug 2026 20:44:18 +0000 (UTC) Received: from localhost (headnet04.pony-001.prod.iad2.dc.redhat.com [10.2.32.116]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 252111955F0A; Fri, 28 Aug 2026 20:44:15 +0000 (UTC) From: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Date: Sat, 29 Aug 2026 00:42:16 +0400 Subject: [GIT PULL 37/50] monitor: tighten monitor_printf*() MIME-Version: 1.0 Message-Id: <20260829-nohmp-v1-37-4dcc2b4b0055@redhat.com> References: <20260829-nohmp-v1-0-4dcc2b4b0055@redhat.com> In-Reply-To: <20260829-nohmp-v1-0-4dcc2b4b0055@redhat.com> To: qemu-devel@nongnu.org Cc: richard.henderson@linaro.org, Gerd Hoffmann , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , "Gonglei (Arei)" , zhenwei pi , Kevin Wolf , Hanna Reitz , Paolo Bonzini , =?utf-8?q?Alex_Benn=C3=A9e?= , =?utf-8?q?Daniel_P?= =?utf-8?q?=2E_Berrang=C3=A9?= , Markus Armbruster , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= , Pierrick Bouvier , Ani Sinha , "Michael S. Tsirkin" , Laurent Vivier , Amit Shah , Brian Cain , David Woodhouse , Paul Durrant , Marcelo Tosatti , Mark Cave-Ayland , Jiri Pirko , Jason Wang , Halil Pasic , Christian Borntraeger , Jason Herne , Ilya Leoshkevich , David Hildenbrand , Cornelia Huck , Eric Farman , Matthew Rosato , Stefano Stabellini , Anthony PERARD , "Edgar E. Iglesias" , "Dr. David Alan Gilbert" , Hyman Huang , Peter Xu , Fabiano Rosas , Samuel Thibault , Stefan Berger , Zhao Liu , Nicholas Piggin , Chinmay Rath , Glenn Miles , Harsh Prateek Bora , Palmer Dabbelt , Alistair Francis , Weiwei Li , Daniel Henrique Barboza , Liu Zhiwei , Chao Liu , Yoshinori Sato , Artyom Tarasenko , Max Filippov , Stefan Hajnoczi , qemu-block@nongnu.org, kvm@vger.kernel.org, qemu-ppc@nongnu.org, qemu-s390x@nongnu.org, xen-devel@lists.xenproject.org, qemu-riscv@nongnu.org X-Developer-Signature: v=1; a=openpgp-sha256; l=268631; i=marcandre.lureau@redhat.com; h=from:subject:message-id; bh=eStCm3fDwloFYBzXb7O0tH4I8RXs2cYA6hH2qNxTmDU=; b=owEBbQKS/ZANAwAKAdro4Ql1lpzlAcsmYgBqkfKVg+H990hVGQYLaJ4pfqR9chrH4/IREn7DW AZZDNmE5B6JAjMEAAEKAB0WIQSHqb2TP4fGBtJ29i3a6OEJdZac5QUCapHylQAKCRDa6OEJdZac 5TzdD/9gZsNG65LADBCmCuI+ESb5rnO6R6WBBueixdHT5DQRCZFDKvWjfSc8sLBejdfUcLE07BD D2wQGAbp9wUVhG/nq7gTCzk8SkphbMNh/4FR0UstydeIN8WQPVi0dM7iicxPsYiWnEqjhGvUulU 3g3FtozKEf8uTZIEmQQoJjVo9L/oDZP2bYJGRw4hvkkcpdxWakmZ04mOsKvp/2YZBJdR7sEEDM7 IeOms1k82vKisEhbvw1WPRnwArsQUYT6tStEGrWIV34vqe7/Gn56P8cuKIcSRwidIj/ZQQdrPS4 x4hhCEjlMS69vCU7zeIkZackcHSuIO0+9hgOksGHUvdhd6asEe37IW8bd0UxLM2LeX53Ev10o3o TxdDk6NQ48zZZypegCUaxpSe6Jba9Ox7VRCSJSOpI/hwO5/z7CJB/uDbONU4IIHeou03ykRc4TH 7HvPi7vbLALGtbsg+uRWvQGliEi3gsJ/UH61sJqxz0CD7j3mnLmIwyKGrZzqbE3vChC9AG/hR0q KD1GGmyCdjsv6xWIgA81X7TpmgLR1Du+5dSF8LoT+xZJequv81aWOpXOODWsonU7tjBrPeplVS6 uVjIwbJACsVQ3qoESmsFplNlEafuWbv39kESRH+S4bVKnO6ebfxmEvCXL97ygU5YJQEeRO8RToN MkKypNcwv/5/wwA== X-Developer-Key: i=marcandre.lureau@redhat.com; a=openpgp; fpr=87A9BD933F87C606D276F62DDAE8E10975969CE5 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 X-Mimecast-MFC-PROC-ID: E-gp_AeoBQdVtARxI8OPtqGwkR0ARompP6Y1LB7dT-I_1787949859 X-Mimecast-Originator: redhat.com Received-SPF: pass client-ip=170.10.133.124; envelope-from=marcandre.lureau@redhat.com; helo=us-smtp-delivery-124.mimecast.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, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-ppc@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-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org Rename monitor_printf->monitor_hmp_printf, monitor_vprintf-> monitor_hmp_vprintf, and monitor_printc->monitor_hmp_printc, changing the first parameter from Monitor * to MonitorHMP * to enforce type safety. The implementation is also simplified: monitor_hmp_vprintf now directly calls g_strdup_vprintf + monitor_puts, removing the virtual dispatch via moncls->vprintf. The dev_print() callbacks are temporarily using the MONITOR_HMP(mon) cast, they are fixed in the following commits. Early return in qemu_vprintf() if "hmp" is NULL, relying on monitor_hmp_vprintf() handling NULL case is a bit uncommon. Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Marc-André Lureau Message-ID: <20260828-qemu-no-hmp-v5-37-9227de146347@redhat.com> --- audio/audio-hmp-cmds.c | 6 +- backends/cryptodev-hmp-cmds.c | 9 +- block/monitor/block-hmp-cmds.c | 170 +++++++++--------- chardev/char-hmp-cmds.c | 12 +- disas/disas-mon.c | 10 +- docs/devel/style.rst | 2 +- docs/devel/writing-monitor-commands.rst | 8 +- dump/dump-hmp-cmds.c | 5 +- hw/char/virtio-serial-bus.c | 10 +- hw/core/machine-hmp-cmds.c | 213 +++++++++++----------- hw/core/sysbus.c | 5 +- hw/hexagon/hexagon_tlb.c | 44 ++--- hw/i386/kvm/xen-stubs.c | 6 +- hw/i386/kvm/xen_evtchn.c | 21 +-- hw/i386/sgx-hmp-stub.c | 3 +- hw/i386/sgx.c | 29 ++- hw/misc/auxbus.c | 9 +- hw/misc/mos6522-stub.c | 3 +- hw/net/rocker/rocker-hmp-cmds.c | 146 ++++++++-------- hw/pci/pci-hmp-cmds.c | 114 ++++++------ hw/pci/pci-stub.c | 3 +- hw/s390x/s390-skeys.c | 9 +- hw/s390x/s390-stattrib.c | 20 +-- hw/uefi/ovmf-log.c | 5 +- hw/usb/bus.c | 11 +- hw/usb/host-libusb.c | 21 ++- hw/virtio/virtio-hmp-cmds.c | 297 ++++++++++++++++--------------- hw/xen/xen-bus.c | 5 +- include/disas/disas.h | 4 +- include/monitor/hmp.h | 12 +- migration/dirtyrate.c | 46 +++-- migration/migration-hmp-cmds.c | 301 ++++++++++++++++---------------- monitor/hmp-cmds.c | 141 +++++++-------- monitor/hmp.c | 143 +++++++-------- monitor/monitor-internal.h | 6 - monitor/monitor.c | 33 ++-- net/net-hmp-cmds.c | 31 ++-- net/slirp.c | 31 ++-- qom/qom-hmp-cmds.c | 27 ++- replay/replay-debugging.c | 5 +- stats/stats-hmp-cmds.c | 57 +++--- stubs/hmp-cmd-info_sev.c | 3 +- stubs/monitor-core.c | 2 +- system/dirtylimit-hmp-cmds.c | 10 +- system/qdev-monitor.c | 19 +- system/runstate-hmp-cmds.c | 16 +- system/tpm-hmp-cmds.c | 29 ++- target/i386/cpu-apic.c | 3 +- target/i386/monitor.c | 152 ++++++++-------- target/i386/sev.c | 35 ++-- target/m68k/monitor.c | 3 +- target/ppc/monitor.c | 3 +- target/riscv/monitor.c | 55 +++--- target/sh4/monitor.c | 29 ++- target/sparc/monitor.c | 3 +- target/xtensa/monitor.c | 3 +- tests/unit/test-util-sockets.c | 2 +- tools/qemu-vnc/clipboard.c | 4 +- tools/qemu-vnc/stubs.c | 2 +- trace/trace-hmp-cmds.c | 12 +- ui/ui-hmp-cmds.c | 115 ++++++------ util/error-report.c | 2 +- util/qemu-print.c | 17 +- 63 files changed, 1225 insertions(+), 1327 deletions(-) diff --git a/audio/audio-hmp-cmds.c b/audio/audio-hmp-cmds.c index 4d326ec99fdf..94182fe1d71f 100644 --- a/audio/audio-hmp-cmds.c +++ b/audio/audio-hmp-cmds.c @@ -34,14 +34,13 @@ static QLIST_HEAD (capture_list_head, CaptureState) capture_head; void hmp_info_capture(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); int i; CaptureState *s; warn_report_once("'info capture' is deprecated since v10.2, to be removed"); for (s = capture_head.lh_first, i = 0; s; s = s->entries.le_next, ++i) { - monitor_printf(mon, "[%d]: ", i); + monitor_hmp_printf(hmp, "[%d]: ", i); s->ops.info (s->opaque); } } @@ -66,7 +65,6 @@ void hmp_stopcapture(MonitorHMP *hmp, const QDict *qdict) void hmp_wavcapture(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *path = qdict_get_str(qdict, "path"); int freq = qdict_get_try_int(qdict, "freq", 44100); int bits = qdict_get_try_int(qdict, "bits", 16); @@ -86,7 +84,7 @@ void hmp_wavcapture(MonitorHMP *hmp, const QDict *qdict) s = g_malloc0 (sizeof (*s)); if (wav_start_capture(as, s, path, freq, bits, nchannels)) { - monitor_printf(mon, "Failed to add wave capture\n"); + monitor_hmp_printf(hmp, "Failed to add wave capture\n"); g_free (s); return; } diff --git a/backends/cryptodev-hmp-cmds.c b/backends/cryptodev-hmp-cmds.c index fb62428d795a..aafa4b970d24 100644 --- a/backends/cryptodev-hmp-cmds.c +++ b/backends/cryptodev-hmp-cmds.c @@ -19,7 +19,6 @@ void hmp_info_cryptodev(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); QCryptodevInfoList *il; QCryptodevBackendServiceTypeList *sl; QCryptodevBackendClientList *cl; @@ -41,13 +40,13 @@ void hmp_info_cryptodev(MonitorHMP *hmp, const QDict *qdict) services = tmp_services; } } - monitor_printf(mon, "%s: service=[%s]\n", info->id, services); + monitor_hmp_printf(hmp, "%s: service=[%s]\n", info->id, services); for (cl = info->client; cl; cl = cl->next) { QCryptodevBackendClient *client = cl->value; - monitor_printf(mon, " queue %" PRIu32 ": type=%s\n", - client->queue, - QCryptodevBackendType_str(client->type)); + monitor_hmp_printf(hmp, " queue %" PRIu32 ": type=%s\n", + client->queue, + QCryptodevBackendType_str(client->type)); } } diff --git a/block/monitor/block-hmp-cmds.c b/block/monitor/block-hmp-cmds.c index a2666e2f1b9b..7bae4d425c6d 100644 --- a/block/monitor/block-hmp-cmds.c +++ b/block/monitor/block-hmp-cmds.c @@ -89,7 +89,6 @@ out: void hmp_drive_add(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; DriveInfo *dinfo; QemuOpts *opts; @@ -119,7 +118,7 @@ void hmp_drive_add(MonitorHMP *hmp, const QDict *qdict) switch (dinfo->type) { case IF_NONE: - monitor_printf(mon, "OK\n"); + monitor_hmp_printf(hmp, "OK\n"); break; default: error_setg(&err, "Can't hot-add drive to type %d", dinfo->type); @@ -552,9 +551,10 @@ void hmp_qemu_io(MonitorHMP *hmp, const QDict *qdict) hmp_handle_error(hmp, err); } -static void print_block_info(Monitor *mon, BlockInfo *info, +static void print_block_info(MonitorHMP *hmp, BlockInfo *info, BlockDeviceInfo *inserted, bool verbose) { + Monitor *mon = MONITOR(hmp); ImageInfo *image_info; assert(!info || !info->inserted || info->inserted == inserted); @@ -562,7 +562,7 @@ static void print_block_info(Monitor *mon, BlockInfo *info, if (info && *info->device) { monitor_puts(mon, info->device); if (inserted && inserted->node_name) { - monitor_printf(mon, " (%s)", inserted->node_name); + monitor_hmp_printf(hmp, " (%s)", inserted->node_name); } } else { assert(info || inserted); @@ -573,29 +573,29 @@ static void print_block_info(Monitor *mon, BlockInfo *info, } if (inserted) { - monitor_printf(mon, ": %s (%s%s%s%s)\n", - inserted->file, - inserted->drv, - inserted->ro ? ", read-only" : "", - inserted->encrypted ? ", encrypted" : "", - inserted->active ? "" : ", inactive"); + monitor_hmp_printf(hmp, ": %s (%s%s%s%s)\n", + inserted->file, + inserted->drv, + inserted->ro ? ", read-only" : "", + inserted->encrypted ? ", encrypted" : "", + inserted->active ? "" : ", inactive"); } else { - monitor_printf(mon, ": [not inserted]\n"); + monitor_hmp_printf(hmp, ": [not inserted]\n"); } if (info) { if (info->qdev) { - monitor_printf(mon, " Attached to: %s\n", info->qdev); + monitor_hmp_printf(hmp, " Attached to: %s\n", info->qdev); } if (info->has_io_status && info->io_status != BLOCK_DEVICE_IO_STATUS_OK) { - monitor_printf(mon, " I/O status: %s\n", - BlockDeviceIoStatus_str(info->io_status)); + monitor_hmp_printf(hmp, " I/O status: %s\n", + BlockDeviceIoStatus_str(info->io_status)); } if (info->removable) { - monitor_printf(mon, " Removable device: %slocked, tray %s\n", - info->locked ? "" : "not ", - info->tray_open ? "open" : "closed"); + monitor_hmp_printf(hmp, " Removable device: %slocked, tray %s\n", + info->locked ? "" : "not ", + info->tray_open ? "open" : "closed"); } } @@ -604,28 +604,28 @@ static void print_block_info(Monitor *mon, BlockInfo *info, return; } - monitor_printf(mon, " Cache mode: %s%s%s\n", - inserted->cache->writeback ? "writeback" : "writethrough", - inserted->cache->direct ? ", direct" : "", - inserted->cache->no_flush ? ", ignore flushes" : ""); + monitor_hmp_printf(hmp, " Cache mode: %s%s%s\n", + inserted->cache->writeback ? "writeback" : "writethrough", + inserted->cache->direct ? ", direct" : "", + inserted->cache->no_flush ? ", ignore flushes" : ""); if (inserted->backing_file) { - monitor_printf(mon, - " Backing file: %s " - "(chain depth: %" PRId64 ")\n", - inserted->backing_file, - inserted->backing_file_depth); + monitor_hmp_printf(hmp, + " Backing file: %s " + "(chain depth: %" PRId64 ")\n", + inserted->backing_file, + inserted->backing_file_depth); } if (inserted->detect_zeroes != BLOCKDEV_DETECT_ZEROES_OPTIONS_OFF) { - monitor_printf(mon, " Detect zeroes: %s\n", + monitor_hmp_printf(hmp, " Detect zeroes: %s\n", BlockdevDetectZeroesOptions_str(inserted->detect_zeroes)); } if (inserted->bps || inserted->bps_rd || inserted->bps_wr || inserted->iops || inserted->iops_rd || inserted->iops_wr) { - monitor_printf(mon, " I/O throttling: bps=%" PRId64 + monitor_hmp_printf(hmp, " I/O throttling: bps=%" PRId64 " bps_rd=%" PRId64 " bps_wr=%" PRId64 " bps_max=%" PRId64 " bps_rd_max=%" PRId64 @@ -654,7 +654,7 @@ static void print_block_info(Monitor *mon, BlockInfo *info, } if (verbose) { - monitor_printf(mon, "\nImages:\n"); + monitor_hmp_printf(hmp, "\nImages:\n"); image_info = inserted->image; while (1) { bdrv_node_info_dump(qapi_ImageInfo_base(image_info), 0, false); @@ -669,7 +669,6 @@ static void print_block_info(Monitor *mon, BlockInfo *info, void hmp_info_block(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); BlockInfoList *block_list, *info; BlockDeviceInfoList *blockdev_list, *blockdev; const char *device = qdict_get_try_str(qdict, "device"); @@ -690,10 +689,10 @@ void hmp_info_block(MonitorHMP *hmp, const QDict *qdict) } if (info != block_list) { - monitor_printf(mon, "\n"); + monitor_hmp_printf(hmp, "\n"); } - print_block_info(mon, info->value, info->value->inserted, + print_block_info(hmp, info->value, info->value->inserted, verbose); printed = true; } @@ -713,17 +712,16 @@ void hmp_info_block(MonitorHMP *hmp, const QDict *qdict) } if (blockdev != blockdev_list) { - monitor_printf(mon, "\n"); + monitor_hmp_printf(hmp, "\n"); } - print_block_info(mon, NULL, blockdev->value, verbose); + print_block_info(hmp, NULL, blockdev->value, verbose); } qapi_free_BlockDeviceInfoList(blockdev_list); } void hmp_info_blockstats(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); BlockStatsList *stats_list, *stats; stats_list = qmp_query_blockstats(false, false, NULL); @@ -733,28 +731,28 @@ void hmp_info_blockstats(MonitorHMP *hmp, const QDict *qdict) continue; } - monitor_printf(mon, "%s%s: idle_time_ns=%" PRId64 "\n", - stats != stats_list ? "\n" : "", - stats->value->device, - stats->value->stats->idle_time_ns); - monitor_printf(mon, " %24s %16s %24s %10s\n", "bytes", - "operations", "total_time_ns", "merged"); - monitor_printf(mon, "Read: %24" PRId64 " %16" PRId64 " %24" PRId64 - " %10" PRId64 "\n", - stats->value->stats->rd_bytes, - stats->value->stats->rd_operations, - stats->value->stats->rd_total_time_ns, - stats->value->stats->rd_merged); - monitor_printf(mon, "Write: %24" PRId64 " %16" PRId64 " %24" PRId64 - " %10" PRId64 "\n", - stats->value->stats->wr_bytes, - stats->value->stats->wr_operations, - stats->value->stats->wr_total_time_ns, - stats->value->stats->wr_merged); - monitor_printf(mon, "Flush: %24s %16" PRId64 " %24" PRId64 "\n", - "", - stats->value->stats->flush_operations, - stats->value->stats->flush_total_time_ns); + monitor_hmp_printf(hmp, "%s%s: idle_time_ns=%" PRId64 "\n", + stats != stats_list ? "\n" : "", + stats->value->device, + stats->value->stats->idle_time_ns); + monitor_hmp_printf(hmp, " %24s %16s %24s %10s\n", "bytes", + "operations", "total_time_ns", "merged"); + monitor_hmp_printf(hmp, "Read: %24" PRId64 " %16" PRId64 " %24" PRId64 + " %10" PRId64 "\n", + stats->value->stats->rd_bytes, + stats->value->stats->rd_operations, + stats->value->stats->rd_total_time_ns, + stats->value->stats->rd_merged); + monitor_hmp_printf(hmp, "Write: %24" PRId64 " %16" PRId64 " %24" PRId64 + " %10" PRId64 "\n", + stats->value->stats->wr_bytes, + stats->value->stats->wr_operations, + stats->value->stats->wr_total_time_ns, + stats->value->stats->wr_merged); + monitor_hmp_printf(hmp, "Flush: %24s %16" PRId64 " %24" PRId64 "\n", + "", + stats->value->stats->flush_operations, + stats->value->stats->flush_total_time_ns); } qapi_free_BlockStatsList(stats_list); @@ -762,34 +760,33 @@ void hmp_info_blockstats(MonitorHMP *hmp, const QDict *qdict) void hmp_info_block_jobs(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); BlockJobInfoList *list; list = qmp_query_block_jobs(&error_abort); if (!list) { - monitor_printf(mon, "No active jobs\n"); + monitor_hmp_printf(hmp, "No active jobs\n"); return; } while (list) { if (list->value->type == JOB_TYPE_STREAM) { - monitor_printf(mon, "Streaming device %s: Completed %" PRId64 - " of %" PRId64 " bytes, speed limit %" PRId64 - " bytes/s\n", - list->value->device, - list->value->offset, - list->value->len, - list->value->speed); + monitor_hmp_printf(hmp, "Streaming device %s: Completed %" PRId64 + " of %" PRId64 " bytes, speed limit %" PRId64 + " bytes/s\n", + list->value->device, + list->value->offset, + list->value->len, + list->value->speed); } else { - monitor_printf(mon, "Type %s, device %s: Completed %" PRId64 - " of %" PRId64 " bytes, speed limit %" PRId64 - " bytes/s\n", - JobType_str(list->value->type), - list->value->device, - list->value->offset, - list->value->len, - list->value->speed); + monitor_hmp_printf(hmp, "Type %s, device %s: Completed %" PRId64 + " of %" PRId64 " bytes, speed limit %" PRId64 + " bytes/s\n", + JobType_str(list->value->type), + list->value->device, + list->value->offset, + list->value->len, + list->value->speed); } list = list->next; } @@ -799,7 +796,6 @@ void hmp_info_block_jobs(MonitorHMP *hmp, const QDict *qdict) void hmp_info_snapshots(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); BlockDriverState *bs, *bs1; BdrvNextIterator it1; QEMUSnapshotInfo *sn_tab, *sn; @@ -837,7 +833,7 @@ void hmp_info_snapshots(MonitorHMP *hmp, const QDict *qdict) nb_sns = bdrv_snapshot_list(bs, &sn_tab); if (nb_sns < 0) { - monitor_printf(mon, "bdrv_snapshot_list: error %d\n", nb_sns); + monitor_hmp_printf(hmp, "bdrv_snapshot_list: error %d\n", nb_sns); return; } @@ -866,7 +862,7 @@ void hmp_info_snapshots(MonitorHMP *hmp, const QDict *qdict) } if (no_snapshot) { - monitor_printf(mon, "There is no snapshot available.\n"); + monitor_hmp_printf(hmp, "There is no snapshot available.\n"); return; } @@ -889,11 +885,11 @@ void hmp_info_snapshots(MonitorHMP *hmp, const QDict *qdict) } } } - monitor_printf(mon, "List of snapshots present on all disks:\n"); + monitor_hmp_printf(hmp, "List of snapshots present on all disks:\n"); if (total > 0) { bdrv_snapshot_dump(NULL); - monitor_printf(mon, "\n"); + monitor_hmp_printf(hmp, "\n"); for (i = 0; i < total; i++) { sn = &sn_tab[global_snapshots[i]]; /* @@ -902,24 +898,24 @@ void hmp_info_snapshots(MonitorHMP *hmp, const QDict *qdict) */ pstrcpy(sn->id_str, sizeof(sn->id_str), "--"); bdrv_snapshot_dump(sn); - monitor_printf(mon, "\n"); + monitor_hmp_printf(hmp, "\n"); } } else { - monitor_printf(mon, "None\n"); + monitor_hmp_printf(hmp, "None\n"); } QTAILQ_FOREACH(image_entry, &image_list, next) { if (QTAILQ_EMPTY(&image_entry->snapshots)) { continue; } - monitor_printf(mon, - "\nList of partial (non-loadable) snapshots on '%s':\n", - image_entry->imagename); + monitor_hmp_printf(hmp, + "\nList of partial (non-loadable) snapshots on '%s':\n", + image_entry->imagename); bdrv_snapshot_dump(NULL); - monitor_printf(mon, "\n"); + monitor_hmp_printf(hmp, "\n"); QTAILQ_FOREACH(snapshot_entry, &image_entry->snapshots, next) { bdrv_snapshot_dump(&snapshot_entry->sn); - monitor_printf(mon, "\n"); + monitor_hmp_printf(hmp, "\n"); } } @@ -935,7 +931,7 @@ void hmp_info_snapshots(MonitorHMP *hmp, const QDict *qdict) g_free(global_snapshots); } -void hmp_change_medium(Monitor *mon, const char *device, const char *target, +void hmp_change_medium(MonitorHMP *hmp, const char *device, const char *target, const char *arg, const char *read_only, bool force, Error **errp) { diff --git a/chardev/char-hmp-cmds.c b/chardev/char-hmp-cmds.c index 71017fd2d19e..fb0560054b7b 100644 --- a/chardev/char-hmp-cmds.c +++ b/chardev/char-hmp-cmds.c @@ -26,12 +26,11 @@ void hmp_info_chardev(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); ChardevInfoList *char_info, *info; char_info = qmp_query_chardev(NULL); for (info = char_info; info; info = info->next) { - monitor_printf(mon, "%s: filename=%s\n", info->value->label, + monitor_hmp_printf(hmp, "%s: filename=%s\n", info->value->label, info->value->filename); } @@ -51,7 +50,6 @@ void hmp_ringbuf_write(MonitorHMP *hmp, const QDict *qdict) void hmp_ringbuf_read(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); uint32_t size = qdict_get_int(qdict, "size"); const char *chardev = qdict_get_str(qdict, "device"); char *data; @@ -67,15 +65,15 @@ void hmp_ringbuf_read(MonitorHMP *hmp, const QDict *qdict) unsigned char ch = data[i]; if (ch == '\\') { - monitor_printf(mon, "\\\\"); + monitor_hmp_printf(hmp, "\\\\"); } else if ((ch < 0x20 && ch != '\n' && ch != '\t') || ch == 0x7F) { - monitor_printf(mon, "\\u%04X", ch); + monitor_hmp_printf(hmp, "\\u%04X", ch); } else { - monitor_printf(mon, "%c", ch); + monitor_hmp_printf(hmp, "%c", ch); } } - monitor_printf(mon, "\n"); + monitor_hmp_printf(hmp, "\n"); g_free(data); } diff --git a/disas/disas-mon.c b/disas/disas-mon.c index bc9dec3a7761..32e4220181a8 100644 --- a/disas/disas-mon.c +++ b/disas/disas-mon.c @@ -38,7 +38,7 @@ physical_read_memory(bfd_vma memaddr, bfd_byte *myaddr, int length, } /* Disassembler for the monitor. */ -void monitor_disas(Monitor *mon, CPUState *cpu, uint64_t pc, +void monitor_disas(MonitorHMP *hmp, CPUState *cpu, uint64_t pc, int nb_insn, bool is_physical) { int count, i; @@ -58,13 +58,13 @@ void monitor_disas(Monitor *mon, CPUState *cpu, uint64_t pc, s.info.buffer_vma = pc; if (s.info.cap_arch >= 0 && cap_disas_monitor(&s.info, pc, nb_insn)) { - monitor_puts(mon, ds->str); + monitor_puts(MONITOR(hmp), ds->str); return; } if (!s.info.print_insn) { - monitor_printf(mon, "0x%08" PRIx64 - ": Asm output not supported on this arch\n", pc); + monitor_hmp_printf(hmp, "0x%08" PRIx64 + ": Asm output not supported on this arch\n", pc); return; } @@ -78,5 +78,5 @@ void monitor_disas(Monitor *mon, CPUState *cpu, uint64_t pc, pc += count; } - monitor_puts(mon, ds->str); + monitor_puts(MONITOR(hmp), ds->str); } diff --git a/docs/devel/style.rst b/docs/devel/style.rst index 6c5f94cc5098..6876d3a59ec7 100644 --- a/docs/devel/style.rst +++ b/docs/devel/style.rst @@ -754,7 +754,7 @@ Error handling and reporting Reporting errors to the human user ---------------------------------- -Do not use printf(), fprintf() or monitor_printf(). Instead, use +Do not use printf(), fprintf() or monitor_hmp_printf(). Instead, use error_report() or error_vreport() from error-report.h. This ensures the error is reported in the right place (current monitor or stderr), and in a uniform format. diff --git a/docs/devel/writing-monitor-commands.rst b/docs/devel/writing-monitor-commands.rst index 7ae7efe32759..baf94cbdefab 100644 --- a/docs/devel/writing-monitor-commands.rst +++ b/docs/devel/writing-monitor-commands.rst @@ -479,7 +479,7 @@ The HMP command Here's the HMP counterpart of the query-option-roms command:: - void hmp_info_option_roms(Monitor *mon, const QDict *qdict) + void hmp_info_option_roms(MonitorHMP *mon, const QDict *qdict) { Error *err = NULL; OptionRomInfoList *info_list, *tail; @@ -492,11 +492,11 @@ Here's the HMP counterpart of the query-option-roms command:: for (tail = info_list; tail; tail = tail->next) { info = tail->value; - monitor_printf(mon, "%s", info->filename); + monitor_hmp_printf(mon, "%s", info->filename); if (info->has_bootindex) { - monitor_printf(mon, " %" PRId64, info->bootindex); + monitor_hmp_printf(mon, " %" PRId64, info->bootindex); } - monitor_printf(mon, "\n"); + monitor_hmp_printf(mon, "\n"); } qapi_free_OptionRomInfoList(info_list); diff --git a/dump/dump-hmp-cmds.c b/dump/dump-hmp-cmds.c index 104ab5d2a53a..c7045c2d7314 100644 --- a/dump/dump-hmp-cmds.c +++ b/dump/dump-hmp-cmds.c @@ -85,17 +85,16 @@ void hmp_dump_guest_memory(MonitorHMP *hmp, const QDict *qdict) void hmp_info_dump(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); DumpQueryResult *result = qmp_query_dump(NULL); assert(result && result->status < DUMP_STATUS__MAX); - monitor_printf(mon, "Status: %s\n", DumpStatus_str(result->status)); + monitor_hmp_printf(hmp, "Status: %s\n", DumpStatus_str(result->status)); if (result->status == DUMP_STATUS_ACTIVE) { float percent = 0; assert(result->total != 0); percent = 100.0 * result->completed / result->total; - monitor_printf(mon, "Finished: %.2f %%\n", percent); + monitor_hmp_printf(hmp, "Finished: %.2f %%\n", percent); } qapi_free_DumpQueryResult(result); diff --git a/hw/char/virtio-serial-bus.c b/hw/char/virtio-serial-bus.c index 02604740f86a..33fdc0846ac3 100644 --- a/hw/char/virtio-serial-bus.c +++ b/hw/char/virtio-serial-bus.c @@ -838,11 +838,11 @@ static void virtser_bus_dev_print(Monitor *mon, DeviceState *qdev, int indent) { VirtIOSerialPort *port = VIRTIO_SERIAL_PORT(qdev); - monitor_printf(mon, "%*sport %d, guest %s, host %s, throttle %s\n", - indent, "", port->id, - port->guest_connected ? "on" : "off", - port->host_connected ? "on" : "off", - port->throttled ? "on" : "off"); + monitor_hmp_printf(MONITOR_HMP(mon), "%*sport %d, guest %s, host %s, throttle %s\n", + indent, "", port->id, + port->guest_connected ? "on" : "off", + port->host_connected ? "on" : "off", + port->throttled ? "on" : "off"); } /* This function is only used if a port id is not provided by the user */ diff --git a/hw/core/machine-hmp-cmds.c b/hw/core/machine-hmp-cmds.c index 702c798ccc56..10a633af0780 100644 --- a/hw/core/machine-hmp-cmds.c +++ b/hw/core/machine-hmp-cmds.c @@ -27,7 +27,6 @@ void hmp_info_cpus(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); CpuInfoFastList *cpu_list, *cpu; cpu_list = qmp_query_cpus_fast(NULL); @@ -40,10 +39,10 @@ void hmp_info_cpus(MonitorHMP *hmp, const QDict *qdict) active = '*'; } - monitor_printf(mon, "%c CPU #%" PRId64 ":", active, - cpu->value->cpu_index); - monitor_printf(mon, " thread_id=%" PRId64 " model=%s\n", - cpu->value->thread_id, cpu_model); + monitor_hmp_printf(hmp, "%c CPU #%" PRId64 ":", active, + cpu->value->cpu_index); + monitor_hmp_printf(hmp, " thread_id=%" PRId64 " model=%s\n", + cpu->value->thread_id, cpu_model); } qapi_free_CpuInfoFastList(cpu_list); @@ -51,7 +50,6 @@ void hmp_info_cpus(MonitorHMP *hmp, const QDict *qdict) void hmp_hotpluggable_cpus(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; HotpluggableCPUList *l = qmp_query_hotpluggable_cpus(&err); HotpluggableCPUList *saved = l; @@ -61,45 +59,45 @@ void hmp_hotpluggable_cpus(MonitorHMP *hmp, const QDict *qdict) return; } - monitor_printf(mon, "Hotpluggable CPUs:\n"); + monitor_hmp_printf(hmp, "Hotpluggable CPUs:\n"); while (l) { - monitor_printf(mon, " type: \"%s\"\n", l->value->type); - monitor_printf(mon, " vcpus_count: \"%" PRIu64 "\"\n", - l->value->vcpus_count); + monitor_hmp_printf(hmp, " type: \"%s\"\n", l->value->type); + monitor_hmp_printf(hmp, " vcpus_count: \"%" PRIu64 "\"\n", + l->value->vcpus_count); if (l->value->qom_path) { - monitor_printf(mon, " qom_path: \"%s\"\n", l->value->qom_path); + monitor_hmp_printf(hmp, " qom_path: \"%s\"\n", l->value->qom_path); } c = l->value->props; - monitor_printf(mon, " CPUInstance Properties:\n"); + monitor_hmp_printf(hmp, " CPUInstance Properties:\n"); if (c->has_node_id) { - monitor_printf(mon, " node-id: \"%" PRIu64 "\"\n", c->node_id); + monitor_hmp_printf(hmp, " node-id: \"%" PRIu64 "\"\n", c->node_id); } if (c->has_drawer_id) { - monitor_printf(mon, " drawer-id: \"%" PRIu64 "\"\n", c->drawer_id); + monitor_hmp_printf(hmp, " drawer-id: \"%" PRIu64 "\"\n", c->drawer_id); } if (c->has_book_id) { - monitor_printf(mon, " book-id: \"%" PRIu64 "\"\n", c->book_id); + monitor_hmp_printf(hmp, " book-id: \"%" PRIu64 "\"\n", c->book_id); } if (c->has_socket_id) { - monitor_printf(mon, " socket-id: \"%" PRIu64 "\"\n", c->socket_id); + monitor_hmp_printf(hmp, " socket-id: \"%" PRIu64 "\"\n", c->socket_id); } if (c->has_die_id) { - monitor_printf(mon, " die-id: \"%" PRIu64 "\"\n", c->die_id); + monitor_hmp_printf(hmp, " die-id: \"%" PRIu64 "\"\n", c->die_id); } if (c->has_cluster_id) { - monitor_printf(mon, " cluster-id: \"%" PRIu64 "\"\n", - c->cluster_id); + monitor_hmp_printf(hmp, " cluster-id: \"%" PRIu64 "\"\n", + c->cluster_id); } if (c->has_module_id) { - monitor_printf(mon, " module-id: \"%" PRIu64 "\"\n", - c->module_id); + monitor_hmp_printf(hmp, " module-id: \"%" PRIu64 "\"\n", + c->module_id); } if (c->has_core_id) { - monitor_printf(mon, " core-id: \"%" PRIu64 "\"\n", c->core_id); + monitor_hmp_printf(hmp, " core-id: \"%" PRIu64 "\"\n", c->core_id); } if (c->has_thread_id) { - monitor_printf(mon, " thread-id: \"%" PRIu64 "\"\n", c->thread_id); + monitor_hmp_printf(hmp, " thread-id: \"%" PRIu64 "\"\n", c->thread_id); } l = l->next; @@ -110,7 +108,6 @@ void hmp_hotpluggable_cpus(MonitorHMP *hmp, const QDict *qdict) void hmp_info_memdev(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; MemdevList *memdev_list = qmp_query_memdev(&err); MemdevList *m = memdev_list; @@ -120,31 +117,31 @@ void hmp_info_memdev(MonitorHMP *hmp, const QDict *qdict) while (m) { v = string_output_visitor_new(false, &str); visit_type_uint16List(v, NULL, &m->value->host_nodes, &error_abort); - monitor_printf(mon, "memory backend: %s\n", m->value->id); - monitor_printf(mon, " size: %" PRId64 "\n", m->value->size); - monitor_printf(mon, " merge: %s\n", - m->value->merge ? "true" : "false"); - monitor_printf(mon, " dump: %s\n", - m->value->dump ? "true" : "false"); - monitor_printf(mon, " prealloc: %s\n", - m->value->prealloc ? "true" : "false"); - monitor_printf(mon, " share: %s\n", - m->value->share ? "true" : "false"); + monitor_hmp_printf(hmp, "memory backend: %s\n", m->value->id); + monitor_hmp_printf(hmp, " size: %" PRId64 "\n", m->value->size); + monitor_hmp_printf(hmp, " merge: %s\n", + m->value->merge ? "true" : "false"); + monitor_hmp_printf(hmp, " dump: %s\n", + m->value->dump ? "true" : "false"); + monitor_hmp_printf(hmp, " prealloc: %s\n", + m->value->prealloc ? "true" : "false"); + monitor_hmp_printf(hmp, " share: %s\n", + m->value->share ? "true" : "false"); if (m->value->has_reserve) { - monitor_printf(mon, " reserve: %s\n", - m->value->reserve ? "true" : "false"); + monitor_hmp_printf(hmp, " reserve: %s\n", + m->value->reserve ? "true" : "false"); } - monitor_printf(mon, " policy: %s\n", - HostMemPolicy_str(m->value->policy)); + monitor_hmp_printf(hmp, " policy: %s\n", + HostMemPolicy_str(m->value->policy)); visit_complete(v, &str); - monitor_printf(mon, " host nodes: %s\n", str); + monitor_hmp_printf(hmp, " host nodes: %s\n", str); g_free(str); visit_free(v); m = m->next; } - monitor_printf(mon, "\n"); + monitor_hmp_printf(hmp, "\n"); qapi_free_MemdevList(memdev_list); hmp_handle_error(hmp, err); @@ -152,15 +149,14 @@ void hmp_info_memdev(MonitorHMP *hmp, const QDict *qdict) void hmp_info_kvm(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); KvmInfo *info; info = qmp_query_kvm(NULL); - monitor_printf(mon, "kvm support: "); + monitor_hmp_printf(hmp, "kvm support: "); if (info->present) { - monitor_printf(mon, "%s\n", info->enabled ? "enabled" : "disabled"); + monitor_hmp_printf(hmp, "%s\n", info->enabled ? "enabled" : "disabled"); } else { - monitor_printf(mon, "not compiled\n"); + monitor_hmp_printf(hmp, "not compiled\n"); } qapi_free_KvmInfo(info); @@ -168,7 +164,6 @@ void hmp_info_kvm(MonitorHMP *hmp, const QDict *qdict) void hmp_info_accelerators(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); AcceleratorInfo *info; AcceleratorList *accel; @@ -176,9 +171,9 @@ void hmp_info_accelerators(MonitorHMP *hmp, const QDict *qdict) for (accel = info->present; accel; accel = accel->next) { char trail = accel->next ? ' ' : '\n'; if (info->enabled == accel->value) { - monitor_printf(mon, "[%s]%c", Accelerator_str(accel->value), trail); + monitor_hmp_printf(hmp, "[%s]%c", Accelerator_str(accel->value), trail); } else { - monitor_printf(mon, "%s%c", Accelerator_str(accel->value), trail); + monitor_hmp_printf(hmp, "%s%c", Accelerator_str(accel->value), trail); } } @@ -187,17 +182,15 @@ void hmp_info_accelerators(MonitorHMP *hmp, const QDict *qdict) void hmp_info_uuid(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); UuidInfo *info; info = qmp_query_uuid(NULL); - monitor_printf(mon, "%s\n", info->UUID); + monitor_hmp_printf(hmp, "%s\n", info->UUID); qapi_free_UuidInfo(info); } void hmp_info_balloon(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); BalloonInfo *info; Error *err = NULL; @@ -206,7 +199,7 @@ void hmp_info_balloon(MonitorHMP *hmp, const QDict *qdict) return; } - monitor_printf(mon, "balloon: actual=%" PRId64 "\n", info->actual >> 20); + monitor_hmp_printf(hmp, "balloon: actual=%" PRId64 "\n", info->actual >> 20); qapi_free_BalloonInfo(info); } @@ -223,7 +216,6 @@ void hmp_system_powerdown(MonitorHMP *hmp, const QDict *qdict) void hmp_memsave(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); uint32_t size = qdict_get_int(qdict, "size"); const char *filename = qdict_get_str(qdict, "filename"); uint64_t addr = qdict_get_int(qdict, "val"); @@ -231,7 +223,7 @@ void hmp_memsave(MonitorHMP *hmp, const QDict *qdict) int cpu_index = monitor_hmp_get_cpu_index(hmp); if (cpu_index < 0) { - monitor_printf(mon, "No CPU available\n"); + monitor_hmp_printf(hmp, "No CPU available\n"); return; } @@ -277,7 +269,6 @@ void hmp_balloon(MonitorHMP *hmp, const QDict *qdict) void hmp_info_memory_devices(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; MemoryDeviceInfoList *info_list = qmp_query_memory_devices(&err); MemoryDeviceInfoList *info; @@ -298,76 +289,76 @@ void hmp_info_memory_devices(MonitorHMP *hmp, const QDict *qdict) case MEMORY_DEVICE_INFO_KIND_NVDIMM: di = value->type == MEMORY_DEVICE_INFO_KIND_DIMM ? value->u.dimm.data : value->u.nvdimm.data; - monitor_printf(mon, "Memory device [%s]: \"%s\"\n", - MemoryDeviceInfoKind_str(value->type), - di->id ? di->id : ""); - monitor_printf(mon, " addr: 0x%" PRIx64 "\n", di->addr); - monitor_printf(mon, " slot: %" PRId64 "\n", di->slot); - monitor_printf(mon, " node: %" PRId64 "\n", di->node); - monitor_printf(mon, " size: %" PRIu64 "\n", di->size); - monitor_printf(mon, " memdev: %s\n", di->memdev); - monitor_printf(mon, " hotplugged: %s\n", - di->hotplugged ? "true" : "false"); - monitor_printf(mon, " hotpluggable: %s\n", - di->hotpluggable ? "true" : "false"); + monitor_hmp_printf(hmp, "Memory device [%s]: \"%s\"\n", + MemoryDeviceInfoKind_str(value->type), + di->id ? di->id : ""); + monitor_hmp_printf(hmp, " addr: 0x%" PRIx64 "\n", di->addr); + monitor_hmp_printf(hmp, " slot: %" PRId64 "\n", di->slot); + monitor_hmp_printf(hmp, " node: %" PRId64 "\n", di->node); + monitor_hmp_printf(hmp, " size: %" PRIu64 "\n", di->size); + monitor_hmp_printf(hmp, " memdev: %s\n", di->memdev); + monitor_hmp_printf(hmp, " hotplugged: %s\n", + di->hotplugged ? "true" : "false"); + monitor_hmp_printf(hmp, " hotpluggable: %s\n", + di->hotpluggable ? "true" : "false"); break; case MEMORY_DEVICE_INFO_KIND_VIRTIO_PMEM: vpi = value->u.virtio_pmem.data; - monitor_printf(mon, "Memory device [%s]: \"%s\"\n", - MemoryDeviceInfoKind_str(value->type), - vpi->id ? vpi->id : ""); - monitor_printf(mon, " memaddr: 0x%" PRIx64 "\n", vpi->memaddr); - monitor_printf(mon, " size: %" PRIu64 "\n", vpi->size); - monitor_printf(mon, " memdev: %s\n", vpi->memdev); + monitor_hmp_printf(hmp, "Memory device [%s]: \"%s\"\n", + MemoryDeviceInfoKind_str(value->type), + vpi->id ? vpi->id : ""); + monitor_hmp_printf(hmp, " memaddr: 0x%" PRIx64 "\n", vpi->memaddr); + monitor_hmp_printf(hmp, " size: %" PRIu64 "\n", vpi->size); + monitor_hmp_printf(hmp, " memdev: %s\n", vpi->memdev); break; case MEMORY_DEVICE_INFO_KIND_VIRTIO_MEM: vmi = value->u.virtio_mem.data; - monitor_printf(mon, "Memory device [%s]: \"%s\"\n", - MemoryDeviceInfoKind_str(value->type), - vmi->id ? vmi->id : ""); - monitor_printf(mon, " memaddr: 0x%" PRIx64 "\n", vmi->memaddr); - monitor_printf(mon, " node: %" PRId64 "\n", vmi->node); - monitor_printf(mon, " requested-size: %" PRIu64 "\n", - vmi->requested_size); - monitor_printf(mon, " size: %" PRIu64 "\n", vmi->size); - monitor_printf(mon, " max-size: %" PRIu64 "\n", vmi->max_size); - monitor_printf(mon, " block-size: %" PRIu64 "\n", - vmi->block_size); - monitor_printf(mon, " memdev: %s\n", vmi->memdev); + monitor_hmp_printf(hmp, "Memory device [%s]: \"%s\"\n", + MemoryDeviceInfoKind_str(value->type), + vmi->id ? vmi->id : ""); + monitor_hmp_printf(hmp, " memaddr: 0x%" PRIx64 "\n", vmi->memaddr); + monitor_hmp_printf(hmp, " node: %" PRId64 "\n", vmi->node); + monitor_hmp_printf(hmp, " requested-size: %" PRIu64 "\n", + vmi->requested_size); + monitor_hmp_printf(hmp, " size: %" PRIu64 "\n", vmi->size); + monitor_hmp_printf(hmp, " max-size: %" PRIu64 "\n", vmi->max_size); + monitor_hmp_printf(hmp, " block-size: %" PRIu64 "\n", + vmi->block_size); + monitor_hmp_printf(hmp, " memdev: %s\n", vmi->memdev); break; case MEMORY_DEVICE_INFO_KIND_SGX_EPC: se = value->u.sgx_epc.data; - monitor_printf(mon, "Memory device [%s]: \"%s\"\n", - MemoryDeviceInfoKind_str(value->type), - se->id ? se->id : ""); - monitor_printf(mon, " memaddr: 0x%" PRIx64 "\n", se->memaddr); - monitor_printf(mon, " size: %" PRIu64 "\n", se->size); - monitor_printf(mon, " node: %" PRId64 "\n", se->node); - monitor_printf(mon, " memdev: %s\n", se->memdev); + monitor_hmp_printf(hmp, "Memory device [%s]: \"%s\"\n", + MemoryDeviceInfoKind_str(value->type), + se->id ? se->id : ""); + monitor_hmp_printf(hmp, " memaddr: 0x%" PRIx64 "\n", se->memaddr); + monitor_hmp_printf(hmp, " size: %" PRIu64 "\n", se->size); + monitor_hmp_printf(hmp, " node: %" PRId64 "\n", se->node); + monitor_hmp_printf(hmp, " memdev: %s\n", se->memdev); break; case MEMORY_DEVICE_INFO_KIND_HV_BALLOON: hi = value->u.hv_balloon.data; - monitor_printf(mon, "Memory device [%s]: \"%s\"\n", - MemoryDeviceInfoKind_str(value->type), - hi->id ? hi->id : ""); + monitor_hmp_printf(hmp, "Memory device [%s]: \"%s\"\n", + MemoryDeviceInfoKind_str(value->type), + hi->id ? hi->id : ""); if (hi->has_memaddr) { - monitor_printf(mon, " memaddr: 0x%" PRIx64 "\n", - hi->memaddr); + monitor_hmp_printf(hmp, " memaddr: 0x%" PRIx64 "\n", + hi->memaddr); } - monitor_printf(mon, " max-size: %" PRIu64 "\n", hi->max_size); + monitor_hmp_printf(hmp, " max-size: %" PRIu64 "\n", hi->max_size); if (hi->memdev) { - monitor_printf(mon, " memdev: %s\n", hi->memdev); + monitor_hmp_printf(hmp, " memdev: %s\n", hi->memdev); } break; case MEMORY_DEVICE_INFO_KIND_SP_MEM: spmi = value->u.sp_mem.data; - monitor_printf(mon, "Memory device [%s]: \"%s\"\n", - MemoryDeviceInfoKind_str(value->type), - spmi->id ? spmi->id : ""); - monitor_printf(mon, " addr: 0x%" PRIx64 "\n", spmi->addr); - monitor_printf(mon, " node: %" PRId64 "\n", spmi->node); - monitor_printf(mon, " size: %" PRIu64 "\n", spmi->size); - monitor_printf(mon, " memdev: %s\n", spmi->memdev); + monitor_hmp_printf(hmp, "Memory device [%s]: \"%s\"\n", + MemoryDeviceInfoKind_str(value->type), + spmi->id ? spmi->id : ""); + monitor_hmp_printf(hmp, " addr: 0x%" PRIx64 "\n", spmi->addr); + monitor_hmp_printf(hmp, " node: %" PRId64 "\n", spmi->node); + monitor_hmp_printf(hmp, " size: %" PRIu64 "\n", spmi->size); + monitor_hmp_printf(hmp, " memdev: %s\n", spmi->memdev); break; default: g_assert_not_reached(); @@ -381,11 +372,10 @@ void hmp_info_memory_devices(MonitorHMP *hmp, const QDict *qdict) void hmp_info_vm_generation_id(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; GuidInfo *info = qmp_query_vm_generation_id(&err); if (info) { - monitor_printf(mon, "%s\n", info->guid); + monitor_hmp_printf(hmp, "%s\n", info->guid); } hmp_handle_error(hmp, err); qapi_free_GuidInfo(info); @@ -393,16 +383,15 @@ void hmp_info_vm_generation_id(MonitorHMP *hmp, const QDict *qdict) void hmp_info_memory_size_summary(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; MemoryInfo *info = qmp_query_memory_size_summary(&err); if (info) { - monitor_printf(mon, "base memory: %" PRIu64 "\n", - info->base_memory); + monitor_hmp_printf(hmp, "base memory: %" PRIu64 "\n", + info->base_memory); if (info->has_plugged_memory) { - monitor_printf(mon, "plugged memory: %" PRIu64 "\n", - info->plugged_memory); + monitor_hmp_printf(hmp, "plugged memory: %" PRIu64 "\n", + info->plugged_memory); } qapi_free_MemoryInfo(info); diff --git a/hw/core/sysbus.c b/hw/core/sysbus.c index 13df7cbafe10..82130ba04698 100644 --- a/hw/core/sysbus.c +++ b/hw/core/sysbus.c @@ -252,13 +252,14 @@ bool sysbus_realize_and_unref(SysBusDevice *dev, Error **errp) static void sysbus_dev_print(Monitor *mon, DeviceState *dev, int indent) { SysBusDevice *s = SYS_BUS_DEVICE(dev); + MonitorHMP *hmp = MONITOR_HMP(mon); hwaddr size; int i; for (i = 0; i < s->num_mmio; i++) { size = memory_region_size(s->mmio[i].memory); - monitor_printf(mon, "%*smmio " HWADDR_FMT_plx "/" HWADDR_FMT_plx "\n", - indent, "", s->mmio[i].addr, size); + monitor_hmp_printf(hmp, "%*smmio " HWADDR_FMT_plx "/" HWADDR_FMT_plx "\n", + indent, "", s->mmio[i].addr, size); } } diff --git a/hw/hexagon/hexagon_tlb.c b/hw/hexagon/hexagon_tlb.c index 2d878cee736d..576929ff224b 100644 --- a/hw/hexagon/hexagon_tlb.c +++ b/hw/hexagon/hexagon_tlb.c @@ -124,30 +124,32 @@ static inline uint64_t hex_tlb_virt_addr(uint64_t entry) bool hexagon_tlb_dump_entry(Monitor *mon, uint64_t entry) { + MonitorHMP *hmp = MONITOR_HMP(mon); + if (GET_PTE_V(entry)) { uint64_t PA = hex_tlb_phys_addr(entry); uint64_t VA = hex_tlb_virt_addr(entry); - monitor_printf(mon, "0x%016" PRIx64 ": ", entry); - monitor_printf(mon, "V:%" PRId64 " G:%" PRId64 - " A1:%" PRId64 " A0:%" PRId64, - GET_PTE_V(entry), - GET_PTE_G(entry), - GET_PTE_ATR1(entry), - GET_PTE_ATR0(entry)); - monitor_printf(mon, " ASID:0x%02" PRIx64 " VA:0x%08" PRIx64, - GET_PTE_ASID(entry), VA); - monitor_printf(mon, - " X:%" PRId64 " W:%" PRId64 " R:%" PRId64 - " U:%" PRId64 " C:%" PRId64, - GET_PTE_X(entry), - GET_PTE_W(entry), - GET_PTE_R(entry), - GET_PTE_U(entry), - GET_PTE_C(entry)); - monitor_printf(mon, " PA:0x%09" PRIx64 " SZ:%s (0x%" PRIx64 ")", - PA, pgsize_str[hex_tlb_pgsize_type(entry)], - hex_tlb_page_size_bytes(entry)); - monitor_printf(mon, "\n"); + monitor_hmp_printf(hmp, "0x%016" PRIx64 ": ", entry); + monitor_hmp_printf(hmp, "V:%" PRId64 " G:%" PRId64 + " A1:%" PRId64 " A0:%" PRId64, + GET_PTE_V(entry), + GET_PTE_G(entry), + GET_PTE_ATR1(entry), + GET_PTE_ATR0(entry)); + monitor_hmp_printf(hmp, " ASID:0x%02" PRIx64 " VA:0x%08" PRIx64, + GET_PTE_ASID(entry), VA); + monitor_hmp_printf(hmp, + " X:%" PRId64 " W:%" PRId64 " R:%" PRId64 + " U:%" PRId64 " C:%" PRId64, + GET_PTE_X(entry), + GET_PTE_W(entry), + GET_PTE_R(entry), + GET_PTE_U(entry), + GET_PTE_C(entry)); + monitor_hmp_printf(hmp, " PA:0x%09" PRIx64 " SZ:%s (0x%" PRIx64 ")", + PA, pgsize_str[hex_tlb_pgsize_type(entry)], + hex_tlb_page_size_bytes(entry)); + monitor_hmp_printf(hmp, "\n"); return true; } diff --git a/hw/i386/kvm/xen-stubs.c b/hw/i386/kvm/xen-stubs.c index ab1eb14f99e0..5ed71583281a 100644 --- a/hw/i386/kvm/xen-stubs.c +++ b/hw/i386/kvm/xen-stubs.c @@ -42,12 +42,10 @@ void xen_primary_console_set_be_port(uint16_t port) void hmp_xen_event_list(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); - monitor_printf(mon, "XEN emulation is not available in this QEMU\n"); + monitor_hmp_printf(hmp, "XEN emulation is not available in this QEMU\n"); } void hmp_xen_event_inject(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); - monitor_printf(mon, "XEN emulation is not available in this QEMU\n"); + monitor_hmp_printf(hmp, "XEN emulation is not available in this QEMU\n"); } diff --git a/hw/i386/kvm/xen_evtchn.c b/hw/i386/kvm/xen_evtchn.c index 00dff6ee8760..b2135020f27f 100644 --- a/hw/i386/kvm/xen_evtchn.c +++ b/hw/i386/kvm/xen_evtchn.c @@ -2346,7 +2346,6 @@ void qmp_xen_event_inject(uint32_t port, Error **errp) void hmp_xen_event_list(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); EvtchnInfoList *iter, *info_list; Error *err = NULL; @@ -2359,22 +2358,22 @@ void hmp_xen_event_list(MonitorHMP *hmp, const QDict *qdict) for (iter = info_list; iter; iter = iter->next) { EvtchnInfo *info = iter->value; - monitor_printf(mon, "port %4u: vcpu: %d %s", info->port, info->vcpu, - EvtchnPortType_str(info->type)); + monitor_hmp_printf(hmp, "port %4u: vcpu: %d %s", info->port, info->vcpu, + EvtchnPortType_str(info->type)); if (info->type != EVTCHN_PORT_TYPE_IPI) { - monitor_printf(mon, "("); + monitor_hmp_printf(hmp, "("); if (info->remote_domain) { - monitor_printf(mon, "%s:", info->remote_domain); + monitor_hmp_printf(hmp, "%s:", info->remote_domain); } - monitor_printf(mon, "%d)", info->target); + monitor_hmp_printf(hmp, "%d)", info->target); } if (info->pending) { - monitor_printf(mon, " PENDING"); + monitor_hmp_printf(hmp, " PENDING"); } if (info->masked) { - monitor_printf(mon, " MASKED"); + monitor_hmp_printf(hmp, " MASKED"); } - monitor_printf(mon, "\n"); + monitor_hmp_printf(hmp, "\n"); } qapi_free_EvtchnInfoList(info_list); @@ -2382,7 +2381,6 @@ void hmp_xen_event_list(MonitorHMP *hmp, const QDict *qdict) void hmp_xen_event_inject(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); int port = qdict_get_int(qdict, "port"); Error *err = NULL; @@ -2390,7 +2388,6 @@ void hmp_xen_event_inject(MonitorHMP *hmp, const QDict *qdict) if (err) { hmp_handle_error(hmp, err); } else { - monitor_printf(mon, "Delivered port %d\n", port); + monitor_hmp_printf(hmp, "Delivered port %d\n", port); } } - diff --git a/hw/i386/sgx-hmp-stub.c b/hw/i386/sgx-hmp-stub.c index a4848ae1d1a7..b7afb26886a8 100644 --- a/hw/i386/sgx-hmp-stub.c +++ b/hw/i386/sgx-hmp-stub.c @@ -12,6 +12,5 @@ void hmp_info_sgx(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); - monitor_printf(mon, "SGX is not available in this QEMU\n"); + monitor_hmp_printf(hmp, "SGX is not available in this QEMU\n"); } diff --git a/hw/i386/sgx.c b/hw/i386/sgx.c index 77b41d234c9f..634e33e819ce 100644 --- a/hw/i386/sgx.c +++ b/hw/i386/sgx.c @@ -236,7 +236,6 @@ SgxInfo *qmp_query_sgx(Error **errp) void hmp_info_sgx(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; SgxEpcSectionList *section_list, *section; g_autoptr(SgxInfo) info = qmp_query_sgx(&err); @@ -246,25 +245,25 @@ void hmp_info_sgx(MonitorHMP *hmp, const QDict *qdict) error_report_err(err); return; } - monitor_printf(mon, "SGX support: %s\n", - info->sgx ? "enabled" : "disabled"); - monitor_printf(mon, "SGX1 support: %s\n", - info->sgx1 ? "enabled" : "disabled"); - monitor_printf(mon, "SGX2 support: %s\n", - info->sgx2 ? "enabled" : "disabled"); - monitor_printf(mon, "FLC support: %s\n", - info->flc ? "enabled" : "disabled"); + monitor_hmp_printf(hmp, "SGX support: %s\n", + info->sgx ? "enabled" : "disabled"); + monitor_hmp_printf(hmp, "SGX1 support: %s\n", + info->sgx1 ? "enabled" : "disabled"); + monitor_hmp_printf(hmp, "SGX2 support: %s\n", + info->sgx2 ? "enabled" : "disabled"); + monitor_hmp_printf(hmp, "FLC support: %s\n", + info->flc ? "enabled" : "disabled"); section_list = info->sections; for (section = section_list; section; section = section->next) { - monitor_printf(mon, "NUMA node #%" PRId64 ": ", - section->value->node); - monitor_printf(mon, "size=%" PRIu64 "\n", - section->value->size); + monitor_hmp_printf(hmp, "NUMA node #%" PRId64 ": ", + section->value->node); + monitor_hmp_printf(hmp, "size=%" PRIu64 "\n", + section->value->size); size += section->value->size; } - monitor_printf(mon, "total size=%" PRIu64 "\n", - size); + monitor_hmp_printf(hmp, "total size=%" PRIu64 "\n", + size); } bool check_sgx_support(void) diff --git a/hw/misc/auxbus.c b/hw/misc/auxbus.c index ac2525b90fec..ffa76f83016b 100644 --- a/hw/misc/auxbus.c +++ b/hw/misc/auxbus.c @@ -300,10 +300,11 @@ static void aux_slave_dev_print(Monitor *mon, DeviceState *dev, int indent) s = AUX_SLAVE(dev); - monitor_printf(mon, "%*smemory " HWADDR_FMT_plx "/" HWADDR_FMT_plx "\n", - indent, "", - object_property_get_uint(OBJECT(s->mmio), "addr", NULL), - memory_region_size(s->mmio)); + monitor_hmp_printf(MONITOR_HMP(mon), + "%*smemory " HWADDR_FMT_plx "/" HWADDR_FMT_plx "\n", + indent, "", + object_property_get_uint(OBJECT(s->mmio), "addr", NULL), + memory_region_size(s->mmio)); } void aux_init_mmio(AUXSlave *aux_slave, MemoryRegion *mmio) diff --git a/hw/misc/mos6522-stub.c b/hw/misc/mos6522-stub.c index 6a7d76292f00..154cd32ed88b 100644 --- a/hw/misc/mos6522-stub.c +++ b/hw/misc/mos6522-stub.c @@ -12,6 +12,5 @@ void hmp_info_via(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); - monitor_printf(mon, "MOS6522 VIA is not available in this QEMU\n"); + monitor_hmp_printf(hmp, "MOS6522 VIA is not available in this QEMU\n"); } diff --git a/hw/net/rocker/rocker-hmp-cmds.c b/hw/net/rocker/rocker-hmp-cmds.c index 6405ce26dd65..5099d59cc620 100644 --- a/hw/net/rocker/rocker-hmp-cmds.c +++ b/hw/net/rocker/rocker-hmp-cmds.c @@ -22,7 +22,6 @@ void hmp_rocker(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *name = qdict_get_str(qdict, "name"); RockerSwitch *rocker; Error *err = NULL; @@ -32,16 +31,15 @@ void hmp_rocker(MonitorHMP *hmp, const QDict *qdict) return; } - monitor_printf(mon, "name: %s\n", rocker->name); - monitor_printf(mon, "id: 0x%" PRIx64 "\n", rocker->id); - monitor_printf(mon, "ports: %d\n", rocker->ports); + monitor_hmp_printf(hmp, "name: %s\n", rocker->name); + monitor_hmp_printf(hmp, "id: 0x%" PRIx64 "\n", rocker->id); + monitor_hmp_printf(hmp, "ports: %d\n", rocker->ports); qapi_free_RockerSwitch(rocker); } void hmp_rocker_ports(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); RockerPortList *list, *port; const char *name = qdict_get_str(qdict, "name"); Error *err = NULL; @@ -51,17 +49,17 @@ void hmp_rocker_ports(MonitorHMP *hmp, const QDict *qdict) return; } - monitor_printf(mon, " ena/ speed/ auto\n"); - monitor_printf(mon, " port link duplex neg?\n"); + monitor_hmp_printf(hmp, " ena/ speed/ auto\n"); + monitor_hmp_printf(hmp, " port link duplex neg?\n"); for (port = list; port; port = port->next) { - monitor_printf(mon, "%10s %-4s %-3s %2s %s\n", - port->value->name, - port->value->enabled ? port->value->link_up ? - "up" : "down" : "!ena", - port->value->speed == 10000 ? "10G" : "??", - port->value->duplex ? "FD" : "HD", - port->value->autoneg ? "Yes" : "No"); + monitor_hmp_printf(hmp, "%10s %-4s %-3s %2s %s\n", + port->value->name, + port->value->enabled ? port->value->link_up ? + "up" : "down" : "!ena", + port->value->speed == 10000 ? "10G" : "??", + port->value->duplex ? "FD" : "HD", + port->value->autoneg ? "Yes" : "No"); } qapi_free_RockerPortList(list); @@ -69,7 +67,6 @@ void hmp_rocker_ports(MonitorHMP *hmp, const QDict *qdict) void hmp_rocker_of_dpa_flows(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); RockerOfDpaFlowList *list, *info; const char *name = qdict_get_str(qdict, "name"); uint32_t tbl_id = qdict_get_try_int(qdict, "tbl_id", -1); @@ -80,7 +77,7 @@ void hmp_rocker_of_dpa_flows(MonitorHMP *hmp, const QDict *qdict) return; } - monitor_printf(mon, "prio tbl hits key(mask) --> actions\n"); + monitor_hmp_printf(hmp, "prio tbl hits key(mask) --> actions\n"); for (info = list; info; info = info->next) { RockerOfDpaFlow *flow = info->value; @@ -89,54 +86,54 @@ void hmp_rocker_of_dpa_flows(MonitorHMP *hmp, const QDict *qdict) RockerOfDpaFlowAction *action = flow->action; if (flow->hits) { - monitor_printf(mon, "%-4d %-3d %-4" PRIu64, - key->priority, key->tbl_id, flow->hits); + monitor_hmp_printf(hmp, "%-4d %-3d %-4" PRIu64, + key->priority, key->tbl_id, flow->hits); } else { - monitor_printf(mon, "%-4d %-3d ", - key->priority, key->tbl_id); + monitor_hmp_printf(hmp, "%-4d %-3d ", + key->priority, key->tbl_id); } if (key->has_in_pport) { - monitor_printf(mon, " pport %d", key->in_pport); + monitor_hmp_printf(hmp, " pport %d", key->in_pport); if (mask->has_in_pport) { - monitor_printf(mon, "(0x%x)", mask->in_pport); + monitor_hmp_printf(hmp, "(0x%x)", mask->in_pport); } } if (key->has_vlan_id) { - monitor_printf(mon, " vlan %d", - key->vlan_id & VLAN_VID_MASK); + monitor_hmp_printf(hmp, " vlan %d", + key->vlan_id & VLAN_VID_MASK); if (mask->has_vlan_id) { - monitor_printf(mon, "(0x%x)", mask->vlan_id); + monitor_hmp_printf(hmp, "(0x%x)", mask->vlan_id); } } if (key->has_tunnel_id) { - monitor_printf(mon, " tunnel %d", key->tunnel_id); + monitor_hmp_printf(hmp, " tunnel %d", key->tunnel_id); if (mask->has_tunnel_id) { - monitor_printf(mon, "(0x%x)", mask->tunnel_id); + monitor_hmp_printf(hmp, "(0x%x)", mask->tunnel_id); } } if (key->has_eth_type) { switch (key->eth_type) { case 0x0806: - monitor_printf(mon, " ARP"); + monitor_hmp_printf(hmp, " ARP"); break; case 0x0800: - monitor_printf(mon, " IP"); + monitor_hmp_printf(hmp, " IP"); break; case 0x86dd: - monitor_printf(mon, " IPv6"); + monitor_hmp_printf(hmp, " IPv6"); break; case 0x8809: - monitor_printf(mon, " LACP"); + monitor_hmp_printf(hmp, " LACP"); break; case 0x88cc: - monitor_printf(mon, " LLDP"); + monitor_hmp_printf(hmp, " LLDP"); break; default: - monitor_printf(mon, " eth type 0x%04x", key->eth_type); + monitor_hmp_printf(hmp, " eth type 0x%04x", key->eth_type); break; } } @@ -145,15 +142,15 @@ void hmp_rocker_of_dpa_flows(MonitorHMP *hmp, const QDict *qdict) if ((strcmp(key->eth_src, "01:00:00:00:00:00") == 0) && mask->eth_src && (strcmp(mask->eth_src, "01:00:00:00:00:00") == 0)) { - monitor_printf(mon, " src "); + monitor_hmp_printf(hmp, " src "); } else if ((strcmp(key->eth_src, "00:00:00:00:00:00") == 0) && mask->eth_src && (strcmp(mask->eth_src, "01:00:00:00:00:00") == 0)) { - monitor_printf(mon, " src "); + monitor_hmp_printf(hmp, " src "); } else { - monitor_printf(mon, " src %s", key->eth_src); + monitor_hmp_printf(hmp, " src %s", key->eth_src); if (mask->eth_src) { - monitor_printf(mon, "(%s)", mask->eth_src); + monitor_hmp_printf(hmp, "(%s)", mask->eth_src); } } } @@ -162,56 +159,56 @@ void hmp_rocker_of_dpa_flows(MonitorHMP *hmp, const QDict *qdict) if ((strcmp(key->eth_dst, "01:00:00:00:00:00") == 0) && mask->eth_dst && (strcmp(mask->eth_dst, "01:00:00:00:00:00") == 0)) { - monitor_printf(mon, " dst "); + monitor_hmp_printf(hmp, " dst "); } else if ((strcmp(key->eth_dst, "00:00:00:00:00:00") == 0) && mask->eth_dst && (strcmp(mask->eth_dst, "01:00:00:00:00:00") == 0)) { - monitor_printf(mon, " dst "); + monitor_hmp_printf(hmp, " dst "); } else { - monitor_printf(mon, " dst %s", key->eth_dst); + monitor_hmp_printf(hmp, " dst %s", key->eth_dst); if (mask->eth_dst) { - monitor_printf(mon, "(%s)", mask->eth_dst); + monitor_hmp_printf(hmp, "(%s)", mask->eth_dst); } } } if (key->has_ip_proto) { - monitor_printf(mon, " proto %d", key->ip_proto); + monitor_hmp_printf(hmp, " proto %d", key->ip_proto); if (mask->has_ip_proto) { - monitor_printf(mon, "(0x%x)", mask->ip_proto); + monitor_hmp_printf(hmp, "(0x%x)", mask->ip_proto); } } if (key->has_ip_tos) { - monitor_printf(mon, " TOS %d", key->ip_tos); + monitor_hmp_printf(hmp, " TOS %d", key->ip_tos); if (mask->has_ip_tos) { - monitor_printf(mon, "(0x%x)", mask->ip_tos); + monitor_hmp_printf(hmp, "(0x%x)", mask->ip_tos); } } if (key->ip_dst) { - monitor_printf(mon, " dst %s", key->ip_dst); + monitor_hmp_printf(hmp, " dst %s", key->ip_dst); } if (action->has_goto_tbl || action->has_group_id || action->has_new_vlan_id) { - monitor_printf(mon, " -->"); + monitor_hmp_printf(hmp, " -->"); } if (action->has_new_vlan_id) { - monitor_printf(mon, " apply new vlan %d", - ntohs(action->new_vlan_id)); + monitor_hmp_printf(hmp, " apply new vlan %d", + ntohs(action->new_vlan_id)); } if (action->has_group_id) { - monitor_printf(mon, " write group 0x%08x", action->group_id); + monitor_hmp_printf(hmp, " write group 0x%08x", action->group_id); } if (action->has_goto_tbl) { - monitor_printf(mon, " goto tbl %d", action->goto_tbl); + monitor_hmp_printf(hmp, " goto tbl %d", action->goto_tbl); } - monitor_printf(mon, "\n"); + monitor_hmp_printf(hmp, "\n"); } qapi_free_RockerOfDpaFlowList(list); @@ -219,7 +216,6 @@ void hmp_rocker_of_dpa_flows(MonitorHMP *hmp, const QDict *qdict) void hmp_rocker_of_dpa_groups(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); RockerOfDpaGroupList *list, *g; const char *name = qdict_get_str(qdict, "name"); uint8_t type = qdict_get_try_int(qdict, "type", 9); @@ -230,15 +226,15 @@ void hmp_rocker_of_dpa_groups(MonitorHMP *hmp, const QDict *qdict) return; } - monitor_printf(mon, "id (decode) --> buckets\n"); + monitor_hmp_printf(hmp, "id (decode) --> buckets\n"); for (g = list; g; g = g->next) { RockerOfDpaGroup *group = g->value; bool set = false; - monitor_printf(mon, "0x%08x", group->id); + monitor_hmp_printf(hmp, "0x%08x", group->id); - monitor_printf(mon, " (type %s", group->type == 0 ? "L2 interface" : + monitor_hmp_printf(hmp, " (type %s", group->type == 0 ? "L2 interface" : group->type == 1 ? "L2 rewrite" : group->type == 2 ? "L3 unicast" : group->type == 3 ? "L2 multicast" : @@ -250,70 +246,70 @@ void hmp_rocker_of_dpa_groups(MonitorHMP *hmp, const QDict *qdict) "unknown"); if (group->has_vlan_id) { - monitor_printf(mon, " vlan %d", group->vlan_id); + monitor_hmp_printf(hmp, " vlan %d", group->vlan_id); } if (group->has_pport) { - monitor_printf(mon, " pport %d", group->pport); + monitor_hmp_printf(hmp, " pport %d", group->pport); } if (group->has_index) { - monitor_printf(mon, " index %d", group->index); + monitor_hmp_printf(hmp, " index %d", group->index); } - monitor_printf(mon, ") -->"); + monitor_hmp_printf(hmp, ") -->"); if (group->has_set_vlan_id && group->set_vlan_id) { set = true; - monitor_printf(mon, " set vlan %d", - group->set_vlan_id & VLAN_VID_MASK); + monitor_hmp_printf(hmp, " set vlan %d", + group->set_vlan_id & VLAN_VID_MASK); } if (group->set_eth_src) { if (!set) { set = true; - monitor_printf(mon, " set"); + monitor_hmp_printf(hmp, " set"); } - monitor_printf(mon, " src %s", group->set_eth_src); + monitor_hmp_printf(hmp, " src %s", group->set_eth_src); } if (group->set_eth_dst) { if (!set) { - monitor_printf(mon, " set"); + monitor_hmp_printf(hmp, " set"); } - monitor_printf(mon, " dst %s", group->set_eth_dst); + monitor_hmp_printf(hmp, " dst %s", group->set_eth_dst); } if (group->has_ttl_check && group->ttl_check) { - monitor_printf(mon, " check TTL"); + monitor_hmp_printf(hmp, " check TTL"); } if (group->has_group_id && group->group_id) { - monitor_printf(mon, " group id 0x%08x", group->group_id); + monitor_hmp_printf(hmp, " group id 0x%08x", group->group_id); } if (group->has_pop_vlan && group->pop_vlan) { - monitor_printf(mon, " pop vlan"); + monitor_hmp_printf(hmp, " pop vlan"); } if (group->has_out_pport) { - monitor_printf(mon, " out pport %d", group->out_pport); + monitor_hmp_printf(hmp, " out pport %d", group->out_pport); } if (group->has_group_ids) { struct uint32List *id; - monitor_printf(mon, " groups ["); + monitor_hmp_printf(hmp, " groups ["); for (id = group->group_ids; id; id = id->next) { - monitor_printf(mon, "0x%08x", id->value); + monitor_hmp_printf(hmp, "0x%08x", id->value); if (id->next) { - monitor_printf(mon, ","); + monitor_hmp_printf(hmp, ","); } } - monitor_printf(mon, "]"); + monitor_hmp_printf(hmp, "]"); } - monitor_printf(mon, "\n"); + monitor_hmp_printf(hmp, "\n"); } qapi_free_RockerOfDpaGroupList(list); diff --git a/hw/pci/pci-hmp-cmds.c b/hw/pci/pci-hmp-cmds.c index 51d95d76620e..500f821246a9 100644 --- a/hw/pci/pci-hmp-cmds.c +++ b/hw/pci/pci-hmp-cmds.c @@ -24,54 +24,55 @@ #include "qapi/qapi-commands-pci.h" #include "qemu/cutils.h" -static void hmp_info_pci_device(Monitor *mon, const PciDeviceInfo *dev) +static void hmp_info_pci_device(MonitorHMP *hmp, const PciDeviceInfo *dev) { + Monitor *mon = MONITOR(hmp); PciMemoryRegionList *region; - monitor_printf(mon, " Bus %2" PRId64 ", ", dev->bus); - monitor_printf(mon, "device %3" PRId64 ", function %" PRId64 ":\n", - dev->slot, dev->function); - monitor_printf(mon, " "); + monitor_hmp_printf(hmp, " Bus %2" PRId64 ", ", dev->bus); + monitor_hmp_printf(hmp, "device %3" PRId64 ", function %" PRId64 ":\n", + dev->slot, dev->function); + monitor_hmp_printf(hmp, " "); if (dev->class_info->desc) { monitor_puts(mon, dev->class_info->desc); } else { - monitor_printf(mon, "Class %04" PRId64, dev->class_info->q_class); + monitor_hmp_printf(hmp, "Class %04" PRId64, dev->class_info->q_class); } - monitor_printf(mon, ": PCI device %04" PRIx64 ":%04" PRIx64 "\n", - dev->id->vendor, dev->id->device); + monitor_hmp_printf(hmp, ": PCI device %04" PRIx64 ":%04" PRIx64 "\n", + dev->id->vendor, dev->id->device); if (dev->id->has_subsystem_vendor && dev->id->has_subsystem) { - monitor_printf(mon, " PCI subsystem %04" PRIx64 ":%04" PRIx64 "\n", - dev->id->subsystem_vendor, dev->id->subsystem); + monitor_hmp_printf(hmp, " PCI subsystem %04" PRIx64 ":%04" PRIx64 "\n", + dev->id->subsystem_vendor, dev->id->subsystem); } if (dev->has_irq) { - monitor_printf(mon, " IRQ %" PRId64 ", pin %c\n", - dev->irq, (char)('A' + dev->irq_pin - 1)); + monitor_hmp_printf(hmp, " IRQ %" PRId64 ", pin %c\n", + dev->irq, (char)('A' + dev->irq_pin - 1)); } if (dev->pci_bridge) { - monitor_printf(mon, " BUS %" PRId64 ".\n", - dev->pci_bridge->bus->number); - monitor_printf(mon, " secondary bus %" PRId64 ".\n", - dev->pci_bridge->bus->secondary); - monitor_printf(mon, " subordinate bus %" PRId64 ".\n", - dev->pci_bridge->bus->subordinate); + monitor_hmp_printf(hmp, " BUS %" PRId64 ".\n", + dev->pci_bridge->bus->number); + monitor_hmp_printf(hmp, " secondary bus %" PRId64 ".\n", + dev->pci_bridge->bus->secondary); + monitor_hmp_printf(hmp, " subordinate bus %" PRId64 ".\n", + dev->pci_bridge->bus->subordinate); - monitor_printf(mon, " IO range [0x%04"PRIx64", 0x%04"PRIx64"]\n", - dev->pci_bridge->bus->io_range->base, - dev->pci_bridge->bus->io_range->limit); + monitor_hmp_printf(hmp, " IO range [0x%04"PRIx64", 0x%04"PRIx64"]\n", + dev->pci_bridge->bus->io_range->base, + dev->pci_bridge->bus->io_range->limit); - monitor_printf(mon, - " memory range [0x%08"PRIx64", 0x%08"PRIx64"]\n", - dev->pci_bridge->bus->memory_range->base, - dev->pci_bridge->bus->memory_range->limit); + monitor_hmp_printf(hmp, + " memory range [0x%08"PRIx64", 0x%08"PRIx64"]\n", + dev->pci_bridge->bus->memory_range->base, + dev->pci_bridge->bus->memory_range->limit); - monitor_printf(mon, " prefetchable memory range " - "[0x%08"PRIx64", 0x%08"PRIx64"]\n", - dev->pci_bridge->bus->prefetchable_range->base, - dev->pci_bridge->bus->prefetchable_range->limit); + monitor_hmp_printf(hmp, " prefetchable memory range " + "[0x%08"PRIx64", 0x%08"PRIx64"]\n", + dev->pci_bridge->bus->prefetchable_range->base, + dev->pci_bridge->bus->prefetchable_range->limit); } for (region = dev->regions; region; region = region->next) { @@ -80,38 +81,38 @@ static void hmp_info_pci_device(Monitor *mon, const PciDeviceInfo *dev) addr = region->value->address; size = region->value->size; - monitor_printf(mon, " BAR%" PRId64 ": ", region->value->bar); + monitor_hmp_printf(hmp, " BAR%" PRId64 ": ", region->value->bar); if (!strcmp(region->value->type, "io")) { if (addr != PCI_BAR_UNMAPPED) { - monitor_printf(mon, "I/O at 0x%04" PRIx64 + monitor_hmp_printf(hmp, "I/O at 0x%04" PRIx64 " [0x%04" PRIx64 "]\n", addr, addr + size - 1); } else { - monitor_printf(mon, "I/O (not mapped)\n"); + monitor_hmp_printf(hmp, "I/O (not mapped)\n"); } } else { if (addr != PCI_BAR_UNMAPPED) { - monitor_printf(mon, "%d bit%s memory at 0x%08" PRIx64 + monitor_hmp_printf(hmp, "%d bit%s memory at 0x%08" PRIx64 " [0x%08" PRIx64 "]\n", region->value->mem_type_64 ? 64 : 32, region->value->prefetch ? " prefetchable" : "", addr, addr + size - 1); } else { - monitor_printf(mon, "%d bit%s memory (not mapped)\n", - region->value->mem_type_64 ? 64 : 32, - region->value->prefetch ? " prefetchable" : ""); + monitor_hmp_printf(hmp, "%d bit%s memory (not mapped)\n", + region->value->mem_type_64 ? 64 : 32, + region->value->prefetch ? " prefetchable" : ""); } } } - monitor_printf(mon, " id \"%s\"\n", dev->qdev_id); + monitor_hmp_printf(hmp, " id \"%s\"\n", dev->qdev_id); if (dev->pci_bridge) { if (dev->pci_bridge->has_devices) { PciDeviceInfoList *cdev; for (cdev = dev->pci_bridge->devices; cdev; cdev = cdev->next) { - hmp_info_pci_device(mon, cdev->value); + hmp_info_pci_device(hmp, cdev->value); } } } @@ -119,7 +120,6 @@ static void hmp_info_pci_device(Monitor *mon, const PciDeviceInfo *dev) void hmp_info_pci(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); PciInfoList *info_list, *info; info_list = qmp_query_pci(&error_abort); @@ -128,7 +128,7 @@ void hmp_info_pci(MonitorHMP *hmp, const QDict *qdict) PciDeviceInfoList *dev; for (dev = info->value->devices; dev; dev = dev->next) { - hmp_info_pci_device(mon, dev->value); + hmp_info_pci_device(hmp, dev->value); } } @@ -137,6 +137,7 @@ void hmp_info_pci(MonitorHMP *hmp, const QDict *qdict) void pcibus_dev_print(Monitor *mon, DeviceState *dev, int indent) { + MonitorHMP *hmp = MONITOR_HMP(mon); PCIDevice *d = (PCIDevice *)dev; int class = pci_get_word(d->config + PCI_CLASS_DEVICE); const pci_class_desc *desc = get_class_desc(class); @@ -150,30 +151,29 @@ void pcibus_dev_print(Monitor *mon, DeviceState *dev, int indent) snprintf(ctxt, sizeof(ctxt), "Class %04x", class); } - monitor_printf(mon, "%*sclass %s, addr %02x:%02x.%x, " - "pci id %04x:%04x (sub %04x:%04x)\n", - indent, "", ctxt, pci_dev_bus_num(d), - PCI_SLOT(d->devfn), PCI_FUNC(d->devfn), - pci_get_word(d->config + PCI_VENDOR_ID), - pci_get_word(d->config + PCI_DEVICE_ID), - pci_get_word(d->config + PCI_SUBSYSTEM_VENDOR_ID), - pci_get_word(d->config + PCI_SUBSYSTEM_ID)); + monitor_hmp_printf(hmp, "%*sclass %s, addr %02x:%02x.%x, " + "pci id %04x:%04x (sub %04x:%04x)\n", + indent, "", ctxt, pci_dev_bus_num(d), + PCI_SLOT(d->devfn), PCI_FUNC(d->devfn), + pci_get_word(d->config + PCI_VENDOR_ID), + pci_get_word(d->config + PCI_DEVICE_ID), + pci_get_word(d->config + PCI_SUBSYSTEM_VENDOR_ID), + pci_get_word(d->config + PCI_SUBSYSTEM_ID)); for (i = 0; i < PCI_NUM_REGIONS; i++) { r = &d->io_regions[i]; if (!r->size) { continue; } - monitor_printf(mon, "%*sbar %d: %s at 0x%"FMT_PCIBUS - " [0x%"FMT_PCIBUS"]\n", - indent, "", - i, r->type & PCI_BASE_ADDRESS_SPACE_IO ? "i/o" : "mem", - r->addr, r->addr + r->size - 1); + monitor_hmp_printf(hmp, "%*sbar %d: %s at 0x%"FMT_PCIBUS + " [0x%"FMT_PCIBUS"]\n", + indent, "", + i, r->type & PCI_BASE_ADDRESS_SPACE_IO ? "i/o" : "mem", + r->addr, r->addr + r->size - 1); } } void hmp_pcie_aer_inject_error(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; const char *id = qdict_get_str(qdict, "id"); const char *error_name; @@ -242,9 +242,9 @@ void hmp_pcie_aer_inject_error(MonitorHMP *hmp, const QDict *qdict) } - monitor_printf(mon, "OK id: %s root bus: %s, bus: %x devfn: %x.%x\n", - id, pci_root_bus_path(dev), pci_dev_bus_num(dev), - PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn)); + monitor_hmp_printf(hmp, "OK id: %s root bus: %s, bus: %x devfn: %x.%x\n", + id, pci_root_bus_path(dev), pci_dev_bus_num(dev), + PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn)); out: hmp_handle_error(hmp, err); diff --git a/hw/pci/pci-stub.c b/hw/pci/pci-stub.c index a80e34175462..7e2797300ba0 100644 --- a/hw/pci/pci-stub.c +++ b/hw/pci/pci-stub.c @@ -40,8 +40,7 @@ void hmp_info_pci(MonitorHMP *hmp, const QDict *qdict) void hmp_pcie_aer_inject_error(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); - monitor_printf(mon, "PCI devices not supported\n"); + monitor_hmp_printf(hmp, "PCI devices not supported\n"); } /* kvm-all wants this */ diff --git a/hw/s390x/s390-skeys.c b/hw/s390x/s390-skeys.c index d8afaf730639..b5e56a16cce1 100644 --- a/hw/s390x/s390-skeys.c +++ b/hw/s390x/s390-skeys.c @@ -106,7 +106,6 @@ static void write_keys(FILE *f, uint8_t *keys, uint64_t startgfn, void hmp_info_skeys(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); S390SKeysState *ss = s390_get_skeys_device(); S390SKeysClass *skeyclass = S390_SKEYS_GET_CLASS(ss); uint64_t addr = qdict_get_int(qdict, "addr"); @@ -115,24 +114,24 @@ void hmp_info_skeys(MonitorHMP *hmp, const QDict *qdict) /* Quick check to see if guest is using storage keys*/ if (!skeyclass->skeys_are_enabled(ss)) { - monitor_printf(mon, "Error: This guest is not using storage keys\n"); + monitor_hmp_printf(hmp, "Error: This guest is not using storage keys\n"); return; } if (!address_space_access_valid(&address_space_memory, addr & TARGET_PAGE_MASK, TARGET_PAGE_SIZE, false, MEMTXATTRS_UNSPECIFIED)) { - monitor_printf(mon, "Error: The given address is not valid\n"); + monitor_hmp_printf(hmp, "Error: The given address is not valid\n"); return; } r = skeyclass->get_skeys(ss, addr / TARGET_PAGE_SIZE, 1, &key); if (r < 0) { - monitor_printf(mon, "Error: %s\n", strerror(-r)); + monitor_hmp_printf(hmp, "Error: %s\n", strerror(-r)); return; } - monitor_printf(mon, " key: 0x%X\n", key); + monitor_hmp_printf(hmp, " key: 0x%X\n", key); } void hmp_dump_skeys(MonitorHMP *hmp, const QDict *qdict) diff --git a/hw/s390x/s390-stattrib.c b/hw/s390x/s390-stattrib.c index b4a405455901..644298f7f0b2 100644 --- a/hw/s390x/s390-stattrib.c +++ b/hw/s390x/s390-stattrib.c @@ -61,7 +61,6 @@ void s390_stattrib_init(void) void hmp_migrationmode(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); S390StAttribState *sas = s390_get_stattrib_device(); S390StAttribClass *sac = S390_STATTRIB_GET_CLASS(sas); uint64_t what = qdict_get_int(qdict, "mode"); @@ -70,14 +69,13 @@ void hmp_migrationmode(MonitorHMP *hmp, const QDict *qdict) r = sac->set_migrationmode(sas, what, &local_err); if (r < 0) { - monitor_printf(mon, "Error: %s", error_get_pretty(local_err)); + monitor_hmp_printf(hmp, "Error: %s", error_get_pretty(local_err)); error_free(local_err); } } void hmp_info_cmma(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); S390StAttribState *sas = s390_get_stattrib_device(); S390StAttribClass *sac = S390_STATTRIB_GET_CLASS(sas); uint64_t addr = qdict_get_int(qdict, "addr"); @@ -87,27 +85,27 @@ void hmp_info_cmma(MonitorHMP *hmp, const QDict *qdict) vals = g_try_malloc(buflen); if (!vals) { - monitor_printf(mon, "Error: %s\n", strerror(errno)); + monitor_hmp_printf(hmp, "Error: %s\n", strerror(errno)); return; } len = sac->peek_stattr(sas, addr / TARGET_PAGE_SIZE, buflen, vals); if (len < 0) { - monitor_printf(mon, "Error: %s", strerror(-len)); + monitor_hmp_printf(hmp, "Error: %s", strerror(-len)); goto out; } - monitor_printf(mon, " CMMA attributes, " - "pages %" PRIu64 "+%d (0x%" PRIx64 "):\n", - addr / TARGET_PAGE_SIZE, len, addr & ~TARGET_PAGE_MASK); + monitor_hmp_printf(hmp, " CMMA attributes, " + "pages %" PRIu64 "+%d (0x%" PRIx64 "):\n", + addr / TARGET_PAGE_SIZE, len, addr & ~TARGET_PAGE_MASK); for (cx = 0; cx < len; cx++) { if (cx % 8 == 7) { - monitor_printf(mon, "%02x\n", vals[cx]); + monitor_hmp_printf(hmp, "%02x\n", vals[cx]); } else { - monitor_printf(mon, "%02x", vals[cx]); + monitor_hmp_printf(hmp, "%02x", vals[cx]); } } - monitor_printf(mon, "\n"); + monitor_hmp_printf(hmp, "\n"); out: g_free(vals); diff --git a/hw/uefi/ovmf-log.c b/hw/uefi/ovmf-log.c index 0d59a74ad60e..0249eea2cfe9 100644 --- a/hw/uefi/ovmf-log.c +++ b/hw/uefi/ovmf-log.c @@ -258,7 +258,6 @@ FirmwareLog *qmp_query_firmware_log(bool have_max_size, uint64_t max_size, void hmp_info_firmware_log(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); g_autofree gchar *log_esc = NULL; g_autofree guchar *log_out = NULL; Error *err = NULL; @@ -278,10 +277,10 @@ void hmp_info_firmware_log(MonitorHMP *hmp, const QDict *qdict) if (log->version) { g_autofree gchar *esc = g_strescape(log->version, NULL); - monitor_printf(mon, "[ firmware version: %s ]\n", esc); + monitor_hmp_printf(hmp, "[ firmware version: %s ]\n", esc); } log_out = g_base64_decode(log->log, &log_len); log_esc = g_strescape((gchar *)log_out, "\r\n"); - monitor_printf(mon, "%s\n", log_esc); + monitor_hmp_printf(hmp, "%s\n", log_esc); } diff --git a/hw/usb/bus.c b/hw/usb/bus.c index 9b9b2e7c2f8f..fe3dbfa2227c 100644 --- a/hw/usb/bus.c +++ b/hw/usb/bus.c @@ -546,14 +546,15 @@ static const char *usb_speed(unsigned int speed) static void usb_bus_dev_print(Monitor *mon, DeviceState *qdev, int indent) { + MonitorHMP *hmp = MONITOR_HMP(mon); USBDevice *dev = USB_DEVICE(qdev); USBBus *bus = usb_bus_from_device(dev); - monitor_printf(mon, "%*saddr %d.%d, port %s, speed %s, name %s%s\n", - indent, "", bus->busnr, dev->addr, - dev->port ? dev->port->path : "-", - usb_speed(dev->speed), dev->product_desc, - dev->attached ? ", attached" : ""); + monitor_hmp_printf(hmp, "%*saddr %d.%d, port %s, speed %s, name %s%s\n", + indent, "", bus->busnr, dev->addr, + dev->port ? dev->port->path : "-", + usb_speed(dev->speed), dev->product_desc, + dev->attached ? ", attached" : ""); } static char *usb_get_dev_path(DeviceState *qdev) diff --git a/hw/usb/host-libusb.c b/hw/usb/host-libusb.c index c02343d3a655..9b9f26a1078e 100644 --- a/hw/usb/host-libusb.c +++ b/hw/usb/host-libusb.c @@ -1922,7 +1922,6 @@ static void usb_host_auto_check(void *unused) void hmp_info_usbhost(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); libusb_device **devs = NULL; struct libusb_device_descriptor ddesc; char port[16]; @@ -1941,14 +1940,14 @@ void hmp_info_usbhost(MonitorHMP *hmp, const QDict *qdict) continue; } usb_host_get_port(devs[i], port, sizeof(port)); - monitor_printf(mon, " Bus %d, Addr %d, Port %s, Speed %s Mb/s\n", - libusb_get_bus_number(devs[i]), - libusb_get_device_address(devs[i]), - port, - speed_name[libusb_get_device_speed(devs[i])]); - monitor_printf(mon, " Class %02x:", ddesc.bDeviceClass); - monitor_printf(mon, " USB device %04x:%04x", - ddesc.idVendor, ddesc.idProduct); + monitor_hmp_printf(hmp, " Bus %d, Addr %d, Port %s, Speed %s Mb/s\n", + libusb_get_bus_number(devs[i]), + libusb_get_device_address(devs[i]), + port, + speed_name[libusb_get_device_speed(devs[i])]); + monitor_hmp_printf(hmp, " Class %02x:", ddesc.bDeviceClass); + monitor_hmp_printf(hmp, " USB device %04x:%04x", + ddesc.idVendor, ddesc.idProduct); if (ddesc.iProduct) { libusb_device_handle *handle; if (libusb_open(devs[i], &handle) == 0) { @@ -1957,10 +1956,10 @@ void hmp_info_usbhost(MonitorHMP *hmp, const QDict *qdict) ddesc.iProduct, name, sizeof(name)); libusb_close(handle); - monitor_printf(mon, ", %s", name); + monitor_hmp_printf(hmp, ", %s", name); } } - monitor_printf(mon, "\n"); + monitor_hmp_printf(hmp, "\n"); } libusb_free_device_list(devs, 1); } diff --git a/hw/virtio/virtio-hmp-cmds.c b/hw/virtio/virtio-hmp-cmds.c index fb36c8b9274c..e5da6f00699d 100644 --- a/hw/virtio/virtio-hmp-cmds.c +++ b/hw/virtio/virtio-hmp-cmds.c @@ -12,77 +12,76 @@ #include "qobject/qdict.h" -static void hmp_virtio_dump_protocols(Monitor *mon, +static void hmp_virtio_dump_protocols(MonitorHMP *hmp, VhostDeviceProtocols *pcol) { strList *pcol_list = pcol->protocols; while (pcol_list) { - monitor_printf(mon, "\t%s", pcol_list->value); + monitor_hmp_printf(hmp, "\t%s", pcol_list->value); pcol_list = pcol_list->next; if (pcol_list != NULL) { - monitor_printf(mon, ",\n"); + monitor_hmp_printf(hmp, ",\n"); } } - monitor_printf(mon, "\n"); + monitor_hmp_printf(hmp, "\n"); if (pcol->has_unknown_protocols) { - monitor_printf(mon, " unknown-protocols(0x%016"PRIx64")\n", - pcol->unknown_protocols); + monitor_hmp_printf(hmp, " unknown-protocols(0x%016"PRIx64")\n", + pcol->unknown_protocols); } } -static void hmp_virtio_dump_status(Monitor *mon, +static void hmp_virtio_dump_status(MonitorHMP *hmp, VirtioDeviceStatus *status) { strList *status_list = status->statuses; while (status_list) { - monitor_printf(mon, "\t%s", status_list->value); + monitor_hmp_printf(hmp, "\t%s", status_list->value); status_list = status_list->next; if (status_list != NULL) { - monitor_printf(mon, ",\n"); + monitor_hmp_printf(hmp, ",\n"); } } - monitor_printf(mon, "\n"); + monitor_hmp_printf(hmp, "\n"); if (status->has_unknown_statuses) { - monitor_printf(mon, " unknown-statuses(0x%016"PRIx32")\n", - status->unknown_statuses); + monitor_hmp_printf(hmp, " unknown-statuses(0x%016"PRIx32")\n", + status->unknown_statuses); } } -static void hmp_virtio_dump_features(Monitor *mon, +static void hmp_virtio_dump_features(MonitorHMP *hmp, VirtioDeviceFeatures *features) { strList *transport_list = features->transports; while (transport_list) { - monitor_printf(mon, "\t%s", transport_list->value); + monitor_hmp_printf(hmp, "\t%s", transport_list->value); transport_list = transport_list->next; if (transport_list != NULL) { - monitor_printf(mon, ",\n"); + monitor_hmp_printf(hmp, ",\n"); } } - monitor_printf(mon, "\n"); + monitor_hmp_printf(hmp, "\n"); strList *list = features->dev_features; if (list) { while (list) { - monitor_printf(mon, "\t%s", list->value); + monitor_hmp_printf(hmp, "\t%s", list->value); list = list->next; if (list != NULL) { - monitor_printf(mon, ",\n"); + monitor_hmp_printf(hmp, ",\n"); } } - monitor_printf(mon, "\n"); + monitor_hmp_printf(hmp, "\n"); } if (features->has_unknown_dev_features) { - monitor_printf(mon, " unknown-features(0x%016"PRIx64"%016"PRIx64")\n", - features->unknown_dev_features2, - features->unknown_dev_features); + monitor_hmp_printf(hmp, " unknown-features(0x%016"PRIx64"%016"PRIx64")\n", + features->unknown_dev_features2, + features->unknown_dev_features); } } void hmp_virtio_query(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; VirtioInfoList *list = qmp_x_query_virtio(&err); VirtioInfoList *node; @@ -93,14 +92,14 @@ void hmp_virtio_query(MonitorHMP *hmp, const QDict *qdict) } if (list == NULL) { - monitor_printf(mon, "No VirtIO devices\n"); + monitor_hmp_printf(hmp, "No VirtIO devices\n"); return; } node = list; while (node) { - monitor_printf(mon, "%s [%s]\n", node->value->path, - node->value->name); + monitor_hmp_printf(hmp, "%s [%s]\n", node->value->path, + node->value->name); node = node->next; } qapi_free_VirtioInfoList(list); @@ -108,7 +107,6 @@ void hmp_virtio_query(MonitorHMP *hmp, const QDict *qdict) void hmp_virtio_status(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; const char *path = qdict_get_try_str(qdict, "path"); VirtioStatus *s = qmp_x_query_virtio_status(path, &err); @@ -118,68 +116,68 @@ void hmp_virtio_status(MonitorHMP *hmp, const QDict *qdict) return; } - monitor_printf(mon, "%s:\n", path); - monitor_printf(mon, " device_name: %s %s\n", - s->name, s->vhost_dev ? "(vhost)" : ""); - monitor_printf(mon, " device_id: %d\n", s->device_id); - monitor_printf(mon, " vhost_started: %s\n", - s->vhost_started ? "true" : "false"); - monitor_printf(mon, " bus_name: %s\n", s->bus_name); - monitor_printf(mon, " broken: %s\n", - s->broken ? "true" : "false"); - monitor_printf(mon, " disabled: %s\n", - s->disabled ? "true" : "false"); - monitor_printf(mon, " disable_legacy_check: %s\n", - s->disable_legacy_check ? "true" : "false"); - monitor_printf(mon, " started: %s\n", - s->started ? "true" : "false"); - monitor_printf(mon, " use_started: %s\n", - s->use_started ? "true" : "false"); - monitor_printf(mon, " start_on_kick: %s\n", - s->start_on_kick ? "true" : "false"); - monitor_printf(mon, " use_guest_notifier_mask: %s\n", - s->use_guest_notifier_mask ? "true" : "false"); - monitor_printf(mon, " vm_running: %s\n", - s->vm_running ? "true" : "false"); - monitor_printf(mon, " num_vqs: %"PRId64"\n", s->num_vqs); - monitor_printf(mon, " queue_sel: %d\n", - s->queue_sel); - monitor_printf(mon, " isr: %d\n", s->isr); - monitor_printf(mon, " endianness: %s\n", - s->device_endian); - monitor_printf(mon, " status:\n"); - hmp_virtio_dump_status(mon, s->status); - monitor_printf(mon, " Guest features:\n"); - hmp_virtio_dump_features(mon, s->guest_features); - monitor_printf(mon, " Host features:\n"); - hmp_virtio_dump_features(mon, s->host_features); - monitor_printf(mon, " Backend features:\n"); - hmp_virtio_dump_features(mon, s->backend_features); + monitor_hmp_printf(hmp, "%s:\n", path); + monitor_hmp_printf(hmp, " device_name: %s %s\n", + s->name, s->vhost_dev ? "(vhost)" : ""); + monitor_hmp_printf(hmp, " device_id: %d\n", s->device_id); + monitor_hmp_printf(hmp, " vhost_started: %s\n", + s->vhost_started ? "true" : "false"); + monitor_hmp_printf(hmp, " bus_name: %s\n", s->bus_name); + monitor_hmp_printf(hmp, " broken: %s\n", + s->broken ? "true" : "false"); + monitor_hmp_printf(hmp, " disabled: %s\n", + s->disabled ? "true" : "false"); + monitor_hmp_printf(hmp, " disable_legacy_check: %s\n", + s->disable_legacy_check ? "true" : "false"); + monitor_hmp_printf(hmp, " started: %s\n", + s->started ? "true" : "false"); + monitor_hmp_printf(hmp, " use_started: %s\n", + s->use_started ? "true" : "false"); + monitor_hmp_printf(hmp, " start_on_kick: %s\n", + s->start_on_kick ? "true" : "false"); + monitor_hmp_printf(hmp, " use_guest_notifier_mask: %s\n", + s->use_guest_notifier_mask ? "true" : "false"); + monitor_hmp_printf(hmp, " vm_running: %s\n", + s->vm_running ? "true" : "false"); + monitor_hmp_printf(hmp, " num_vqs: %"PRId64"\n", s->num_vqs); + monitor_hmp_printf(hmp, " queue_sel: %d\n", + s->queue_sel); + monitor_hmp_printf(hmp, " isr: %d\n", s->isr); + monitor_hmp_printf(hmp, " endianness: %s\n", + s->device_endian); + monitor_hmp_printf(hmp, " status:\n"); + hmp_virtio_dump_status(hmp, s->status); + monitor_hmp_printf(hmp, " Guest features:\n"); + hmp_virtio_dump_features(hmp, s->guest_features); + monitor_hmp_printf(hmp, " Host features:\n"); + hmp_virtio_dump_features(hmp, s->host_features); + monitor_hmp_printf(hmp, " Backend features:\n"); + hmp_virtio_dump_features(hmp, s->backend_features); if (s->vhost_dev) { - monitor_printf(mon, " VHost:\n"); - monitor_printf(mon, " nvqs: %d\n", - s->vhost_dev->nvqs); - monitor_printf(mon, " vq_index: %"PRId64"\n", - s->vhost_dev->vq_index); - monitor_printf(mon, " max_queues: %"PRId64"\n", - s->vhost_dev->max_queues); - monitor_printf(mon, " n_mem_sections: %"PRId64"\n", - s->vhost_dev->n_mem_sections); - monitor_printf(mon, " n_tmp_sections: %"PRId64"\n", - s->vhost_dev->n_tmp_sections); - monitor_printf(mon, " backend_cap: %"PRId64"\n", - s->vhost_dev->backend_cap); - monitor_printf(mon, " log_enabled: %s\n", - s->vhost_dev->log_enabled ? "true" : "false"); - monitor_printf(mon, " log_size: %"PRId64"\n", - s->vhost_dev->log_size); - monitor_printf(mon, " Features:\n"); - hmp_virtio_dump_features(mon, s->vhost_dev->features); - monitor_printf(mon, " Acked features:\n"); - hmp_virtio_dump_features(mon, s->vhost_dev->acked_features); - monitor_printf(mon, " Protocol features:\n"); - hmp_virtio_dump_protocols(mon, s->vhost_dev->protocol_features); + monitor_hmp_printf(hmp, " VHost:\n"); + monitor_hmp_printf(hmp, " nvqs: %d\n", + s->vhost_dev->nvqs); + monitor_hmp_printf(hmp, " vq_index: %"PRId64"\n", + s->vhost_dev->vq_index); + monitor_hmp_printf(hmp, " max_queues: %"PRId64"\n", + s->vhost_dev->max_queues); + monitor_hmp_printf(hmp, " n_mem_sections: %"PRId64"\n", + s->vhost_dev->n_mem_sections); + monitor_hmp_printf(hmp, " n_tmp_sections: %"PRId64"\n", + s->vhost_dev->n_tmp_sections); + monitor_hmp_printf(hmp, " backend_cap: %"PRId64"\n", + s->vhost_dev->backend_cap); + monitor_hmp_printf(hmp, " log_enabled: %s\n", + s->vhost_dev->log_enabled ? "true" : "false"); + monitor_hmp_printf(hmp, " log_size: %"PRId64"\n", + s->vhost_dev->log_size); + monitor_hmp_printf(hmp, " Features:\n"); + hmp_virtio_dump_features(hmp, s->vhost_dev->features); + monitor_hmp_printf(hmp, " Acked features:\n"); + hmp_virtio_dump_features(hmp, s->vhost_dev->acked_features); + monitor_hmp_printf(hmp, " Protocol features:\n"); + hmp_virtio_dump_protocols(hmp, s->vhost_dev->protocol_features); } qapi_free_VirtioStatus(s); @@ -187,7 +185,6 @@ void hmp_virtio_status(MonitorHMP *hmp, const QDict *qdict) void hmp_vhost_queue_status(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; const char *path = qdict_get_try_str(qdict, "path"); int queue = qdict_get_int(qdict, "queue"); @@ -199,29 +196,28 @@ void hmp_vhost_queue_status(MonitorHMP *hmp, const QDict *qdict) return; } - monitor_printf(mon, "%s:\n", path); - monitor_printf(mon, " device_name: %s (vhost)\n", - s->name); - monitor_printf(mon, " kick: %"PRId64"\n", s->kick); - monitor_printf(mon, " call: %"PRId64"\n", s->call); - monitor_printf(mon, " VRing:\n"); - monitor_printf(mon, " num: %"PRId64"\n", s->num); - monitor_printf(mon, " desc_phys: 0x%016"PRIx64"\n", - s->desc_phys); - monitor_printf(mon, " desc_size: %"PRId32"\n", s->desc_size); - monitor_printf(mon, " avail_phys: 0x%016"PRIx64"\n", - s->avail_phys); - monitor_printf(mon, " avail_size: %"PRId32"\n", s->avail_size); - monitor_printf(mon, " used_phys: 0x%016"PRIx64"\n", - s->used_phys); - monitor_printf(mon, " used_size: %"PRId32"\n", s->used_size); + monitor_hmp_printf(hmp, "%s:\n", path); + monitor_hmp_printf(hmp, " device_name: %s (vhost)\n", + s->name); + monitor_hmp_printf(hmp, " kick: %"PRId64"\n", s->kick); + monitor_hmp_printf(hmp, " call: %"PRId64"\n", s->call); + monitor_hmp_printf(hmp, " VRing:\n"); + monitor_hmp_printf(hmp, " num: %"PRId64"\n", s->num); + monitor_hmp_printf(hmp, " desc_phys: 0x%016"PRIx64"\n", + s->desc_phys); + monitor_hmp_printf(hmp, " desc_size: %"PRId32"\n", s->desc_size); + monitor_hmp_printf(hmp, " avail_phys: 0x%016"PRIx64"\n", + s->avail_phys); + monitor_hmp_printf(hmp, " avail_size: %"PRId32"\n", s->avail_size); + monitor_hmp_printf(hmp, " used_phys: 0x%016"PRIx64"\n", + s->used_phys); + monitor_hmp_printf(hmp, " used_size: %"PRId32"\n", s->used_size); qapi_free_VirtVhostQueueStatus(s); } void hmp_virtio_queue_status(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; const char *path = qdict_get_try_str(qdict, "path"); int queue = qdict_get_int(qdict, "queue"); @@ -232,42 +228,41 @@ void hmp_virtio_queue_status(MonitorHMP *hmp, const QDict *qdict) return; } - monitor_printf(mon, "%s:\n", path); - monitor_printf(mon, " device_name: %s\n", s->name); - monitor_printf(mon, " queue_index: %d\n", s->queue_index); - monitor_printf(mon, " inuse: %d\n", s->inuse); - monitor_printf(mon, " used_idx: %d\n", s->used_idx); - monitor_printf(mon, " signalled_used: %d\n", - s->signalled_used); - monitor_printf(mon, " signalled_used_valid: %s\n", - s->signalled_used_valid ? "true" : "false"); + monitor_hmp_printf(hmp, "%s:\n", path); + monitor_hmp_printf(hmp, " device_name: %s\n", s->name); + monitor_hmp_printf(hmp, " queue_index: %d\n", s->queue_index); + monitor_hmp_printf(hmp, " inuse: %d\n", s->inuse); + monitor_hmp_printf(hmp, " used_idx: %d\n", s->used_idx); + monitor_hmp_printf(hmp, " signalled_used: %d\n", + s->signalled_used); + monitor_hmp_printf(hmp, " signalled_used_valid: %s\n", + s->signalled_used_valid ? "true" : "false"); if (s->has_last_avail_idx) { - monitor_printf(mon, " last_avail_idx: %d\n", - s->last_avail_idx); + monitor_hmp_printf(hmp, " last_avail_idx: %d\n", + s->last_avail_idx); } if (s->has_shadow_avail_idx) { - monitor_printf(mon, " shadow_avail_idx: %d\n", - s->shadow_avail_idx); + monitor_hmp_printf(hmp, " shadow_avail_idx: %d\n", + s->shadow_avail_idx); } - monitor_printf(mon, " VRing:\n"); - monitor_printf(mon, " num: %"PRId32"\n", s->vring_num); - monitor_printf(mon, " num_default: %"PRId32"\n", - s->vring_num_default); - monitor_printf(mon, " align: %"PRId32"\n", - s->vring_align); - monitor_printf(mon, " desc: 0x%016"PRIx64"\n", - s->vring_desc); - monitor_printf(mon, " avail: 0x%016"PRIx64"\n", - s->vring_avail); - monitor_printf(mon, " used: 0x%016"PRIx64"\n", - s->vring_used); + monitor_hmp_printf(hmp, " VRing:\n"); + monitor_hmp_printf(hmp, " num: %"PRId32"\n", s->vring_num); + monitor_hmp_printf(hmp, " num_default: %"PRId32"\n", + s->vring_num_default); + monitor_hmp_printf(hmp, " align: %"PRId32"\n", + s->vring_align); + monitor_hmp_printf(hmp, " desc: 0x%016"PRIx64"\n", + s->vring_desc); + monitor_hmp_printf(hmp, " avail: 0x%016"PRIx64"\n", + s->vring_avail); + monitor_hmp_printf(hmp, " used: 0x%016"PRIx64"\n", + s->vring_used); qapi_free_VirtQueueStatus(s); } void hmp_virtio_queue_element(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; const char *path = qdict_get_try_str(qdict, "path"); int queue = qdict_get_int(qdict, "queue"); @@ -282,41 +277,41 @@ void hmp_virtio_queue_element(MonitorHMP *hmp, const QDict *qdict) return; } - monitor_printf(mon, "%s:\n", path); - monitor_printf(mon, " device_name: %s\n", e->name); - monitor_printf(mon, " index: %d\n", e->index); - monitor_printf(mon, " desc:\n"); - monitor_printf(mon, " descs:\n"); + monitor_hmp_printf(hmp, "%s:\n", path); + monitor_hmp_printf(hmp, " device_name: %s\n", e->name); + monitor_hmp_printf(hmp, " index: %d\n", e->index); + monitor_hmp_printf(hmp, " desc:\n"); + monitor_hmp_printf(hmp, " descs:\n"); list = e->descs; while (list) { - monitor_printf(mon, " addr 0x%"PRIx64" len %d", - list->value->addr, list->value->len); + monitor_hmp_printf(hmp, " addr 0x%"PRIx64" len %d", + list->value->addr, list->value->len); if (list->value->flags) { strList *flag = list->value->flags; - monitor_printf(mon, " ("); + monitor_hmp_printf(hmp, " ("); while (flag) { - monitor_printf(mon, "%s", flag->value); + monitor_hmp_printf(hmp, "%s", flag->value); flag = flag->next; if (flag) { - monitor_printf(mon, ", "); + monitor_hmp_printf(hmp, ", "); } } - monitor_printf(mon, ")"); + monitor_hmp_printf(hmp, ")"); } list = list->next; if (list) { - monitor_printf(mon, ",\n"); + monitor_hmp_printf(hmp, ",\n"); } } - monitor_printf(mon, "\n"); - monitor_printf(mon, " avail:\n"); - monitor_printf(mon, " flags: %d\n", e->avail->flags); - monitor_printf(mon, " idx: %d\n", e->avail->idx); - monitor_printf(mon, " ring: %d\n", e->avail->ring); - monitor_printf(mon, " used:\n"); - monitor_printf(mon, " flags: %d\n", e->used->flags); - monitor_printf(mon, " idx: %d\n", e->used->idx); + monitor_hmp_printf(hmp, "\n"); + monitor_hmp_printf(hmp, " avail:\n"); + monitor_hmp_printf(hmp, " flags: %d\n", e->avail->flags); + monitor_hmp_printf(hmp, " idx: %d\n", e->avail->idx); + monitor_hmp_printf(hmp, " ring: %d\n", e->avail->ring); + monitor_hmp_printf(hmp, " used:\n"); + monitor_hmp_printf(hmp, " flags: %d\n", e->used->flags); + monitor_hmp_printf(hmp, " idx: %d\n", e->used->idx); qapi_free_VirtioQueueElement(e); } diff --git a/hw/xen/xen-bus.c b/hw/xen/xen-bus.c index a563f6066bb4..4075b5b001ae 100644 --- a/hw/xen/xen-bus.c +++ b/hw/xen/xen-bus.c @@ -103,10 +103,11 @@ abort: static void xen_bus_print_dev(Monitor *mon, DeviceState *dev, int indent) { + MonitorHMP *hmp = MONITOR_HMP(mon); XenDevice *xendev = XEN_DEVICE(dev); - monitor_printf(mon, "%*sname = '%s' frontend_id = %u\n", - indent, "", xendev->name, xendev->frontend_id); + monitor_hmp_printf(hmp, "%*sname = '%s' frontend_id = %u\n", + indent, "", xendev->name, xendev->frontend_id); } static char *xen_bus_get_dev_path(DeviceState *dev) diff --git a/include/disas/disas.h b/include/disas/disas.h index c702b1effc1c..47daa9b4d2df 100644 --- a/include/disas/disas.h +++ b/include/disas/disas.h @@ -1,13 +1,15 @@ #ifndef QEMU_DISAS_H #define QEMU_DISAS_H +#include "monitor/hmp.h" + /* Disassemble this for me please... (debugging). */ #ifdef CONFIG_TCG void disas(FILE *out, const void *code, size_t size); void target_disas(FILE *out, CPUState *cpu, const DisasContextBase *db); #endif -void monitor_disas(Monitor *mon, CPUState *cpu, uint64_t pc, +void monitor_disas(MonitorHMP *hmp, CPUState *cpu, uint64_t pc, int nb_insn, bool is_physical); #ifdef CONFIG_PLUGIN diff --git a/include/monitor/hmp.h b/include/monitor/hmp.h index 3fd17048b319..f10bf83df86d 100644 --- a/include/monitor/hmp.h +++ b/include/monitor/hmp.h @@ -38,10 +38,10 @@ void monitor_new_hmp(const char *id, const char *chardev_id, MonitorHMP *monitor_cur_hmp(void); -int monitor_vprintf(Monitor *mon, const char *fmt, va_list ap) +int monitor_hmp_vprintf(MonitorHMP *mon, const char *fmt, va_list ap) G_GNUC_PRINTF(2, 0); -int monitor_printf(Monitor *mon, const char *fmt, ...) G_GNUC_PRINTF(2, 3); -void monitor_printc(Monitor *mon, int ch); +int monitor_hmp_printf(MonitorHMP *mon, const char *fmt, ...) G_GNUC_PRINTF(2, 3); +void monitor_hmp_printc(MonitorHMP *mon, int ch); void monitor_hmp_read_command(MonitorHMP *hmp, int show_prompt); int monitor_hmp_read_password(MonitorHMP *hmp, ReadLineFunc *readline_func, @@ -58,7 +58,7 @@ CPUState *monitor_hmp_get_cpu(MonitorHMP *hmp); int monitor_hmp_get_cpu_index(MonitorHMP *hmp); bool hmp_handle_error(MonitorHMP *hmp, Error *err); -void hmp_help_cmd(Monitor *mon, const char *name); +void hmp_help_cmd(MonitorHMP *hmp, const char *name); strList *hmp_split_at_comma(const char *str); void hmp_info_name(MonitorHMP *hmp, const QDict *qdict); @@ -114,11 +114,11 @@ void hmp_set_password(MonitorHMP *hmp, const QDict *qdict); void hmp_expire_password(MonitorHMP *hmp, const QDict *qdict); void hmp_change(MonitorHMP *hmp, const QDict *qdict); #ifdef CONFIG_VNC -void hmp_change_vnc(Monitor *mon, const char *device, const char *target, +void hmp_change_vnc(MonitorHMP *hmp, const char *device, const char *target, const char *arg, const char *read_only, bool force, Error **errp); #endif -void hmp_change_medium(Monitor *mon, const char *device, const char *target, +void hmp_change_medium(MonitorHMP *hmp, const char *device, const char *target, const char *arg, const char *read_only, bool force, Error **errp); void hmp_migrate(MonitorHMP *hmp, const QDict *qdict); diff --git a/migration/dirtyrate.c b/migration/dirtyrate.c index 3c0931796ce2..bdbb2aaa99db 100644 --- a/migration/dirtyrate.c +++ b/migration/dirtyrate.c @@ -858,34 +858,33 @@ struct DirtyRateInfo *qmp_query_dirty_rate(bool has_calc_time_unit, void hmp_info_dirty_rate(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); DirtyRateInfo *info = query_dirty_rate_info(TIME_UNIT_SECOND); - monitor_printf(mon, "Status: %s\n", - DirtyRateStatus_str(info->status)); - monitor_printf(mon, "Start Time: %"PRIi64" (ms)\n", - info->start_time); + monitor_hmp_printf(hmp, "Status: %s\n", + DirtyRateStatus_str(info->status)); + monitor_hmp_printf(hmp, "Start Time: %"PRIi64" (ms)\n", + info->start_time); if (info->mode == DIRTY_RATE_MEASURE_MODE_PAGE_SAMPLING) { - monitor_printf(mon, "Sample Pages: %"PRIu64" (per GB)\n", - info->sample_pages); + monitor_hmp_printf(hmp, "Sample Pages: %"PRIu64" (per GB)\n", + info->sample_pages); } - monitor_printf(mon, "Period: %"PRIi64" (sec)\n", - info->calc_time); - monitor_printf(mon, "Mode: %s\n", - DirtyRateMeasureMode_str(info->mode)); - monitor_printf(mon, "Dirty rate: "); + monitor_hmp_printf(hmp, "Period: %"PRIi64" (sec)\n", + info->calc_time); + monitor_hmp_printf(hmp, "Mode: %s\n", + DirtyRateMeasureMode_str(info->mode)); + monitor_hmp_printf(hmp, "Dirty rate: "); if (info->has_dirty_rate) { - monitor_printf(mon, "%"PRIi64" (MB/s)\n", info->dirty_rate); + monitor_hmp_printf(hmp, "%"PRIi64" (MB/s)\n", info->dirty_rate); if (info->has_vcpu_dirty_rate) { DirtyRateVcpuList *rate, *head = info->vcpu_dirty_rate; for (rate = head; rate != NULL; rate = rate->next) { - monitor_printf(mon, "vcpu[%"PRIi64"], Dirty rate: %"PRIi64 - " (MB/s)\n", rate->value->id, - rate->value->dirty_rate); + monitor_hmp_printf(hmp, "vcpu[%"PRIi64"], Dirty rate: %"PRIi64 + " (MB/s)\n", rate->value->id, + rate->value->dirty_rate); } } } else { - monitor_printf(mon, "(not ready)\n"); + monitor_hmp_printf(hmp, "(not ready)\n"); } qapi_free_DirtyRateVcpuList(info->vcpu_dirty_rate); @@ -894,7 +893,6 @@ void hmp_info_dirty_rate(MonitorHMP *hmp, const QDict *qdict) void hmp_calc_dirty_rate(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); int64_t sec = qdict_get_try_int(qdict, "second", 0); int64_t sample_pages = qdict_get_try_int(qdict, "sample_pages_per_GB", -1); bool has_sample_pages = (sample_pages != -1); @@ -904,13 +902,13 @@ void hmp_calc_dirty_rate(MonitorHMP *hmp, const QDict *qdict) Error *err = NULL; if (!sec) { - monitor_printf(mon, "Incorrect period length specified!\n"); + monitor_hmp_printf(hmp, "Incorrect period length specified!\n"); return; } if (dirty_ring && dirty_bitmap) { - monitor_printf(mon, "Either dirty ring or dirty bitmap " - "can be specified!\n"); + monitor_hmp_printf(hmp, "Either dirty ring or dirty bitmap " + "can be specified!\n"); return; } @@ -930,7 +928,7 @@ void hmp_calc_dirty_rate(MonitorHMP *hmp, const QDict *qdict) return; } - monitor_printf(mon, "Starting dirty rate measurement with period %"PRIi64 - " seconds\n", sec); - monitor_printf(mon, "[Please use 'info dirty_rate' to check results]\n"); + monitor_hmp_printf(hmp, "Starting dirty rate measurement with period %"PRIi64 + " seconds\n", sec); + monitor_hmp_printf(hmp, "[Please use 'info dirty_rate' to check results]\n"); } diff --git a/migration/migration-hmp-cmds.c b/migration/migration-hmp-cmds.c index a164a59080c5..6fe189471899 100644 --- a/migration/migration-hmp-cmds.c +++ b/migration/migration-hmp-cmds.c @@ -36,23 +36,23 @@ #include "options.h" #include "migration.h" -static void migration_global_dump(Monitor *mon) +static void migration_global_dump(MonitorHMP *hmp) { MigrationState *ms = migrate_get_current(); - monitor_printf(mon, "Globals:\n"); - monitor_printf(mon, " store-global-state: %s\n", - ms->store_global_state ? "on" : "off"); - monitor_printf(mon, " only-migratable: %s\n", - only_migratable ? "on" : "off"); - monitor_printf(mon, " send-configuration: %s\n", - ms->send_configuration ? "on" : "off"); - monitor_printf(mon, " send-section-footer: %s\n", - ms->send_section_footer ? "on" : "off"); - monitor_printf(mon, " send-switchover-start: %s\n", - ms->send_switchover_start ? "on" : "off"); - monitor_printf(mon, " clear-bitmap-shift: %u\n", - ms->clear_bitmap_shift); + monitor_hmp_printf(hmp, "Globals:\n"); + monitor_hmp_printf(hmp, " store-global-state: %s\n", + ms->store_global_state ? "on" : "off"); + monitor_hmp_printf(hmp, " only-migratable: %s\n", + only_migratable ? "on" : "off"); + monitor_hmp_printf(hmp, " send-configuration: %s\n", + ms->send_configuration ? "on" : "off"); + monitor_hmp_printf(hmp, " send-section-footer: %s\n", + ms->send_section_footer ? "on" : "off"); + monitor_hmp_printf(hmp, " send-switchover-start: %s\n", + ms->send_switchover_start ? "on" : "off"); + monitor_hmp_printf(hmp, " clear-bitmap-shift: %u\n", + ms->clear_bitmap_shift); } static const gchar *format_time_str(uint64_t us) @@ -68,11 +68,11 @@ static const gchar *format_time_str(uint64_t us) return g_strdup_printf("%"PRIu64" %s", us, units[index]); } -static void migration_dump_blocktime(Monitor *mon, MigrationInfo *info) +static void migration_dump_blocktime(MonitorHMP *hmp, MigrationInfo *info) { if (info->has_postcopy_blocktime) { - monitor_printf(mon, "Postcopy Blocktime (ms): %" PRIu32 "\n", - info->postcopy_blocktime); + monitor_hmp_printf(hmp, "Postcopy Blocktime (ms): %" PRIu32 "\n", + info->postcopy_blocktime); } if (info->has_postcopy_vcpu_blocktime) { @@ -80,25 +80,25 @@ static void migration_dump_blocktime(Monitor *mon, MigrationInfo *info) const char *sep = ""; int count = 0; - monitor_printf(mon, "Postcopy vCPU Blocktime (ms):\n ["); + monitor_hmp_printf(hmp, "Postcopy vCPU Blocktime (ms):\n ["); while (item) { - monitor_printf(mon, "%s%"PRIu32, sep, item->value); + monitor_hmp_printf(hmp, "%s%"PRIu32, sep, item->value); item = item->next; /* Each line 10 vcpu results, newline if there's more */ sep = ((++count % 10 == 0) && item) ? ",\n " : ", "; } - monitor_printf(mon, "]\n"); + monitor_hmp_printf(hmp, "]\n"); } if (info->has_postcopy_latency) { - monitor_printf(mon, "Postcopy Latency (ns): %" PRIu64 "\n", - info->postcopy_latency); + monitor_hmp_printf(hmp, "Postcopy Latency (ns): %" PRIu64 "\n", + info->postcopy_latency); } if (info->has_postcopy_non_vcpu_latency) { - monitor_printf(mon, "Postcopy non-vCPU Latency (ns): %" PRIu64 "\n", - info->postcopy_non_vcpu_latency); + monitor_hmp_printf(hmp, "Postcopy non-vCPU Latency (ns): %" PRIu64 "\n", + info->postcopy_non_vcpu_latency); } if (info->has_postcopy_vcpu_latency) { @@ -106,29 +106,29 @@ static void migration_dump_blocktime(Monitor *mon, MigrationInfo *info) const char *sep = ""; int count = 0; - monitor_printf(mon, "Postcopy vCPU Latencies (ns):\n ["); + monitor_hmp_printf(hmp, "Postcopy vCPU Latencies (ns):\n ["); while (item) { - monitor_printf(mon, "%s%"PRIu64, sep, item->value); + monitor_hmp_printf(hmp, "%s%"PRIu64, sep, item->value); item = item->next; /* Each line 10 vcpu results, newline if there's more */ sep = ((++count % 10 == 0) && item) ? ",\n " : ", "; } - monitor_printf(mon, "]\n"); + monitor_hmp_printf(hmp, "]\n"); } if (info->has_postcopy_latency_dist) { uint64List *item = info->postcopy_latency_dist; int count = 0; - monitor_printf(mon, "Postcopy Latency Distribution:\n"); + monitor_hmp_printf(hmp, "Postcopy Latency Distribution:\n"); while (item) { g_autofree const gchar *from = format_time_str(1UL << count); g_autofree const gchar *to = format_time_str(1UL << (count + 1)); - monitor_printf(mon, " [ %8s - %8s ]: %10"PRIu64"\n", - from, to, item->value); + monitor_hmp_printf(hmp, " [ %8s - %8s ]: %10"PRIu64"\n", + from, to, item->value); item = item->next; count++; } @@ -137,7 +137,6 @@ static void migration_dump_blocktime(Monitor *mon, MigrationInfo *info) void hmp_info_migrate(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); bool show_all = qdict_get_try_bool(qdict, "all", false); MigrationInfo *info; @@ -145,59 +144,59 @@ void hmp_info_migrate(MonitorHMP *hmp, const QDict *qdict) if (info->blocked_reasons) { strList *reasons = info->blocked_reasons; - monitor_printf(mon, "Outgoing migration blocked:\n"); + monitor_hmp_printf(hmp, "Outgoing migration blocked:\n"); while (reasons) { - monitor_printf(mon, " %s\n", reasons->value); + monitor_hmp_printf(hmp, " %s\n", reasons->value); reasons = reasons->next; } } if (info->has_status) { - monitor_printf(mon, "Status: \t\t%s", - MigrationStatus_str(info->status)); + monitor_hmp_printf(hmp, "Status: \t\t%s", + MigrationStatus_str(info->status)); if ((info->status == MIGRATION_STATUS_FAILED || info->status == MIGRATION_STATUS_POSTCOPY_PAUSED) && info->error_desc) { - monitor_printf(mon, " (%s)\n", info->error_desc); + monitor_hmp_printf(hmp, " (%s)\n", info->error_desc); } else { - monitor_printf(mon, "\n"); + monitor_hmp_printf(hmp, "\n"); } if (info->total_time) { - monitor_printf(mon, "Time (ms): \t\ttotal=%" PRIu64, - info->total_time); + monitor_hmp_printf(hmp, "Time (ms): \t\ttotal=%" PRIu64, + info->total_time); if (info->has_setup_time) { - monitor_printf(mon, ", setup=%" PRIu64, - info->setup_time); + monitor_hmp_printf(hmp, ", setup=%" PRIu64, + info->setup_time); } if (info->has_expected_downtime) { - monitor_printf(mon, ", exp_down=%" PRIu64, - info->expected_downtime); + monitor_hmp_printf(hmp, ", exp_down=%" PRIu64, + info->expected_downtime); } if (info->has_downtime) { - monitor_printf(mon, ", down=%" PRIu64, - info->downtime); + monitor_hmp_printf(hmp, ", down=%" PRIu64, + info->downtime); } - monitor_printf(mon, "\n"); + monitor_hmp_printf(hmp, "\n"); } } if (info->has_remaining) { g_autofree char *remaining = size_to_str(info->remaining); - monitor_printf(mon, "Remaining: \t\t%s\n", remaining); + monitor_hmp_printf(hmp, "Remaining: \t\t%s\n", remaining); } if (info->has_socket_address) { SocketAddressList *addr; - monitor_printf(mon, "Sockets: [\n"); + monitor_hmp_printf(hmp, "Sockets: [\n"); for (addr = info->socket_address; addr; addr = addr->next) { char *s = socket_uri(addr->value); - monitor_printf(mon, "\t%s\n", s); + monitor_hmp_printf(hmp, "\t%s\n", s); g_free(s); } - monitor_printf(mon, "]\n"); + monitor_hmp_printf(hmp, "]\n"); } if (info->ram) { @@ -209,219 +208,217 @@ void hmp_info_migrate(MonitorHMP *hmp, const QDict *qdict) g_autofree char *str_multifd = size_to_str(info->ram->multifd_bytes); g_autofree char *str_postcopy = size_to_str(info->ram->postcopy_bytes); - monitor_printf(mon, "RAM info:\n"); - monitor_printf(mon, " Throughput (Mbps): \t%0.2f\n", - info->ram->mbps); - monitor_printf(mon, " Sizes: \t\tpagesize=%s, total=%s\n", - str_psize, str_total); - monitor_printf(mon, " Transfers: \t\ttransferred=%s, remain=%s\n", - str_transferred, str_remaining); - monitor_printf(mon, " Channels: \t\tprecopy=%s, " - "multifd=%s, postcopy=%s", - str_precopy, str_multifd, str_postcopy); + monitor_hmp_printf(hmp, "RAM info:\n"); + monitor_hmp_printf(hmp, " Throughput (Mbps): \t%0.2f\n", + info->ram->mbps); + monitor_hmp_printf(hmp, " Sizes: \t\tpagesize=%s, total=%s\n", + str_psize, str_total); + monitor_hmp_printf(hmp, " Transfers: \t\ttransferred=%s, remain=%s\n", + str_transferred, str_remaining); + monitor_hmp_printf(hmp, " Channels: \t\tprecopy=%s, " + "multifd=%s, postcopy=%s", + str_precopy, str_multifd, str_postcopy); if (info->vfio) { g_autofree char *str_vfio = size_to_str(info->vfio->transferred); - monitor_printf(mon, ", vfio=%s", str_vfio); + monitor_hmp_printf(hmp, ", vfio=%s", str_vfio); } - monitor_printf(mon, "\n"); + monitor_hmp_printf(hmp, "\n"); - monitor_printf(mon, " Page Types: \tnormal=%" PRIu64 - ", zero=%" PRIu64 "\n", - info->ram->normal, info->ram->duplicate); - monitor_printf(mon, " Page Rates (pps): \ttransfer=%" PRIu64, - info->ram->pages_per_second); + monitor_hmp_printf(hmp, " Page Types: \tnormal=%" PRIu64 + ", zero=%" PRIu64 "\n", + info->ram->normal, info->ram->duplicate); + monitor_hmp_printf(hmp, " Page Rates (pps): \ttransfer=%" PRIu64, + info->ram->pages_per_second); if (info->ram->dirty_pages_rate) { - monitor_printf(mon, ", dirty=%" PRIu64, - info->ram->dirty_pages_rate); + monitor_hmp_printf(hmp, ", dirty=%" PRIu64, + info->ram->dirty_pages_rate); } - monitor_printf(mon, "\n"); + monitor_hmp_printf(hmp, "\n"); - monitor_printf(mon, " Others: \t\tdirty_syncs=%" PRIu64, - info->ram->dirty_sync_count); + monitor_hmp_printf(hmp, " Others: \t\tdirty_syncs=%" PRIu64, + info->ram->dirty_sync_count); if (info->ram->postcopy_requests) { - monitor_printf(mon, ", postcopy_req=%" PRIu64, - info->ram->postcopy_requests); + monitor_hmp_printf(hmp, ", postcopy_req=%" PRIu64, + info->ram->postcopy_requests); } if (info->ram->downtime_bytes) { - monitor_printf(mon, ", downtime_bytes=%" PRIu64, - info->ram->downtime_bytes); + monitor_hmp_printf(hmp, ", downtime_bytes=%" PRIu64, + info->ram->downtime_bytes); } if (info->ram->dirty_sync_missed_zero_copy) { - monitor_printf(mon, ", zerocopy_fallbacks=%" PRIu64, - info->ram->dirty_sync_missed_zero_copy); + monitor_hmp_printf(hmp, ", zerocopy_fallbacks=%" PRIu64, + info->ram->dirty_sync_missed_zero_copy); } - monitor_printf(mon, "\n"); + monitor_hmp_printf(hmp, "\n"); } if (!show_all) { goto out; } - migration_global_dump(mon); + migration_global_dump(hmp); if (info->xbzrle_cache) { - monitor_printf(mon, "XBZRLE: size=%" PRIu64 - ", transferred=%" PRIu64 - ", pages=%" PRIu64 - ", miss=%" PRIu64 "\n" - " miss_rate=%0.2f" - ", encode_rate=%0.2f" - ", overflow=%" PRIu64 "\n", - info->xbzrle_cache->cache_size, - info->xbzrle_cache->bytes, - info->xbzrle_cache->pages, - info->xbzrle_cache->cache_miss, - info->xbzrle_cache->cache_miss_rate, - info->xbzrle_cache->encoding_rate, - info->xbzrle_cache->overflow); + monitor_hmp_printf(hmp, "XBZRLE: size=%" PRIu64 + ", transferred=%" PRIu64 + ", pages=%" PRIu64 + ", miss=%" PRIu64 "\n" + " miss_rate=%0.2f" + ", encode_rate=%0.2f" + ", overflow=%" PRIu64 "\n", + info->xbzrle_cache->cache_size, + info->xbzrle_cache->bytes, + info->xbzrle_cache->pages, + info->xbzrle_cache->cache_miss, + info->xbzrle_cache->cache_miss_rate, + info->xbzrle_cache->encoding_rate, + info->xbzrle_cache->overflow); } if (info->has_cpu_throttle_percentage) { - monitor_printf(mon, "CPU Throttle (%%): %" PRIu64 "\n", - info->cpu_throttle_percentage); + monitor_hmp_printf(hmp, "CPU Throttle (%%): %" PRIu64 "\n", + info->cpu_throttle_percentage); } if (info->has_dirty_limit_throttle_time_per_round) { - monitor_printf(mon, "Dirty-limit Throttle (us): %" PRIu64 "\n", - info->dirty_limit_throttle_time_per_round); + monitor_hmp_printf(hmp, "Dirty-limit Throttle (us): %" PRIu64 "\n", + info->dirty_limit_throttle_time_per_round); } if (info->has_dirty_limit_ring_full_time) { - monitor_printf(mon, "Dirty-limit Ring Full (us): %" PRIu64 "\n", - info->dirty_limit_ring_full_time); + monitor_hmp_printf(hmp, "Dirty-limit Ring Full (us): %" PRIu64 "\n", + info->dirty_limit_ring_full_time); } - migration_dump_blocktime(mon, info); + migration_dump_blocktime(hmp, info); out: qapi_free_MigrationInfo(info); } void hmp_info_migrate_capabilities(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); MigrationCapabilityStatusList *caps, *cap; caps = qmp_query_migrate_capabilities(NULL); if (caps) { for (cap = caps; cap; cap = cap->next) { - monitor_printf(mon, "%s: %s\n", - MigrationCapability_str(cap->value->capability), - cap->value->state ? "on" : "off"); + monitor_hmp_printf(hmp, "%s: %s\n", + MigrationCapability_str(cap->value->capability), + cap->value->state ? "on" : "off"); } } qapi_free_MigrationCapabilityStatusList(caps); } -static void monitor_print_cpr_exec_command(Monitor *mon, strList *args) +static void monitor_print_cpr_exec_command(MonitorHMP *hmp, strList *args) { - monitor_printf(mon, "%s:", + monitor_hmp_printf(hmp, "%s:", MigrationParameter_str(MIGRATION_PARAMETER_CPR_EXEC_COMMAND)); while (args) { - monitor_printf(mon, " %s", args->value); + monitor_hmp_printf(hmp, " %s", args->value); args = args->next; } - monitor_printf(mon, "\n"); + monitor_hmp_printf(hmp, "\n"); } void hmp_info_migrate_parameters(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); MigrationParameters *params; MigrationState *s = migrate_get_current(); params = qmp_query_migrate_parameters(NULL); if (params) { - monitor_printf(mon, "%s: %" PRIu64 " ms\n", + monitor_hmp_printf(hmp, "%s: %" PRIu64 " ms\n", MigrationParameter_str(MIGRATION_PARAMETER_ANNOUNCE_INITIAL), params->announce_initial); - monitor_printf(mon, "%s: %" PRIu64 " ms\n", + monitor_hmp_printf(hmp, "%s: %" PRIu64 " ms\n", MigrationParameter_str(MIGRATION_PARAMETER_ANNOUNCE_MAX), params->announce_max); - monitor_printf(mon, "%s: %" PRIu64 "\n", + monitor_hmp_printf(hmp, "%s: %" PRIu64 "\n", MigrationParameter_str(MIGRATION_PARAMETER_ANNOUNCE_ROUNDS), params->announce_rounds); - monitor_printf(mon, "%s: %" PRIu64 " ms\n", + monitor_hmp_printf(hmp, "%s: %" PRIu64 " ms\n", MigrationParameter_str(MIGRATION_PARAMETER_ANNOUNCE_STEP), params->announce_step); assert(params->has_throttle_trigger_threshold); - monitor_printf(mon, "%s: %u\n", + monitor_hmp_printf(hmp, "%s: %u\n", MigrationParameter_str(MIGRATION_PARAMETER_THROTTLE_TRIGGER_THRESHOLD), params->throttle_trigger_threshold); assert(params->has_cpu_throttle_initial); - monitor_printf(mon, "%s: %u\n", + monitor_hmp_printf(hmp, "%s: %u\n", MigrationParameter_str(MIGRATION_PARAMETER_CPU_THROTTLE_INITIAL), params->cpu_throttle_initial); assert(params->has_cpu_throttle_increment); - monitor_printf(mon, "%s: %u\n", + monitor_hmp_printf(hmp, "%s: %u\n", MigrationParameter_str(MIGRATION_PARAMETER_CPU_THROTTLE_INCREMENT), params->cpu_throttle_increment); assert(params->has_cpu_throttle_tailslow); - monitor_printf(mon, "%s: %s\n", + monitor_hmp_printf(hmp, "%s: %s\n", MigrationParameter_str(MIGRATION_PARAMETER_CPU_THROTTLE_TAILSLOW), params->cpu_throttle_tailslow ? "on" : "off"); assert(params->has_max_cpu_throttle); - monitor_printf(mon, "%s: %u\n", + monitor_hmp_printf(hmp, "%s: %u\n", MigrationParameter_str(MIGRATION_PARAMETER_MAX_CPU_THROTTLE), params->max_cpu_throttle); assert(params->tls_creds); - monitor_printf(mon, "%s: '%s'\n", + monitor_hmp_printf(hmp, "%s: '%s'\n", MigrationParameter_str(MIGRATION_PARAMETER_TLS_CREDS), params->tls_creds->u.s); assert(params->tls_hostname); - monitor_printf(mon, "%s: '%s'\n", + monitor_hmp_printf(hmp, "%s: '%s'\n", MigrationParameter_str(MIGRATION_PARAMETER_TLS_HOSTNAME), params->tls_hostname->u.s); assert(params->tls_authz); - monitor_printf(mon, "%s: '%s'\n", + monitor_hmp_printf(hmp, "%s: '%s'\n", MigrationParameter_str(MIGRATION_PARAMETER_TLS_AUTHZ), params->tls_authz->u.s); assert(params->has_max_bandwidth); - monitor_printf(mon, "%s: %" PRIu64 " bytes/second\n", + monitor_hmp_printf(hmp, "%s: %" PRIu64 " bytes/second\n", MigrationParameter_str(MIGRATION_PARAMETER_MAX_BANDWIDTH), params->max_bandwidth); assert(params->has_avail_switchover_bandwidth); - monitor_printf(mon, "%s: %" PRIu64 " bytes/second\n", + monitor_hmp_printf(hmp, "%s: %" PRIu64 " bytes/second\n", MigrationParameter_str(MIGRATION_PARAMETER_AVAIL_SWITCHOVER_BANDWIDTH), params->avail_switchover_bandwidth); assert(params->has_max_postcopy_bandwidth); - monitor_printf(mon, "%s: %" PRIu64 " bytes/second\n", + monitor_hmp_printf(hmp, "%s: %" PRIu64 " bytes/second\n", MigrationParameter_str(MIGRATION_PARAMETER_MAX_POSTCOPY_BANDWIDTH), params->max_postcopy_bandwidth); assert(params->has_downtime_limit); - monitor_printf(mon, "%s: %" PRIu64 " ms\n", + monitor_hmp_printf(hmp, "%s: %" PRIu64 " ms\n", MigrationParameter_str(MIGRATION_PARAMETER_DOWNTIME_LIMIT), params->downtime_limit); assert(params->has_x_checkpoint_delay); - monitor_printf(mon, "%s: %u ms\n", + monitor_hmp_printf(hmp, "%s: %u ms\n", MigrationParameter_str(MIGRATION_PARAMETER_X_CHECKPOINT_DELAY), params->x_checkpoint_delay); - monitor_printf(mon, "%s: %u\n", + monitor_hmp_printf(hmp, "%s: %u\n", MigrationParameter_str(MIGRATION_PARAMETER_MULTIFD_CHANNELS), params->multifd_channels); - monitor_printf(mon, "%s: %s\n", + monitor_hmp_printf(hmp, "%s: %s\n", MigrationParameter_str(MIGRATION_PARAMETER_MULTIFD_COMPRESSION), MultiFDCompression_str(params->multifd_compression)); assert(params->has_zero_page_detection); - monitor_printf(mon, "%s: %s\n", + monitor_hmp_printf(hmp, "%s: %s\n", MigrationParameter_str(MIGRATION_PARAMETER_ZERO_PAGE_DETECTION), qapi_enum_lookup(&ZeroPageDetection_lookup, params->zero_page_detection)); - monitor_printf(mon, "%s: %" PRIu64 " bytes\n", + monitor_hmp_printf(hmp, "%s: %" PRIu64 " bytes\n", MigrationParameter_str(MIGRATION_PARAMETER_XBZRLE_CACHE_SIZE), params->xbzrle_cache_size); if (s->has_block_bitmap_mapping) { const BitmapMigrationNodeAliasList *bmnal; - monitor_printf(mon, "%s:\n", - MigrationParameter_str( - MIGRATION_PARAMETER_BLOCK_BITMAP_MAPPING)); + monitor_hmp_printf(hmp, "%s:\n", + MigrationParameter_str( + MIGRATION_PARAMETER_BLOCK_BITMAP_MAPPING)); for (bmnal = params->block_bitmap_mapping; bmnal; @@ -430,47 +427,47 @@ void hmp_info_migrate_parameters(MonitorHMP *hmp, const QDict *qdict) const BitmapMigrationNodeAlias *bmna = bmnal->value; const BitmapMigrationBitmapAliasList *bmbal; - monitor_printf(mon, " '%s' -> '%s'\n", - bmna->node_name, bmna->alias); + monitor_hmp_printf(hmp, " '%s' -> '%s'\n", + bmna->node_name, bmna->alias); for (bmbal = bmna->bitmaps; bmbal; bmbal = bmbal->next) { const BitmapMigrationBitmapAlias *bmba = bmbal->value; - monitor_printf(mon, " '%s' -> '%s'\n", - bmba->name, bmba->alias); + monitor_hmp_printf(hmp, " '%s' -> '%s'\n", + bmba->name, bmba->alias); } } } - monitor_printf(mon, "%s: %" PRIu64 " ms\n", + monitor_hmp_printf(hmp, "%s: %" PRIu64 " ms\n", MigrationParameter_str(MIGRATION_PARAMETER_X_VCPU_DIRTY_LIMIT_PERIOD), params->x_vcpu_dirty_limit_period); - monitor_printf(mon, "%s: %" PRIu64 " MB/s\n", + monitor_hmp_printf(hmp, "%s: %" PRIu64 " MB/s\n", MigrationParameter_str(MIGRATION_PARAMETER_VCPU_DIRTY_LIMIT), params->vcpu_dirty_limit); assert(params->has_mode); - monitor_printf(mon, "%s: %s\n", + monitor_hmp_printf(hmp, "%s: %s\n", MigrationParameter_str(MIGRATION_PARAMETER_MODE), qapi_enum_lookup(&MigMode_lookup, params->mode)); if (params->has_direct_io) { - monitor_printf(mon, "%s: %s\n", - MigrationParameter_str( - MIGRATION_PARAMETER_DIRECT_IO), - params->direct_io ? "on" : "off"); + monitor_hmp_printf(hmp, "%s: %s\n", + MigrationParameter_str( + MIGRATION_PARAMETER_DIRECT_IO), + params->direct_io ? "on" : "off"); } if (params->has_x_rdma_chunk_size) { - monitor_printf(mon, "%s: %" PRIu64 " bytes\n", - MigrationParameter_str( - MIGRATION_PARAMETER_X_RDMA_CHUNK_SIZE), - params->x_rdma_chunk_size); + monitor_hmp_printf(hmp, "%s: %" PRIu64 " bytes\n", + MigrationParameter_str( + MIGRATION_PARAMETER_X_RDMA_CHUNK_SIZE), + params->x_rdma_chunk_size); } assert(params->has_cpr_exec_command); - monitor_print_cpr_exec_command(mon, params->cpr_exec_command); + monitor_print_cpr_exec_command(hmp, params->cpr_exec_command); } qapi_free_MigrationParameters(params); @@ -879,8 +876,8 @@ void hmp_migrate(MonitorHMP *hmp, const QDict *qdict) HMPMigrationStatus *status; if (!hmp->use_readline) { - monitor_printf(mon, "terminal does not allow synchronous " - "migration, continuing detached\n"); + monitor_hmp_printf(hmp, "terminal does not allow synchronous " + "migration, continuing detached\n"); return; } monitor_suspend(mon); diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index 89cc19c2431d..1834e3c1f697 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -105,26 +105,24 @@ strList *hmp_split_at_comma(const char *str) void hmp_info_name(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); NameInfo *info; info = qmp_query_name(NULL); if (info->name) { - monitor_printf(mon, "%s\n", info->name); + monitor_hmp_printf(hmp, "%s\n", info->name); } qapi_free_NameInfo(info); } void hmp_info_version(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); VersionInfo *info; info = qmp_query_version(NULL); - monitor_printf(mon, "%" PRId64 ".%" PRId64 ".%" PRId64 "%s\n", - info->qemu->major, info->qemu->minor, info->qemu->micro, - info->package); + monitor_hmp_printf(hmp, "%" PRId64 ".%" PRId64 ".%" PRId64 "%s\n", + info->qemu->major, info->qemu->minor, info->qemu->micro, + info->package); qapi_free_VersionInfo(info); } @@ -145,13 +143,12 @@ void hmp_stop(MonitorHMP *hmp, const QDict *qdict) void hmp_sync_profile(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *op = qdict_get_try_str(qdict, "op"); if (op == NULL) { bool on = qsp_is_enabled(); - monitor_printf(mon, "sync-profile is %s\n", on ? "on" : "off"); + monitor_hmp_printf(hmp, "sync-profile is %s\n", on ? "on" : "off"); return; } if (!strcmp(op, "on")) { @@ -179,14 +176,13 @@ void hmp_exit_preconfig(MonitorHMP *hmp, const QDict *qdict) void hmp_cpu(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); int64_t cpu_index; /* XXX: drop the monitor_hmp_set_cpu() usage when all HMP commands that use it are converted to the QAPI */ cpu_index = qdict_get_int(qdict, "index"); if (monitor_hmp_set_cpu(hmp, cpu_index) < 0) { - monitor_printf(mon, "invalid CPU index\n"); + monitor_hmp_printf(hmp, "invalid CPU index\n"); } } @@ -200,7 +196,6 @@ void hmp_cont(MonitorHMP *hmp, const QDict *qdict) void hmp_change(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *device = qdict_get_str(qdict, "device"); const char *target = qdict_get_str(qdict, "target"); const char *arg = qdict_get_try_str(qdict, "arg"); @@ -210,11 +205,11 @@ void hmp_change(MonitorHMP *hmp, const QDict *qdict) #ifdef CONFIG_VNC if (strcmp(device, "vnc") == 0) { - hmp_change_vnc(mon, device, target, arg, read_only, force, &err); + hmp_change_vnc(hmp, device, target, arg, read_only, force, &err); } else #endif { - hmp_change_medium(mon, device, target, arg, read_only, force, &err); + hmp_change_medium(hmp, device, target, arg, read_only, force, &err); } hmp_handle_error(hmp, err); @@ -242,21 +237,20 @@ void hmp_closefd(MonitorHMP *hmp, const QDict *qdict) void hmp_info_iothreads(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); IOThreadInfoList *info_list = qmp_query_iothreads(NULL); IOThreadInfoList *info; IOThreadInfo *value; for (info = info_list; info; info = info->next) { value = info->value; - monitor_printf(mon, "%s:\n", value->id); - monitor_printf(mon, " thread_id=%" PRId64 "\n", value->thread_id); - monitor_printf(mon, " poll-max-ns=%" PRId64 "\n", value->poll_max_ns); - monitor_printf(mon, " poll-grow=%" PRId64 "\n", value->poll_grow); - monitor_printf(mon, " poll-shrink=%" PRId64 "\n", value->poll_shrink); - monitor_printf(mon, " poll-weight=%" PRId64 "\n", value->poll_weight); - monitor_printf(mon, " aio-max-batch=%" PRId64 "\n", - value->aio_max_batch); + monitor_hmp_printf(hmp, "%s:\n", value->id); + monitor_hmp_printf(hmp, " thread_id=%" PRId64 "\n", value->thread_id); + monitor_hmp_printf(hmp, " poll-max-ns=%" PRId64 "\n", value->poll_max_ns); + monitor_hmp_printf(hmp, " poll-grow=%" PRId64 "\n", value->poll_grow); + monitor_hmp_printf(hmp, " poll-shrink=%" PRId64 "\n", value->poll_shrink); + monitor_hmp_printf(hmp, " poll-weight=%" PRId64 "\n", value->poll_weight); + monitor_hmp_printf(hmp, " aio-max-batch=%" PRId64 "\n", + value->aio_max_batch); } qapi_free_IOThreadInfoList(info_list); @@ -264,26 +258,23 @@ void hmp_info_iothreads(MonitorHMP *hmp, const QDict *qdict) void hmp_help(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); - hmp_help_cmd(mon, qdict_get_try_str(qdict, "name")); + hmp_help_cmd(hmp, qdict_get_try_str(qdict, "name")); } void hmp_clear(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); /* * Send an ANSI escape sequence: * "\x1b[H" - move cursor to top-left * "\x1b[2J" - clear visible screen * "\x1b[3J" - clear scrollback */ - monitor_printf(mon, "\x1b[H\x1b[2J\x1b[3J"); + monitor_hmp_printf(hmp, "\x1b[H\x1b[2J\x1b[3J"); } void hmp_info_help(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); - hmp_help_cmd(mon, "info"); + hmp_help_cmd(hmp, "info"); } void hmp_info_sync_profile(MonitorHMP *hmp, const QDict *qdict) @@ -299,7 +290,6 @@ void hmp_info_sync_profile(MonitorHMP *hmp, const QDict *qdict) void hmp_info_history(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); int i; const char *str; @@ -312,7 +302,7 @@ void hmp_info_history(MonitorHMP *hmp, const QDict *qdict) if (!str) { break; } - monitor_printf(mon, "%d: '%s'\n", i, str); + monitor_hmp_printf(hmp, "%d: '%s'\n", i, str); i++; } } @@ -328,7 +318,6 @@ void hmp_logfile(MonitorHMP *hmp, const QDict *qdict) void hmp_log(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); int mask; const char *items = qdict_get_str(qdict, "items"); Error *err = NULL; @@ -338,7 +327,7 @@ void hmp_log(MonitorHMP *hmp, const QDict *qdict) } else { mask = qemu_str_to_log_mask(items); if (!mask) { - hmp_help_cmd(mon, "log"); + hmp_help_cmd(hmp, "log"); return; } } @@ -350,7 +339,6 @@ void hmp_log(MonitorHMP *hmp, const QDict *qdict) void hmp_gdbserver(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; const char *device = qdict_get_try_str(qdict, "device"); @@ -361,43 +349,41 @@ void hmp_gdbserver(MonitorHMP *hmp, const QDict *qdict) if (!gdbserver_start(device, &err)) { error_report_err(err); } else if (strcmp(device, "none") == 0) { - monitor_printf(mon, "Disabled gdbserver\n"); + monitor_hmp_printf(hmp, "Disabled gdbserver\n"); } else { - monitor_printf(mon, "Waiting for gdb connection on device '%s'\n", - device); + monitor_hmp_printf(hmp, "Waiting for gdb connection on device '%s'\n", + device); } } void hmp_print(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); int format = qdict_get_int(qdict, "format"); hwaddr val = qdict_get_int(qdict, "val"); switch(format) { case 'o': - monitor_printf(mon, "%#" HWADDR_PRIo, val); + monitor_hmp_printf(hmp, "0x%" HWADDR_PRIo, val); break; case 'x': - monitor_printf(mon, "%#" HWADDR_PRIx, val); + monitor_hmp_printf(hmp, "0x%" HWADDR_PRIx, val); break; case 'u': - monitor_printf(mon, "%" HWADDR_PRIu, val); + monitor_hmp_printf(hmp, "%" HWADDR_PRIu, val); break; default: case 'd': - monitor_printf(mon, "%" HWADDR_PRId, val); + monitor_hmp_printf(hmp, "%" HWADDR_PRId, val); break; case 'c': - monitor_printc(mon, val); + monitor_hmp_printc(hmp, val); break; } - monitor_printf(mon, "\n"); + monitor_hmp_printf(hmp, "\n"); } void hmp_sum(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); uint32_t addr; uint16_t sum; uint32_t start = qdict_get_int(qdict, "start"); @@ -411,12 +397,11 @@ void hmp_sum(MonitorHMP *hmp, const QDict *qdict) sum = (sum >> 1) | (sum << 15); sum += val; } - monitor_printf(mon, "%05d\n", sum); + monitor_hmp_printf(hmp, "%05d\n", sum); } void hmp_ioport_read(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); int size = qdict_get_int(qdict, "size"); int addr = qdict_get_int(qdict, "addr"); int has_index = qdict_haskey(qdict, "index"); @@ -445,8 +430,8 @@ void hmp_ioport_read(MonitorHMP *hmp, const QDict *qdict) suffix = 'l'; break; } - monitor_printf(mon, "port%c[0x%04x] = 0x%0*x\n", - suffix, addr, size * 2, val); + monitor_hmp_printf(hmp, "port%c[0x%04x] = 0x%0*x\n", + suffix, addr, size * 2, val); } void hmp_ioport_write(MonitorHMP *hmp, const QDict *qdict) @@ -473,7 +458,6 @@ void hmp_ioport_write(MonitorHMP *hmp, const QDict *qdict) void hmp_boot_set(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *local_err = NULL; const char *bootdevice = qdict_get_str(qdict, "bootdevice"); @@ -481,7 +465,7 @@ void hmp_boot_set(MonitorHMP *hmp, const QDict *qdict) if (local_err) { error_report_err(local_err); } else { - monitor_printf(mon, "boot device list now set to %s\n", bootdevice); + monitor_hmp_printf(hmp, "boot device list now set to %s\n", bootdevice); } } @@ -507,7 +491,7 @@ void hmp_dumpdtb(MonitorHMP *hmp, const QDict *qdict) return; } - monitor_printf(MONITOR(hmp), "DTB dumped to '%s'\n", filename); + monitor_hmp_printf(hmp, "DTB dumped to '%s'\n", filename); } #endif @@ -573,14 +557,13 @@ int monitor_hmp_get_cpu_index(MonitorHMP *hmp) void hmp_info_registers(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); bool all_cpus = qdict_get_try_bool(qdict, "cpustate_all", false); int vcpu = qdict_get_try_int(qdict, "vcpu", -1); CPUState *cs; if (all_cpus) { CPU_FOREACH(cs) { - monitor_printf(mon, "\nCPU#%d\n", cs->cpu_index); + monitor_hmp_printf(hmp, "\nCPU#%d\n", cs->cpu_index); cpu_dump_state(cs, NULL, CPU_DUMP_FPU | CPU_DUMP_VPU); } } else { @@ -588,14 +571,14 @@ void hmp_info_registers(MonitorHMP *hmp, const QDict *qdict) if (!cs) { if (vcpu >= 0) { - monitor_printf(mon, "CPU#%d not available\n", vcpu); + monitor_hmp_printf(hmp, "CPU#%d not available\n", vcpu); } else { - monitor_printf(mon, "No CPU available\n"); + monitor_hmp_printf(hmp, "No CPU available\n"); } return; } - monitor_printf(mon, "\nCPU#%d\n", cs->cpu_index); + monitor_hmp_printf(hmp, "\nCPU#%d\n", cs->cpu_index); cpu_dump_state(cs, NULL, CPU_DUMP_FPU | CPU_DUMP_VPU); } } @@ -603,7 +586,6 @@ void hmp_info_registers(MonitorHMP *hmp, const QDict *qdict) static void memory_dump(MonitorHMP *hmp, int count, int format, int wsize, uint64_t addr, bool is_physical) { - Monitor *mon = MONITOR(hmp); int l, line_size, i, max_digits, len; uint8_t buf[16]; uint64_t v; @@ -612,12 +594,12 @@ static void memory_dump(MonitorHMP *hmp, int count, int format, int wsize, const bool big_endian = target_big_endian(); if (!cs && (format == 'i' || !is_physical)) { - monitor_printf(mon, "Can not dump without CPU\n"); + monitor_hmp_printf(hmp, "Can not dump without CPU\n"); return; } if (format == 'i') { - monitor_disas(mon, cs, addr, count, is_physical); + monitor_disas(hmp, cs, addr, count, is_physical); return; } @@ -647,7 +629,7 @@ static void memory_dump(MonitorHMP *hmp, int count, int format, int wsize, } while (len > 0) { - monitor_printf(mon, "%0*" PRIx64 ":", addr_width, addr); + monitor_hmp_printf(hmp, "%0*" PRIx64 ":", addr_width, addr); l = len; if (l > line_size) { l = line_size; @@ -657,12 +639,12 @@ static void memory_dump(MonitorHMP *hmp, int count, int format, int wsize, MemTxResult r = address_space_read(as, addr, MEMTXATTRS_UNSPECIFIED, buf, l); if (r != MEMTX_OK) { - monitor_printf(mon, " Cannot access memory\n"); + monitor_hmp_printf(hmp, " Cannot access memory\n"); break; } } else { if (cpu_memory_rw_debug(cs, addr, buf, l, 0) < 0) { - monitor_printf(mon, " Cannot access memory\n"); + monitor_hmp_printf(hmp, " Cannot access memory\n"); break; } } @@ -683,27 +665,27 @@ static void memory_dump(MonitorHMP *hmp, int count, int format, int wsize, v = (big_endian ? ldq_be_p : ldq_le_p)(buf + i); break; } - monitor_printf(mon, " "); + monitor_hmp_printf(hmp, " "); switch (format) { case 'o': - monitor_printf(mon, "0%*" PRIo64, max_digits, v); + monitor_hmp_printf(hmp, "0%*" PRIo64, max_digits, v); break; case 'x': - monitor_printf(mon, "0x%0*" PRIx64, max_digits, v); + monitor_hmp_printf(hmp, "0x%0*" PRIx64, max_digits, v); break; case 'u': - monitor_printf(mon, "%*" PRIu64, max_digits, v); + monitor_hmp_printf(hmp, "%*" PRIu64, max_digits, v); break; case 'd': - monitor_printf(mon, "%*" PRId64, max_digits, v); + monitor_hmp_printf(hmp, "%*" PRId64, max_digits, v); break; case 'c': - monitor_printc(mon, v); + monitor_hmp_printc(hmp, v); break; } i += wsize; } - monitor_printf(mon, "\n"); + monitor_hmp_printf(hmp, "\n"); addr += l; len -= l; } @@ -731,7 +713,6 @@ void hmp_physical_memory_dump(MonitorHMP *hmp, const QDict *qdict) void hmp_gpa2hva(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); hwaddr addr = qdict_get_int(qdict, "addr"); Error *local_err = NULL; MemoryRegion *mr = NULL; @@ -743,29 +724,28 @@ void hmp_gpa2hva(MonitorHMP *hmp, const QDict *qdict) return; } - monitor_printf(mon, "Host virtual address for 0x%" HWADDR_PRIx - " (%s) is %p\n", - addr, mr->name, ptr); + monitor_hmp_printf(hmp, "Host virtual address for 0x%" HWADDR_PRIx + " (%s) is %p\n", + addr, mr->name, ptr); memory_region_unref(mr); } void hmp_gva2gpa(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); vaddr addr = qdict_get_int(qdict, "addr"); CPUState *cs = monitor_hmp_get_cpu(hmp); TranslateForDebugResult tres; if (!cs) { - monitor_printf(mon, "No cpu\n"); + monitor_hmp_printf(hmp, "No cpu\n"); return; } if (!cpu_translate_for_debug(cs, addr, &tres)) { - monitor_printf(mon, "Unmapped\n"); + monitor_hmp_printf(hmp, "Unmapped\n"); } else { - monitor_printf(mon, "gpa: 0x%" HWADDR_PRIx "\n", tres.physaddr); + monitor_hmp_printf(hmp, "gpa: 0x%" HWADDR_PRIx "\n", tres.physaddr); } } @@ -806,7 +786,6 @@ out: void hmp_gpa2hpa(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); hwaddr addr = qdict_get_int(qdict, "addr"); Error *local_err = NULL; MemoryRegion *mr = NULL; @@ -823,9 +802,9 @@ void hmp_gpa2hpa(MonitorHMP *hmp, const QDict *qdict) if (local_err) { error_report_err(local_err); } else { - monitor_printf(mon, "Host physical address for 0x%" HWADDR_PRIx - " (%s) is 0x%" PRIx64 "\n", - addr, mr->name, (uint64_t) physaddr); + monitor_hmp_printf(hmp, "Host physical address for 0x%" HWADDR_PRIx + " (%s) is 0x%" PRIx64 "\n", + addr, mr->name, (uint64_t) physaddr); } memory_region_unref(mr); diff --git a/monitor/hmp.c b/monitor/hmp.c index 2484a2310dff..e5f8b9c576e0 100644 --- a/monitor/hmp.c +++ b/monitor/hmp.c @@ -80,8 +80,6 @@ static void monitor_hmp_set_readline(Object *obj, bool val, Error **errp) hmp->use_readline = val; } -int monitor_hmp_vprintf(Monitor *mon, const char *fmt, va_list ap) - G_GNUC_PRINTF(2, 0); static void monitor_hmp_accept_input(Monitor *mon); static void monitor_hmp_complete(UserCreatable *uc, Error **errp); static bool monitor_hmp_prepare_delete(UserCreatable *uc, Error **errp); @@ -95,7 +93,6 @@ static void monitor_hmp_class_init(ObjectClass *cls, const void *data) monitor_hmp_get_readline, monitor_hmp_set_readline); - moncls->vprintf = monitor_hmp_vprintf; moncls->accept_input = monitor_hmp_accept_input; ucc->complete = monitor_hmp_complete; @@ -114,12 +111,6 @@ static void monitor_hmp_init(Object *obj) hmp->use_readline = true; } -int monitor_hmp_vprintf(Monitor *mon, const char *fmt, va_list ap) -{ - g_autofree char *buf = g_strdup_vprintf(fmt, ap); - return monitor_puts(mon, buf); -} - static void monitor_hmp_accept_input(Monitor *mon) { qemu_mutex_lock(&mon->mon_lock); @@ -166,8 +157,7 @@ int monitor_hmp_read_password(MonitorHMP *hmp, ReadLineFunc *readline_func, /* prompt is printed on return from the command handler */ return 0; } else { - monitor_printf(&hmp->parent_obj, - "terminal does not support password prompting\n"); + monitor_hmp_printf(hmp, "terminal does not support password prompting\n"); return -ENOTTY; } } @@ -319,7 +309,7 @@ static bool cmd_available(const HMPCommand *cmd) return phase_check(PHASE_MACHINE_READY) || cmd_can_preconfig(cmd); } -static void help_cmd_dump_one(Monitor *mon, +static void help_cmd_dump_one(MonitorHMP *mon, const HMPCommand *cmd, char **prefix_args, int prefix_args_nb) @@ -331,13 +321,13 @@ static void help_cmd_dump_one(Monitor *mon, } for (i = 0; i < prefix_args_nb; i++) { - monitor_printf(mon, "%s ", prefix_args[i]); + monitor_hmp_printf(mon, "%s ", prefix_args[i]); } - monitor_printf(mon, "%s %s -- %s\n", cmd->name, cmd->params, cmd->help); + monitor_hmp_printf(mon, "%s %s -- %s\n", cmd->name, cmd->params, cmd->help); } /* @args[@arg_index] is the valid command need to find in @cmds */ -static void help_cmd_dump(Monitor *mon, const HMPCommand *cmds, +static void help_cmd_dump(MonitorHMP *mon, const HMPCommand *cmds, char **args, int nb_args, int arg_index) { const HMPCommand *cmd; @@ -367,13 +357,13 @@ static void help_cmd_dump(Monitor *mon, const HMPCommand *cmds, } /* Command not found */ - monitor_printf(mon, "unknown command: '"); + monitor_hmp_printf(mon, "unknown command: '"); for (i = 0; i <= arg_index; i++) { - monitor_printf(mon, "%s%s", args[i], i == arg_index ? "'\n" : " "); + monitor_hmp_printf(mon, "%s%s", args[i], i == arg_index ? "'\n" : " "); } } -void hmp_help_cmd(Monitor *mon, const char *name) +void hmp_help_cmd(MonitorHMP *mon, const char *name) { char *args[MAX_ARGS]; int nb_args = 0; @@ -383,15 +373,15 @@ void hmp_help_cmd(Monitor *mon, const char *name) /* special case for log, directly dump and return */ if (!strcmp(name, "log")) { const QEMULogItem *item; - monitor_printf(mon, "Log items (comma separated):\n"); - monitor_printf(mon, "%-15s %s\n", "none", "remove all logs"); + monitor_hmp_printf(mon, "Log items (comma separated):\n"); + monitor_hmp_printf(mon, "%-15s %s\n", "none", "remove all logs"); for (item = qemu_log_items; item->mask != 0; item++) { - monitor_printf(mon, "%-15s %s\n", item->name, item->help); + monitor_hmp_printf(mon, "%-15s %s\n", item->name, item->help); } #ifdef CONFIG_TRACE_LOG - monitor_printf(mon, "trace:PATTERN enable trace events\n"); - monitor_printf(mon, "\nUse \"log trace:help\" to get a list of " - "trace events.\n\n"); + monitor_hmp_printf(mon, "trace:PATTERN enable trace events\n"); + monitor_hmp_printf(mon, "\nUse \"log trace:help\" to get a list of " + "trace events.\n\n"); #endif return; } @@ -455,12 +445,12 @@ static sigjmp_buf expr_env; static int get_monitor_def(MonitorHMP *mon, int64_t *pval, const char *name); static G_NORETURN G_GNUC_PRINTF(2, 3) -void expr_error(Monitor *mon, const char *fmt, ...) +void expr_error(MonitorHMP *mon, const char *fmt, ...) { va_list ap; va_start(ap, fmt); - monitor_vprintf(mon, fmt, ap); - monitor_printf(mon, "\n"); + monitor_hmp_vprintf(mon, fmt, ap); + monitor_hmp_printf(mon, "\n"); va_end(ap); siglongjmp(expr_env, 1); } @@ -475,9 +465,9 @@ static void next(void) } } -static int64_t expr_sum(Monitor *mon); +static int64_t expr_sum(MonitorHMP *mon); -static int64_t expr_unary(Monitor *mon) +static int64_t expr_unary(MonitorHMP *mon) { int64_t n; char *p; @@ -535,8 +525,8 @@ static int64_t expr_unary(Monitor *mon) pch++; } *q = 0; - if (!gdb_get_register(MONITOR_HMP(mon), ®, buf) - && get_monitor_def(MONITOR_HMP(mon), ®, buf) < 0) { + if (!gdb_get_register(mon, ®, buf) + && get_monitor_def(mon, ®, buf) < 0) { expr_error(mon, "unknown register"); } n = reg; @@ -564,7 +554,7 @@ static int64_t expr_unary(Monitor *mon) return n; } -static int64_t expr_prod(Monitor *mon) +static int64_t expr_prod(MonitorHMP *mon) { int64_t val, val2; int op; @@ -598,7 +588,7 @@ static int64_t expr_prod(Monitor *mon) return val; } -static int64_t expr_logic(Monitor *mon) +static int64_t expr_logic(MonitorHMP *mon) { int64_t val, val2; int op; @@ -627,7 +617,7 @@ static int64_t expr_logic(Monitor *mon) return val; } -static int64_t expr_sum(Monitor *mon) +static int64_t expr_sum(MonitorHMP *mon) { int64_t val, val2; int op; @@ -649,7 +639,7 @@ static int64_t expr_sum(Monitor *mon) return val; } -static int get_expr(Monitor *mon, int64_t *pval, const char **pp) +static int get_expr(MonitorHMP *mon, int64_t *pval, const char **pp) { pch = *pp; if (sigsetjmp(expr_env, 0)) { @@ -664,7 +654,7 @@ static int get_expr(Monitor *mon, int64_t *pval, const char **pp) return 0; } -static int get_double(Monitor *mon, double *pval, const char **pp) +static int get_double(MonitorHMP *mon, double *pval, const char **pp) { const char *p = *pp; char *tailp; @@ -672,12 +662,12 @@ static int get_double(Monitor *mon, double *pval, const char **pp) d = strtod(p, &tailp); if (tailp == p) { - monitor_printf(mon, "Number expected\n"); + monitor_hmp_printf(mon, "Number expected\n"); return -1; } if (d != d || d - d != 0) { /* NaN or infinity */ - monitor_printf(mon, "Bad number\n"); + monitor_hmp_printf(mon, "Bad number\n"); return -1; } *pval = d; @@ -788,7 +778,6 @@ static const HMPCommand *monitor_parse_command(MonitorHMP *hmp, const char **cmdp, HMPCommand *table) { - Monitor *mon = &hmp->parent_obj; const char *p; const HMPCommand *cmd; char cmdname[256]; @@ -801,14 +790,14 @@ static const HMPCommand *monitor_parse_command(MonitorHMP *hmp, cmd = search_dispatch_table(table, cmdname); if (!cmd) { - monitor_printf(mon, "unknown command: '%.*s'\n", - (int)(p - cmdp_start), cmdp_start); + monitor_hmp_printf(hmp, "unknown command: '%.*s'\n", + (int)(p - cmdp_start), cmdp_start); return NULL; } if (!cmd_available(cmd)) { - monitor_printf(mon, "Command '%.*s' not available " - "until machine initialization has completed.\n", - (int)(p - cmdp_start), cmdp_start); + monitor_hmp_printf(hmp, "Command '%.*s' not available " + "until machine initialization has completed.\n", + (int)(p - cmdp_start), cmdp_start); return NULL; } @@ -832,7 +821,7 @@ static const HMPCommand *monitor_parse_command(MonitorHMP *hmp, * Else, insert command arguments into a QDict, and return it. * Note: On success, caller has to free the QDict structure. */ -static QDict *monitor_parse_arguments(Monitor *mon, +static QDict *monitor_parse_arguments(MonitorHMP *mon, const char **endp, const HMPCommand *cmd) { @@ -873,15 +862,15 @@ static QDict *monitor_parse_arguments(Monitor *mon, if (ret < 0) { switch (c) { case 'F': - monitor_printf(mon, "%s: filename expected\n", - cmd->name); + monitor_hmp_printf(mon, "%s: filename expected\n", + cmd->name); break; case 'B': - monitor_printf(mon, "%s: block device name expected\n", - cmd->name); + monitor_hmp_printf(mon, "%s: block device name expected\n", + cmd->name); break; default: - monitor_printf(mon, "%s: string expected\n", cmd->name); + monitor_hmp_printf(mon, "%s: string expected\n", cmd->name); break; } goto fail; @@ -968,8 +957,8 @@ static QDict *monitor_parse_arguments(Monitor *mon, } next: if (*p != '\0' && !qemu_isspace(*p)) { - monitor_printf(mon, "invalid char in format: '%c'\n", - *p); + monitor_hmp_printf(mon, "invalid char in format: '%c'\n", + *p); goto fail; } if (format < 0) { @@ -1030,12 +1019,12 @@ static QDict *monitor_parse_arguments(Monitor *mon, } /* Check if 'i' is greater than 32-bit */ if ((c == 'i') && ((val >> 32) & 0xffffffff)) { - monitor_printf(mon, "\'%s\' has failed: ", cmd->name); - monitor_printf(mon, "integer is for 32-bit values\n"); + monitor_hmp_printf(mon, "\'%s\' has failed: ", cmd->name); + monitor_hmp_printf(mon, "integer is for 32-bit values\n"); goto fail; } else if (c == 'M') { if (val < 0) { - monitor_printf(mon, "enter a positive value\n"); + monitor_hmp_printf(mon, "enter a positive value\n"); goto fail; } val *= MiB; @@ -1060,7 +1049,7 @@ static QDict *monitor_parse_arguments(Monitor *mon, } ret = qemu_strtosz_MiB(p, &end, &val); if (ret < 0 || val > INT64_MAX) { - monitor_printf(mon, "invalid size\n"); + monitor_hmp_printf(mon, "invalid size\n"); goto fail; } qdict_put_int(qdict, key, val); @@ -1094,7 +1083,7 @@ static QDict *monitor_parse_arguments(Monitor *mon, } } if (*p && !qemu_isspace(*p)) { - monitor_printf(mon, "Unknown unit suffix\n"); + monitor_hmp_printf(mon, "Unknown unit suffix\n"); goto fail; } qdict_put(qdict, key, qnum_from_double(val)); @@ -1117,7 +1106,7 @@ static QDict *monitor_parse_arguments(Monitor *mon, } else if (p - beg == 3 && !memcmp(beg, "off", p - beg)) { val = false; } else { - monitor_printf(mon, "Expected 'on' or 'off'\n"); + monitor_hmp_printf(mon, "Expected 'on' or 'off'\n"); goto fail; } qdict_put_bool(qdict, key, val); @@ -1141,8 +1130,8 @@ static QDict *monitor_parse_arguments(Monitor *mon, p++; if (c != *p) { if (!is_valid_option(p, typestr)) { - monitor_printf(mon, "%s: unsupported option -%c\n", - cmd->name, *p); + monitor_hmp_printf(mon, "%s: unsupported option -%c\n", + cmd->name, *p); goto fail; } else { skip_key = 1; @@ -1159,8 +1148,8 @@ static QDict *monitor_parse_arguments(Monitor *mon, } ret = get_str(buf, sizeof(buf), &p); if (ret < 0) { - monitor_printf(mon, "%s: value expected for -%c\n", - cmd->name, *tmp); + monitor_hmp_printf(mon, "%s: value expected for -%c\n", + cmd->name, *tmp); goto fail; } qdict_put_str(qdict, key, buf); @@ -1191,8 +1180,8 @@ static QDict *monitor_parse_arguments(Monitor *mon, } len = strlen(p); if (len <= 0) { - monitor_printf(mon, "%s: string expected\n", - cmd->name); + monitor_hmp_printf(mon, "%s: string expected\n", + cmd->name); goto fail; } qdict_put_str(qdict, key, p); @@ -1201,7 +1190,7 @@ static QDict *monitor_parse_arguments(Monitor *mon, break; default: bad_type: - monitor_printf(mon, "%s: unknown type '%c'\n", cmd->name, c); + monitor_hmp_printf(mon, "%s: unknown type '%c'\n", cmd->name, c); goto fail; } g_free(key); @@ -1212,8 +1201,8 @@ static QDict *monitor_parse_arguments(Monitor *mon, p++; } if (*p != '\0') { - monitor_printf(mon, "%s: extraneous characters at the end of line\n", - cmd->name); + monitor_hmp_printf(mon, "%s: extraneous characters at the end of line\n", + cmd->name); goto fail; } @@ -1281,19 +1270,19 @@ void handle_hmp_command(MonitorHMP *hmp, const char *cmdline) if (!cmd->cmd && !cmd->cmd_info_hrt) { /* FIXME: is it useful to try autoload modules here ??? */ - monitor_printf(&hmp->parent_obj, "Command \"%.*s\" is not available.\n", - (int)(cmdline - cmd_start), cmd_start); + monitor_hmp_printf(hmp, "Command \"%.*s\" is not available.\n", + (int)(cmdline - cmd_start), cmd_start); return; } - qdict = monitor_parse_arguments(&hmp->parent_obj, &cmdline, cmd); + qdict = monitor_parse_arguments(hmp, &cmdline, cmd); if (!qdict) { while (cmdline > cmd_start && qemu_isspace(cmdline[-1])) { cmdline--; } - monitor_printf(&hmp->parent_obj, - "Try \"help %.*s\" for more information\n", - (int)(cmdline - cmd_start), cmd_start); + monitor_hmp_printf(hmp, + "Try \"help %.*s\" for more information\n", + (int)(cmdline - cmd_start), cmd_start); return; } @@ -1539,7 +1528,7 @@ static void monitor_read(void *opaque, const uint8_t *buf, int size) } } else { if (size == 0 || buf[size - 1] != 0) { - monitor_printf(&hmp->parent_obj, "corrupted command\n"); + monitor_hmp_printf(hmp, "corrupted command\n"); } else { handle_hmp_command(hmp, (char *)buf); } @@ -1580,8 +1569,8 @@ static void monitor_event(void *opaque, QEMUChrEvent event) break; case CHR_EVENT_OPENED: - monitor_printf(mon, "QEMU %s monitor - type 'help' for more " - "information\n", QEMU_VERSION); + monitor_hmp_printf(hmp, "QEMU %s monitor - type 'help' for more " + "information\n", QEMU_VERSION); qemu_mutex_lock(&mon->mon_lock); hmp->reset_seen = 1; if (!mon->mux_out && hmp->use_readline) { @@ -1613,7 +1602,7 @@ static void G_GNUC_PRINTF(2, 3) monitor_readline_printf(void *opaque, MonitorHMP *hmp = opaque; va_list ap; va_start(ap, fmt); - monitor_vprintf(&hmp->parent_obj, fmt, ap); + monitor_hmp_vprintf(hmp, fmt, ap); va_end(ap); } diff --git a/monitor/monitor-internal.h b/monitor/monitor-internal.h index afdda1386080..c198c12eaa00 100644 --- a/monitor/monitor-internal.h +++ b/monitor/monitor-internal.h @@ -108,12 +108,6 @@ typedef struct HMPCommand { struct MonitorClass { ObjectClass parent_class; - /* - * If non-NULL, the monitor is able to print messages - * for attention of the client user - */ - int (*vprintf)(Monitor *mon, const char *fmt, va_list ap) - G_GNUC_PRINTF(2, 0); /* * If non-NULL, the monitor is able to send event * notifications back to the client diff --git a/monitor/monitor.c b/monitor/monitor.c index 8528af6f79b8..da76e6e4ac19 100644 --- a/monitor/monitor.c +++ b/monitor/monitor.c @@ -272,58 +272,53 @@ int monitor_puts(Monitor *mon, const char *str) return monitor_puts_locked(mon, str); } -int monitor_vprintf(Monitor *mon, const char *fmt, va_list ap) +int monitor_hmp_vprintf(MonitorHMP *mon, const char *fmt, va_list ap) { - MonitorClass *moncls; + g_autofree char *buf = g_strdup_vprintf(fmt, ap); if (!mon) { return -1; } - moncls = MONITOR_GET_CLASS(mon); - if (!moncls->vprintf) { - return -1; - } - - return moncls->vprintf(mon, fmt, ap); + return monitor_puts(MONITOR(mon), buf); } -int monitor_printf(Monitor *mon, const char *fmt, ...) +int monitor_hmp_printf(MonitorHMP *mon, const char *fmt, ...) { int ret; va_list ap; va_start(ap, fmt); - ret = monitor_vprintf(mon, fmt, ap); + ret = monitor_hmp_vprintf(mon, fmt, ap); va_end(ap); return ret; } -void monitor_printc(Monitor *mon, int c) +void monitor_hmp_printc(MonitorHMP *mon, int c) { - monitor_printf(mon, "'"); + monitor_hmp_printf(mon, "'"); switch(c) { case '\'': - monitor_printf(mon, "\\'"); + monitor_hmp_printf(mon, "\\'"); break; case '\\': - monitor_printf(mon, "\\\\"); + monitor_hmp_printf(mon, "\\\\"); break; case '\n': - monitor_printf(mon, "\\n"); + monitor_hmp_printf(mon, "\\n"); break; case '\r': - monitor_printf(mon, "\\r"); + monitor_hmp_printf(mon, "\\r"); break; default: if (c >= 32 && c <= 126) { - monitor_printf(mon, "%c", c); + monitor_hmp_printf(mon, "%c", c); } else { - monitor_printf(mon, "\\x%02x", c); + monitor_hmp_printf(mon, "\\x%02x", c); } break; } - monitor_printf(mon, "'"); + monitor_hmp_printf(mon, "'"); } static MonitorQAPIEventConf monitor_qapi_event_conf[QAPI_EVENT__MAX] = { diff --git a/net/net-hmp-cmds.c b/net/net-hmp-cmds.c index 5b1c678f5d89..0d718d78aef9 100644 --- a/net/net-hmp-cmds.c +++ b/net/net-hmp-cmds.c @@ -28,26 +28,25 @@ #include "qemu/help_option.h" #include "qemu/option.h" -static void hmp_print_client_info(Monitor *mon, NetworkClientInfo *ci) +static void hmp_print_client_info(MonitorHMP *hmp, NetworkClientInfo *ci) { NetFilterInfoList *f; - monitor_printf(mon, "%s: index=%" PRIu32 ",type=%s,%s\n", - ci->name, ci->queue_index, - NetClientDriver_str(ci->type), ci->info_str); + monitor_hmp_printf(hmp, "%s: index=%" PRIu32 ",type=%s,%s\n", + ci->name, ci->queue_index, + NetClientDriver_str(ci->type), ci->info_str); if (ci->filters) { - monitor_printf(mon, "filters:\n"); + monitor_hmp_printf(hmp, "filters:\n"); for (f = ci->filters; f; f = f->next) { - monitor_printf(mon, " - %s: type=%s%s%s\n", - f->value->name, f->value->type, - f->value->info[0] ? "," : "", f->value->info); + monitor_hmp_printf(hmp, " - %s: type=%s%s%s\n", + f->value->name, f->value->type, + f->value->info[0] ? "," : "", f->value->info); } } } void hmp_info_network(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); Error *err = NULL; g_autoptr(NetworkInfo) info = qmp_x_query_network(&err); NetHubInfoList *h; @@ -60,13 +59,13 @@ void hmp_info_network(MonitorHMP *hmp, const QDict *qdict) for (h = info->hubs; h; h = h->next) { NetHubPortInfoList *p; - monitor_printf(mon, "hub %d\n", (int)h->value->id); + monitor_hmp_printf(hmp, "hub %d\n", (int)h->value->id); for (p = h->value->ports; p; p = p->next) { if (p->value->peer) { - monitor_printf(mon, " \\ %s: ", p->value->name); - hmp_print_client_info(mon, p->value->peer); + monitor_hmp_printf(hmp, " \\ %s: ", p->value->name); + hmp_print_client_info(hmp, p->value->peer); } else { - monitor_printf(mon, " \\ %s\n", p->value->name); + monitor_hmp_printf(hmp, " \\ %s\n", p->value->name); } } } @@ -75,11 +74,11 @@ void hmp_info_network(MonitorHMP *hmp, const QDict *qdict) NetworkClientInfo *ci = entry->value; if (!ci->peer || ci->type == NET_CLIENT_DRIVER_NIC) { - hmp_print_client_info(mon, ci); + hmp_print_client_info(hmp, ci); } /* else it's a netdev connected to a NIC, printed with the NIC */ if (ci->peer && ci->type == NET_CLIENT_DRIVER_NIC) { - monitor_printf(mon, " \\ "); - hmp_print_client_info(mon, ci->peer); + monitor_hmp_printf(hmp, " \\ "); + hmp_print_client_info(hmp, ci->peer); } } } diff --git a/net/slirp.c b/net/slirp.c index d5c190b48b76..6fbefa9ed1d7 100644 --- a/net/slirp.c +++ b/net/slirp.c @@ -711,22 +711,22 @@ error: return -1; } -static SlirpState *slirp_lookup(Monitor *mon, const char *id) +static SlirpState *slirp_lookup(MonitorHMP *hmp, const char *id) { if (id) { NetClientState *nc = qemu_find_netdev(id); if (!nc) { - monitor_printf(mon, "unrecognized netdev id '%s'\n", id); + monitor_hmp_printf(hmp, "unrecognized netdev id '%s'\n", id); return NULL; } if (strcmp(nc->model, "user")) { - monitor_printf(mon, "invalid device specified\n"); + monitor_hmp_printf(hmp, "invalid device specified\n"); return NULL; } return DO_UPCAST(SlirpState, nc, nc); } else { if (QTAILQ_EMPTY(&slirp_stacks)) { - monitor_printf(mon, "user mode network stack not in use\n"); + monitor_hmp_printf(hmp, "user mode network stack not in use\n"); return NULL; } return QTAILQ_FIRST(&slirp_stacks); @@ -735,7 +735,6 @@ static SlirpState *slirp_lookup(Monitor *mon, const char *id) void hmp_hostfwd_remove(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); /* TODO: support removing unix fwd */ struct sockaddr_in host_addr = { .sin_family = AF_INET, @@ -753,10 +752,10 @@ void hmp_hostfwd_remove(MonitorHMP *hmp, const QDict *qdict) const char *arg2 = qdict_get_try_str(qdict, "arg2"); if (arg2) { - s = slirp_lookup(mon, arg1); + s = slirp_lookup(hmp, arg1); src_str = arg2; } else { - s = slirp_lookup(mon, NULL); + s = slirp_lookup(hmp, NULL); src_str = arg1; } if (!s) { @@ -795,12 +794,12 @@ void hmp_hostfwd_remove(MonitorHMP *hmp, const QDict *qdict) err = slirp_remove_hostfwd(s->slirp, is_udp, host_addr.sin_addr, host_port); #endif - monitor_printf(mon, "host forwarding rule for %s %s\n", src_str, - err ? "not found" : "removed"); + monitor_hmp_printf(hmp, "host forwarding rule for %s %s\n", src_str, + err ? "not found" : "removed"); return; fail_syntax: - monitor_printf(mon, "invalid format\n"); + monitor_hmp_printf(hmp, "invalid format\n"); } static int slirp_hostfwd(SlirpState *s, const char *redir_str, Error **errp) @@ -960,17 +959,16 @@ static int slirp_hostfwd(SlirpState *s, const char *redir_str, Error **errp) void hmp_hostfwd_add(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *redir_str; SlirpState *s; const char *arg1 = qdict_get_str(qdict, "arg1"); const char *arg2 = qdict_get_try_str(qdict, "arg2"); if (arg2) { - s = slirp_lookup(mon, arg1); + s = slirp_lookup(hmp, arg1); redir_str = arg2; } else { - s = slirp_lookup(mon, NULL); + s = slirp_lookup(hmp, NULL); redir_str = arg1; } if (s) { @@ -1228,16 +1226,15 @@ UsernetInfoList *qmp_x_query_usernet(Error **errp) void hmp_info_usernet(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); g_autoptr(UsernetInfoList) list = NULL; UsernetInfoList *entry; list = qmp_x_query_usernet(&error_abort); for (entry = list; entry; entry = entry->next) { UsernetInfo *ui = entry->value; - monitor_printf(mon, "Hub %d (%s):\n%s", - ui->has_hub_id ? (int)ui->hub_id : -1, - ui->hub_name, ui->info); + monitor_hmp_printf(hmp, "Hub %d (%s):\n%s", + ui->has_hub_id ? (int)ui->hub_id : -1, + ui->hub_name, ui->info); } } diff --git a/qom/qom-hmp-cmds.c b/qom/qom-hmp-cmds.c index 2e2eb33371e2..bbf5980332a4 100644 --- a/qom/qom-hmp-cmds.c +++ b/qom/qom-hmp-cmds.c @@ -20,13 +20,12 @@ void hmp_qom_list(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *path = qdict_get_try_str(qdict, "path"); ObjectPropertyInfoList *list; Error *err = NULL; if (path == NULL) { - monitor_printf(mon, "/\n"); + monitor_hmp_printf(hmp, "/\n"); return; } @@ -36,8 +35,8 @@ void hmp_qom_list(MonitorHMP *hmp, const QDict *qdict) while (list != NULL) { ObjectPropertyInfo *value = list->value; - monitor_printf(mon, "%s (%s)\n", - value->name, value->type); + monitor_hmp_printf(hmp, "%s (%s)\n", + value->name, value->type); list = list->next; } qapi_free_ObjectPropertyInfoList(start); @@ -75,7 +74,6 @@ void hmp_qom_set(MonitorHMP *hmp, const QDict *qdict) void hmp_qom_get(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *path = qdict_get_str(qdict, "path"); const char *property = qdict_get_str(qdict, "property"); Error *err = NULL; @@ -83,7 +81,7 @@ void hmp_qom_get(MonitorHMP *hmp, const QDict *qdict) if (err == NULL) { GString *str = qobject_to_json_pretty(obj, true); - monitor_printf(mon, "%s\n", str->str); + monitor_hmp_printf(hmp, "%s\n", str->str); g_string_free(str, true); } @@ -96,7 +94,7 @@ typedef struct QOMCompositionState { int indent; } QOMCompositionState; -static void print_qom_composition(Monitor *mon, Object *obj, int indent); +static void print_qom_composition(MonitorHMP *hmp, Object *obj, int indent); static int qom_composition_compare(const void *a, const void *b) { @@ -110,7 +108,7 @@ static int insert_qom_composition_child(Object *obj, void *opaque) return 0; } -static void print_qom_composition(Monitor *mon, Object *obj, int indent) +static void print_qom_composition(MonitorHMP *hmp, Object *obj, int indent) { GArray *children = g_array_new(false, false, sizeof(Object *)); const char *name; @@ -121,14 +119,14 @@ static void print_qom_composition(Monitor *mon, Object *obj, int indent) } else { name = object_get_canonical_path_component(obj); } - monitor_printf(mon, "%*s/%s (%s)\n", indent, "", name, - object_get_typename(obj)); + monitor_hmp_printf(hmp, "%*s/%s (%s)\n", indent, "", name, + object_get_typename(obj)); object_child_foreach(obj, insert_qom_composition_child, children); g_array_sort(children, qom_composition_compare); for (i = 0; i < children->len; i++) { - print_qom_composition(mon, g_array_index(children, Object *, i), + print_qom_composition(hmp, g_array_index(children, Object *, i), indent + 2); } g_array_free(children, TRUE); @@ -136,7 +134,6 @@ static void print_qom_composition(Monitor *mon, Object *obj, int indent) void hmp_info_qom_tree(MonitorHMP *hmp, const QDict *dict) { - Monitor *mon = MONITOR(hmp); const char *path = qdict_get_try_str(dict, "path"); Object *obj; bool ambiguous = false; @@ -144,17 +141,17 @@ void hmp_info_qom_tree(MonitorHMP *hmp, const QDict *dict) if (path) { obj = object_resolve_path(path, &ambiguous); if (!obj) { - monitor_printf(mon, "Path '%s' could not be resolved.\n", path); + monitor_hmp_printf(hmp, "Path '%s' could not be resolved.\n", path); return; } if (ambiguous) { - monitor_printf(mon, "Warning: Path '%s' is ambiguous.\n", path); + monitor_hmp_printf(hmp, "Warning: Path '%s' is ambiguous.\n", path); return; } } else { obj = qdev_get_machine(); } - print_qom_composition(mon, obj, 0); + print_qom_composition(hmp, obj, 0); } void hmp_object_add(MonitorHMP *hmp, const QDict *qdict) diff --git a/replay/replay-debugging.c b/replay/replay-debugging.c index ef69d23ff507..965565715ef2 100644 --- a/replay/replay-debugging.c +++ b/replay/replay-debugging.c @@ -33,11 +33,10 @@ bool replay_running_debug(void) void hmp_info_replay(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); if (replay_mode == REPLAY_MODE_NONE) { - monitor_printf(mon, "Record/replay is not active\n"); + monitor_hmp_printf(hmp, "Record/replay is not active\n"); } else { - monitor_printf(mon, + monitor_hmp_printf(hmp, "%s execution '%s': instruction count = %"PRId64"\n", replay_mode == REPLAY_MODE_RECORD ? "Recording" : "Replaying", replay_get_filename(), replay_get_current_icount()); diff --git a/stats/stats-hmp-cmds.c b/stats/stats-hmp-cmds.c index cd1f1deb58bc..3d556c745d61 100644 --- a/stats/stats-hmp-cmds.c +++ b/stats/stats-hmp-cmds.c @@ -14,11 +14,11 @@ #include "qobject/qdict.h" #include "qapi/error.h" -static void print_stats_schema_value(Monitor *mon, StatsSchemaValue *value) +static void print_stats_schema_value(MonitorHMP *hmp, StatsSchemaValue *value) { const char *unit = NULL; - monitor_printf(mon, " %s (%s%s", value->name, StatsType_str(value->type), - value->has_unit || value->exponent ? ", " : ""); + monitor_hmp_printf(hmp, " %s (%s%s", value->name, StatsType_str(value->type), + value->has_unit || value->exponent ? ", " : ""); if (value->has_unit) { if (value->unit == STATS_UNIT_SECONDS) { @@ -31,29 +31,29 @@ static void print_stats_schema_value(Monitor *mon, StatsSchemaValue *value) if (unit && value->base == 10 && value->exponent >= -18 && value->exponent <= 18 && value->exponent % 3 == 0) { - monitor_puts(mon, si_prefix(value->exponent)); + monitor_puts(MONITOR(hmp), si_prefix(value->exponent)); } else if (unit && value->base == 2 && value->exponent >= 0 && value->exponent <= 60 && value->exponent % 10 == 0) { - monitor_puts(mon, iec_binary_prefix(value->exponent)); + monitor_puts(MONITOR(hmp), iec_binary_prefix(value->exponent)); } else if (value->exponent) { /* Use exponential notation and write the unit's English name */ - monitor_printf(mon, "* %d^%d%s", - value->base, value->exponent, - value->has_unit ? " " : ""); + monitor_hmp_printf(hmp, "* %d^%d%s", + value->base, value->exponent, + value->has_unit ? " " : ""); unit = NULL; } if (value->has_unit) { - monitor_puts(mon, unit ? unit : StatsUnit_str(value->unit)); + monitor_puts(MONITOR(hmp), unit ? unit : StatsUnit_str(value->unit)); } /* Print bucket size for linear histograms */ if (value->type == STATS_TYPE_LINEAR_HISTOGRAM && value->has_bucket_size) { - monitor_printf(mon, ", bucket size=%d", value->bucket_size); + monitor_hmp_printf(hmp, ", bucket size=%d", value->bucket_size); } - monitor_printf(mon, ")"); + monitor_hmp_printf(hmp, ")"); } static StatsSchemaValueList *find_schema_value_list( @@ -71,7 +71,7 @@ static StatsSchemaValueList *find_schema_value_list( return NULL; } -static void print_stats_results(Monitor *mon, StatsTarget target, +static void print_stats_results(MonitorHMP *hmp, StatsTarget target, bool show_provider, StatsResult *result, StatsSchemaList *schema) @@ -82,14 +82,14 @@ static void print_stats_results(Monitor *mon, StatsTarget target, StatsList *stats_list; if (!schema_value_list) { - monitor_printf(mon, "failed to find schema list for %s\n", - StatsProvider_str(result->provider)); + monitor_hmp_printf(hmp, "failed to find schema list for %s\n", + StatsProvider_str(result->provider)); return; } if (show_provider) { - monitor_printf(mon, "provider: %s\n", - StatsProvider_str(result->provider)); + monitor_hmp_printf(hmp, "provider: %s\n", + StatsProvider_str(result->provider)); } for (stats_list = result->stats; stats_list; @@ -103,31 +103,31 @@ static void print_stats_results(Monitor *mon, StatsTarget target, /* Find schema entry */ while (!g_str_equal(stats->name, schema_value->name)) { if (!schema_value_list->next) { - monitor_printf(mon, "failed to find schema entry for %s\n", - stats->name); + monitor_hmp_printf(hmp, "failed to find schema entry for %s\n", + stats->name); return; } schema_value_list = schema_value_list->next; schema_value = schema_value_list->value; } - print_stats_schema_value(mon, schema_value); + print_stats_schema_value(hmp, schema_value); if (stats_value->type == QTYPE_QNUM) { - monitor_printf(mon, ": %" PRId64 "\n", stats_value->u.scalar); + monitor_hmp_printf(hmp, ": %" PRId64 "\n", stats_value->u.scalar); } else if (stats_value->type == QTYPE_QBOOL) { - monitor_printf(mon, ": %s\n", stats_value->u.boolean ? "yes" : "no"); + monitor_hmp_printf(hmp, ": %s\n", stats_value->u.boolean ? "yes" : "no"); } else if (stats_value->type == QTYPE_QLIST) { uint64List *list; int i; - monitor_printf(mon, ": "); + monitor_hmp_printf(hmp, ": "); for (list = stats_value->u.list, i = 1; list; list = list->next, i++) { - monitor_printf(mon, "[%d]=%" PRId64 " ", i, list->value); + monitor_hmp_printf(hmp, "[%d]=%" PRId64 " ", i, list->value); } - monitor_printf(mon, "\n"); + monitor_hmp_printf(hmp, "\n"); } } } @@ -189,7 +189,6 @@ static StatsFilter *stats_filter(StatsTarget target, const char *names, void hmp_info_stats(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *target_str = qdict_get_str(qdict, "target"); const char *provider_str = qdict_get_try_str(qdict, "provider"); const char *names = qdict_get_try_str(qdict, "names"); @@ -204,13 +203,13 @@ void hmp_info_stats(MonitorHMP *hmp, const QDict *qdict) target = qapi_enum_parse(&StatsTarget_lookup, target_str, -1, &err); if (err) { - monitor_printf(mon, "invalid stats target %s\n", target_str); + monitor_hmp_printf(hmp, "invalid stats target %s\n", target_str); goto exit_no_print; } if (provider_str) { provider = qapi_enum_parse(&StatsProvider_lookup, provider_str, -1, &err); if (err) { - monitor_printf(mon, "invalid stats provider %s\n", provider_str); + monitor_hmp_printf(hmp, "invalid stats provider %s\n", provider_str); goto exit_no_print; } } @@ -241,12 +240,12 @@ void hmp_info_stats(MonitorHMP *hmp, const QDict *qdict) goto exit; } for (entry = stats; entry; entry = entry->next) { - print_stats_results(mon, target, provider_str == NULL, entry->value, schema); + print_stats_results(hmp, target, provider_str == NULL, entry->value, schema); } exit: if (err) { - monitor_printf(mon, "%s\n", error_get_pretty(err)); + monitor_hmp_printf(hmp, "%s\n", error_get_pretty(err)); } exit_no_print: error_free(err); diff --git a/stubs/hmp-cmd-info_sev.c b/stubs/hmp-cmd-info_sev.c index 6f2b87d1ad10..c9c1d10c165c 100644 --- a/stubs/hmp-cmd-info_sev.c +++ b/stubs/hmp-cmd-info_sev.c @@ -12,6 +12,5 @@ void hmp_info_sev(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); - monitor_printf(mon, "SEV is not available in this QEMU\n"); + monitor_hmp_printf(hmp, "SEV is not available in this QEMU\n"); } diff --git a/stubs/monitor-core.c b/stubs/monitor-core.c index b0c7002bd406..094b80721003 100644 --- a/stubs/monitor-core.c +++ b/stubs/monitor-core.c @@ -17,7 +17,7 @@ void qapi_event_emit(QAPIEvent event, QDict *qdict) { } -int monitor_vprintf(Monitor *mon, const char *fmt, va_list ap) +int monitor_hmp_vprintf(MonitorHMP *mon, const char *fmt, va_list ap) { /* * Pretend 'g_test_message' is our monitor console to diff --git a/system/dirtylimit-hmp-cmds.c b/system/dirtylimit-hmp-cmds.c index 75194add7931..fb9338e9aef6 100644 --- a/system/dirtylimit-hmp-cmds.c +++ b/system/dirtylimit-hmp-cmds.c @@ -17,7 +17,6 @@ void hmp_cancel_vcpu_dirty_limit(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); int64_t cpu_index = qdict_get_try_int(qdict, "cpu_index", -1); Error *err = NULL; @@ -27,8 +26,8 @@ void hmp_cancel_vcpu_dirty_limit(MonitorHMP *hmp, const QDict *qdict) return; } - monitor_printf(mon, "[Please use 'info vcpu_dirty_limit' to query " - "dirty limit for virtual CPU]\n"); + monitor_hmp_printf(hmp, "[Please use 'info vcpu_dirty_limit' to query " + "dirty limit for virtual CPU]\n"); } void hmp_set_vcpu_dirty_limit(MonitorHMP *hmp, const QDict *qdict) @@ -50,13 +49,12 @@ out: void hmp_info_vcpu_dirty_limit(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); DirtyLimitInfoList *info; g_autoptr(DirtyLimitInfoList) head = NULL; Error *err = NULL; if (!dirtylimit_in_service()) { - monitor_printf(mon, "Dirty page limit not enabled!\n"); + monitor_hmp_printf(hmp, "Dirty page limit not enabled!\n"); return; } @@ -67,7 +65,7 @@ void hmp_info_vcpu_dirty_limit(MonitorHMP *hmp, const QDict *qdict) } for (info = head; info != NULL; info = info->next) { - monitor_printf(mon, "vcpu[%"PRIi64"], limit rate %"PRIi64 " (MB/s)," + monitor_hmp_printf(hmp, "vcpu[%"PRIi64"], limit rate %"PRIi64 " (MB/s)," " current rate %"PRIi64 " (MB/s)\n", info->value->cpu_index, info->value->limit_rate, diff --git a/system/qdev-monitor.c b/system/qdev-monitor.c index 5c2de2f53cc9..3860ada2a237 100644 --- a/system/qdev-monitor.c +++ b/system/qdev-monitor.c @@ -763,9 +763,10 @@ DeviceState *qdev_device_add(QemuOpts *opts, Error **errp) return ret; } -#define qdev_printf(fmt, ...) monitor_printf(mon, "%*s" fmt, indent, "", ## __VA_ARGS__) +#define qdev_printf(fmt, ...) \ + monitor_hmp_printf(hmp, "%*s" fmt, indent, "", ## __VA_ARGS__) -static void qdev_print_props(Monitor *mon, DeviceState *dev, DeviceClass *dc, +static void qdev_print_props(MonitorHMP *hmp, DeviceState *dev, DeviceClass *dc, int indent) { for (int i = 0, n = dc->props_count_; i < n; ++i) { @@ -798,8 +799,9 @@ static void bus_print_dev(BusState *bus, Monitor *mon, DeviceState *dev, int ind } } -static void qdev_print(Monitor *mon, DeviceState *dev, int indent) +static void qdev_print(MonitorHMP *hmp, DeviceState *dev, int indent) { + Monitor *mon = MONITOR(hmp); ObjectClass *class; NamedGPIOList *ngl; NamedClockList *ncl; @@ -823,13 +825,13 @@ static void qdev_print(Monitor *mon, DeviceState *dev, int indent) } class = object_get_class(OBJECT(dev)); do { - qdev_print_props(mon, dev, DEVICE_CLASS(class), indent); + qdev_print_props(hmp, dev, DEVICE_CLASS(class), indent); class = object_class_get_parent(class); } while (class != object_class_by_name(TYPE_DEVICE)); bus_print_dev(dev->parent_bus, mon, dev, indent); } -static void qbus_print(Monitor *mon, BusState *bus, int indent, bool details) +static void qbus_print(MonitorHMP *hmp, BusState *bus, int indent, bool details) { BusChild *kid; @@ -842,10 +844,10 @@ static void qbus_print(Monitor *mon, BusState *bus, int indent, bool details) qdev_printf("dev: %s, id \"%s\"\n", object_get_typename(OBJECT(dev)), dev->id ? dev->id : ""); if (details) { - qdev_print(mon, dev, indent + 2); + qdev_print(hmp, dev, indent + 2); } QLIST_FOREACH(child_bus, &dev->child_bus, sibling) { - qbus_print(mon, child_bus, indent + 2, details); + qbus_print(hmp, child_bus, indent + 2, details); } } } @@ -853,11 +855,10 @@ static void qbus_print(Monitor *mon, BusState *bus, int indent, bool details) void hmp_info_qtree(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); bool details = !qdict_get_try_bool(qdict, "brief", false); if (sysbus_get_default()) { - qbus_print(mon, sysbus_get_default(), 0, details); + qbus_print(hmp, sysbus_get_default(), 0, details); } } diff --git a/system/runstate-hmp-cmds.c b/system/runstate-hmp-cmds.c index 051ee45ee74c..ad70b53f8abf 100644 --- a/system/runstate-hmp-cmds.c +++ b/system/runstate-hmp-cmds.c @@ -25,33 +25,31 @@ void hmp_info_status(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); StatusInfo *info; info = qmp_query_status(NULL); - monitor_printf(mon, "VM status: %s", - info->running ? "running" : "paused"); + monitor_hmp_printf(hmp, "VM status: %s", + info->running ? "running" : "paused"); if (!info->running && info->status != RUN_STATE_PAUSED) { - monitor_printf(mon, " (%s)", RunState_str(info->status)); + monitor_hmp_printf(hmp, " (%s)", RunState_str(info->status)); } - monitor_printf(mon, "\n"); + monitor_hmp_printf(hmp, "\n"); qapi_free_StatusInfo(info); } void hmp_one_insn_per_tb(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *option = qdict_get_try_str(qdict, "option"); AccelState *accel = current_accel(); bool newval; if (!object_property_find(OBJECT(accel), "one-insn-per-tb")) { - monitor_printf(mon, - "This accelerator does not support setting one-insn-per-tb\n"); + monitor_hmp_printf(hmp, + "This accelerator does not support setting one-insn-per-tb\n"); return; } @@ -60,7 +58,7 @@ void hmp_one_insn_per_tb(MonitorHMP *hmp, const QDict *qdict) } else if (!strcmp(option, "off")) { newval = false; } else { - monitor_printf(mon, "unexpected option %s\n", option); + monitor_hmp_printf(hmp, "unexpected option %s\n", option); return; } /* If the property exists then setting it can never fail */ diff --git a/system/tpm-hmp-cmds.c b/system/tpm-hmp-cmds.c index 094c3f16cf50..35406e24d2c3 100644 --- a/system/tpm-hmp-cmds.c +++ b/system/tpm-hmp-cmds.c @@ -13,7 +13,6 @@ void hmp_info_tpm(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); #ifdef CONFIG_TPM TPMInfoList *info_list, *info; Error *err = NULL; @@ -23,44 +22,44 @@ void hmp_info_tpm(MonitorHMP *hmp, const QDict *qdict) info_list = qmp_query_tpm(&err); if (err) { - monitor_printf(mon, "TPM device not supported\n"); + monitor_hmp_printf(hmp, "TPM device not supported\n"); error_free(err); return; } if (info_list) { - monitor_printf(mon, "TPM device:\n"); + monitor_hmp_printf(hmp, "TPM device:\n"); } for (info = info_list; info; info = info->next) { TPMInfo *ti = info->value; - monitor_printf(mon, " tpm%d: model=%s\n", - c, TpmModel_str(ti->model)); + monitor_hmp_printf(hmp, " tpm%d: model=%s\n", + c, TpmModel_str(ti->model)); - monitor_printf(mon, " \\ %s: type=%s", - ti->id, TpmType_str(ti->options->type)); + monitor_hmp_printf(hmp, " \\ %s: type=%s", + ti->id, TpmType_str(ti->options->type)); switch (ti->options->type) { case TPM_TYPE_PASSTHROUGH: tpo = ti->options->u.passthrough.data; - monitor_printf(mon, "%s%s%s%s", - tpo->path ? ",path=" : "", - tpo->path ?: "", - tpo->cancel_path ? ",cancel-path=" : "", - tpo->cancel_path ?: ""); + monitor_hmp_printf(hmp, "%s%s%s%s", + tpo->path ? ",path=" : "", + tpo->path ?: "", + tpo->cancel_path ? ",cancel-path=" : "", + tpo->cancel_path ?: ""); break; case TPM_TYPE_EMULATOR: teo = ti->options->u.emulator.data; - monitor_printf(mon, ",chardev=%s", teo->chardev); + monitor_hmp_printf(hmp, ",chardev=%s", teo->chardev); break; case TPM_TYPE__MAX: break; } - monitor_printf(mon, "\n"); + monitor_hmp_printf(hmp, "\n"); c++; } qapi_free_TPMInfoList(info_list); #else - monitor_printf(mon, "TPM device not supported\n"); + monitor_hmp_printf(hmp, "TPM device not supported\n"); #endif /* CONFIG_TPM */ } diff --git a/target/i386/cpu-apic.c b/target/i386/cpu-apic.c index af67f00dad32..96d6ad897275 100644 --- a/target/i386/cpu-apic.c +++ b/target/i386/cpu-apic.c @@ -85,7 +85,6 @@ void x86_cpu_apic_realize(X86CPU *cpu, Error **errp) void hmp_info_local_apic(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); CPUState *cs; if (qdict_haskey(qdict, "apic-id")) { @@ -101,7 +100,7 @@ void hmp_info_local_apic(MonitorHMP *hmp, const QDict *qdict) if (!cs) { - monitor_printf(mon, "No CPU available\n"); + monitor_hmp_printf(hmp, "No CPU available\n"); return; } x86_cpu_dump_local_apic_state(cs, CPU_DUMP_FPU); diff --git a/target/i386/monitor.c b/target/i386/monitor.c index 72bcab131f77..46762540ba65 100644 --- a/target/i386/monitor.c +++ b/target/i386/monitor.c @@ -48,27 +48,27 @@ static hwaddr addr_canonical(CPUArchState *env, hwaddr addr) return addr; } -static void print_pte(Monitor *mon, CPUArchState *env, hwaddr addr, +static void print_pte(MonitorHMP *hmp, CPUArchState *env, hwaddr addr, hwaddr pte, hwaddr mask) { addr = addr_canonical(env, addr); - monitor_printf(mon, HWADDR_FMT_plx ": " HWADDR_FMT_plx - " %c%c%c%c%c%c%c%c%c\n", - addr, - pte & mask, - pte & PG_NX_MASK ? 'X' : '-', - pte & PG_GLOBAL_MASK ? 'G' : '-', - pte & PG_PSE_MASK ? 'P' : '-', - pte & PG_DIRTY_MASK ? 'D' : '-', - pte & PG_ACCESSED_MASK ? 'A' : '-', - pte & PG_PCD_MASK ? 'C' : '-', - pte & PG_PWT_MASK ? 'T' : '-', - pte & PG_USER_MASK ? 'U' : '-', - pte & PG_RW_MASK ? 'W' : '-'); + monitor_hmp_printf(hmp, HWADDR_FMT_plx ": " HWADDR_FMT_plx + " %c%c%c%c%c%c%c%c%c\n", + addr, + pte & mask, + pte & PG_NX_MASK ? 'X' : '-', + pte & PG_GLOBAL_MASK ? 'G' : '-', + pte & PG_PSE_MASK ? 'P' : '-', + pte & PG_DIRTY_MASK ? 'D' : '-', + pte & PG_ACCESSED_MASK ? 'A' : '-', + pte & PG_PCD_MASK ? 'C' : '-', + pte & PG_PWT_MASK ? 'T' : '-', + pte & PG_USER_MASK ? 'U' : '-', + pte & PG_RW_MASK ? 'W' : '-'); } -static void tlb_info_32(Monitor *mon, CPUArchState *env, AddressSpace *as) +static void tlb_info_32(MonitorHMP *hmp, CPUArchState *env, AddressSpace *as) { const MemTxAttrs attrs = MEMTXATTRS_UNSPECIFIED; unsigned int l1, l2; @@ -80,13 +80,13 @@ static void tlb_info_32(Monitor *mon, CPUArchState *env, AddressSpace *as) if (pde & PG_PRESENT_MASK) { if ((pde & PG_PSE_MASK) && (env->cr[4] & CR4_PSE_MASK)) { /* 4M pages */ - print_pte(mon, env, (l1 << 22), pde, ~((1 << 21) - 1)); + print_pte(hmp, env, (l1 << 22), pde, ~((1 << 21) - 1)); } else { for(l2 = 0; l2 < 1024; l2++) { pte = address_space_ldl_le(as, (pde & ~0xfff) + l2 * 4, attrs, NULL); if (pte & PG_PRESENT_MASK) { - print_pte(mon, env, (l1 << 22) + (l2 << 12), + print_pte(hmp, env, (l1 << 22) + (l2 << 12), pte & ~PG_PSE_MASK, ~0xfff); } @@ -96,7 +96,7 @@ static void tlb_info_32(Monitor *mon, CPUArchState *env, AddressSpace *as) } } -static void tlb_info_pae32(Monitor *mon, CPUArchState *env, AddressSpace *as) +static void tlb_info_pae32(MonitorHMP *hmp, CPUArchState *env, AddressSpace *as) { const MemTxAttrs attrs = MEMTXATTRS_UNSPECIFIED; unsigned int l1, l2, l3; @@ -113,7 +113,7 @@ static void tlb_info_pae32(Monitor *mon, CPUArchState *env, AddressSpace *as) if (pde & PG_PRESENT_MASK) { if (pde & PG_PSE_MASK) { /* 2M pages with PAE, CR4.PSE is ignored */ - print_pte(mon, env, (l1 << 30) + (l2 << 21), pde, + print_pte(hmp, env, (l1 << 30) + (l2 << 21), pde, ~((hwaddr)(1 << 20) - 1)); } else { pt_addr = pde & 0x3fffffffff000ULL; @@ -121,7 +121,7 @@ static void tlb_info_pae32(Monitor *mon, CPUArchState *env, AddressSpace *as) pte = address_space_ldq_le(as, pt_addr + l3 * 8, attrs, NULL); if (pte & PG_PRESENT_MASK) { - print_pte(mon, env, (l1 << 30) + (l2 << 21) + print_pte(hmp, env, (l1 << 30) + (l2 << 21) + (l3 << 12), pte & ~PG_PSE_MASK, ~(hwaddr)0xfff); @@ -135,7 +135,7 @@ static void tlb_info_pae32(Monitor *mon, CPUArchState *env, AddressSpace *as) } #ifdef TARGET_X86_64 -static void tlb_info_la48(Monitor *mon, CPUArchState *env, AddressSpace *as, +static void tlb_info_la48(MonitorHMP *hmp, CPUArchState *env, AddressSpace *as, uint64_t l0, uint64_t pml4_addr) { const MemTxAttrs attrs = MEMTXATTRS_UNSPECIFIED; @@ -158,7 +158,7 @@ static void tlb_info_la48(Monitor *mon, CPUArchState *env, AddressSpace *as, if (pdpe & PG_PSE_MASK) { /* 1G pages, CR4.PSE is ignored */ - print_pte(mon, env, (l0 << 48) + (l1 << 39) + (l2 << 30), + print_pte(hmp, env, (l0 << 48) + (l1 << 39) + (l2 << 30), pdpe, 0x3ffffc0000000ULL); continue; } @@ -172,7 +172,7 @@ static void tlb_info_la48(Monitor *mon, CPUArchState *env, AddressSpace *as, if (pde & PG_PSE_MASK) { /* 2M pages, CR4.PSE is ignored */ - print_pte(mon, env, (l0 << 48) + (l1 << 39) + (l2 << 30) + + print_pte(hmp, env, (l0 << 48) + (l1 << 39) + (l2 << 30) + (l3 << 21), pde, 0x3ffffffe00000ULL); continue; } @@ -182,7 +182,7 @@ static void tlb_info_la48(Monitor *mon, CPUArchState *env, AddressSpace *as, pte = address_space_ldq_le(as, pt_addr + l4 * 8, attrs, NULL); if (pte & PG_PRESENT_MASK) { - print_pte(mon, env, (l0 << 48) + (l1 << 39) + + print_pte(hmp, env, (l0 << 48) + (l1 << 39) + (l2 << 30) + (l3 << 21) + (l4 << 12), pte & ~PG_PSE_MASK, 0x3fffffffff000ULL); } @@ -192,7 +192,7 @@ static void tlb_info_la48(Monitor *mon, CPUArchState *env, AddressSpace *as, } } -static void tlb_info_la57(Monitor *mon, CPUArchState *env, AddressSpace *as) +static void tlb_info_la57(MonitorHMP *hmp, CPUArchState *env, AddressSpace *as) { const MemTxAttrs attrs = MEMTXATTRS_UNSPECIFIED; uint64_t l0; @@ -203,7 +203,7 @@ static void tlb_info_la57(Monitor *mon, CPUArchState *env, AddressSpace *as) for (l0 = 0; l0 < 512; l0++) { pml5e = address_space_ldq_le(as, pml5_addr + l0 * 8, attrs, NULL); if (pml5e & PG_PRESENT_MASK) { - tlb_info_la48(mon, env, as, l0, pml5e & 0x3fffffffff000ULL); + tlb_info_la48(hmp, env, as, l0, pml5e & 0x3fffffffff000ULL); } } } @@ -211,18 +211,17 @@ static void tlb_info_la57(Monitor *mon, CPUArchState *env, AddressSpace *as) void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); CPUArchState *env; AddressSpace *as; env = monitor_hmp_get_cpu_env(hmp); if (!env) { - monitor_printf(mon, "No CPU available\n"); + monitor_hmp_printf(hmp, "No CPU available\n"); return; } if (!(env->cr[0] & CR0_PG_MASK)) { - monitor_printf(mon, "PG disabled\n"); + monitor_hmp_printf(hmp, "PG disabled\n"); return; } as = cpu_get_address_space(env_cpu(env), X86ASIdx_MEM); @@ -230,21 +229,21 @@ void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict) #ifdef TARGET_X86_64 if (env->hflags & HF_LMA_MASK) { if (env->cr[4] & CR4_LA57_MASK) { - tlb_info_la57(mon, env, as); + tlb_info_la57(hmp, env, as); } else { - tlb_info_la48(mon, env, as, 0, env->cr[3] & 0x3fffffffff000ULL); + tlb_info_la48(hmp, env, as, 0, env->cr[3] & 0x3fffffffff000ULL); } } else #endif { - tlb_info_pae32(mon, env, as); + tlb_info_pae32(hmp, env, as); } } else { - tlb_info_32(mon, env, as); + tlb_info_32(hmp, env, as); } } -static void mem_print(Monitor *mon, CPUArchState *env, +static void mem_print(MonitorHMP *hmp, CPUArchState *env, hwaddr *pstart, int *plast_prot, hwaddr end, int prot) { @@ -252,14 +251,14 @@ static void mem_print(Monitor *mon, CPUArchState *env, prot1 = *plast_prot; if (prot != prot1) { if (*pstart != -1) { - monitor_printf(mon, HWADDR_FMT_plx "-" HWADDR_FMT_plx " " - HWADDR_FMT_plx " %c%c%c\n", - addr_canonical(env, *pstart), - addr_canonical(env, end), - addr_canonical(env, end - *pstart), - prot1 & PG_USER_MASK ? 'u' : '-', - 'r', - prot1 & PG_RW_MASK ? 'w' : '-'); + monitor_hmp_printf(hmp, HWADDR_FMT_plx "-" HWADDR_FMT_plx " " + HWADDR_FMT_plx " %c%c%c\n", + addr_canonical(env, *pstart), + addr_canonical(env, end), + addr_canonical(env, end - *pstart), + prot1 & PG_USER_MASK ? 'u' : '-', + 'r', + prot1 & PG_RW_MASK ? 'w' : '-'); } if (prot != 0) *pstart = end; @@ -269,7 +268,7 @@ static void mem_print(Monitor *mon, CPUArchState *env, } } -static void mem_info_32(Monitor *mon, CPUArchState *env, AddressSpace *as) +static void mem_info_32(MonitorHMP *hmp, CPUArchState *env, AddressSpace *as) { const MemTxAttrs attrs = MEMTXATTRS_UNSPECIFIED; unsigned int l1, l2; @@ -286,7 +285,7 @@ static void mem_info_32(Monitor *mon, CPUArchState *env, AddressSpace *as) if (pde & PG_PRESENT_MASK) { if ((pde & PG_PSE_MASK) && (env->cr[4] & CR4_PSE_MASK)) { prot = pde & (PG_USER_MASK | PG_RW_MASK | PG_PRESENT_MASK); - mem_print(mon, env, &start, &last_prot, end, prot); + mem_print(hmp, env, &start, &last_prot, end, prot); } else { for(l2 = 0; l2 < 1024; l2++) { pte = address_space_ldl_le(as, (pde & ~0xfff) + l2 * 4, @@ -298,19 +297,19 @@ static void mem_info_32(Monitor *mon, CPUArchState *env, AddressSpace *as) } else { prot = 0; } - mem_print(mon, env, &start, &last_prot, end, prot); + mem_print(hmp, env, &start, &last_prot, end, prot); } } } else { prot = 0; - mem_print(mon, env, &start, &last_prot, end, prot); + mem_print(hmp, env, &start, &last_prot, end, prot); } } /* Flush last range */ - mem_print(mon, env, &start, &last_prot, (hwaddr)1 << 32, 0); + mem_print(hmp, env, &start, &last_prot, (hwaddr)1 << 32, 0); } -static void mem_info_pae32(Monitor *mon, CPUArchState *env, AddressSpace *as) +static void mem_info_pae32(MonitorHMP *hmp, CPUArchState *env, AddressSpace *as) { const MemTxAttrs attrs = MEMTXATTRS_UNSPECIFIED; unsigned int l1, l2, l3; @@ -334,7 +333,7 @@ static void mem_info_pae32(Monitor *mon, CPUArchState *env, AddressSpace *as) if (pde & PG_PSE_MASK) { prot = pde & (PG_USER_MASK | PG_RW_MASK | PG_PRESENT_MASK); - mem_print(mon, env, &start, &last_prot, end, prot); + mem_print(hmp, env, &start, &last_prot, end, prot); } else { pt_addr = pde & 0x3fffffffff000ULL; for (l3 = 0; l3 < 512; l3++) { @@ -347,26 +346,26 @@ static void mem_info_pae32(Monitor *mon, CPUArchState *env, AddressSpace *as) } else { prot = 0; } - mem_print(mon, env, &start, &last_prot, end, prot); + mem_print(hmp, env, &start, &last_prot, end, prot); } } } else { prot = 0; - mem_print(mon, env, &start, &last_prot, end, prot); + mem_print(hmp, env, &start, &last_prot, end, prot); } } } else { prot = 0; - mem_print(mon, env, &start, &last_prot, end, prot); + mem_print(hmp, env, &start, &last_prot, end, prot); } } /* Flush last range */ - mem_print(mon, env, &start, &last_prot, (hwaddr)1 << 32, 0); + mem_print(hmp, env, &start, &last_prot, (hwaddr)1 << 32, 0); } #ifdef TARGET_X86_64 -static void mem_info_la48(Monitor *mon, CPUArchState *env, AddressSpace *as) +static void mem_info_la48(MonitorHMP *hmp, CPUArchState *env, AddressSpace *as) { const MemTxAttrs attrs = MEMTXATTRS_UNSPECIFIED; int prot, last_prot; @@ -390,7 +389,7 @@ static void mem_info_la48(Monitor *mon, CPUArchState *env, AddressSpace *as) prot = pdpe & (PG_USER_MASK | PG_RW_MASK | PG_PRESENT_MASK); prot &= pml4e; - mem_print(mon, env, &start, &last_prot, end, prot); + mem_print(hmp, env, &start, &last_prot, end, prot); } else { pd_addr = pdpe & 0x3fffffffff000ULL; for (l3 = 0; l3 < 512; l3++) { @@ -402,7 +401,7 @@ static void mem_info_la48(Monitor *mon, CPUArchState *env, AddressSpace *as) prot = pde & (PG_USER_MASK | PG_RW_MASK | PG_PRESENT_MASK); prot &= pml4e & pdpe; - mem_print(mon, env, &start, + mem_print(hmp, env, &start, &last_prot, end, prot); } else { pt_addr = pde & 0x3fffffffff000ULL; @@ -420,32 +419,32 @@ static void mem_info_la48(Monitor *mon, CPUArchState *env, AddressSpace *as) } else { prot = 0; } - mem_print(mon, env, &start, + mem_print(hmp, env, &start, &last_prot, end, prot); } } } else { prot = 0; - mem_print(mon, env, &start, + mem_print(hmp, env, &start, &last_prot, end, prot); } } } } else { prot = 0; - mem_print(mon, env, &start, &last_prot, end, prot); + mem_print(hmp, env, &start, &last_prot, end, prot); } } } else { prot = 0; - mem_print(mon, env, &start, &last_prot, end, prot); + mem_print(hmp, env, &start, &last_prot, end, prot); } } /* Flush last range */ - mem_print(mon, env, &start, &last_prot, (hwaddr)1 << 48, 0); + mem_print(hmp, env, &start, &last_prot, (hwaddr)1 << 48, 0); } -static void mem_info_la57(Monitor *mon, CPUArchState *env, AddressSpace *as) +static void mem_info_la57(MonitorHMP *hmp, CPUArchState *env, AddressSpace *as) { const MemTxAttrs attrs = MEMTXATTRS_UNSPECIFIED; int prot, last_prot; @@ -461,7 +460,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env, AddressSpace *as) end = l0 << 48; if (!(pml5e & PG_PRESENT_MASK)) { prot = 0; - mem_print(mon, env, &start, &last_prot, end, prot); + mem_print(hmp, env, &start, &last_prot, end, prot); continue; } @@ -471,7 +470,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env, AddressSpace *as) end = (l0 << 48) + (l1 << 39); if (!(pml4e & PG_PRESENT_MASK)) { prot = 0; - mem_print(mon, env, &start, &last_prot, end, prot); + mem_print(hmp, env, &start, &last_prot, end, prot); continue; } @@ -481,7 +480,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env, AddressSpace *as) end = (l0 << 48) + (l1 << 39) + (l2 << 30); if (pdpe & PG_PRESENT_MASK) { prot = 0; - mem_print(mon, env, &start, &last_prot, end, prot); + mem_print(hmp, env, &start, &last_prot, end, prot); continue; } @@ -489,7 +488,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env, AddressSpace *as) prot = pdpe & (PG_USER_MASK | PG_RW_MASK | PG_PRESENT_MASK); prot &= pml5e & pml4e; - mem_print(mon, env, &start, &last_prot, end, prot); + mem_print(hmp, env, &start, &last_prot, end, prot); continue; } @@ -500,7 +499,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env, AddressSpace *as) end = (l0 << 48) + (l1 << 39) + (l2 << 30) + (l3 << 21); if (pde & PG_PRESENT_MASK) { prot = 0; - mem_print(mon, env, &start, &last_prot, end, prot); + mem_print(hmp, env, &start, &last_prot, end, prot); continue; } @@ -508,7 +507,7 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env, AddressSpace *as) prot = pde & (PG_USER_MASK | PG_RW_MASK | PG_PRESENT_MASK); prot &= pml5e & pml4e & pdpe; - mem_print(mon, env, &start, &last_prot, end, prot); + mem_print(hmp, env, &start, &last_prot, end, prot); continue; } @@ -525,31 +524,30 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env, AddressSpace *as) } else { prot = 0; } - mem_print(mon, env, &start, &last_prot, end, prot); + mem_print(hmp, env, &start, &last_prot, end, prot); } } } } } /* Flush last range */ - mem_print(mon, env, &start, &last_prot, (hwaddr)1 << 57, 0); + mem_print(hmp, env, &start, &last_prot, (hwaddr)1 << 57, 0); } #endif /* TARGET_X86_64 */ void hmp_info_mem(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); CPUArchState *env; AddressSpace *as; env = monitor_hmp_get_cpu_env(hmp); if (!env) { - monitor_printf(mon, "No CPU available\n"); + monitor_hmp_printf(hmp, "No CPU available\n"); return; } if (!(env->cr[0] & CR0_PG_MASK)) { - monitor_printf(mon, "PG disabled\n"); + monitor_hmp_printf(hmp, "PG disabled\n"); return; } as = cpu_get_address_space(env_cpu(env), X86ASIdx_MEM); @@ -557,17 +555,17 @@ void hmp_info_mem(MonitorHMP *hmp, const QDict *qdict) #ifdef TARGET_X86_64 if (env->hflags & HF_LMA_MASK) { if (env->cr[4] & CR4_LA57_MASK) { - mem_info_la57(mon, env, as); + mem_info_la57(hmp, env, as); } else { - mem_info_la48(mon, env, as); + mem_info_la48(hmp, env, as); } } else #endif { - mem_info_pae32(mon, env, as); + mem_info_pae32(hmp, env, as); } } else { - mem_info_32(mon, env, as); + mem_info_32(hmp, env, as); } } diff --git a/target/i386/sev.c b/target/i386/sev.c index a3f6ee95aaed..7b2eb75fd480 100644 --- a/target/i386/sev.c +++ b/target/i386/sev.c @@ -786,33 +786,32 @@ SevInfo *qmp_query_sev(Error **errp) void hmp_info_sev(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); SevInfo *info = sev_get_info(); if (!info || !info->enabled) { - monitor_printf(mon, "SEV is not enabled\n"); + monitor_hmp_printf(hmp, "SEV is not enabled\n"); goto out; } - monitor_printf(mon, "SEV type: %s\n", SevGuestType_str(info->sev_type)); - monitor_printf(mon, "state: %s\n", SevState_str(info->state)); - monitor_printf(mon, "build: %d\n", info->build_id); - monitor_printf(mon, "api version: %d.%d\n", info->api_major, - info->api_minor); + monitor_hmp_printf(hmp, "SEV type: %s\n", SevGuestType_str(info->sev_type)); + monitor_hmp_printf(hmp, "state: %s\n", SevState_str(info->state)); + monitor_hmp_printf(hmp, "build: %d\n", info->build_id); + monitor_hmp_printf(hmp, "api version: %d.%d\n", info->api_major, + info->api_minor); if (sev_snp_enabled()) { - monitor_printf(mon, "debug: %s\n", - info->u.sev_snp.snp_policy & SEV_SNP_POLICY_DBG ? "on" - : "off"); - monitor_printf(mon, "SMT allowed: %s\n", - info->u.sev_snp.snp_policy & SEV_SNP_POLICY_SMT ? "on" - : "off"); + monitor_hmp_printf(hmp, "debug: %s\n", + info->u.sev_snp.snp_policy & SEV_SNP_POLICY_DBG ? "on" + : "off"); + monitor_hmp_printf(hmp, "SMT allowed: %s\n", + info->u.sev_snp.snp_policy & SEV_SNP_POLICY_SMT ? "on" + : "off"); } else { - monitor_printf(mon, "handle: %d\n", info->u.sev.handle); - monitor_printf(mon, "debug: %s\n", - info->u.sev.policy & SEV_POLICY_NODBG ? "off" : "on"); - monitor_printf(mon, "key-sharing: %s\n", - info->u.sev.policy & SEV_POLICY_NOKS ? "off" : "on"); + monitor_hmp_printf(hmp, "handle: %d\n", info->u.sev.handle); + monitor_hmp_printf(hmp, "debug: %s\n", + info->u.sev.policy & SEV_POLICY_NODBG ? "off" : "on"); + monitor_hmp_printf(hmp, "key-sharing: %s\n", + info->u.sev.policy & SEV_POLICY_NOKS ? "off" : "on"); } out: diff --git a/target/m68k/monitor.c b/target/m68k/monitor.c index 5645a5d4d4f5..23c25283b27a 100644 --- a/target/m68k/monitor.c +++ b/target/m68k/monitor.c @@ -12,11 +12,10 @@ void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); CPUArchState *env1 = monitor_hmp_get_cpu_env(hmp); if (!env1) { - monitor_printf(mon, "No CPU available\n"); + monitor_hmp_printf(hmp, "No CPU available\n"); return; } diff --git a/target/ppc/monitor.c b/target/ppc/monitor.c index 5769829bdd7e..6e8a075f5a41 100644 --- a/target/ppc/monitor.c +++ b/target/ppc/monitor.c @@ -13,11 +13,10 @@ void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); CPUArchState *env1 = monitor_hmp_get_cpu_env(hmp); if (!env1) { - monitor_printf(mon, "No CPU available\n"); + monitor_hmp_printf(hmp, "No CPU available\n"); return; } dump_mmu(env1); diff --git a/target/riscv/monitor.c b/target/riscv/monitor.c index 4c9c0c793b36..59cc04b3d0fb 100644 --- a/target/riscv/monitor.c +++ b/target/riscv/monitor.c @@ -51,13 +51,13 @@ static target_ulong addr_canonical(int va_bits, target_ulong addr) return addr; } -static void print_pte_header(Monitor *mon) +static void print_pte_header(MonitorHMP *hmp) { - monitor_printf(mon, PTE_HEADER_FIELDS); - monitor_printf(mon, PTE_HEADER_DELIMITER); + monitor_hmp_printf(hmp, PTE_HEADER_FIELDS); + monitor_hmp_printf(hmp, PTE_HEADER_DELIMITER); } -static void print_pte(Monitor *mon, int va_bits, target_ulong vaddr, +static void print_pte(MonitorHMP *hmp, int va_bits, target_ulong vaddr, hwaddr paddr, target_ulong size, int attr) { /* sanity check on vaddr */ @@ -69,20 +69,20 @@ static void print_pte(Monitor *mon, int va_bits, target_ulong vaddr, return; } - monitor_printf(mon, TARGET_FMT_lx " " HWADDR_FMT_plx " " TARGET_FMT_lx - " %c%c%c%c%c%c%c\n", - addr_canonical(va_bits, vaddr), - paddr, size, - attr & PTE_R ? 'r' : '-', - attr & PTE_W ? 'w' : '-', - attr & PTE_X ? 'x' : '-', - attr & PTE_U ? 'u' : '-', - attr & PTE_G ? 'g' : '-', - attr & PTE_A ? 'a' : '-', - attr & PTE_D ? 'd' : '-'); + monitor_hmp_printf(hmp, TARGET_FMT_lx " " HWADDR_FMT_plx " " TARGET_FMT_lx + " %c%c%c%c%c%c%c\n", + addr_canonical(va_bits, vaddr), + paddr, size, + attr & PTE_R ? 'r' : '-', + attr & PTE_W ? 'w' : '-', + attr & PTE_X ? 'x' : '-', + attr & PTE_U ? 'u' : '-', + attr & PTE_G ? 'g' : '-', + attr & PTE_A ? 'a' : '-', + attr & PTE_D ? 'd' : '-'); } -static void walk_pte(Monitor *mon, AddressSpace *as, +static void walk_pte(MonitorHMP *hmp, AddressSpace *as, hwaddr base, target_ulong start, int level, int ptidxbits, int ptesize, int va_bits, target_ulong *vbase, hwaddr *pbase, hwaddr *last_paddr, @@ -126,7 +126,7 @@ static void walk_pte(Monitor *mon, AddressSpace *as, if ((*last_attr != attr) || (*last_paddr + *last_size != paddr) || (last_start + *last_size != start)) { - print_pte(mon, va_bits, *vbase, *pbase, + print_pte(hmp, va_bits, *vbase, *pbase, *last_paddr + *last_size - *pbase, *last_attr); *vbase = start; @@ -139,7 +139,7 @@ static void walk_pte(Monitor *mon, AddressSpace *as, *last_size = pgsize; } else { /* pointer to the next level of the page table */ - walk_pte(mon, as, paddr, start, level - 1, ptidxbits, ptesize, + walk_pte(hmp, as, paddr, start, level - 1, ptidxbits, ptesize, va_bits, vbase, pbase, last_paddr, last_size, last_attr); } @@ -150,7 +150,7 @@ static void walk_pte(Monitor *mon, AddressSpace *as, } -static void mem_info_svxx(Monitor *mon, CPUArchState *env) +static void mem_info_svxx(MonitorHMP *hmp, CPUArchState *env) { AddressSpace *as = env_cpu(env)->as; int levels, ptidxbits, ptesize, vm, va_bits; @@ -198,7 +198,7 @@ static void mem_info_svxx(Monitor *mon, CPUArchState *env) va_bits = PGSHIFT + levels * ptidxbits; /* print header */ - print_pte_header(mon); + print_pte_header(hmp); vbase = -1; pbase = -1; @@ -207,43 +207,42 @@ static void mem_info_svxx(Monitor *mon, CPUArchState *env) last_attr = 0; /* walk page tables, starting from address 0 */ - walk_pte(mon, as, base, 0, levels - 1, ptidxbits, ptesize, va_bits, + walk_pte(hmp, as, base, 0, levels - 1, ptidxbits, ptesize, va_bits, &vbase, &pbase, &last_paddr, &last_size, &last_attr); /* don't forget the last one */ - print_pte(mon, va_bits, vbase, pbase, + print_pte(hmp, va_bits, vbase, pbase, last_paddr + last_size - pbase, last_attr); } void hmp_info_mem(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); CPUArchState *env; env = monitor_hmp_get_cpu_env(hmp); if (!env) { - monitor_printf(mon, "No CPU available\n"); + monitor_hmp_printf(hmp, "No CPU available\n"); return; } if (!riscv_cpu_cfg(env)->mmu) { - monitor_printf(mon, "S-mode MMU unavailable\n"); + monitor_hmp_printf(hmp, "S-mode MMU unavailable\n"); return; } if (riscv_cpu_mxl(env) == MXL_RV32) { if (!(env->satp & SATP32_MODE)) { - monitor_printf(mon, "No translation or protection\n"); + monitor_hmp_printf(hmp, "No translation or protection\n"); return; } } else { if (!(env->satp & SATP64_MODE)) { - monitor_printf(mon, "No translation or protection\n"); + monitor_hmp_printf(hmp, "No translation or protection\n"); return; } } - mem_info_svxx(mon, env); + mem_info_svxx(hmp, env); } #ifdef CONFIG_TCG diff --git a/target/sh4/monitor.c b/target/sh4/monitor.c index 4e443152bf56..62998a9a57cb 100644 --- a/target/sh4/monitor.c +++ b/target/sh4/monitor.c @@ -26,33 +26,32 @@ #include "monitor/monitor.h" #include "monitor/hmp.h" -static void print_tlb(Monitor *mon, int idx, tlb_t *tlb) +static void print_tlb(MonitorHMP *hmp, int idx, tlb_t *tlb) { - monitor_printf(mon, " tlb%i:\t" - "asid=%hhu vpn=%x\tppn=%x\tsz=%hhu size=%u\t" - "v=%hhu shared=%hhu cached=%hhu prot=%hhu " - "dirty=%hhu writethrough=%hhu\n", - idx, - tlb->asid, tlb->vpn, tlb->ppn, tlb->sz, tlb->size, - tlb->v, tlb->sh, tlb->c, tlb->pr, - tlb->d, tlb->wt); + monitor_hmp_printf(hmp, " tlb%i:\t" + "asid=%hhu vpn=%x\tppn=%x\tsz=%hhu size=%u\t" + "v=%hhu shared=%hhu cached=%hhu prot=%hhu " + "dirty=%hhu writethrough=%hhu\n", + idx, + tlb->asid, tlb->vpn, tlb->ppn, tlb->sz, tlb->size, + tlb->v, tlb->sh, tlb->c, tlb->pr, + tlb->d, tlb->wt); } void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); CPUArchState *env = monitor_hmp_get_cpu_env(hmp); int i; if (!env) { - monitor_printf(mon, "No CPU available\n"); + monitor_hmp_printf(hmp, "No CPU available\n"); return; } - monitor_printf (mon, "ITLB:\n"); + monitor_hmp_printf(hmp, "ITLB:\n"); for (i = 0 ; i < ITLB_SIZE ; i++) - print_tlb (mon, i, &env->itlb[i]); - monitor_printf (mon, "UTLB:\n"); + print_tlb(hmp, i, &env->itlb[i]); + monitor_hmp_printf(hmp, "UTLB:\n"); for (i = 0 ; i < UTLB_SIZE ; i++) - print_tlb (mon, i, &env->utlb[i]); + print_tlb(hmp, i, &env->utlb[i]); } diff --git a/target/sparc/monitor.c b/target/sparc/monitor.c index e826e584a918..36f109cbb568 100644 --- a/target/sparc/monitor.c +++ b/target/sparc/monitor.c @@ -29,11 +29,10 @@ void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); CPUArchState *env1 = monitor_hmp_get_cpu_env(hmp); if (!env1) { - monitor_printf(mon, "No CPU available\n"); + monitor_hmp_printf(hmp, "No CPU available\n"); return; } dump_mmu(env1); diff --git a/target/xtensa/monitor.c b/target/xtensa/monitor.c index b7b7387706f3..b9c4089b0fb1 100644 --- a/target/xtensa/monitor.c +++ b/target/xtensa/monitor.c @@ -28,11 +28,10 @@ void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); CPUArchState *env1 = monitor_hmp_get_cpu_env(hmp); if (!env1) { - monitor_printf(mon, "No CPU available\n"); + monitor_hmp_printf(hmp, "No CPU available\n"); return; } dump_mmu(env1); diff --git a/tests/unit/test-util-sockets.c b/tests/unit/test-util-sockets.c index b2a884529598..530a3fee3c13 100644 --- a/tests/unit/test-util-sockets.c +++ b/tests/unit/test-util-sockets.c @@ -75,7 +75,7 @@ int monitor_get_fd(Monitor *mon, const char *fdname, Error **errp) */ Monitor *monitor_cur(void) { return cur_mon; } Monitor *monitor_set_cur(Coroutine *co, Monitor *mon) { abort(); } -int monitor_vprintf(Monitor *mon, const char *fmt, va_list ap) { abort(); } +int monitor_hmp_vprintf(MonitorHMP *mon, const char *fmt, va_list ap) { abort(); } #ifndef _WIN32 static void test_socket_fd_pass_name_good(void) diff --git a/tools/qemu-vnc/clipboard.c b/tools/qemu-vnc/clipboard.c index f62b2f294952..81a09ec5adfa 100644 --- a/tools/qemu-vnc/clipboard.c +++ b/tools/qemu-vnc/clipboard.c @@ -62,7 +62,7 @@ vnc_dbus_clipboard_request_cancelled(VncDBusClipboardRequest *req) "Cancelled clipboard request"); g_clear_object(&req->invocation); - g_clear_handle_id(&req->timeout_id, g_source_remove);; + g_clear_handle_id(&req->timeout_id, g_source_remove); } static gboolean @@ -137,7 +137,7 @@ vnc_dbus_clipboard_update_info(QemuClipboardInfo *info) vnc_dbus_clipboard_complete_request( req->invocation, info, req->type); g_clear_object(&req->invocation); - g_clear_handle_id(&req->timeout_id, g_source_remove);; + g_clear_handle_id(&req->timeout_id, g_source_remove); return; } diff --git a/tools/qemu-vnc/stubs.c b/tools/qemu-vnc/stubs.c index 26597fefaa99..0aa50a901d37 100644 --- a/tools/qemu-vnc/stubs.c +++ b/tools/qemu-vnc/stubs.c @@ -42,7 +42,7 @@ Monitor *monitor_set_cur(Coroutine *co, Monitor *mon) return NULL; } -int monitor_vprintf(Monitor *mon, const char *fmt, va_list ap) +int monitor_hmp_vprintf(MonitorHMP *mon, const char *fmt, va_list ap) { return -1; } diff --git a/trace/trace-hmp-cmds.c b/trace/trace-hmp-cmds.c index 5a8158f4f4b6..a68f5b900d7c 100644 --- a/trace/trace-hmp-cmds.c +++ b/trace/trace-hmp-cmds.c @@ -49,7 +49,6 @@ void hmp_trace_event(MonitorHMP *hmp, const QDict *qdict) #ifdef CONFIG_TRACE_SIMPLE void hmp_trace_file(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *op = qdict_get_try_str(qdict, "op"); const char *arg = qdict_get_try_str(qdict, "arg"); @@ -66,15 +65,14 @@ void hmp_trace_file(MonitorHMP *hmp, const QDict *qdict) st_set_trace_file(arg); } } else { - monitor_printf(mon, "unexpected argument \"%s\"\n", op); - hmp_help_cmd(mon, "trace-file"); + monitor_hmp_printf(hmp, "unexpected argument \"%s\"\n", op); + hmp_help_cmd(hmp, "trace-file"); } } #endif void hmp_info_trace_events(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *name = qdict_get_try_str(qdict, "name"); TraceEventInfoList *events; TraceEventInfoList *elem; @@ -91,9 +89,9 @@ void hmp_info_trace_events(MonitorHMP *hmp, const QDict *qdict) } for (elem = events; elem != NULL; elem = elem->next) { - monitor_printf(mon, "%s : state %u\n", - elem->value->name, - elem->value->state == TRACE_EVENT_STATE_ENABLED ? 1 : 0); + monitor_hmp_printf(hmp, "%s : state %u\n", + elem->value->name, + elem->value->state == TRACE_EVENT_STATE_ENABLED ? 1 : 0); } qapi_free_TraceEventInfoList(events); } diff --git a/ui/ui-hmp-cmds.c b/ui/ui-hmp-cmds.c index 186209fd0234..f611dd7ee457 100644 --- a/ui/ui-hmp-cmds.c +++ b/ui/ui-hmp-cmds.c @@ -81,20 +81,19 @@ void hmp_mouse_set(MonitorHMP *hmp, const QDict *qdict) void hmp_info_mice(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); MouseInfoList *mice_list, *mouse; mice_list = qmp_query_mice(NULL); if (!mice_list) { - monitor_printf(mon, "No mouse devices connected\n"); + monitor_hmp_printf(hmp, "No mouse devices connected\n"); return; } for (mouse = mice_list; mouse; mouse = mouse->next) { - monitor_printf(mon, "%c Mouse #%" PRId64 ": %s%s\n", - mouse->value->current ? '*' : ' ', - mouse->value->index, mouse->value->name, - mouse->value->absolute ? " (absolute)" : ""); + monitor_hmp_printf(hmp, "%c Mouse #%" PRId64 ": %s%s\n", + mouse->value->current ? '*' : ' ', + mouse->value->index, mouse->value->name, + mouse->value->absolute ? " (absolute)" : ""); } qapi_free_MouseInfoList(mice_list); @@ -102,48 +101,48 @@ void hmp_info_mice(MonitorHMP *hmp, const QDict *qdict) #ifdef CONFIG_VNC /* Helper for hmp_info_vnc_clients, _servers */ -static void hmp_info_VncBasicInfo(Monitor *mon, VncBasicInfo *info, +static void hmp_info_VncBasicInfo(MonitorHMP *hmp, VncBasicInfo *info, const char *name) { - monitor_printf(mon, " %s: %s:%s (%s%s)\n", - name, - info->host, - info->service, - NetworkAddressFamily_str(info->family), - info->websocket ? " (Websocket)" : ""); + monitor_hmp_printf(hmp, " %s: %s:%s (%s%s)\n", + name, + info->host, + info->service, + NetworkAddressFamily_str(info->family), + info->websocket ? " (Websocket)" : ""); } /* Helper displaying and auth and crypt info */ -static void hmp_info_vnc_authcrypt(Monitor *mon, const char *indent, +static void hmp_info_vnc_authcrypt(MonitorHMP *hmp, const char *indent, VncPrimaryAuth auth, VncVencryptSubAuth *vencrypt) { - monitor_printf(mon, "%sAuth: %s (Sub: %s)\n", indent, - VncPrimaryAuth_str(auth), - vencrypt ? VncVencryptSubAuth_str(*vencrypt) : "none"); + monitor_hmp_printf(hmp, "%sAuth: %s (Sub: %s)\n", indent, + VncPrimaryAuth_str(auth), + vencrypt ? VncVencryptSubAuth_str(*vencrypt) : "none"); } -static void hmp_info_vnc_clients(Monitor *mon, VncClientInfoList *client) +static void hmp_info_vnc_clients(MonitorHMP *hmp, VncClientInfoList *client) { while (client) { VncClientInfo *cinfo = client->value; - hmp_info_VncBasicInfo(mon, qapi_VncClientInfo_base(cinfo), "Client"); - monitor_printf(mon, " x509_dname: %s\n", - cinfo->x509_dname ?: "none"); - monitor_printf(mon, " sasl_username: %s\n", - cinfo->sasl_username ?: "none"); + hmp_info_VncBasicInfo(hmp, qapi_VncClientInfo_base(cinfo), "Client"); + monitor_hmp_printf(hmp, " x509_dname: %s\n", + cinfo->x509_dname ?: "none"); + monitor_hmp_printf(hmp, " sasl_username: %s\n", + cinfo->sasl_username ?: "none"); client = client->next; } } -static void hmp_info_vnc_servers(Monitor *mon, VncServerInfo2List *server) +static void hmp_info_vnc_servers(MonitorHMP *hmp, VncServerInfo2List *server) { while (server) { VncServerInfo2 *sinfo = server->value; - hmp_info_VncBasicInfo(mon, qapi_VncServerInfo2_base(sinfo), "Server"); - hmp_info_vnc_authcrypt(mon, " ", sinfo->auth, + hmp_info_VncBasicInfo(hmp, qapi_VncServerInfo2_base(sinfo), "Server"); + hmp_info_vnc_authcrypt(hmp, " ", sinfo->auth, sinfo->has_vencrypt ? &sinfo->vencrypt : NULL); server = server->next; } @@ -151,7 +150,6 @@ static void hmp_info_vnc_servers(Monitor *mon, VncServerInfo2List *server) void hmp_info_vnc(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); VncInfo2List *info2l, *info2l_head; Error *err = NULL; @@ -161,26 +159,26 @@ void hmp_info_vnc(MonitorHMP *hmp, const QDict *qdict) return; } if (!info2l) { - monitor_printf(mon, "None\n"); + monitor_hmp_printf(hmp, "None\n"); return; } while (info2l) { VncInfo2 *info = info2l->value; - monitor_printf(mon, "%s:\n", info->id); - hmp_info_vnc_servers(mon, info->server); - hmp_info_vnc_clients(mon, info->clients); + monitor_hmp_printf(hmp, "%s:\n", info->id); + hmp_info_vnc_servers(hmp, info->server); + hmp_info_vnc_clients(hmp, info->clients); if (!info->server) { /* * The server entry displays its auth, we only need to * display in the case of 'reverse' connections where * there's no server. */ - hmp_info_vnc_authcrypt(mon, " ", info->auth, + hmp_info_vnc_authcrypt(hmp, " ", info->auth, info->has_vencrypt ? &info->vencrypt : NULL); } if (info->display) { - monitor_printf(mon, " Display: %s\n", info->display); + monitor_hmp_printf(hmp, " Display: %s\n", info->display); } info2l = info2l->next; } @@ -193,7 +191,6 @@ void hmp_info_vnc(MonitorHMP *hmp, const QDict *qdict) #ifdef CONFIG_SPICE void hmp_info_spice(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); SpiceChannelList *chan; SpiceInfo *info; const char *channel_name; @@ -214,38 +211,38 @@ void hmp_info_spice(MonitorHMP *hmp, const QDict *qdict) info = qmp_query_spice(NULL); if (!info->enabled) { - monitor_printf(mon, "Server: disabled\n"); + monitor_hmp_printf(hmp, "Server: disabled\n"); goto out; } - monitor_printf(mon, "Server:\n"); + monitor_hmp_printf(hmp, "Server:\n"); if (info->has_port) { - monitor_printf(mon, " address: %s:%" PRId64 "\n", - info->host, info->port); + monitor_hmp_printf(hmp, " address: %s:%" PRId64 "\n", + info->host, info->port); } if (info->has_tls_port) { - monitor_printf(mon, " address: %s:%" PRId64 " [tls]\n", - info->host, info->tls_port); + monitor_hmp_printf(hmp, " address: %s:%" PRId64 " [tls]\n", + info->host, info->tls_port); } - monitor_printf(mon, " migrated: %s\n", - info->migrated ? "true" : "false"); - monitor_printf(mon, " auth: %s\n", info->auth); - monitor_printf(mon, " compiled: %s\n", info->compiled_version); - monitor_printf(mon, " mouse-mode: %s\n", - SpiceQueryMouseMode_str(info->mouse_mode)); + monitor_hmp_printf(hmp, " migrated: %s\n", + info->migrated ? "true" : "false"); + monitor_hmp_printf(hmp, " auth: %s\n", info->auth); + monitor_hmp_printf(hmp, " compiled: %s\n", info->compiled_version); + monitor_hmp_printf(hmp, " mouse-mode: %s\n", + SpiceQueryMouseMode_str(info->mouse_mode)); if (!info->has_channels || info->channels == NULL) { - monitor_printf(mon, "Channels: none\n"); + monitor_hmp_printf(hmp, "Channels: none\n"); } else { for (chan = info->channels; chan; chan = chan->next) { - monitor_printf(mon, "Channel:\n"); - monitor_printf(mon, " address: %s:%s%s\n", - chan->value->host, chan->value->port, - chan->value->tls ? " [tls]" : ""); - monitor_printf(mon, " session: %" PRId64 "\n", - chan->value->connection_id); - monitor_printf(mon, " channel: %" PRId64 ":%" PRId64 "\n", - chan->value->channel_type, chan->value->channel_id); + monitor_hmp_printf(hmp, "Channel:\n"); + monitor_hmp_printf(hmp, " address: %s:%s%s\n", + chan->value->host, chan->value->port, + chan->value->tls ? " [tls]" : ""); + monitor_hmp_printf(hmp, " session: %" PRId64 "\n", + chan->value->connection_id); + monitor_hmp_printf(hmp, " channel: %" PRId64 ":%" PRId64 "\n", + chan->value->channel_type, chan->value->channel_id); channel_name = "unknown"; if (chan->value->channel_type > 0 && @@ -254,7 +251,7 @@ void hmp_info_spice(MonitorHMP *hmp, const QDict *qdict) channel_name = channel_names[chan->value->channel_type]; } - monitor_printf(mon, " channel name: %s\n", channel_name); + monitor_hmp_printf(hmp, " channel name: %s\n", channel_name); } } @@ -333,7 +330,7 @@ static void hmp_change_read_arg(void *opaque, const char *password, monitor_hmp_read_command(opaque, 1); } -void hmp_change_vnc(Monitor *mon, const char *device, const char *target, +void hmp_change_vnc(MonitorHMP *hmp, const char *device, const char *target, const char *arg, const char *read_only, bool force, Error **errp) { @@ -346,7 +343,6 @@ void hmp_change_vnc(Monitor *mon, const char *device, const char *target, return; } if (!arg) { - MonitorHMP *hmp = MONITOR_HMP(mon); monitor_hmp_read_password(hmp, hmp_change_read_arg, NULL); } else { qmp_change_vnc_password(arg, errp); @@ -371,7 +367,6 @@ static int index_from_key(const char *key, size_t key_length) void hmp_sendkey(MonitorHMP *hmp, const QDict *qdict) { - Monitor *mon = MONITOR(hmp); const char *keys = qdict_get_str(qdict, "keys"); KeyValue *v = NULL; KeyValueList *head = NULL, **tail = &head; @@ -432,7 +427,7 @@ out: return; err_out: - monitor_printf(mon, "invalid parameter: %.*s\n", keyname_len, keys); + monitor_hmp_printf(hmp, "invalid parameter: %.*s\n", keyname_len, keys); goto out; } diff --git a/util/error-report.c b/util/error-report.c index 41694d61cf2d..0e3aaa539e78 100644 --- a/util/error-report.c +++ b/util/error-report.c @@ -36,7 +36,7 @@ static int G_GNUC_PRINTF(2, 0) error_vprintf_hmp(MonitorHMP *hmp, const char *fmt, va_list ap) { if (hmp) { - return monitor_vprintf(MONITOR(hmp), fmt, ap); + return monitor_hmp_vprintf(hmp, fmt, ap); } return vfprintf(stderr, fmt, ap); diff --git a/util/qemu-print.c b/util/qemu-print.c index 5d4143d425a1..01ed43b5a588 100644 --- a/util/qemu-print.c +++ b/util/qemu-print.c @@ -13,6 +13,7 @@ #include "qemu/osdep.h" #include "monitor/monitor.h" #include "monitor/hmp.h" +#include "qom/object.h" #include "qemu/qemu-print.h" /* @@ -23,8 +24,16 @@ int qemu_vprintf(const char *fmt, va_list ap) { Monitor *cur_mon = monitor_cur(); + + /* for all monitors: QMP & HMP */ if (cur_mon) { - return monitor_vprintf(cur_mon, fmt, ap); + /* don't use monitor_cur_hmp(), to avoid a second lookup */ + MonitorHMP *hmp = (MonitorHMP *) + object_dynamic_cast(OBJECT(cur_mon), TYPE_MONITOR_HMP); + if (!hmp) { + return -1; + } + return monitor_hmp_vprintf(hmp, fmt, ap); } return vprintf(fmt, ap); } @@ -55,7 +64,11 @@ int qemu_printf(const char *fmt, ...) int qemu_vfprintf(FILE *stream, const char *fmt, va_list ap) { if (!stream) { - return monitor_vprintf(monitor_cur(), fmt, ap); + MonitorHMP *hmp = monitor_cur_hmp(); + if (!hmp) { + return -1; + } + return monitor_hmp_vprintf(hmp, fmt, ap); } return vfprintf(stream, fmt, ap); } From patchwork Fri Aug 28 20:42:20 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= X-Patchwork-Id: 2294334 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=dKKN6J4Z; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists1p.gnu.org; envelope-from=qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=patchwork.ozlabs.org) Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4hWr4x2l3lz1y9Z for ; Sat, 29 Aug 2026 06:45:53 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x03RQ-0004AV-1a; Fri, 28 Aug 2026 16:44:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x03RN-00042y-Vx for qemu-ppc@nongnu.org; Fri, 28 Aug 2026 16:44:46 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x03RJ-0000iS-Dh for qemu-ppc@nongnu.org; Fri, 28 Aug 2026 16:44:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1787949880; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1MnlwV9u4hBAhAqG20I2D2aQxHEJi2OE3WLohKT4/Tg=; b=dKKN6J4ZNtfZKRwNpTlal3TOawVVHFaap1KV3T3pUQkTNfgiF+SJyeN4e6pccPmoyo24yQ RtOnQsx9yv5GmeIlJOI0I7Tt5+za73OaSO8OjzVziQTP6IOzidL0XzeiUZkHrb3wK/TCT0 02iWk+6h6y9JzU6d7m5qPRoJcLba3gY= Received: from mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-675-mv0IbRlvMdS2PtvGq013zQ-1; Fri, 28 Aug 2026 16:44:37 -0400 X-MC-Unique: mv0IbRlvMdS2PtvGq013zQ-1 X-Mimecast-MFC-AGG-ID: mv0IbRlvMdS2PtvGq013zQ_1787949873 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id D235B19541B1; Fri, 28 Aug 2026 20:44:32 +0000 (UTC) Received: from localhost (headnet04.pony-001.prod.iad2.dc.redhat.com [10.2.32.116]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id D34921803A40; Fri, 28 Aug 2026 20:44:30 +0000 (UTC) From: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Date: Sat, 29 Aug 2026 00:42:20 +0400 Subject: [GIT PULL 41/50] Guard HMP command implementations with CONFIG_HMP MIME-Version: 1.0 Message-Id: <20260829-nohmp-v1-41-4dcc2b4b0055@redhat.com> References: <20260829-nohmp-v1-0-4dcc2b4b0055@redhat.com> In-Reply-To: <20260829-nohmp-v1-0-4dcc2b4b0055@redhat.com> To: qemu-devel@nongnu.org Cc: richard.henderson@linaro.org, Paolo Bonzini , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , David Woodhouse , Paul Durrant , "Michael S. Tsirkin" , Marcelo Tosatti , Mark Cave-Ayland , Halil Pasic , Christian Borntraeger , Jason Herne , Ilya Leoshkevich , David Hildenbrand , Eric Farman , Matthew Rosato , Cornelia Huck , Gerd Hoffmann , Hyman Huang , Peter Xu , Fabiano Rosas , "Dr. David Alan Gilbert" , Samuel Thibault , Jason Wang , =?utf-8?q?Alex_Benn=C3=A9e?= , =?utf-8?q?Daniel_P?= =?utf-8?q?=2E_Berrang=C3=A9?= , Zhao Liu , Laurent Vivier , Nicholas Piggin , Chinmay Rath , Glenn Miles , Harsh Prateek Bora , Palmer Dabbelt , Alistair Francis , Weiwei Li , Daniel Henrique Barboza , Liu Zhiwei , Chao Liu , Yoshinori Sato , Artyom Tarasenko , Max Filippov , kvm@vger.kernel.org, qemu-ppc@nongnu.org, qemu-s390x@nongnu.org, qemu-riscv@nongnu.org X-Developer-Signature: v=1; a=openpgp-sha256; l=20762; i=marcandre.lureau@redhat.com; h=from:subject:message-id; bh=VeMRhlxYmz+T9jOYPDTApDrfgg2t6fF/rqpbmuy+YRE=; b=owEBbQKS/ZANAwAKAdro4Ql1lpzlAcsmYgBqkfKVXxzv1ttcI+MHb7bj9caVbDTCB75HeI1/D XziqGsanFOJAjMEAAEKAB0WIQSHqb2TP4fGBtJ29i3a6OEJdZac5QUCapHylQAKCRDa6OEJdZac 5bA3EACwxy+ab3IpYr5KQgbpBcyHuuaXS39CuQFmZ0JG1reuVTizhiQECoEIEa8rmPBV6W0G23B xLBnrC6wGVt6Id/uClr/rWAvHz1duHKP3Y1/UG1dXTapRb5ouNW71xcm691zGemaoX6A1p3jpei YaWwrnJKdvggeg41ZX8ik7odUxn3DlopLqJcVx1KV7UGeoy+C5yowBRvt8WPbpujV+IwvvZ+zet mrOShUQ3xKsgRZ3Y58cApr93QKprOGCBHI/scnP6YXkjjRrEDqJqv14N/sGh3TTfWtLLCBtBQW9 jMLQnIMod2KSTyrbi8R0g+kPt7amg80V9DMfqh9a9kj9lmX/JYqI5xT8Jv9L41MNcm77P0zPYsF 2eRmiGVgnFw7pWn7kYLNdiHDJC0xZj12bQsDJPn/hwcGCF9U8aDZMUFWDrnNXX91KI91CKiBCHa SCUgeGTmeL0BpMGeOm6XLP7h07+mSaEEoZxpjR97tJEE5rGvmzp2trKOPq296l5SULYK9arYgTp SfB+gQMaBdKi/dro0WhbFcyJjtapxROrQGAgS9PHmhx5S7OZDw8dzX4EcCnQgZUY1uzSxc7WE26 C7D20rIs7xEHW9MuEeW9a0lXbhqNzs/uKcHRUQ4IlcottTzx/9kT5blD0AqEgnF7vkkhQ+sfCLh CZxmKFDFDNbJYSQ== X-Developer-Key: i=marcandre.lureau@redhat.com; a=openpgp; fpr=87A9BD933F87C606D276F62DDAE8E10975969CE5 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 X-Mimecast-MFC-PROC-ID: T-EBpIVF3hBK5uH5q44Vv3X-XLQCl6hKjRyx_PMI4N4_1787949873 X-Mimecast-Originator: redhat.com Received-SPF: pass client-ip=170.10.129.124; envelope-from=marcandre.lureau@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: 12 X-Spam_score: 1.2 X-Spam_bar: + X-Spam_report: (1.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=0.001, RCVD_IN_SBL_CSS=3.335, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-ppc@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-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org Add #ifdef CONFIG_HMP around all hmp_* function implementations and their HMP-only helpers across subsystems. This covers monitor_register_hmp* callers, hmp_info_* handlers, and HMP-only helper functions like slirp_lookup. To link succesfully, use empty cmds tables in hmp-cmds.c (to be removed once meson build-sys is updated with !hmp support later in the series) Reviewed-by: Jason J. Herne Reviewed-by: Daniel P. Berrangé Signed-off-by: Marc-André Lureau Message-ID: <20260828-qemu-no-hmp-v5-41-9227de146347@redhat.com> --- accel/accel-system.c | 2 ++ accel/tcg/monitor.c | 2 ++ hw/i386/kvm/xen-stubs.c | 2 ++ hw/i386/kvm/xen_evtchn.c | 3 +++ hw/i386/sgx.c | 2 ++ hw/misc/mos6522-stub.c | 2 ++ hw/misc/mos6522.c | 2 ++ hw/pci/pci-stub.c | 2 ++ hw/s390x/s390-skeys.c | 2 ++ hw/s390x/s390-stattrib.c | 4 ++++ hw/uefi/ovmf-log.c | 2 ++ hw/usb/host-libusb.c | 6 ++++++ migration/dirtyrate.c | 2 ++ monitor/hmp-cmds.c | 5 +++++ net/slirp.c | 7 ++++++- replay/replay-debugging.c | 8 ++++++++ replay/stubs-system.c | 6 ++++++ system/qdev-monitor.c | 4 ++++ target/i386/cpu-apic.c | 2 ++ target/i386/monitor.c | 3 +++ target/i386/sev.c | 2 ++ target/m68k/monitor.c | 2 ++ target/ppc/monitor.c | 2 ++ target/riscv/monitor.c | 3 +++ target/sh4/monitor.c | 2 ++ target/sparc/monitor.c | 2 ++ target/xtensa/monitor.c | 2 ++ 27 files changed, 82 insertions(+), 1 deletion(-) diff --git a/accel/accel-system.c b/accel/accel-system.c index 977804c4048a..1325b23864c8 100644 --- a/accel/accel-system.c +++ b/accel/accel-system.c @@ -109,7 +109,9 @@ void accel_init_ops_interfaces(AccelClass *ac) static void accel_ops_class_init(ObjectClass *oc, const void *data) { +#ifdef CONFIG_HMP monitor_register_hmp_info_hrt("accel", qmp_x_accel_stats); +#endif } static const TypeInfo accel_ops_type_info = { diff --git a/accel/tcg/monitor.c b/accel/tcg/monitor.c index 74170ddef708..5570d60753d6 100644 --- a/accel/tcg/monitor.c +++ b/accel/tcg/monitor.c @@ -30,9 +30,11 @@ HumanReadableText *qmp_x_query_jit(Error **errp) return human_readable_text_from_str(buf); } +#ifdef CONFIG_HMP static void hmp_tcg_register(void) { monitor_register_hmp_info_hrt("jit", qmp_x_query_jit); } type_init(hmp_tcg_register); +#endif diff --git a/hw/i386/kvm/xen-stubs.c b/hw/i386/kvm/xen-stubs.c index 5ed71583281a..a68c739a9496 100644 --- a/hw/i386/kvm/xen-stubs.c +++ b/hw/i386/kvm/xen-stubs.c @@ -40,6 +40,7 @@ void xen_primary_console_set_be_port(uint16_t port) { } +#ifdef CONFIG_HMP void hmp_xen_event_list(MonitorHMP *hmp, const QDict *qdict) { monitor_hmp_printf(hmp, "XEN emulation is not available in this QEMU\n"); @@ -49,3 +50,4 @@ void hmp_xen_event_inject(MonitorHMP *hmp, const QDict *qdict) { monitor_hmp_printf(hmp, "XEN emulation is not available in this QEMU\n"); } +#endif diff --git a/hw/i386/kvm/xen_evtchn.c b/hw/i386/kvm/xen_evtchn.c index b2135020f27f..9379383e5325 100644 --- a/hw/i386/kvm/xen_evtchn.c +++ b/hw/i386/kvm/xen_evtchn.c @@ -2344,6 +2344,7 @@ void qmp_xen_event_inject(uint32_t port, Error **errp) } } +#ifdef CONFIG_HMP void hmp_xen_event_list(MonitorHMP *hmp, const QDict *qdict) { EvtchnInfoList *iter, *info_list; @@ -2391,3 +2392,5 @@ void hmp_xen_event_inject(MonitorHMP *hmp, const QDict *qdict) monitor_hmp_printf(hmp, "Delivered port %d\n", port); } } + +#endif diff --git a/hw/i386/sgx.c b/hw/i386/sgx.c index 634e33e819ce..11bcc7ad9a5a 100644 --- a/hw/i386/sgx.c +++ b/hw/i386/sgx.c @@ -234,6 +234,7 @@ SgxInfo *qmp_query_sgx(Error **errp) return info; } +#ifdef CONFIG_HMP void hmp_info_sgx(MonitorHMP *hmp, const QDict *qdict) { Error *err = NULL; @@ -265,6 +266,7 @@ void hmp_info_sgx(MonitorHMP *hmp, const QDict *qdict) monitor_hmp_printf(hmp, "total size=%" PRIu64 "\n", size); } +#endif bool check_sgx_support(void) { diff --git a/hw/misc/mos6522-stub.c b/hw/misc/mos6522-stub.c index 154cd32ed88b..d1c141450e67 100644 --- a/hw/misc/mos6522-stub.c +++ b/hw/misc/mos6522-stub.c @@ -10,7 +10,9 @@ #include "monitor/monitor.h" #include "monitor/hmp.h" +#ifdef CONFIG_HMP void hmp_info_via(MonitorHMP *hmp, const QDict *qdict) { monitor_hmp_printf(hmp, "MOS6522 VIA is not available in this QEMU\n"); } +#endif diff --git a/hw/misc/mos6522.c b/hw/misc/mos6522.c index 1c20c7582c34..3135761a0f7b 100644 --- a/hw/misc/mos6522.c +++ b/hw/misc/mos6522.c @@ -497,6 +497,7 @@ void mos6522_write(void *opaque, hwaddr addr, uint64_t val, unsigned size) } } +#ifdef CONFIG_HMP static int qmp_x_query_via_foreach(Object *obj, void *opaque) { GString *buf = opaque; @@ -597,6 +598,7 @@ void hmp_info_via(MonitorHMP *hmp, const QDict *qdict) } monitor_puts(mon, info->human_readable_text); } +#endif /* CONFIG_HMP */ static const MemoryRegionOps mos6522_ops = { .read = mos6522_read, diff --git a/hw/pci/pci-stub.c b/hw/pci/pci-stub.c index 7e2797300ba0..5fc3322627e3 100644 --- a/hw/pci/pci-stub.c +++ b/hw/pci/pci-stub.c @@ -34,6 +34,7 @@ PciInfoList *qmp_query_pci(Error **errp) return NULL; } +#ifdef CONFIG_HMP void hmp_info_pci(MonitorHMP *hmp, const QDict *qdict) { } @@ -42,6 +43,7 @@ void hmp_pcie_aer_inject_error(MonitorHMP *hmp, const QDict *qdict) { monitor_hmp_printf(hmp, "PCI devices not supported\n"); } +#endif /* kvm-all wants this */ MSIMessage pci_get_msi_message(PCIDevice *dev, int vector) diff --git a/hw/s390x/s390-skeys.c b/hw/s390x/s390-skeys.c index b5e56a16cce1..c615c9dbc8a1 100644 --- a/hw/s390x/s390-skeys.c +++ b/hw/s390x/s390-skeys.c @@ -104,6 +104,7 @@ static void write_keys(FILE *f, uint8_t *keys, uint64_t startgfn, } } +#ifdef CONFIG_HMP void hmp_info_skeys(MonitorHMP *hmp, const QDict *qdict) { S390SKeysState *ss = s390_get_skeys_device(); @@ -144,6 +145,7 @@ void hmp_dump_skeys(MonitorHMP *hmp, const QDict *qdict) error_report_err(err); } } +#endif void s390_qmp_dump_skeys(const char *filename, Error **errp) { diff --git a/hw/s390x/s390-stattrib.c b/hw/s390x/s390-stattrib.c index 644298f7f0b2..e47a8ea36597 100644 --- a/hw/s390x/s390-stattrib.c +++ b/hw/s390x/s390-stattrib.c @@ -32,6 +32,7 @@ #define STATTR_FLAG_ERROR 0x04ULL #define STATTR_FLAG_DONE 0x08ULL +#ifdef CONFIG_HMP static S390StAttribState *s390_get_stattrib_device(void) { S390StAttribState *sas; @@ -40,6 +41,7 @@ static S390StAttribState *s390_get_stattrib_device(void) assert(sas); return sas; } +#endif void s390_stattrib_init(void) { @@ -59,6 +61,7 @@ void s390_stattrib_init(void) /* Console commands: */ +#ifdef CONFIG_HMP void hmp_migrationmode(MonitorHMP *hmp, const QDict *qdict) { S390StAttribState *sas = s390_get_stattrib_device(); @@ -110,6 +113,7 @@ void hmp_info_cmma(MonitorHMP *hmp, const QDict *qdict) out: g_free(vals); } +#endif /* Migration support: */ diff --git a/hw/uefi/ovmf-log.c b/hw/uefi/ovmf-log.c index 0249eea2cfe9..c4e6a5064106 100644 --- a/hw/uefi/ovmf-log.c +++ b/hw/uefi/ovmf-log.c @@ -256,6 +256,7 @@ FirmwareLog *qmp_query_firmware_log(bool have_max_size, uint64_t max_size, return ret; } +#ifdef CONFIG_HMP void hmp_info_firmware_log(MonitorHMP *hmp, const QDict *qdict) { g_autofree gchar *log_esc = NULL; @@ -284,3 +285,4 @@ void hmp_info_firmware_log(MonitorHMP *hmp, const QDict *qdict) log_esc = g_strescape((gchar *)log_out, "\r\n"); monitor_hmp_printf(hmp, "%s\n", log_esc); } +#endif diff --git a/hw/usb/host-libusb.c b/hw/usb/host-libusb.c index 9b9f26a1078e..564fe9a54795 100644 --- a/hw/usb/host-libusb.c +++ b/hw/usb/host-libusb.c @@ -184,6 +184,7 @@ static void usb_host_attach_kernel(USBHostDevice *s); # define HAVE_SUPER_PLUS 1 #endif +#ifdef CONFIG_HMP static const char *speed_name[] = { [LIBUSB_SPEED_UNKNOWN] = "?", [LIBUSB_SPEED_LOW] = "1.5", @@ -194,6 +195,7 @@ static const char *speed_name[] = { [LIBUSB_SPEED_SUPER_PLUS] = "5000+", #endif }; +#endif static const unsigned int speed_map[] = { [LIBUSB_SPEED_LOW] = USB_SPEED_LOW, @@ -1815,7 +1817,9 @@ module_kconfig(USB); static void usb_host_register_types(void) { type_register_static(&usb_host_dev_info); +#ifdef CONFIG_HMP monitor_register_hmp("usbhost", true, hmp_info_usbhost); +#endif } type_init(usb_host_register_types) @@ -1920,6 +1924,7 @@ static void usb_host_auto_check(void *unused) timer_mod(usb_auto_timer, qemu_clock_get_ms(QEMU_CLOCK_REALTIME) + 2000); } +#ifdef CONFIG_HMP void hmp_info_usbhost(MonitorHMP *hmp, const QDict *qdict) { libusb_device **devs = NULL; @@ -1963,3 +1968,4 @@ void hmp_info_usbhost(MonitorHMP *hmp, const QDict *qdict) } libusb_free_device_list(devs, 1); } +#endif diff --git a/migration/dirtyrate.c b/migration/dirtyrate.c index bdbb2aaa99db..776611fef79c 100644 --- a/migration/dirtyrate.c +++ b/migration/dirtyrate.c @@ -856,6 +856,7 @@ struct DirtyRateInfo *qmp_query_dirty_rate(bool has_calc_time_unit, has_calc_time_unit ? calc_time_unit : TIME_UNIT_SECOND); } +#ifdef CONFIG_HMP void hmp_info_dirty_rate(MonitorHMP *hmp, const QDict *qdict) { DirtyRateInfo *info = query_dirty_rate_info(TIME_UNIT_SECOND); @@ -932,3 +933,4 @@ void hmp_calc_dirty_rate(MonitorHMP *hmp, const QDict *qdict) " seconds\n", sec); monitor_hmp_printf(hmp, "[Please use 'info dirty_rate' to check results]\n"); } +#endif diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index 1834e3c1f697..3ac70c3f1123 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -42,6 +42,7 @@ #include "disas/disas.h" /* Please update hmp-commands.hx when adding or changing commands */ +#ifdef CONFIG_HMP static HMPCommand hmp_info_cmds[] = { #include "hmp-commands-info.h" { NULL, NULL, }, @@ -52,6 +53,10 @@ static HMPCommand hmp_cmds[] = { #include "hmp-commands.h" { NULL, NULL, }, }; +#else +static HMPCommand hmp_info_cmds[] = { { NULL, NULL, }, }; +static HMPCommand hmp_cmds[] = { { NULL, NULL, }, }; +#endif HMPCommand *hmp_cmds_for_target(bool info_command) { diff --git a/net/slirp.c b/net/slirp.c index 6fbefa9ed1d7..451c0fd1ba4a 100644 --- a/net/slirp.c +++ b/net/slirp.c @@ -711,6 +711,7 @@ error: return -1; } +#ifdef CONFIG_HMP static SlirpState *slirp_lookup(MonitorHMP *hmp, const char *id) { if (id) { @@ -801,6 +802,7 @@ void hmp_hostfwd_remove(MonitorHMP *hmp, const QDict *qdict) fail_syntax: monitor_hmp_printf(hmp, "invalid format\n"); } +#endif static int slirp_hostfwd(SlirpState *s, const char *redir_str, Error **errp) { @@ -957,6 +959,7 @@ static int slirp_hostfwd(SlirpState *s, const char *redir_str, Error **errp) return -1; } +#ifdef CONFIG_HMP void hmp_hostfwd_add(MonitorHMP *hmp, const QDict *qdict) { const char *redir_str; @@ -977,8 +980,8 @@ void hmp_hostfwd_add(MonitorHMP *hmp, const QDict *qdict) error_report_err(err); } } - } +#endif #if defined(CONFIG_SMBD_COMMAND) @@ -1224,6 +1227,7 @@ UsernetInfoList *qmp_x_query_usernet(Error **errp) return head; } +#ifdef CONFIG_HMP void hmp_info_usernet(MonitorHMP *hmp, const QDict *qdict) { g_autoptr(UsernetInfoList) list = NULL; @@ -1237,6 +1241,7 @@ void hmp_info_usernet(MonitorHMP *hmp, const QDict *qdict) ui->hub_name, ui->info); } } +#endif static void net_init_slirp_configs_host(const NetdevUserHostForwardList *fwd) diff --git a/replay/replay-debugging.c b/replay/replay-debugging.c index 965565715ef2..4b741ea1027b 100644 --- a/replay/replay-debugging.c +++ b/replay/replay-debugging.c @@ -31,6 +31,7 @@ bool replay_running_debug(void) return replay_is_debugging; } +#ifdef CONFIG_HMP void hmp_info_replay(MonitorHMP *hmp, const QDict *qdict) { if (replay_mode == REPLAY_MODE_NONE) { @@ -42,6 +43,7 @@ void hmp_info_replay(MonitorHMP *hmp, const QDict *qdict) replay_get_filename(), replay_get_current_icount()); } } +#endif ReplayInfo *qmp_query_replay(Error **errp) { @@ -103,6 +105,7 @@ void qmp_replay_break(int64_t icount, Error **errp) } } +#ifdef CONFIG_HMP void hmp_replay_break(MonitorHMP *hmp, const QDict *qdict) { int64_t icount = qdict_get_try_int(qdict, "icount", -1LL); @@ -114,6 +117,7 @@ void hmp_replay_break(MonitorHMP *hmp, const QDict *qdict) return; } } +#endif void qmp_replay_delete_break(Error **errp) { @@ -124,6 +128,7 @@ void qmp_replay_delete_break(Error **errp) } } +#ifdef CONFIG_HMP void hmp_replay_delete_break(MonitorHMP *hmp, const QDict *qdict) { Error *err = NULL; @@ -134,6 +139,7 @@ void hmp_replay_delete_break(MonitorHMP *hmp, const QDict *qdict) return; } } +#endif static char *replay_find_nearest_snapshot(int64_t icount, int64_t *snapshot_icount) @@ -209,6 +215,7 @@ void qmp_replay_seek(int64_t icount, Error **errp) replay_seek(icount, replay_stop_vm, errp); } +#ifdef CONFIG_HMP void hmp_replay_seek(MonitorHMP *hmp, const QDict *qdict) { int64_t icount = qdict_get_try_int(qdict, "icount", -1LL); @@ -220,6 +227,7 @@ void hmp_replay_seek(MonitorHMP *hmp, const QDict *qdict) return; } } +#endif static void replay_stop_vm_debug(void *opaque) { diff --git a/replay/stubs-system.c b/replay/stubs-system.c index 15e7411591ab..70eaf1834032 100644 --- a/replay/stubs-system.c +++ b/replay/stubs-system.c @@ -63,22 +63,28 @@ void replay_vmstate_init(void) #include "qapi/error.h" #include "qemu/error-report.h" +#ifdef CONFIG_HMP void hmp_info_replay(MonitorHMP *hmp, const QDict *qdict) { error_report("replay support not available"); } + void hmp_replay_break(MonitorHMP *hmp, const QDict *qdict) { error_report("replay support not available"); } + void hmp_replay_delete_break(MonitorHMP *hmp, const QDict *qdict) { error_report("replay support not available"); } + void hmp_replay_seek(MonitorHMP *hmp, const QDict *qdict) { error_report("replay support not available"); } +#endif + ReplayInfo *qmp_query_replay(Error **errp) { error_set(errp, ERROR_CLASS_COMMAND_NOT_FOUND, diff --git a/system/qdev-monitor.c b/system/qdev-monitor.c index 13ac9f8f3be1..5c87fda50939 100644 --- a/system/qdev-monitor.c +++ b/system/qdev-monitor.c @@ -763,6 +763,7 @@ DeviceState *qdev_device_add(QemuOpts *opts, Error **errp) return ret; } +#ifdef CONFIG_HMP #define qdev_printf(fmt, ...) \ monitor_hmp_printf(hmp, "%*s" fmt, indent, "", ## __VA_ARGS__) @@ -865,6 +866,7 @@ void hmp_info_qdm(MonitorHMP *hmp, const QDict *qdict) { qdev_print_devinfos(true); } +#endif /* CONFIG_HMP */ void qmp_device_add(QDict *qdict, QObject **ret_data, Error **errp) { @@ -1002,6 +1004,7 @@ void qmp_device_sync_config(const char *id, Error **errp) qdev_sync_config(dev, errp); } +#ifdef CONFIG_HMP void hmp_device_add(MonitorHMP *hmp, const QDict *qdict) { Error *err = NULL; @@ -1044,6 +1047,7 @@ void hmp_device_del(MonitorHMP *hmp, const QDict *qdict) qmp_device_del(id, &err); hmp_handle_error(hmp, err); } +#endif void device_add_completion(ReadLineState *rs, int nb_args, const char *str) { diff --git a/target/i386/cpu-apic.c b/target/i386/cpu-apic.c index 96d6ad897275..2e703ae1fd3f 100644 --- a/target/i386/cpu-apic.c +++ b/target/i386/cpu-apic.c @@ -83,6 +83,7 @@ void x86_cpu_apic_realize(X86CPU *cpu, Error **errp) } } +#ifdef CONFIG_HMP void hmp_info_local_apic(MonitorHMP *hmp, const QDict *qdict) { CPUState *cs; @@ -105,3 +106,4 @@ void hmp_info_local_apic(MonitorHMP *hmp, const QDict *qdict) } x86_cpu_dump_local_apic_state(cs, CPU_DUMP_FPU); } +#endif diff --git a/target/i386/monitor.c b/target/i386/monitor.c index 46762540ba65..ce61132e0f53 100644 --- a/target/i386/monitor.c +++ b/target/i386/monitor.c @@ -31,6 +31,8 @@ #include "qapi/qapi-commands-misc.h" #include "system/memory.h" +#ifdef CONFIG_HMP + /* Perform linear address sign extension */ static hwaddr addr_canonical(CPUArchState *env, hwaddr addr) { @@ -595,3 +597,4 @@ void hmp_mce(MonitorHMP *hmp, const QDict *qdict) } hmp_handle_error(hmp, err); } +#endif diff --git a/target/i386/sev.c b/target/i386/sev.c index 7b2eb75fd480..cc16c6b07123 100644 --- a/target/i386/sev.c +++ b/target/i386/sev.c @@ -784,6 +784,7 @@ SevInfo *qmp_query_sev(Error **errp) return info; } +#ifdef CONFIG_HMP void hmp_info_sev(MonitorHMP *hmp, const QDict *qdict) { SevInfo *info = sev_get_info(); @@ -817,6 +818,7 @@ void hmp_info_sev(MonitorHMP *hmp, const QDict *qdict) out: qapi_free_SevInfo(info); } +#endif static int sev_get_pdh_info(int fd, guchar **pdh, size_t *pdh_len, guchar **cert_chain, diff --git a/target/m68k/monitor.c b/target/m68k/monitor.c index 23c25283b27a..e8b1b25a43c4 100644 --- a/target/m68k/monitor.c +++ b/target/m68k/monitor.c @@ -10,6 +10,7 @@ #include "monitor/hmp.h" #include "monitor/monitor.h" +#ifdef CONFIG_HMP void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict) { CPUArchState *env1 = monitor_hmp_get_cpu_env(hmp); @@ -21,3 +22,4 @@ void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict) dump_mmu(env1); } +#endif diff --git a/target/ppc/monitor.c b/target/ppc/monitor.c index 6e8a075f5a41..5a21c01593b9 100644 --- a/target/ppc/monitor.c +++ b/target/ppc/monitor.c @@ -11,6 +11,7 @@ #include "monitor/hmp.h" #include "cpu.h" +#ifdef CONFIG_HMP void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict) { CPUArchState *env1 = monitor_hmp_get_cpu_env(hmp); @@ -21,3 +22,4 @@ void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict) } dump_mmu(env1); } +#endif diff --git a/target/riscv/monitor.c b/target/riscv/monitor.c index 59cc04b3d0fb..7e61ae2a4717 100644 --- a/target/riscv/monitor.c +++ b/target/riscv/monitor.c @@ -39,6 +39,8 @@ #define PTE_HEADER_DELIMITER "-------- ---------------- -------- -------\n" #endif +#ifdef CONFIG_HMP + /* Perform linear address sign extension */ static target_ulong addr_canonical(int va_bits, target_ulong addr) { @@ -244,6 +246,7 @@ void hmp_info_mem(MonitorHMP *hmp, const QDict *qdict) mem_info_svxx(hmp, env); } +#endif /* CONFIG_HMP */ #ifdef CONFIG_TCG static bool reg_is_ulong_integer(CPURISCVState *env, const char *name, diff --git a/target/sh4/monitor.c b/target/sh4/monitor.c index 62998a9a57cb..14261c059706 100644 --- a/target/sh4/monitor.c +++ b/target/sh4/monitor.c @@ -26,6 +26,7 @@ #include "monitor/monitor.h" #include "monitor/hmp.h" +#ifdef CONFIG_HMP static void print_tlb(MonitorHMP *hmp, int idx, tlb_t *tlb) { monitor_hmp_printf(hmp, " tlb%i:\t" @@ -55,3 +56,4 @@ void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict) for (i = 0 ; i < UTLB_SIZE ; i++) print_tlb(hmp, i, &env->utlb[i]); } +#endif diff --git a/target/sparc/monitor.c b/target/sparc/monitor.c index 36f109cbb568..ed1e76fe73f8 100644 --- a/target/sparc/monitor.c +++ b/target/sparc/monitor.c @@ -27,6 +27,7 @@ #include "monitor/hmp.h" +#ifdef CONFIG_HMP void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict) { CPUArchState *env1 = monitor_hmp_get_cpu_env(hmp); @@ -37,3 +38,4 @@ void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict) } dump_mmu(env1); } +#endif diff --git a/target/xtensa/monitor.c b/target/xtensa/monitor.c index b9c4089b0fb1..e0fcac8565dc 100644 --- a/target/xtensa/monitor.c +++ b/target/xtensa/monitor.c @@ -26,6 +26,7 @@ #include "monitor/monitor.h" #include "monitor/hmp.h" +#ifdef CONFIG_HMP void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict) { CPUArchState *env1 = monitor_hmp_get_cpu_env(hmp); @@ -36,3 +37,4 @@ void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict) } dump_mmu(env1); } +#endif