From nobody Sun Jul 26 14:10:25 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1781089142; cv=none; d=zohomail.com; s=zohoarc; b=RPeBWhNH/P0WduWmEMdkucYYbCoETZZdo/DMLL/zEwkJ9shxAjXdD1OgvtvBJsQqWXmycbemUOvxtZbP4juFCT94mLw40HReVj9syREzOD3CKVneazDdrTr1O58UW9F0ya1kHOOB3Us8w6OLVgHzNAHFg72IHano9Y6AvOi1FBc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781089142; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=+A3CjySeWiUBIwx/5Ejy0I8M65/hPwoFqdYUDVzQ5AU=; b=UTKMivxn7aLo3krAYK6fnOu2EPuFlTFAqikE24ato81xXdifQ0A877JbgQv/ZXmLAnZtXRkhyWHtXzNnJaUp31Ktdt+MKZjm40pFYBK+CgVTkW3eDq6bDgezWBSyYPnZZbyQ54a1C4CNJ8zRVXk4Msi8wpLVUIJ/OHCLYrtlwEA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781089142811368.25859871175203; Wed, 10 Jun 2026 03:59:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wXGcj-00020G-02; Wed, 10 Jun 2026 06:57:29 -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 1wXGch-0001zk-M8 for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:57:27 -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 1wXGcg-00031F-62 for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:57:27 -0400 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-346-MRtjLSlYNm6iqjJeGSlo-A-1; Wed, 10 Jun 2026 06:57:22 -0400 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (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 4DCBC19540D4; Wed, 10 Jun 2026 10:57:20 +0000 (UTC) Received: from localhost (unknown [10.44.24.21]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id EEAD1195410A; Wed, 10 Jun 2026 10:57:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1781089045; 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=+A3CjySeWiUBIwx/5Ejy0I8M65/hPwoFqdYUDVzQ5AU=; b=f7LyH9QBvBiWl3DLtDfCQfSszociBdgJGWOs6MHmUIGIQHTcCKPboZnkG8I82WRTF7lZzR qlXmSDDg/4U2lPRvtZ96GSiMQO6oDU5pTIxU2wXuMZkvvFPDZmxPr1IJTmiZ7zSOvUKyHv IDuQ6jpmkb32uxM5ZjDE+viqRSobegk= X-MC-Unique: MRtjLSlYNm6iqjJeGSlo-A-1 X-Mimecast-MFC-AGG-ID: MRtjLSlYNm6iqjJeGSlo-A_1781089040 From: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Date: Wed, 10 Jun 2026 14:56:43 +0400 Subject: [PATCH v2 01/22] hmp-commands.hx: fix button_state doc MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260610-ui-input-v2-1-f68452dd6a22@redhat.com> References: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> In-Reply-To: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> To: qemu-devel@nongnu.org Cc: "Dr. David Alan Gilbert" , Paolo Bonzini , Richard Henderson , "Michael S. Tsirkin" , Gerd Hoffmann , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Jan Kiszka , Peter Maydell , qemu-arm@nongnu.org, Mark Cave-Ayland , qemu-ppc@nongnu.org, Thomas Huth X-Developer-Signature: v=1; a=openpgp-sha256; l=925; i=marcandre.lureau@redhat.com; h=from:subject:message-id; bh=qQ/BvHJ5VIbWedapc4EUIeb1zU6j8azH3TstM5me0hI=; b=owEBbQKS/ZANAwAKAdro4Ql1lpzlAcsmYgBqKUL+ZuSzqzCnm+/y3ZZkssHILLqT6oDwd49ZH iTipKTTEv+JAjMEAAEKAB0WIQSHqb2TP4fGBtJ29i3a6OEJdZac5QUCailC/gAKCRDa6OEJdZac 5VitD/0SO6Fy5beLMKI299G1FQlHLJajEEzCLAb6uDvE6HKKwtbtv2MbKWeoAGD9AH0aQVp/ofH WhqBhDSprUOOPR9jFbaeNdbKqGianfZj5DttDnb29mRhMtoVC9PVZaP6IySRH+lRlodkfYIab/q +lAWq9CJrikI+PE8/nUuGAK7WclrfK7UNqNWxVo2r3OzJB/N8a0kM5+UORzAHuSgqXzZCyw8GFF NYFs8gz4qiPl+WT8mfj09ys+xpSR9Pe4uZGHjsg9pzaAx+AYgdwmKNX0iRKjdMTAgMimecxLV4L 1vJMHAOeswK8u0N0+GTMnOsYCEbVX8ztgOGHo7/ZiGe6PnyMz+mDiEliUH7WWyvKIL4QUwAOSrO 64J3YRwusXtmARmtdvG3vp44GYBlH1pIcMZ6Lb6bRr7is4pPWODMXwXKI+OTN4ssB6WTgf3ZMdO dFryVdy6sT1CHspSX4ipa/kPpubl+fL1XN03vywaA/1Z+asFMOXZo9jaQfVVAlsU5bcom3dM+AZ meRBKoiqGbvjlQngTX1WnV3YEMR5ai8jAMhWwY1nNmJmiPkXoVQRz/kw/Rc1/5knex+D8ez4Hrn Erc1Xx/zQrOr25LL+auAJfAcr76n8s/jKooXTLSocmOUn8/0H1bq8EfT9kCiNA9xKhFd+ZNdtt/ Dt7BcKQlg9Lo6xA== X-Developer-Key: i=marcandre.lureau@redhat.com; a=openpgp; fpr=87A9BD933F87C606D276F62DDAE8E10975969CE5 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; 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: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, 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_H5=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-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1781089146015154100 Right & middle buttons are inverted (see hmp_mouse_button) Acked-by: Dr. David Alan Gilbert Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hmp-commands.hx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hmp-commands.hx b/hmp-commands.hx index 0d780e6da30..7ae2468a3d9 100644 --- a/hmp-commands.hx +++ b/hmp-commands.hx @@ -752,13 +752,13 @@ ERST .name =3D "mouse_button", .args_type =3D "button_state:i", .params =3D "state", - .help =3D "change mouse button state (1=3DL, 2=3DM, 4=3DR)", + .help =3D "change mouse button state (1=3DL, 2=3DR, 4=3DM)", .cmd =3D hmp_mouse_button, }, =20 SRST ``mouse_button`` *val* - Change the active mouse button state *val* (1=3DL, 2=3DM, 4=3DR). + Change the active mouse button state *val* (1=3DL, 2=3DR, 4=3DM). ERST =20 { --=20 2.54.0 From nobody Sun Jul 26 14:10:25 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1781089176; cv=none; d=zohomail.com; s=zohoarc; b=QBpl5Hl76gCSCWXRRISaSQ4IfBpd1XEo0P7139qY0Kr2NGfBQKLSYAr2h7UQ/tHiLkrO+5X0KDr7yXRb6uu7La9hT2PJsubU8YW3Oo+lz94E4MZBDqwZqMFY/1gzwIwVV60jxmh/LF0zQMNn2UdG1o3Rx0ENUGQMiOS6VCHCiNM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781089176; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=UxZUNvwWAjxJnqiWTST9BHMgAOWqnx0QfSP91jc8058=; b=YltpgAgcVQKHWQ4WBBZ4EVWJRenaM7XMMS8uMvIOyWe4zKLGv78muR7+1WLIIfjT10ApdFkf2ooBONPWNRpDd/EuBmHXEdyXU+KfLlm5nCRWXH1Qq0R63CPEL4lof9gVbNpD6Qhliy5OQnYBFtGeKUqDQVUgTqKJlujetrio3U8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178108917654286.31915600539105; Wed, 10 Jun 2026 03:59:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wXGcn-00021S-At; Wed, 10 Jun 2026 06:57:33 -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 1wXGcm-00021K-2j for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:57:32 -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 1wXGck-0003ae-EY for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:57:31 -0400 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-523-2aaLgp07NvaqgovLCOqCqg-1; Wed, 10 Jun 2026 06:57:28 -0400 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 0D9471800615; Wed, 10 Jun 2026 10:57:26 +0000 (UTC) Received: from localhost (unknown [10.44.24.21]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id B44641954B09; Wed, 10 Jun 2026 10:57:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1781089049; 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=UxZUNvwWAjxJnqiWTST9BHMgAOWqnx0QfSP91jc8058=; b=MHcU97rcyBxiInBYg9KSx6nuI8kwFDfZUvKGO68s7aLq6hN0tgQm/fQZpDMSDdqhOEcR70 PqB9D/fOdSNcZM9rhaq4YklsGDn5FEltZqvwOnMtZxK7jYwebz7QlWzLwrxirOzq6vdP+N MoyowVcufxNLfVn/TE0BuxIs8BMfnr8= X-MC-Unique: 2aaLgp07NvaqgovLCOqCqg-1 X-Mimecast-MFC-AGG-ID: 2aaLgp07NvaqgovLCOqCqg_1781089046 From: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Date: Wed, 10 Jun 2026 14:56:44 +0400 Subject: [PATCH v2 02/22] ui/hmp: move index_from_key() where it is used MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260610-ui-input-v2-2-f68452dd6a22@redhat.com> References: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> In-Reply-To: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> To: qemu-devel@nongnu.org Cc: "Dr. David Alan Gilbert" , Paolo Bonzini , Richard Henderson , "Michael S. Tsirkin" , Gerd Hoffmann , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Jan Kiszka , Peter Maydell , qemu-arm@nongnu.org, Mark Cave-Ayland , qemu-ppc@nongnu.org, Thomas Huth X-Developer-Signature: v=1; a=openpgp-sha256; l=2281; i=marcandre.lureau@redhat.com; h=from:subject:message-id; bh=wXfw72vTSr4KKaDWsW73dCO4+hZUkFWNWVCR09czORY=; b=owEBbQKS/ZANAwAKAdro4Ql1lpzlAcsmYgBqKUL+r7bLGC8nlmk5+iHMRbDPKnZx9n+IOth13 XObG2sDyYGJAjMEAAEKAB0WIQSHqb2TP4fGBtJ29i3a6OEJdZac5QUCailC/gAKCRDa6OEJdZac 5coNEACvRaIo6JlG9lVvi/nHWYCXYfnK0BEXPawz7LeV1JYZ48lFcTgPphRj2Iue4xYOFKm85p7 BSMiJYUi7DCRsLASIy3ZX/F8ggdUa0os4GUwWQYqTj2KhF1thcVWYlGfrCkeOxOtN3SuNq9Jnuh LMB9RC9ZlbBQSRCzDJGFO53wjdyB9h5f58Culvt/5p3yjXVlxNxVYgVplzTL2j6YQKSy/gCPDGE 0DQu9EcNxOSJ5+0kYCBBx64epIqTBW9HuIORwu26OX9/E5RsxIz1j02g/lYc329f+sN0kYDYWmd 0FiMGyoKZ56Sz6gC16IdVAK3nGl4Mww2WxmNYOskBIe9tq0AY/eGc3mG4n84cHbx/CGfGqVM4Bn vNbhm1CX2SWZUG1V54QddoClbGdXuhfTwI+SYUlL9VHPCmb4TzJ6N0Q5vGB5PTk4TpW06dPCtm8 JEbNg6BOmhd4muD3aP23G9ahzY1rf2FVGpfzn4+u291sVV4WlSy1+Se7tFx5bi7DgYgg43TVBuO ttAx9ON0EzI058ACPOdHPzkTT/DB51MF7VkBc+BCxpZrdp9NED7PX+pRnPqfkd4H+XF8AVKM/nH 0DEdvw83ELNZmprQquaDfLkZM6n6aM4oYUDw53qhvvZtTlK/8cQGxwneDRBHW7NPjeDgF3D/YIX PfX0BONnCxCmW9g== X-Developer-Key: i=marcandre.lureau@redhat.com; a=openpgp; fpr=87A9BD933F87C606D276F62DDAE8E10975969CE5 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; 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: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, 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-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1781089178610158500 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Marc-Andr=C3=A9 Lureau --- include/ui/console.h | 3 --- ui/input-legacy.c | 15 --------------- ui/ui-hmp-cmds.c | 15 +++++++++++++++ 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/include/ui/console.h b/include/ui/console.h index a31c5a4995c..3cb78989cd2 100644 --- a/include/ui/console.h +++ b/include/ui/console.h @@ -450,9 +450,6 @@ bool vnc_display_reload_certs(const char *id, Error **= errp); bool vnc_display_update(DisplayUpdateOptionsVNC *arg, Error **errp); void vnc_cleanup(void); =20 -/* input.c */ -int index_from_key(const char *key, size_t key_length); - #ifdef CONFIG_LINUX /* udmabuf.c */ int udmabuf_fd(void); diff --git a/ui/input-legacy.c b/ui/input-legacy.c index 193c9ae2ef9..71b17a3cfc7 100644 --- a/ui/input-legacy.c +++ b/ui/input-legacy.c @@ -56,21 +56,6 @@ struct QEMUPutLEDEntry { static QTAILQ_HEAD(, QEMUPutLEDEntry) led_handlers =3D QTAILQ_HEAD_INITIALIZER(led_handlers); =20 -int index_from_key(const char *key, size_t key_length) -{ - int i; - - for (i =3D 0; i < Q_KEY_CODE__MAX; i++) { - if (!strncmp(key, QKeyCode_str(i), key_length) && - !QKeyCode_str(i)[key_length]) { - break; - } - } - - /* Return Q_KEY_CODE__MAX if the key is invalid */ - return i; -} - void qmp_send_key(KeyValueList *keys, bool has_hold_time, int64_t hold_tim= e, Error **errp) { diff --git a/ui/ui-hmp-cmds.c b/ui/ui-hmp-cmds.c index 1e9bc77bd80..76f5181de43 100644 --- a/ui/ui-hmp-cmds.c +++ b/ui/ui-hmp-cmds.c @@ -350,6 +350,21 @@ void hmp_change_vnc(Monitor *mon, const char *device, = const char *target, } #endif =20 +static int index_from_key(const char *key, size_t key_length) +{ + int i; + + for (i =3D 0; i < Q_KEY_CODE__MAX; i++) { + if (!strncmp(key, QKeyCode_str(i), key_length) && + !QKeyCode_str(i)[key_length]) { + break; + } + } + + /* Return Q_KEY_CODE__MAX if the key is invalid */ + return i; +} + void hmp_sendkey(Monitor *mon, const QDict *qdict) { const char *keys =3D qdict_get_str(qdict, "keys"); --=20 2.54.0 From nobody Sun Jul 26 14:10:25 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1781089146; cv=none; d=zohomail.com; s=zohoarc; b=B3wGpojAnMjmBh/7cArubHGgFZ0ts24rpGBGaAprictYv8hllbvR9ZrjlVNeLkBBRac2NTGihlXAxJrNV6uhERijynlusSEWzQ54bELKhHnrYoeaRlRUq80wPKvOS/c5+CGg0egsIXZFzYQbR5dqNKvmSmjU3SxWVbA9nZJLv3M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781089146; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=iigtK5jQySpzmNZYscoufMj5Qgow6LaU8KkOX7BSx7I=; b=AzeK6dzzquT1S7Fhva58Atp6UZuJNjwVmioVP1b1j33HGV2Ty8sfrqTdfXxhz3eSAO1ezLfGqBQRY4kbCmIiWbKpLifRZeU/RaELRKUN2XqSx+gph7oMyg0ys5O3fnwGHpvDHN0I0Bzr2PuJSjlTq8fROV1ozHMrv/ZZUfSqWXI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781089146478276.1183046077048; Wed, 10 Jun 2026 03:59:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wXGcv-00025q-LB; Wed, 10 Jun 2026 06:57:41 -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 1wXGcu-00025f-MB for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:57:40 -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 1wXGcr-0004PW-UT for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:57:40 -0400 Received: from mx-prod-mc-08.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-621-MYja2EbQPo-E4FGswIDG6w-1; Wed, 10 Jun 2026 06:57:35 -0400 Received: from mx-prod-int-10.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-10.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.95]) (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-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id CEC56180ACD4; Wed, 10 Jun 2026 10:57:33 +0000 (UTC) Received: from localhost (unknown [10.44.24.21]) by mx-prod-int-10.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id DA693414; Wed, 10 Jun 2026 10:57:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1781089057; 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=iigtK5jQySpzmNZYscoufMj5Qgow6LaU8KkOX7BSx7I=; b=hiBU56jUWk1ZHt4lAPIj3pAqRhcX38kogYtgUP65kjfITqmhv8M6nZPXgNcR4duc9yzPfE lhDs6bHFR/UZ4bCxgpkLZtN1pOCWiJ7ukvqkufMrftlkire6hQDt0UXMQbkUR388YQIa3D K5E8wuiQc0WiGYkgPhxojKs0Ds/Zu5A= X-MC-Unique: MYja2EbQPo-E4FGswIDG6w-1 X-Mimecast-MFC-AGG-ID: MYja2EbQPo-E4FGswIDG6w_1781089054 From: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Date: Wed, 10 Jun 2026 14:56:45 +0400 Subject: [PATCH v2 03/22] hw/i386/vmmouse: convert to QemuInputHandler API MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260610-ui-input-v2-3-f68452dd6a22@redhat.com> References: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> In-Reply-To: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> To: qemu-devel@nongnu.org Cc: "Dr. David Alan Gilbert" , Paolo Bonzini , Richard Henderson , "Michael S. Tsirkin" , Gerd Hoffmann , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Jan Kiszka , Peter Maydell , qemu-arm@nongnu.org, Mark Cave-Ayland , qemu-ppc@nongnu.org, Thomas Huth X-Developer-Signature: v=1; a=openpgp-sha256; l=6661; i=marcandre.lureau@redhat.com; h=from:subject:message-id; bh=ok6DMbp8gZxQxXT21UM+2t0aNckeLotDFTlxwjH+kCQ=; b=owEBbQKS/ZANAwAKAdro4Ql1lpzlAcsmYgBqKUL/9xzPdgdw6nJj494Guw2if4yXwoA2o1mAf GmJzEvJbfmJAjMEAAEKAB0WIQSHqb2TP4fGBtJ29i3a6OEJdZac5QUCailC/wAKCRDa6OEJdZac 5aIJD/97a2enkFQSGCELifRyVvyped06EiLzGV2L5JDamoaqZxgwKDL6ePU6XhzcWkaibyXUm5e JcDwvMker0H46nQMsmVvUXh+RS37CqIyUs0N53qecBAYSBnS8IXDJVqZa5Iw6fPapuedGC3YkqK dDs55bT6XXLqTtUhRLJ4gPbqIA63uA0nV7hDZHzBinFbaRjHMAwnUDAomeHgibbYdEqd1UjLkKT KBeH5ShWciRkgRnLtXrLKowRRe/kKRo61/kIzOzniNL0a5zyW1DAnYo3IsNtLGweKbVsAtx0HWr X4htAjk+VPHpYjYErqKZDltZzQROjOFr+POCJGqsObuNiwYi50ziouNIxST+y3VsOUW0ODK65Co OIMtQGHir1EwS3mnSVk7E9XPMurhUeMuZ+5fAK/TW0PwT0bEhjcsJbQXyrxy/qwhGHcco2ZOEhY vHs5A1nGQr2wI8TzIRsWPPPr3sSVhRo70SmG4daf7ipTgKpm8VBAU1HzVrfWthxH1ULnc0AJMwn Z0esMos7u07WuouPMmj5DHPikw4aJ0AB9jgEX5Tgv5c3JXzA0SYCJonb3nZUJcD8AgBupWocNJg pRUAcFFXze2nDx2QW14zMewhQAF9ttDgL2KldfE9E5jYjRXbbCtNv6ciwqU5FVdsEldUGhoatIb RGjFoljLYUf/1gg== X-Developer-Key: i=marcandre.lureau@redhat.com; a=openpgp; fpr=87A9BD933F87C606D276F62DDAE8E10975969CE5 X-Scanned-By: MIMEDefang 3.6 on 10.30.177.95 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; 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: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, 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-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1781089148224158500 Replace the legacy QEMUPutMouseEvent callback with a proper QemuInputHandler registration. This eliminates one of the two remaining users of the legacy input adapter in ui/input-legacy.c. Signed-off-by: Marc-Andr=C3=A9 Lureau Acked-by: Gerd Hoffmann --- hw/i386/vmmouse.c | 115 +++++++++++++++++++++++++++++++++++++----------= ---- hw/i386/trace-events | 2 +- 2 files changed, 85 insertions(+), 32 deletions(-) diff --git a/hw/i386/vmmouse.c b/hw/i386/vmmouse.c index d54adb34a88..e289bce8e2e 100644 --- a/hw/i386/vmmouse.c +++ b/hw/i386/vmmouse.c @@ -68,7 +68,10 @@ struct VMMouseState { uint16_t nb_queue; uint16_t status; uint8_t absolute; - QEMUPutMouseEntry *entry; + QemuInputHandlerState *hs; + int axis[INPUT_AXIS__MAX]; + int dz; + bool btns[INPUT_BUTTON__MAX]; ISAKBDState *i8042; }; =20 @@ -99,39 +102,78 @@ static uint32_t vmmouse_get_status(VMMouseState *s) return (s->status << 16) | s->nb_queue; } =20 -static void vmmouse_mouse_event(void *opaque, int x, int y, int dz, int bu= ttons_state) +static void vmmouse_input_event(DeviceState *dev, QemuConsole *src, + QemuInputEvent *evt) { - VMMouseState *s =3D opaque; + VMMouseState *s =3D VMMOUSE(dev); + + switch (evt->type) { + case INPUT_EVENT_KIND_BTN: + if (evt->btn.down) { + if (evt->btn.button =3D=3D INPUT_BUTTON_WHEEL_UP) { + s->dz--; + } else if (evt->btn.button =3D=3D INPUT_BUTTON_WHEEL_DOWN) { + s->dz++; + } + } + s->btns[evt->btn.button] =3D evt->btn.down; + break; + case INPUT_EVENT_KIND_ABS: + if (evt->abs.axis =3D=3D INPUT_AXIS_X) { + s->axis[INPUT_AXIS_X] =3D + qemu_input_scale_axis(evt->abs.value, + INPUT_EVENT_ABS_MIN, INPUT_EVENT_ABS= _MAX, + VMMOUSE_MIN_X, VMMOUSE_MAX_X); + } else if (evt->abs.axis =3D=3D INPUT_AXIS_Y) { + s->axis[INPUT_AXIS_Y] =3D + qemu_input_scale_axis(evt->abs.value, + INPUT_EVENT_ABS_MIN, INPUT_EVENT_ABS= _MAX, + VMMOUSE_MIN_Y, VMMOUSE_MAX_Y); + } + break; + case INPUT_EVENT_KIND_REL: + s->axis[evt->rel.axis] +=3D evt->rel.value; + break; + default: + break; + } +} + +static void vmmouse_input_sync(DeviceState *dev) +{ + VMMouseState *s =3D VMMOUSE(dev); int buttons =3D 0; =20 - if (s->nb_queue > (VMMOUSE_QUEUE_SIZE - 4)) + if (s->nb_queue > (VMMOUSE_QUEUE_SIZE - 4)) { return; + } =20 - trace_vmmouse_mouse_event(x, y, dz, buttons_state); - - if ((buttons_state & MOUSE_EVENT_LBUTTON)) + if (s->btns[INPUT_BUTTON_LEFT]) { buttons |=3D VMMOUSE_LEFT_BUTTON; - if ((buttons_state & MOUSE_EVENT_RBUTTON)) + } + if (s->btns[INPUT_BUTTON_RIGHT]) { buttons |=3D VMMOUSE_RIGHT_BUTTON; - if ((buttons_state & MOUSE_EVENT_MBUTTON)) + } + if (s->btns[INPUT_BUTTON_MIDDLE]) { buttons |=3D VMMOUSE_MIDDLE_BUTTON; - - if (s->absolute) { - x =3D qemu_input_scale_axis(x, - INPUT_EVENT_ABS_MIN, INPUT_EVENT_ABS_MAX, - VMMOUSE_MIN_X, VMMOUSE_MAX_X); - y =3D qemu_input_scale_axis(y, - INPUT_EVENT_ABS_MIN, INPUT_EVENT_ABS_MAX, - VMMOUSE_MIN_Y, VMMOUSE_MAX_Y); - } else{ - /* add for guest vmmouse driver to judge this is a relative packet= . */ + } + if (!s->absolute) { buttons |=3D VMMOUSE_RELATIVE_PACKET; } =20 + trace_vmmouse_queue_event(s->axis[INPUT_AXIS_X], s->axis[INPUT_AXIS_Y], + s->dz, buttons); + s->queue[s->nb_queue++] =3D buttons; - s->queue[s->nb_queue++] =3D x; - s->queue[s->nb_queue++] =3D y; - s->queue[s->nb_queue++] =3D dz; + s->queue[s->nb_queue++] =3D s->axis[INPUT_AXIS_X]; + s->queue[s->nb_queue++] =3D s->axis[INPUT_AXIS_Y]; + s->queue[s->nb_queue++] =3D s->dz; + s->dz =3D 0; + + if (!s->absolute) { + s->axis[INPUT_AXIS_X] =3D 0; + s->axis[INPUT_AXIS_Y] =3D 0; + } =20 /* need to still generate PS2 events to notify driver to read from queue */ @@ -140,14 +182,25 @@ static void vmmouse_mouse_event(void *opaque, int x, = int y, int dz, int buttons_ =20 static void vmmouse_remove_handler(VMMouseState *s) { - if (s->entry) { - qemu_remove_mouse_event_handler(s->entry); - s->entry =3D NULL; - } + g_clear_pointer(&s->hs, qemu_input_handler_unregister); } =20 static void vmmouse_update_handler(VMMouseState *s, int absolute) { + static const QemuInputHandler vmmouse_abs_handler =3D { + .name =3D "vmmouse", + .mask =3D INPUT_EVENT_MASK_BTN | INPUT_EVENT_MASK_ABS, + .event =3D vmmouse_input_event, + .sync =3D vmmouse_input_sync, + }; + + static const QemuInputHandler vmmouse_rel_handler =3D { + .name =3D "vmmouse", + .mask =3D INPUT_EVENT_MASK_BTN | INPUT_EVENT_MASK_REL, + .event =3D vmmouse_input_event, + .sync =3D vmmouse_input_sync, + }; + if (s->status !=3D 0) { return; } @@ -155,11 +208,11 @@ static void vmmouse_update_handler(VMMouseState *s, i= nt absolute) s->absolute =3D absolute; vmmouse_remove_handler(s); } - if (s->entry =3D=3D NULL) { - s->entry =3D qemu_add_mouse_event_handler(vmmouse_mouse_event, - s, s->absolute, - "vmmouse"); - qemu_activate_mouse_event_handler(s->entry); + if (s->hs =3D=3D NULL) { + const QemuInputHandler *h =3D s->absolute ? + &vmmouse_abs_handler : &vmmouse_rel_handler; + s->hs =3D qemu_input_handler_register(DEVICE(s), h); + qemu_input_handler_activate(s->hs); } } =20 diff --git a/hw/i386/trace-events b/hw/i386/trace-events index 5fa5e93b68d..1920212332a 100644 --- a/hw/i386/trace-events +++ b/hw/i386/trace-events @@ -133,7 +133,7 @@ port92_write(uint8_t val) "port92: write 0x%02x" =20 # vmmouse.c vmmouse_get_status(void) "" -vmmouse_mouse_event(int x, int y, int dz, int buttons_state) "event: x=3D%= d y=3D%d dz=3D%d state=3D%d" +vmmouse_queue_event(int x, int y, int dz, int buttons_state) "event: x=3D%= d y=3D%d dz=3D%d state=3D%d" vmmouse_init(void) "" vmmouse_read_id(void) "" vmmouse_request_relative(void) "" --=20 2.54.0 From nobody Sun Jul 26 14:10:25 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1781089257; cv=none; d=zohomail.com; s=zohoarc; b=ETDeB6DrDQ/RxhXD9gssh3XFQTU6LQQrapiSlDcGiiUVjlsURsWOa31OwLgfSEAoYRFY++RGXAX9UH+dZWfIh+YcIzd1zK72antwwh/wQdjFu69Nm3bLVFbACkc2thxXJDse4y2FJXd3oFu3GULN28+BEckbHYcYNN/8oYL4jxQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781089257; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=FAwULspIvzALTW+4Bmpz5id6tDC+ZD0VsNa3K0DQrco=; b=KdC05GfM3TQGJb2SyjPgLlbmdP0iilt6vcCa3V9Pivz2Du95/ozzDKEU7HgPo2Zy4c+cOQYctUYUVDtc5Y+qvLFJmEZk5eieSKwQD7UBZ/I5OljuKTKODl/eZwK4OBpTK51vPDmhGFz24HyMHAjYOSR9hI9UmFpic5q7oLlvCj0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781089257781123.43593698372229; Wed, 10 Jun 2026 04:00:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wXGd3-0002AA-I3; Wed, 10 Jun 2026 06:57:49 -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 1wXGd2-000284-1H for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:57:48 -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 1wXGd0-0005G7-73 for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:57:47 -0400 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-2-i7j_FO9ePdCmlgvUcGPwBA-1; Wed, 10 Jun 2026 06:57:42 -0400 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 673D9180059E; Wed, 10 Jun 2026 10:57:40 +0000 (UTC) Received: from localhost (unknown [10.44.24.21]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 540851954B09; Wed, 10 Jun 2026 10:57:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1781089065; 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=FAwULspIvzALTW+4Bmpz5id6tDC+ZD0VsNa3K0DQrco=; b=SLY80xLU+QnSgtCvP+HkF7eUaNcPd6/56PhGXmClX3SMQ4bpeAZ4YbMu0i+vGtwUmLXPc+ dIKKHpquoxe4HmuWJIvLqEwYlayx8gkvs8sIo/IR5pq3PHYXrqpyCJZZINKggjAEKSnzyc RzT2bNO8JbO310uK0vUcEahORe/KW1g= X-MC-Unique: i7j_FO9ePdCmlgvUcGPwBA-1 X-Mimecast-MFC-AGG-ID: i7j_FO9ePdCmlgvUcGPwBA_1781089060 From: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Date: Wed, 10 Jun 2026 14:56:46 +0400 Subject: [PATCH v2 04/22] hw/usb/dev-wacom: convert to modern QemuInputHandler API MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260610-ui-input-v2-4-f68452dd6a22@redhat.com> References: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> In-Reply-To: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> To: qemu-devel@nongnu.org Cc: "Dr. David Alan Gilbert" , Paolo Bonzini , Richard Henderson , "Michael S. Tsirkin" , Gerd Hoffmann , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Jan Kiszka , Peter Maydell , qemu-arm@nongnu.org, Mark Cave-Ayland , qemu-ppc@nongnu.org, Thomas Huth X-Developer-Signature: v=1; a=openpgp-sha256; l=7904; i=marcandre.lureau@redhat.com; h=from:subject:message-id; bh=1v9X3RjtBH40kWO7TrlJJLMEL1/840D/jNHs/b0Kp3k=; b=owEBbQKS/ZANAwAKAdro4Ql1lpzlAcsmYgBqKUL/ZRyMFpLukW7anY4oeusy96CBgbyGgea61 dRN8u20nreJAjMEAAEKAB0WIQSHqb2TP4fGBtJ29i3a6OEJdZac5QUCailC/wAKCRDa6OEJdZac 5XwHD/0S7hee5PZOhRFXcrQbTUeZZ3HcjUlHIOINmEB5d62oD5p75gpyb7TPKUaROHBnqDN4TBn taxGhgtbtSELscCcntCrRyjt1598ps2sV9rOEt+6DxlSpLf/R3BXwrTQx/E3IwzjQLfllqNRYJI 4bnxnPpTkIEnMPmSX9nBcN3A1MpRBLSIMliRzLqm99r1+Dy4xeMUf0xJtt6QoHukHRIgOGI1NFi VBgcfbxrD21li+Kww43ljlIc8LahsNGBQFWBwdR1tKmFQcXMD5gXgmDXvwWECAPJUPncCR2c74K 7ndtBfNwkK8uMav8ywbVecFWVRitebpr+oIeUlceBKSY3OTLf+rxSfV/yaFu+ZRFEF6nJ1ni1/6 TxKFdbBvkAzQNrI0acL64mzGinAr+7dxekFRjCWNdN2FLa8AgGwjHQG5lBXs0oeqYG+XEgPgU3U bPzvLlf3ZQ17uNhfxYXAWm3MnyyFwOeMBhHrffV3+w+62NizUMOJz4vamZLBADgqJLWG06E4SRM lF1tDpUUwU1WOVV2xPXPQG2tUgYTI2DHvD7tMmQi8ELdKj263jtgFS4Xi0oTPiLIdDkvyH5JKIn y+SBv/rSvVR1fv1n8dAZiibkO0uB5PRgKvh4coPBgLC8gMwoRDvyMnXTS0F+kFAIeA51Oei1szd wI1Q7qW2Ai2oyUA== X-Developer-Key: i=marcandre.lureau@redhat.com; a=openpgp; fpr=87A9BD933F87C606D276F62DDAE8E10975969CE5 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; 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: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, 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_H5=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-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1781089261878154100 Replace the legacy QEMUPutMouseEvent callbacks with a proper QemuInputHandler registration. The device now receives typed input events (BTN/ABS/REL) directly. Signed-off-by: Marc-Andr=C3=A9 Lureau Acked-by: Gerd Hoffmann --- hw/usb/dev-wacom.c | 155 ++++++++++++++++++++++++++++++++-----------------= ---- 1 file changed, 94 insertions(+), 61 deletions(-) diff --git a/hw/usb/dev-wacom.c b/hw/usb/dev-wacom.c index 14d07e81281..c69e247f7b7 100644 --- a/hw/usb/dev-wacom.c +++ b/hw/usb/dev-wacom.c @@ -42,10 +42,10 @@ struct USBWacomState { USBDevice dev; USBEndpoint *intr; - QEMUPutMouseEntry *eh_entry; - int dx, dy, dz, buttons_state; - int x, y; - int mouse_grabbed; + QemuInputHandlerState *hs; + int axis[INPUT_AXIS__MAX]; + int dz; + bool btns[INPUT_BUTTON__MAX]; enum { WACOM_MODE_HID =3D 1, WACOM_MODE_WACOM =3D 2, @@ -188,29 +188,37 @@ static const USBDesc desc_wacom =3D { .str =3D desc_strings, }; =20 -static void usb_mouse_event(void *opaque, - int dx1, int dy1, int dz1, int buttons_state) +static void usb_wacom_input_event(DeviceState *dev, QemuConsole *src, + QemuInputEvent *evt) { - USBWacomState *s =3D opaque; + USBWacomState *s =3D USB_WACOM(dev); =20 - s->dx +=3D dx1; - s->dy +=3D dy1; - s->dz +=3D dz1; - s->buttons_state =3D buttons_state; - s->changed =3D 1; - usb_wakeup(s->intr, 0); + switch (evt->type) { + case INPUT_EVENT_KIND_BTN: + if (evt->btn.down) { + if (evt->btn.button =3D=3D INPUT_BUTTON_WHEEL_UP) { + s->dz--; + } else if (evt->btn.button =3D=3D INPUT_BUTTON_WHEEL_DOWN) { + s->dz++; + } + } + s->btns[evt->btn.button] =3D evt->btn.down; + break; + case INPUT_EVENT_KIND_ABS: + s->axis[evt->abs.axis] =3D evt->abs.value; + break; + case INPUT_EVENT_KIND_REL: + s->axis[evt->rel.axis] +=3D evt->rel.value; + break; + default: + break; + } } =20 -static void usb_wacom_event(void *opaque, - int x, int y, int dz, int buttons_state) +static void usb_wacom_input_sync(DeviceState *dev) { - USBWacomState *s =3D opaque; + USBWacomState *s =3D USB_WACOM(dev); =20 - /* scale to Penpartner resolution */ - s->x =3D (x * 5040 / 0x7FFF); - s->y =3D (y * 3780 / 0x7FFF); - s->dz +=3D dz; - s->buttons_state =3D buttons_state; s->changed =3D 1; usb_wakeup(s->intr, 0); } @@ -225,32 +233,57 @@ static inline int int_clamp(int val, int vmin, int vm= ax) return val; } =20 +static void usb_wacom_register_input_handler(USBWacomState *s, bool absolu= te) +{ + static const QemuInputHandler usb_wacom_abs_handler =3D { + .name =3D "QEMU PenPartner tablet", + .mask =3D INPUT_EVENT_MASK_BTN | INPUT_EVENT_MASK_ABS, + .event =3D usb_wacom_input_event, + .sync =3D usb_wacom_input_sync, + }; + + static const QemuInputHandler usb_wacom_rel_handler =3D { + .name =3D "QEMU PenPartner tablet", + .mask =3D INPUT_EVENT_MASK_BTN | INPUT_EVENT_MASK_REL, + .event =3D usb_wacom_input_event, + .sync =3D usb_wacom_input_sync, + }; + + const QemuInputHandler *h =3D absolute ? + &usb_wacom_abs_handler : &usb_wacom_rel_handler; + + g_clear_pointer(&s->hs, qemu_input_handler_unregister); + + s->hs =3D qemu_input_handler_register(DEVICE(s), h); + qemu_input_handler_activate(s->hs); +} + static int usb_mouse_poll(USBWacomState *s, uint8_t *buf, int len) { int dx, dy, dz, b, l; =20 - if (!s->mouse_grabbed) { - s->eh_entry =3D qemu_add_mouse_event_handler(usb_mouse_event, s, 0, - "QEMU PenPartner tablet"); - qemu_activate_mouse_event_handler(s->eh_entry); - s->mouse_grabbed =3D 1; + if (!s->hs) { + usb_wacom_register_input_handler(s, false); } =20 - dx =3D int_clamp(s->dx, -128, 127); - dy =3D int_clamp(s->dy, -128, 127); + dx =3D int_clamp(s->axis[INPUT_AXIS_X], -128, 127); + dy =3D int_clamp(s->axis[INPUT_AXIS_Y], -128, 127); dz =3D int_clamp(s->dz, -128, 127); =20 - s->dx -=3D dx; - s->dy -=3D dy; + s->axis[INPUT_AXIS_X] -=3D dx; + s->axis[INPUT_AXIS_Y] -=3D dy; s->dz -=3D dz; =20 b =3D 0; - if (s->buttons_state & MOUSE_EVENT_LBUTTON) + if (s->btns[INPUT_BUTTON_LEFT]) { b |=3D 0x01; - if (s->buttons_state & MOUSE_EVENT_RBUTTON) + } + if (s->btns[INPUT_BUTTON_RIGHT]) { b |=3D 0x02; - if (s->buttons_state & MOUSE_EVENT_MBUTTON) + } + if (s->btns[INPUT_BUTTON_MIDDLE]) { b |=3D 0x04; + } =20 buf[0] =3D b; buf[1] =3D dx; @@ -265,32 +298,40 @@ static int usb_mouse_poll(USBWacomState *s, uint8_t *= buf, int len) =20 static int usb_wacom_poll(USBWacomState *s, uint8_t *buf, int len) { - int b; + int b, x, y; =20 - if (!s->mouse_grabbed) { - s->eh_entry =3D qemu_add_mouse_event_handler(usb_wacom_event, s, 1, - "QEMU PenPartner tablet"); - qemu_activate_mouse_event_handler(s->eh_entry); - s->mouse_grabbed =3D 1; + if (!s->hs) { + usb_wacom_register_input_handler(s, true); } =20 b =3D 0; - if (s->buttons_state & MOUSE_EVENT_LBUTTON) + if (s->btns[INPUT_BUTTON_LEFT]) { b |=3D 0x01; - if (s->buttons_state & MOUSE_EVENT_RBUTTON) + } + if (s->btns[INPUT_BUTTON_RIGHT]) { b |=3D 0x40; - if (s->buttons_state & MOUSE_EVENT_MBUTTON) + } + if (s->btns[INPUT_BUTTON_MIDDLE]) { b |=3D 0x20; /* eraser */ + } =20 - if (len < 7) + if (len < 7) { return 0; + } + + x =3D qemu_input_scale_axis(s->axis[INPUT_AXIS_X], + INPUT_EVENT_ABS_MIN, INPUT_EVENT_ABS_MAX, + 0, 5040); + y =3D qemu_input_scale_axis(s->axis[INPUT_AXIS_Y], + INPUT_EVENT_ABS_MIN, INPUT_EVENT_ABS_MAX, + 0, 3780); =20 buf[0] =3D s->mode; buf[5] =3D 0x00 | (b & 0xf0); - buf[1] =3D s->x & 0xff; - buf[2] =3D s->x >> 8; - buf[3] =3D s->y & 0xff; - buf[4] =3D s->y >> 8; + buf[1] =3D x & 0xff; + buf[2] =3D x >> 8; + buf[3] =3D y & 0xff; + buf[4] =3D y >> 8; if (b & 0x3f) { buf[6] =3D 0; } else { @@ -302,15 +343,13 @@ static int usb_wacom_poll(USBWacomState *s, uint8_t *= buf, int len) =20 static void usb_wacom_handle_reset(USBDevice *dev) { - USBWacomState *s =3D (USBWacomState *) dev; + USBWacomState *s =3D USB_WACOM(dev); =20 - s->dx =3D 0; - s->dy =3D 0; + memset(s->axis, 0, sizeof(s->axis)); + memset(s->btns, 0, sizeof(s->btns)); s->dz =3D 0; - s->x =3D 0; - s->y =3D 0; - s->buttons_state =3D 0; s->mode =3D WACOM_MODE_HID; + g_clear_pointer(&s->hs, qemu_input_handler_unregister); } =20 static void usb_wacom_handle_control(USBDevice *dev, USBPacket *p, @@ -337,10 +376,7 @@ static void usb_wacom_handle_control(USBDevice *dev, U= SBPacket *p, } break; case WACOM_SET_REPORT: - if (s->mouse_grabbed) { - qemu_remove_mouse_event_handler(s->eh_entry); - s->mouse_grabbed =3D 0; - } + g_clear_pointer(&s->hs, qemu_input_handler_unregister); s->mode =3D data[0]; break; case WACOM_GET_REPORT: @@ -400,10 +436,7 @@ static void usb_wacom_unrealize(USBDevice *dev) { USBWacomState *s =3D (USBWacomState *) dev; =20 - if (s->mouse_grabbed) { - qemu_remove_mouse_event_handler(s->eh_entry); - s->mouse_grabbed =3D 0; - } + g_clear_pointer(&s->hs, qemu_input_handler_unregister); } =20 static void usb_wacom_realize(USBDevice *dev, Error **errp) --=20 2.54.0 From nobody Sun Jul 26 14:10:25 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1781089124; cv=none; d=zohomail.com; s=zohoarc; b=iGQITrtvWbunM7eLy9sqmhvg/paMwYP4s0Q53Ud2GOTE1GFLAH+LKyRtxNmfauc3uOAd/75m1wTT7x9mscJO2SpmCrhXY5qlc61kJRhcWGgFIdweOiafcft4O/B/Er5mUPZid61Z0h7KMnOm0ego2hClnHyxn43Rs8yIcxCi1Xo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781089124; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Q0bIPb+d1sMe7sgxf+Bqbmw46O11A0ktQSbb40y4zvo=; b=UiYXlZfEvE6C0jOIMLoJDHXB81yhcnuNzTvLDvpCftlEw9wdeTPMgHIQjHlPq0B+Nt5rjRdE/rrpcDZoDNUZxiWT1aDPToJ5/pBnbJGblNo2VBRtkVRt3ADpFbfGVD72isXCN6bAePPYPO0/fPOMsCf2ea2/pB4eXF1j59ZGQrY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781089124570139.8733648406552; Wed, 10 Jun 2026 03:58:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wXGdB-0002Hp-Pj; Wed, 10 Jun 2026 06:57:57 -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 1wXGd9-0002DM-6E for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:57:55 -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 1wXGd6-0005kJ-Pz for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:57:54 -0400 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-299-1El3V5upNPqk6CW4yZGZBQ-1; Wed, 10 Jun 2026 06:57:48 -0400 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 D9C4319560BE; Wed, 10 Jun 2026 10:57:46 +0000 (UTC) Received: from localhost (unknown [10.44.24.21]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id C961B1800347; Wed, 10 Jun 2026 10:57:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1781089072; 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=Q0bIPb+d1sMe7sgxf+Bqbmw46O11A0ktQSbb40y4zvo=; b=IEhIo4JqSvizYHs5vn8cAWICN6gJio+iKxl+z17ge3sAj9C9yL+NFxLTehF/edcsYKk6/e bFWyEn6wMTWHPqYdA3H0r0qSDAzNCnKM1H1oQcFLoy8zgDxQdgQIPg33yulXj/n95DlrZv 9szNAr3DnwetsP7KAJv0niSQ5A7ibFE= X-MC-Unique: 1El3V5upNPqk6CW4yZGZBQ-1 X-Mimecast-MFC-AGG-ID: 1El3V5upNPqk6CW4yZGZBQ_1781089067 From: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Date: Wed, 10 Jun 2026 14:56:47 +0400 Subject: [PATCH v2 05/22] ui: move LED and key utilities to input.c, delete input-legacy.c MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260610-ui-input-v2-5-f68452dd6a22@redhat.com> References: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> In-Reply-To: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> To: qemu-devel@nongnu.org Cc: "Dr. David Alan Gilbert" , Paolo Bonzini , Richard Henderson , "Michael S. Tsirkin" , Gerd Hoffmann , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Jan Kiszka , Peter Maydell , qemu-arm@nongnu.org, Mark Cave-Ayland , qemu-ppc@nongnu.org, Thomas Huth X-Developer-Signature: v=1; a=openpgp-sha256; l=13254; i=marcandre.lureau@redhat.com; h=from:subject:message-id; bh=xnZ7Kddj51Zq6hMB1+4tdJkJJhRwpIbKu48YMi1H+h0=; b=owEBbQKS/ZANAwAKAdro4Ql1lpzlAcsmYgBqKUL/NRCM+b+7dh7L/Qn12FZBPrY/fzC8DGiZU Rb2JxjZbjqJAjMEAAEKAB0WIQSHqb2TP4fGBtJ29i3a6OEJdZac5QUCailC/wAKCRDa6OEJdZac 5QUYEAC1jI1uidjYeAudvPy8+SYAgS0FfRQjdK0FTO+Dw3tcjbMULlFC7HowZdKfUpmmN4pDNM5 wbrreXkHUMnRfp/I2Ms5f1rX7466pMj5lPvHlkptglEjJyHX72/gWA/zJ+qbJZ35rEw/emolu6m 6reEzwQgoXbdQpR4wPFMBqSn/mAhjK8q8goO57lHSLvYSEc7zDbePrQAFSdLVjc56KQf7xmO9BM aqkcMLLuACHLcgMO4nfr/b8v7Xl4ZPSsfvRT/KwRpwZfqkt92WAOaK+mf3MVQr3WeqQN12LiyS8 4qL4UI74Iwrlj11Pog6YXfBF+loNvxF01gN8w6aCXNUZy+/Vx6srghYtS94N05wg3m7F4jlTb3e oNxaWa7H64WBC7vRtfVv7hQ896nVZghWsVRbaT2GMFjDhjQlOeyQiWx6ovnMMTvA3ZUjO0HfGYw nz0RvWzWFtqJsr0CK6jt+45Y9XPFYtb0TOqEhEQJDcabEyr4CBvdSA4ci2ksnwLni7kgleG/iTi Zs6jWd8CtPpV+pLAWPsD2xo1NA1I9p3qiWaBTYIjgg1GAqJ1KIpyP/io0G4XRFv5dZZQYYTAWiV IZqqZ2QXK3rDRDPKP+X3shKWTZ0hB8y0af12hQT0vopEq+Vh+vF+DDwbWhdvHvSYJ/CerVZZttJ XXrnQtG2EsXjX6w== X-Developer-Key: i=marcandre.lureau@redhat.com; a=openpgp; fpr=87A9BD933F87C606D276F62DDAE8E10975969CE5 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; 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: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, 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-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1781089126416158500 With both legacy mouse API consumers converted, the remaining code in input-legacy.c (LED broadcast, index_from_key, qmp_send_key) is not legacy-specific. Move it to ui/input.c and delete the file. Clean up include/ui/console.h by removing the now-unused legacy mouse API declarations (QEMUPutMouseEvent, QEMUPutMouseEntry, QEMUPutKBDEvent, QEMUPutKbdEntry) and MOUSE_EVENT_* constants. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- include/ui/console.h | 18 ----- ui/input-legacy.c | 221 -----------------------------------------------= ---- ui/input.c | 66 +++++++++++++++ ui/ui-hmp-cmds.c | 7 +- ui/meson.build | 1 - 5 files changed, 70 insertions(+), 243 deletions(-) diff --git a/include/ui/console.h b/include/ui/console.h index 3cb78989cd2..0299ed4b566 100644 --- a/include/ui/console.h +++ b/include/ui/console.h @@ -30,14 +30,6 @@ OBJECT_DECLARE_SIMPLE_TYPE(QemuFixedTextConsole, QEMU_FI= XED_TEXT_CONSOLE) #define QEMU_IS_FIXED_TEXT_CONSOLE(c) \ object_dynamic_cast(OBJECT(c), TYPE_QEMU_FIXED_TEXT_CONSOLE) =20 -/* keyboard/mouse support */ - -#define MOUSE_EVENT_LBUTTON 0x01 -#define MOUSE_EVENT_RBUTTON 0x02 -#define MOUSE_EVENT_MBUTTON 0x04 -#define MOUSE_EVENT_WHEELUP 0x08 -#define MOUSE_EVENT_WHEELDN 0x10 - /* identical to the ps/2 keyboard bits */ #define QEMU_SCROLL_LOCK_LED (1 << 0) #define QEMU_NUM_LOCK_LED (1 << 1) @@ -62,20 +54,10 @@ enum qemu_color_names { #define ATTR2CHTYPE(c, fg, bg, bold) \ ((bold) << 21 | (bg) << 11 | (fg) << 8 | (c)) =20 -typedef void QEMUPutKBDEvent(void *opaque, int keycode); typedef void QEMUPutLEDEvent(void *opaque, int ledstate); -typedef void QEMUPutMouseEvent(void *opaque, int dx, int dy, int dz, int b= uttons_state); =20 -typedef struct QEMUPutMouseEntry QEMUPutMouseEntry; -typedef struct QEMUPutKbdEntry QEMUPutKbdEntry; typedef struct QEMUPutLEDEntry QEMUPutLEDEntry; =20 -QEMUPutMouseEntry *qemu_add_mouse_event_handler(QEMUPutMouseEvent *func, - void *opaque, int absolute, - const char *name); -void qemu_remove_mouse_event_handler(QEMUPutMouseEntry *entry); -void qemu_activate_mouse_event_handler(QEMUPutMouseEntry *entry); - QEMUPutLEDEntry *qemu_add_led_event_handler(QEMUPutLEDEvent *func, void *o= paque); void qemu_remove_led_event_handler(QEMUPutLEDEntry *entry); =20 diff --git a/ui/input-legacy.c b/ui/input-legacy.c deleted file mode 100644 index 71b17a3cfc7..00000000000 --- a/ui/input-legacy.c +++ /dev/null @@ -1,221 +0,0 @@ -/* - * QEMU System Emulator - * - * Copyright (c) 2003-2008 Fabrice Bellard - * - * Permission is hereby granted, free of charge, to any person obtaining a= copy - * of this software and associated documentation files (the "Software"), t= o deal - * in the Software without restriction, including without limitation the r= ights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or se= ll - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included= in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OT= HER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING= FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS = IN - * THE SOFTWARE. - */ - -#include "qemu/osdep.h" -#include "qemu/log.h" -#include "qapi/qapi-commands-ui.h" -#include "ui/console.h" -#include "keymaps.h" -#include "ui/input.h" - -struct QEMUPutMouseEntry { - QEMUPutMouseEvent *qemu_put_mouse_event; - void *qemu_put_mouse_event_opaque; - int qemu_put_mouse_event_absolute; - - /* new input core */ - QemuInputHandler h; - QemuInputHandlerState *s; - int axis[INPUT_AXIS__MAX]; - int buttons; -}; - -struct QEMUPutKbdEntry { - QEMUPutKBDEvent *put_kbd; - void *opaque; - QemuInputHandlerState *s; -}; - -struct QEMUPutLEDEntry { - QEMUPutLEDEvent *put_led; - void *opaque; - QTAILQ_ENTRY(QEMUPutLEDEntry) next; -}; - -static QTAILQ_HEAD(, QEMUPutLEDEntry) led_handlers =3D - QTAILQ_HEAD_INITIALIZER(led_handlers); - -void qmp_send_key(KeyValueList *keys, bool has_hold_time, int64_t hold_tim= e, - Error **errp) -{ - KeyValueList *p; - unsigned int *up =3D NULL; - int count =3D 0; - - if (!has_hold_time) { - hold_time =3D 0; /* use default */ - } - - for (p =3D keys; p !=3D NULL; p =3D p->next) { - up =3D g_realloc(up, sizeof(*up) * (count+1)); - up[count] =3D qemu_input_key_value_to_linux(p->value); - qemu_input_event_send_key_linux(NULL, up[count], true); - qemu_input_event_send_key_delay(hold_time); - count++; - } - while (count) { - count--; - qemu_input_event_send_key_linux(NULL, up[count], false); - qemu_input_event_send_key_delay(hold_time); - } - g_free(up); -} - -static void legacy_mouse_event(DeviceState *dev, QemuConsole *src, - QemuInputEvent *evt) -{ - static const int bmap[INPUT_BUTTON__MAX] =3D { - [INPUT_BUTTON_LEFT] =3D MOUSE_EVENT_LBUTTON, - [INPUT_BUTTON_MIDDLE] =3D MOUSE_EVENT_MBUTTON, - [INPUT_BUTTON_RIGHT] =3D MOUSE_EVENT_RBUTTON, - }; - QEMUPutMouseEntry *s =3D (QEMUPutMouseEntry *)dev; - - switch (evt->type) { - case INPUT_EVENT_KIND_BTN: - if (evt->btn.down) { - s->buttons |=3D bmap[evt->btn.button]; - } else { - s->buttons &=3D ~bmap[evt->btn.button]; - } - if (evt->btn.down && evt->btn.button =3D=3D INPUT_BUTTON_WHEEL_UP)= { - s->qemu_put_mouse_event(s->qemu_put_mouse_event_opaque, - s->axis[INPUT_AXIS_X], - s->axis[INPUT_AXIS_Y], - -1, - s->buttons); - } - if (evt->btn.down && evt->btn.button =3D=3D INPUT_BUTTON_WHEEL_DOW= N) { - s->qemu_put_mouse_event(s->qemu_put_mouse_event_opaque, - s->axis[INPUT_AXIS_X], - s->axis[INPUT_AXIS_Y], - 1, - s->buttons); - } - if (evt->btn.down && evt->btn.button =3D=3D INPUT_BUTTON_WHEEL_RIG= HT) { - s->qemu_put_mouse_event(s->qemu_put_mouse_event_opaque, - s->axis[INPUT_AXIS_X], - s->axis[INPUT_AXIS_Y], - -2, - s->buttons); - } - if (evt->btn.down && evt->btn.button =3D=3D INPUT_BUTTON_WHEEL_LEF= T) { - s->qemu_put_mouse_event(s->qemu_put_mouse_event_opaque, - s->axis[INPUT_AXIS_X], - s->axis[INPUT_AXIS_Y], - 2, - s->buttons); - } - break; - case INPUT_EVENT_KIND_ABS: - s->axis[evt->abs.axis] =3D evt->abs.value; - break; - case INPUT_EVENT_KIND_REL: - s->axis[evt->rel.axis] +=3D evt->rel.value; - break; - default: - break; - } -} - -static void legacy_mouse_sync(DeviceState *dev) -{ - QEMUPutMouseEntry *s =3D (QEMUPutMouseEntry *)dev; - - s->qemu_put_mouse_event(s->qemu_put_mouse_event_opaque, - s->axis[INPUT_AXIS_X], - s->axis[INPUT_AXIS_Y], - 0, - s->buttons); - - if (!s->qemu_put_mouse_event_absolute) { - s->axis[INPUT_AXIS_X] =3D 0; - s->axis[INPUT_AXIS_Y] =3D 0; - } -} - -QEMUPutMouseEntry *qemu_add_mouse_event_handler(QEMUPutMouseEvent *func, - void *opaque, int absolute, - const char *name) -{ - QEMUPutMouseEntry *s; - - s =3D g_new0(QEMUPutMouseEntry, 1); - - s->qemu_put_mouse_event =3D func; - s->qemu_put_mouse_event_opaque =3D opaque; - s->qemu_put_mouse_event_absolute =3D absolute; - - s->h.name =3D name; - s->h.mask =3D INPUT_EVENT_MASK_BTN | - (absolute ? INPUT_EVENT_MASK_ABS : INPUT_EVENT_MASK_REL); - s->h.event =3D legacy_mouse_event; - s->h.sync =3D legacy_mouse_sync; - s->s =3D qemu_input_handler_register((DeviceState *)s, - &s->h); - - return s; -} - -void qemu_activate_mouse_event_handler(QEMUPutMouseEntry *entry) -{ - qemu_input_handler_activate(entry->s); -} - -void qemu_remove_mouse_event_handler(QEMUPutMouseEntry *entry) -{ - qemu_input_handler_unregister(entry->s); - - g_free(entry); -} - -QEMUPutLEDEntry *qemu_add_led_event_handler(QEMUPutLEDEvent *func, - void *opaque) -{ - QEMUPutLEDEntry *s; - - s =3D g_new0(QEMUPutLEDEntry, 1); - - s->put_led =3D func; - s->opaque =3D opaque; - QTAILQ_INSERT_TAIL(&led_handlers, s, next); - return s; -} - -void qemu_remove_led_event_handler(QEMUPutLEDEntry *entry) -{ - if (entry =3D=3D NULL) - return; - QTAILQ_REMOVE(&led_handlers, entry, next); - g_free(entry); -} - -void kbd_put_ledstate(int ledstate) -{ - QEMUPutLEDEntry *cursor; - - QTAILQ_FOREACH(cursor, &led_handlers, next) { - cursor->put_led(cursor->opaque, ledstate); - } -} diff --git a/ui/input.c b/ui/input.c index c013cd9f7e0..55769c66fcc 100644 --- a/ui/input.c +++ b/ui/input.c @@ -648,3 +648,69 @@ void qemu_input_touch_event(QemuConsole *con, qemu_input_event_sync(); } } + +struct QEMUPutLEDEntry { + QEMUPutLEDEvent *put_led; + void *opaque; + QTAILQ_ENTRY(QEMUPutLEDEntry) next; +}; + +static QTAILQ_HEAD(, QEMUPutLEDEntry) led_handlers =3D + QTAILQ_HEAD_INITIALIZER(led_handlers); + +QEMUPutLEDEntry *qemu_add_led_event_handler(QEMUPutLEDEvent *func, + void *opaque) +{ + QEMUPutLEDEntry *s; + + s =3D g_new0(QEMUPutLEDEntry, 1); + + s->put_led =3D func; + s->opaque =3D opaque; + QTAILQ_INSERT_TAIL(&led_handlers, s, next); + return s; +} + +void qemu_remove_led_event_handler(QEMUPutLEDEntry *entry) +{ + if (entry =3D=3D NULL) { + return; + } + QTAILQ_REMOVE(&led_handlers, entry, next); + g_free(entry); +} + +void kbd_put_ledstate(int ledstate) +{ + QEMUPutLEDEntry *cursor; + + QTAILQ_FOREACH(cursor, &led_handlers, next) { + cursor->put_led(cursor->opaque, ledstate); + } +} + +void qmp_send_key(KeyValueList *keys, bool has_hold_time, int64_t hold_tim= e, + Error **errp) +{ + KeyValueList *p; + unsigned int *up =3D NULL; + int count =3D 0; + + if (!has_hold_time) { + hold_time =3D 0; /* use default */ + } + + for (p =3D keys; p !=3D NULL; p =3D p->next) { + up =3D g_realloc_n(up, count + 1, sizeof(*up)); + up[count] =3D qemu_input_key_value_to_linux(p->value); + qemu_input_event_send_key_linux(NULL, up[count], true); + qemu_input_event_send_key_delay(hold_time); + count++; + } + while (count) { + count--; + qemu_input_event_send_key_linux(NULL, up[count], false); + qemu_input_event_send_key_delay(hold_time); + } + g_free(up); +} diff --git a/ui/ui-hmp-cmds.c b/ui/ui-hmp-cmds.c index 76f5181de43..ee3e731d07e 100644 --- a/ui/ui-hmp-cmds.c +++ b/ui/ui-hmp-cmds.c @@ -55,10 +55,11 @@ void hmp_mouse_move(Monitor *mon, const QDict *qdict) =20 void hmp_mouse_button(Monitor *mon, const QDict *qdict) { + /* HMP mouse_button bitmask: 1=3DL, 2=3DR, 4=3DM */ static uint32_t bmap[INPUT_BUTTON__MAX] =3D { - [INPUT_BUTTON_LEFT] =3D MOUSE_EVENT_LBUTTON, - [INPUT_BUTTON_MIDDLE] =3D MOUSE_EVENT_MBUTTON, - [INPUT_BUTTON_RIGHT] =3D MOUSE_EVENT_RBUTTON, + [INPUT_BUTTON_LEFT] =3D 0x01, + [INPUT_BUTTON_MIDDLE] =3D 0x04, + [INPUT_BUTTON_RIGHT] =3D 0x02, }; int button_state =3D qdict_get_int(qdict, "button_state"); =20 diff --git a/ui/meson.build b/ui/meson.build index bb01f0728e2..0c6a432948c 100644 --- a/ui/meson.build +++ b/ui/meson.build @@ -53,7 +53,6 @@ libui =3D static_library('qemuui', libui_sources + genh, ui =3D declare_dependency(objects: libui.extract_all_objects(recursive: fa= lse), dependencies: [pixman]) system_ss.add(png) system_ss.add(files( - 'input-legacy.c', 'input-barrier.c', 'input.c', 'ui-hmp-cmds.c', --=20 2.54.0 From nobody Sun Jul 26 14:10:25 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1781089145; cv=none; d=zohomail.com; s=zohoarc; b=aavlIP5jdxbwWr9fF5oHa3zeqVC/X9vY/RfIpEw9ropnEPGErh4Zok+DBOSnhBKvtvk9Z2eIDnX6SxR9cATdkjUwy9L0nOtAIAunSY7NB0stuByox0kTLwAinTHqO6yNjw283i+sLofQY5RfnTJib1AGncDfV610hcXMhzAeeJQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781089145; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=QZlgPeAIzVB8wWelEkToQIEJjMpOuV3QmyJ1I2lAteE=; b=g1JpJpanW4U0LqEvzhpPdpmmqAFYtMdvSYzzxyOC5sT3GFMVFVPm967FbmcRTA6wsHJyFbVrBg4zg/xFqJqc1L44UKw7ytQl13Z8eQPfO1dEV6e3WEYW4d8CGzwZgBlbkDubEi8kmHvFA4xUNs1mvnY49RZgR+VR1G1L5H7a93Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781089145087678.8415591986596; Wed, 10 Jun 2026 03:59:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wXGdF-0002Li-8Z; Wed, 10 Jun 2026 06:58:01 -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 1wXGdD-0002KE-Jt for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:57:59 -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 1wXGdC-00068p-2t for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:57:59 -0400 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-235-7ICU36GPMfaYphFGHrQoRQ-1; Wed, 10 Jun 2026 06:57:54 -0400 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (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 8321F1955E9A; Wed, 10 Jun 2026 10:57:52 +0000 (UTC) Received: from localhost (unknown [10.44.24.21]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id C1E8E180057F; Wed, 10 Jun 2026 10:57:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1781089077; 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=QZlgPeAIzVB8wWelEkToQIEJjMpOuV3QmyJ1I2lAteE=; b=Q2pTf7n9tFPeyBJHgADQGv7KqqO2LutiJ/zv+cJFmXLMJ3nOgcpPUIqRw44moXec4/HMGL y4vMjKz8cQvHd5dmqs339DyXA1LFS+U7NikRKfXBD4f+TtLQShKpY0o8oazJ6q8LYmKZrM zByFvcdABe3A6fCrmJxKPTEsRREm9Xo= X-MC-Unique: 7ICU36GPMfaYphFGHrQoRQ-1 X-Mimecast-MFC-AGG-ID: 7ICU36GPMfaYphFGHrQoRQ_1781089072 From: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Date: Wed, 10 Jun 2026 14:56:48 +0400 Subject: [PATCH v2 06/22] hw/input: replace fprint with LOG_GUEST_ERROR MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260610-ui-input-v2-6-f68452dd6a22@redhat.com> References: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> In-Reply-To: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> To: qemu-devel@nongnu.org Cc: "Dr. David Alan Gilbert" , Paolo Bonzini , Richard Henderson , "Michael S. Tsirkin" , Gerd Hoffmann , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Jan Kiszka , Peter Maydell , qemu-arm@nongnu.org, Mark Cave-Ayland , qemu-ppc@nongnu.org, Thomas Huth X-Developer-Signature: v=1; a=openpgp-sha256; l=1627; i=marcandre.lureau@redhat.com; h=from:subject:message-id; bh=i64B5wBDWTTS2scXV/L0tAQtJD6TZQuAuNdI7jfExcU=; b=owEBbQKS/ZANAwAKAdro4Ql1lpzlAcsmYgBqKUL/6AJ1yQrD7GCYZ51cYnGbDppwSL8lFCmxO KrFACrPlgiJAjMEAAEKAB0WIQSHqb2TP4fGBtJ29i3a6OEJdZac5QUCailC/wAKCRDa6OEJdZac 5SGXEACe1TB6mqtKLP3x9E38DmSPylUivwpA9O6+JHwxZTmQLrMk3lTlxtCgDUTjD7Kzjok+kQ7 pbucK7YnHY49ybYgf8ZYJNT3f9kRQVQ43INFExRAz4Lq2bBtO7baFxRWCqE/m4t9qm1C9kmsQCG uX91aa5FcjLIdwIE+RGFaLgviu5yuR3yWkr9qnhclYTaqc1oXgDwYQ+ua6YrX25IiKwq5I65VJp 912YG+Sg6Do8I/WwePs26LJ+7G3+dRbMT12I+xwO0BC+w7Zd6O0dX9RT7WUx8r+g5sL74aJ4dM/ grohUHWhzFhP+LFILn8mH0PdmAqyTb48RTkJexMcl/fGUpMgbVNcUq17A34MzzwqyebqeOdSuiS SoxWgsdwWhohnC0i5JzgSONq3WjQR5lKI3OCv4Pfdzk3PzaspYM7NH+qW2/B4YDm6DOalJaWJT0 PbKsvZTBG68VfmrH/Mf/P0fIMsdFOstxkWVUZqlemlV67m+AXfD4OzdNlFbrx3zBalNMealAofX r5oGCmaM1+mpJEe1DZoUsZFQSK3ZGcernrmER3yQdV8qrK+nohmjSicko7bkJgJ8otSBIjf7Nqb IHvEbjDcQeTByskTTcbYeFjPS2OXTFT90rjZIHb6xgJF5D7+SrtWjSFnXPwPnU9+5dr1VKt2THD TibnEnvW7RlxmXw== X-Developer-Key: i=marcandre.lureau@redhat.com; a=openpgp; fpr=87A9BD933F87C606D276F62DDAE8E10975969CE5 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; 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: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, 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-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1781089146333158500 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Marc-Andr=C3=A9 Lureau --- hw/input/virtio-input-hid.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/hw/input/virtio-input-hid.c b/hw/input/virtio-input-hid.c index 75fe45d89a2..73423ac0c73 100644 --- a/hw/input/virtio-input-hid.c +++ b/hw/input/virtio-input-hid.c @@ -6,6 +6,7 @@ =20 #include "qemu/osdep.h" #include "qemu/iov.h" +#include "qemu/log.h" #include "qemu/module.h" =20 #include "hw/virtio/virtio.h" @@ -107,9 +108,9 @@ static void virtio_input_handle_event(DeviceState *dev,= QemuConsole *src, virtio_input_send(vinput, &event); } else { if (evt->btn.down) { - fprintf(stderr, "%s: unmapped button: %d [%s]\n", __func__, - evt->btn.button, - InputButton_str(evt->btn.button)); + qemu_log_mask(LOG_GUEST_ERROR, + "%s: unmapped button: %d [%s]\n", __func__, + evt->btn.button, InputButton_str(evt->btn.button)); } } break; @@ -210,8 +211,9 @@ static void virtio_input_hid_handle_status(VirtIOInput = *vinput, kbd_put_ledstate(vhid->ledstate); break; default: - fprintf(stderr, "%s: unknown type %d\n", __func__, - le16_to_cpu(event->type)); + qemu_log_mask(LOG_GUEST_ERROR, + "%s: unknown type %d\n", __func__, + le16_to_cpu(event->type)); break; } } --=20 2.54.0 From nobody Sun Jul 26 14:10:25 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1781089350; cv=none; d=zohomail.com; s=zohoarc; b=aBIiF61QettG+2eSZb9lLi9Wp5d23m0BSD+akcrKN64XWuLIqvSNGhx/DhAq3JUD71TT/QP4nJeAMaksIRSgKJ5mwWc/ofr5zka+T4rNX202Vjj86J61H7G98uiJQCXKooKt0iyjgi0VBzNlnysDjJZ8RYNIARPmfLMrccsBGuE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781089350; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=bCFdaleLAqFZOybhIPB+08n2Tsh51f2ld96XW2TReag=; b=fkDtjl9aNCV/uwQn5lP+tiHb28XuAn9kWe99ov4wmt7N595t3SxAL4hXgOW44t6xFjGHJtk7Viv6vgcPTK7F3biY1kSsgmdcnegE5BiTuCJKuFHiLZu4TzL0iL6AWgSYbI+GMeuiEZ9q+4jdhxgsfGJ4PT5rNGs3LNHvoIY6gLs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781089350948155.68544122208664; Wed, 10 Jun 2026 04:02:30 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wXGdK-0002WV-G0; Wed, 10 Jun 2026 06:58:06 -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 1wXGdI-0002NH-CP for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:58:04 -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 1wXGdG-0006Tb-VQ for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:58:04 -0400 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-447-A9NWhNYlORuWDpXXgDyvxQ-1; Wed, 10 Jun 2026 06:57:59 -0400 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-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id A6BAA19560A7; Wed, 10 Jun 2026 10:57:57 +0000 (UTC) Received: from localhost (unknown [10.44.24.21]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 5F5483000223; Wed, 10 Jun 2026 10:57:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1781089082; 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=bCFdaleLAqFZOybhIPB+08n2Tsh51f2ld96XW2TReag=; b=df2GW0QbMQCbsE0+Q6crBv+jY3+at8JphIkRdV9vGnoHZymDpJXSDRCuRAMwq3aZGzHWRE F/eQWv3dxBZZdKo3Osy4MtQ4BH2T6KHBUb5MKKZA8V/5bRsuUsywHB6g8sTAGSsccwabJv +6XU71JNb4zLd2l/M5jIIMbHgaFYCRM= X-MC-Unique: A9NWhNYlORuWDpXXgDyvxQ-1 X-Mimecast-MFC-AGG-ID: A9NWhNYlORuWDpXXgDyvxQ_1781089077 From: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Date: Wed, 10 Jun 2026 14:56:49 +0400 Subject: [PATCH v2 07/22] ui/input: remove double-notification on qemu_mouse_set() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260610-ui-input-v2-7-f68452dd6a22@redhat.com> References: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> In-Reply-To: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> To: qemu-devel@nongnu.org Cc: "Dr. David Alan Gilbert" , Paolo Bonzini , Richard Henderson , "Michael S. Tsirkin" , Gerd Hoffmann , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Jan Kiszka , Peter Maydell , qemu-arm@nongnu.org, Mark Cave-Ayland , qemu-ppc@nongnu.org, Thomas Huth X-Developer-Signature: v=1; a=openpgp-sha256; l=500; i=marcandre.lureau@redhat.com; h=from:subject:message-id; bh=QKTfJXkiYTlclQdjxc806Ee/VaUL+ZAjxSUBDEqQqXU=; b=owEBbQKS/ZANAwAKAdro4Ql1lpzlAcsmYgBqKUL/cORcNFDBPjM3siOoGK2aYZZLT6gQVlMKx XtnBLM2x7GJAjMEAAEKAB0WIQSHqb2TP4fGBtJ29i3a6OEJdZac5QUCailC/wAKCRDa6OEJdZac 5SN9D/oCQ7y1dObfroT6Nr69qN6gIvgru24qcVxlLrlxqO3INM5ZBHOExEcT5Ws/Ra/FAgWv+Kd mJTSAy+ZsfbvG0qvNZyVpSDNSJR8MCqr4Y4o3AORdXxD6AgJZ9W6gTLdCvA+gFSCkepeQjveQgf 3bXKM2aQqOaHZl6tObBew2sUCIQxVJdrzJQuuZ5Cy7x8hdDFFnRufADz43/kro1FuLFPoZ7YGaP 7wXg0QdDcBm2Z6YNG4GFMYFjVciKVcyY66JGWDfm9OjNYc0i2GuBc2nk4FpRFtJONIesbOOf28X +VmrHERU8JyP5lC+R8d0nnkjc+oBdhULCl232qruiCXxXw31eJQxZ9s57/vxwY3r5WbouW8+s7n bhVj6u3AmAd8Kqxa+kCUgTR04xo0pY23F8jKYGuWgkxoQoe8k72GbXDy5b+vtWd7vdqKNqXZsla EDs7foLSKSdzX3uy/W8J0c0JsHcattwQup/GoW1jolqj+Uu3V3OS113gkJ53GLDalCCwlqZ/HyQ L4ieGPrXNjn9VxblPvoF/JPCk5gBHsn6V/aiMx1BPck7LeuPKXesXGfqeU0q9/gQHo7jZ2gcCNS U8IVtrxjZNYiDM6SK82OqWne5ZGggKrf7wTT63mX5OE1dvTrqRboMoYgvgVjx5gQxngS53BxyI7 tIKRASXmommTIVQ== X-Developer-Key: i=marcandre.lureau@redhat.com; a=openpgp; fpr=87A9BD933F87C606D276F62DDAE8E10975969CE5 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; 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: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, 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-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1781089353405154100 qemu_input_handler_activate() already notifies. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- ui/input.c | 1 - 1 file changed, 1 deletion(-) diff --git a/ui/input.c b/ui/input.c index 55769c66fcc..15affeabf44 100644 --- a/ui/input.c +++ b/ui/input.c @@ -580,7 +580,6 @@ bool qemu_mouse_set(int index, Error **errp) } =20 qemu_input_handler_activate(s); - notifier_list_notify(&mouse_mode_notifiers, NULL); return true; } =20 --=20 2.54.0 From nobody Sun Jul 26 14:10:25 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1781089302; cv=none; d=zohomail.com; s=zohoarc; b=Ir8yJBU0kZiozVcq+kRB0tQQD0HNIqg/oW9792gkXAAltZIjPIvBvb090DnIqiD7+Z+qXwXejAoKSEUJcGWWPudKshSxqMkOcLAKXK4IkOihFfDR/qihAlBBQMQIHwGerwsaGyj+zRqG6IcckxAQoM5zL5Ao80Y9vIc8Bq85sbk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781089302; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=sWLOxIX5XZl9vwCXNGaKm8hQOhR+iz6yVZkthJeSGF8=; b=dhxbmPPmKTHuuBZtjjFmYtn2E7NHzCgg+FQBy25uFBmjIGQkHXf5K8uzXVDuULfWTgobsZzcOm+TLio3u4nf4YErAxxUoWbfp5dP0FRjgz2hhJeYzRRIuNowo7kHVqxFW66vCNXPLk9i2S7Jn/6So+D8WmPFgZ1IA0u2zrF3YOY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781089302308357.1874067267223; Wed, 10 Jun 2026 04:01:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wXGdR-0002gU-F5; Wed, 10 Jun 2026 06:58:13 -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 1wXGdP-0002f6-NK for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:58:11 -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 1wXGdO-00070t-CZ for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:58:11 -0400 Received: from mx-prod-mc-08.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-207-EDX2QUv3N0eoyqN4yqko-A-1; Wed, 10 Jun 2026 06:58:04 -0400 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (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-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id DA733180AC71; Wed, 10 Jun 2026 10:58:02 +0000 (UTC) Received: from localhost (unknown [10.44.24.21]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 953F01954112; Wed, 10 Jun 2026 10:58:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1781089089; 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=sWLOxIX5XZl9vwCXNGaKm8hQOhR+iz6yVZkthJeSGF8=; b=XafKQHcImg/0mCMaQiwh2h8iYunaNCvdbjwEn+uIwauYAEUE3RUxLb6dpO50w0D1vgDJCT 7kOLgn73FdyQCFWfBYkaAwzUTXXhLK7vVA8uMgWrB+o805UCpzH+aqWZcwWkaFf80rPi11 a5SpI9XCmjIa8I1kJfkvDx2ahw1ZIps= X-MC-Unique: EDX2QUv3N0eoyqN4yqko-A-1 X-Mimecast-MFC-AGG-ID: EDX2QUv3N0eoyqN4yqko-A_1781089083 From: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Date: Wed, 10 Jun 2026 14:56:50 +0400 Subject: [PATCH v2 08/22] ui/input: remove dead declaration MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260610-ui-input-v2-8-f68452dd6a22@redhat.com> References: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> In-Reply-To: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> To: qemu-devel@nongnu.org Cc: "Dr. David Alan Gilbert" , Paolo Bonzini , Richard Henderson , "Michael S. Tsirkin" , Gerd Hoffmann , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Jan Kiszka , Peter Maydell , qemu-arm@nongnu.org, Mark Cave-Ayland , qemu-ppc@nongnu.org, Thomas Huth X-Developer-Signature: v=1; a=openpgp-sha256; l=783; i=marcandre.lureau@redhat.com; h=from:subject:message-id; bh=l6d+462ZKgCVnhnNIGhbq34EYcMeVFg4cug7qMLz0jQ=; b=owEBbQKS/ZANAwAKAdro4Ql1lpzlAcsmYgBqKUL/JJZtyzRXth9OJEimr/jjEn1rtA7ijHW5Z PYnkkislPKJAjMEAAEKAB0WIQSHqb2TP4fGBtJ29i3a6OEJdZac5QUCailC/wAKCRDa6OEJdZac 5aJsD/9ki3sf8dtw2M16tD4L9SI6GT80rCmqnQtaxtfNL/1hVnFuwenXC46UDH46bBYRCiJdi9z 3OiNGi1OrlzZIFwzw8VbM57GrxXFR134g2hnvOyGcEpGy9ImvkC0CnWHJNSyOY3VqjHA0ZfnXf0 F3kmIhfFWivvQPYKFXH5rydZ5mpI8v0ooyBNZEnM7rUr7Ul1IAh/fxuCXneySLGxDhMHaReZC6k LZi6fmUN8k1LXsdOzBK0YhgZjza6M4ueVRqvOtU7n7o7BKbf/XBtGcqfNvCow6Zc+McUGWtC8wQ xNd+cEs3RHYSnpiUxKlaGimltX2RuYUo5rfPiwZltHpMFZ+8s+TJetEx65N2mYH8mcf4mE3OvYq +AJQL0suLbO1x4lHHrYbzX6f+oZ13WMM/2jR3kmix4Bapovhfiy5kUH7/xpyE9i1iKFtQNxSzHQ uZ16v72yJH5q4xqxaRfEp7g10QwYB05vH8b0Uj6U+TcnIp9T/C/I5AkbXtWyhOij1sML4YtaIYN HvWOo5r8LXJ+K3onazTD6bIXqMbigVnW83EDiqXRIpatC3ftEFzF3H4EAiSk3iqK281XbnbLR2/ 4GvoHb03CC0SzknWeq95LiPq9VPJiGhDlJ0zVKhn+JFh4fzXxFE0ce1fmFpF+54wFw55M2YVaaX Q23EviDMcsz7Ffw== X-Developer-Key: i=marcandre.lureau@redhat.com; a=openpgp; fpr=87A9BD933F87C606D276F62DDAE8E10975969CE5 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; 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: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, 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-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1781089303482158500 Fixes: 0337e4123e6 ("input: Allow to choose console with qemu_input_is_abs= olute") Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Marc-Andr=C3=A9 Lureau --- include/ui/input.h | 1 - 1 file changed, 1 deletion(-) diff --git a/include/ui/input.h b/include/ui/input.h index ea2d944a7ed..6df8ae3a8a3 100644 --- a/include/ui/input.h +++ b/include/ui/input.h @@ -100,7 +100,6 @@ void qemu_input_touch_event(QemuConsole *con, InputMultiTouchType type, Error **errp); =20 -void qemu_input_check_mode_change(void); void qemu_add_mouse_mode_change_notifier(Notifier *notify); void qemu_remove_mouse_mode_change_notifier(Notifier *notify); =20 --=20 2.54.0 From nobody Sun Jul 26 14:10:25 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1781089113; cv=none; d=zohomail.com; s=zohoarc; b=iwRoUwdoQU97H+mleBsV9bMH17IUidP2dFOZIP01Ma2Ibt25spnjMmcY8hEIKgFe1bEvT/lkivMzNvq8ZN6ISramY8StVGmAKfbcdbiSAwRRPz9eIcz2OnFFdSWLZDJVN8AOcM8u1RHCVemUrG7w9VIJr5ptEU+VT/3a6/rGedI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781089113; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=bXpUuOpl0GC2NdoWw2KwznKpIE7Ju+drpUS1Ff4Mj7g=; b=jyJybZ6E8aOC4lHoGAOwIp5s+qBXQyv7gORQ7rYPSyf2/2YHZFsQRsYfGtHJ1ijST97XpvddxNUbqTARyYnatFJcCK8lmJnIChaF/tTvKB/T0To3ozONzIivD9b56uZgFiRHbFOC2looyuQRN/256dPOi4EOGmrlEkdxJpPDQtg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781089113136388.0749451574645; Wed, 10 Jun 2026 03:58:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wXGdW-0002wG-6s; Wed, 10 Jun 2026 06:58:18 -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 1wXGdU-0002kI-Ft for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:58:16 -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 1wXGdS-00074Z-Sp for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:58:16 -0400 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-103-KqVj9uUWMDqLWg5w26sC2Q-1; Wed, 10 Jun 2026 06:58:11 -0400 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (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 601251955EA2; Wed, 10 Jun 2026 10:58:09 +0000 (UTC) Received: from localhost (unknown [10.44.24.21]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 82EED1954102; Wed, 10 Jun 2026 10:58:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1781089094; 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=bXpUuOpl0GC2NdoWw2KwznKpIE7Ju+drpUS1Ff4Mj7g=; b=PTzh0kc8T960LFepi8rtH3Q4phtGAiVVINaIITnZqcyr5umG9rAxDG5fwxIK7QVagrEUuR tfnN5HKNw9mWQyeQUQYlGgNpuFpYWmvJFtoAwcdOG2agVAj5MyZHZcmZyBI6uE9pLlkvGW Moep5L/aJrxLU2lHlvf8LFVc0OKdfn8= X-MC-Unique: KqVj9uUWMDqLWg5w26sC2Q-1 X-Mimecast-MFC-AGG-ID: KqVj9uUWMDqLWg5w26sC2Q_1781089089 From: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Date: Wed, 10 Jun 2026 14:56:51 +0400 Subject: [PATCH v2 09/22] ui/input: add LED state tracking to QemuInputHandlerState MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260610-ui-input-v2-9-f68452dd6a22@redhat.com> References: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> In-Reply-To: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> To: qemu-devel@nongnu.org Cc: "Dr. David Alan Gilbert" , Paolo Bonzini , Richard Henderson , "Michael S. Tsirkin" , Gerd Hoffmann , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Jan Kiszka , Peter Maydell , qemu-arm@nongnu.org, Mark Cave-Ayland , qemu-ppc@nongnu.org, Thomas Huth X-Developer-Signature: v=1; a=openpgp-sha256; l=4895; i=marcandre.lureau@redhat.com; h=from:subject:message-id; bh=cMVZYCnggxq6yeX3PGXoPndHc36y1Z8RdA8E0xdY2nI=; b=owEBbQKS/ZANAwAKAdro4Ql1lpzlAcsmYgBqKUMAjWQRKcriqypiLvc6Wmyk+m2hkZ5A3Djc5 Zr45mKP+LaJAjMEAAEKAB0WIQSHqb2TP4fGBtJ29i3a6OEJdZac5QUCailDAAAKCRDa6OEJdZac 5XcxD/9ihbhQ+gZLpaA22U8rtaikrnG0ZWlNzDrfKZRVlIbXXq34luNRSLI0WP1Z/AJpoUO0HTn homiqpTX6EHMWGeoxE65ASmOMOY5XTorUDQd3wLHbivp0V3W5V87ageWEqd7Mz/V5e7mZjgTM9j w3lRJEo6uS4p/IWztSAOzi9TbS3toji46NG8AyHcCKP589yXtRTXlrAEnwx2O6d6sAO3IshSvW9 3lbDNgmu2yQpdZpU0LNOjncTYNl5Q/hFAW+uM9Zg4rfDDVMu68ToBwhAU1m1e++MY8O7O3x+pqT T3j0njJhEEZyDKwrEtA0D1IYevyFg2e7rmuXpd75h2riYRmLcRGIqUc9tyd83KDT3a2Aeu7l6b5 TNI0KtrOZKmJWe06BoJHZkLTqdiVk3y30ScrOmbB7zEA+z/izApLgS5mcNTdsZXvhLESV2X1crV 29PgnyWKzPEo3UqFbs3c+sj+iBTLg+CBCzQat8Y7uJUcSSgC6H5lZgGCKGfrLkp+3RLR3kOpvxz GQLDuCeIvUaKGt2AWtGyRiWZJDGy/Mb+z5BilmiPXFYoSZ+bKqKXiZFntG/o90lPDhAahyKZia2 SCXblX/dzVKpyOUZIahF7Q00viLcmeW6Uz0B2ide1zXhOByReEkV8I2BaodlsiuHBCdODHARKdP 3kCzNxq6qMt3gQQ== X-Developer-Key: i=marcandre.lureau@redhat.com; a=openpgp; fpr=87A9BD933F87C606D276F62DDAE8E10975969CE5 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; 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: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, 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-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1781089114966158500 Add per-handler LED state and a NotifierList for UI backends to subscribe to LED changes. Devices call qemu_input_handler_set_led() to store their LED state and notify backends. Notify also on focus change, or list update. Note: I considered conflating mouse-mode & led-state changes, but those are quite different events (from different source kinds etc) and we may want to improve the internal implementation. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- include/ui/input.h | 5 +++++ ui/input.c | 49 +++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 50 insertions(+), 4 deletions(-) diff --git a/include/ui/input.h b/include/ui/input.h index 6df8ae3a8a3..66e5c1f4b06 100644 --- a/include/ui/input.h +++ b/include/ui/input.h @@ -151,4 +151,9 @@ extern const guint16 qemu_input_map_xorgxwin_to_linux[]; extern const guint qemu_input_map_osx_to_linux_len; extern const guint16 qemu_input_map_osx_to_linux[]; =20 +void qemu_input_handler_set_led(QemuInputHandlerState *s, int ledstate); +void qemu_input_led_notifier_add(Notifier *n); +void qemu_input_led_notifier_remove(Notifier *n); +int qemu_input_get_led(QemuConsole *con); + #endif /* INPUT_H */ diff --git a/ui/input.c b/ui/input.c index 15affeabf44..99a1090f8c3 100644 --- a/ui/input.c +++ b/ui/input.c @@ -14,6 +14,7 @@ struct QemuInputHandlerState { int id; int events; QemuConsole *con; + int ledstate; QTAILQ_ENTRY(QemuInputHandlerState) node; }; =20 @@ -38,6 +39,8 @@ static QTAILQ_HEAD(, QemuInputHandlerState) handlers =3D QTAILQ_HEAD_INITIALIZER(handlers); static NotifierList mouse_mode_notifiers =3D NOTIFIER_LIST_INITIALIZER(mouse_mode_notifiers); +static NotifierList led_notifiers =3D + NOTIFIER_LIST_INITIALIZER(led_notifiers); =20 static QemuInputEventQueueHead kbd_queue =3D QTAILQ_HEAD_INITIALIZER(kbd_q= ueue); static QEMUTimer *kbd_timer; @@ -45,6 +48,14 @@ static uint32_t kbd_default_delay_ms =3D 10; static uint32_t queue_count; static uint32_t queue_limit =3D 1024; =20 +static void notify_input_changed(uint32_t mask) +{ + notifier_list_notify(&mouse_mode_notifiers, NULL); + if (mask & INPUT_EVENT_MASK_KEY) { + notifier_list_notify(&led_notifiers, NULL); + } +} + QemuInputHandlerState *qemu_input_handler_register(DeviceState *dev, const QemuInputHandler *handle= r) { @@ -55,8 +66,8 @@ QemuInputHandlerState *qemu_input_handler_register(Device= State *dev, s->handler =3D handler; s->id =3D id++; QTAILQ_INSERT_TAIL(&handlers, s, node); + notify_input_changed(handler->mask); =20 - notifier_list_notify(&mouse_mode_notifiers, NULL); return s; } =20 @@ -64,21 +75,23 @@ void qemu_input_handler_activate(QemuInputHandlerState = *s) { QTAILQ_REMOVE(&handlers, s, node); QTAILQ_INSERT_HEAD(&handlers, s, node); - notifier_list_notify(&mouse_mode_notifiers, NULL); + notify_input_changed(s->handler->mask); } =20 void qemu_input_handler_deactivate(QemuInputHandlerState *s) { QTAILQ_REMOVE(&handlers, s, node); QTAILQ_INSERT_TAIL(&handlers, s, node); - notifier_list_notify(&mouse_mode_notifiers, NULL); + notify_input_changed(s->handler->mask); } =20 void qemu_input_handler_unregister(QemuInputHandlerState *s) { + uint32_t mask =3D s->handler->mask; + QTAILQ_REMOVE(&handlers, s, node); g_free(s); - notifier_list_notify(&mouse_mode_notifiers, NULL); + notify_input_changed(mask); } =20 void qemu_input_handler_bind(QemuInputHandlerState *s, @@ -122,6 +135,23 @@ qemu_input_find_handler(uint32_t mask, QemuConsole *co= n) return NULL; } =20 +void qemu_input_handler_set_led(QemuInputHandlerState *s, int ledstate) +{ + assert(s->handler->mask & INPUT_EVENT_MASK_KEY); + s->ledstate =3D ledstate; + notifier_list_notify(&led_notifiers, NULL); +} + +void qemu_input_led_notifier_add(Notifier *n) +{ + notifier_list_add(&led_notifiers, n); +} + +void qemu_input_led_notifier_remove(Notifier *n) +{ + notifier_remove(n); +} + void qmp_input_send_event(const char *device, bool has_head, int64_t head, InputEventList *events, Error **errp) @@ -445,6 +475,17 @@ bool qemu_input_is_absolute(QemuConsole *con) return (s !=3D NULL) && (s->handler->mask & INPUT_EVENT_MASK_ABS); } =20 +int qemu_input_get_led(QemuConsole *con) +{ + QemuInputHandlerState *s; + + s =3D qemu_input_find_handler(INPUT_EVENT_MASK_KEY, con); + if (s) { + return s->ledstate; + } + return 0; +} + int qemu_input_scale_axis(int value, int min_in, int max_in, int min_out, int max_out) --=20 2.54.0 From nobody Sun Jul 26 14:10:25 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1781089143; cv=none; d=zohomail.com; s=zohoarc; b=ftYxQIPhfWq7v/94Uts2ZWj8JisqbIjJsfv0WBG83WsZ25j1P54ruVNZZaNG08HF3vf6W/FyHP07+nWSWSWH0bM5JsUaVLVpnEsDu/25diVHfhapQvzfYWqvRi7BT7wgOtEfhTkmmSgaB2uHEyGzJWi+wDoq7YHsLnOrMR5WeY4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781089143; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ThQPvh/6KMck6XC4Go6k9daunEMDeU/oyPrV5UqYbus=; b=QZ/zmzmvmd1VA8fneAmN4DyCvEB47OW64eSNQNohnZWecjVj1hXj3xRNtD/2u0JRfCxdrValEoGVuJnjHJxi9KkebZhh47vihP4m7QJbZR6uNKq23yosnHoFC2tHlvo2Bq9GirzcCQwoeAqsdDCGNmhWmljrq8PNAJtwAnA7W0g= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781089143111315.4031249783168; Wed, 10 Jun 2026 03:59:03 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wXGdc-0003bt-7K; Wed, 10 Jun 2026 06:58:24 -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 1wXGda-0003M4-D1 for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:58:22 -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 1wXGdY-00075A-Mm for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:58:22 -0400 Received: from mx-prod-mc-08.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-680-q9b2zmKfPHKtTqTkXBuZmA-1; Wed, 10 Jun 2026 06:58:16 -0400 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-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id D12BD180267D; Wed, 10 Jun 2026 10:58:14 +0000 (UTC) Received: from localhost (unknown [10.44.24.21]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 86EFC3000223; Wed, 10 Jun 2026 10:58:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1781089100; 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=ThQPvh/6KMck6XC4Go6k9daunEMDeU/oyPrV5UqYbus=; b=aaYD08hrqKqiAqil+Z417TYFIqMDWsrZWVjtltvppqJUjojpD7hhY4Co6G6sBd2EdXhgqr hy7FDIXsvFz88tiSr0k9cKT2FamgJ7N2wxVCQD+8zWqP3TOXI7B+XRjps74XzUNn1mdDHn sy+nneyRnzEaR1y2xq4/eeiShlXYspc= X-MC-Unique: q9b2zmKfPHKtTqTkXBuZmA-1 X-Mimecast-MFC-AGG-ID: q9b2zmKfPHKtTqTkXBuZmA_1781089095 From: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Date: Wed, 10 Jun 2026 14:56:52 +0400 Subject: [PATCH v2 10/22] hw/input/ps2: keep QemuInputHandlerState in PS2State MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260610-ui-input-v2-10-f68452dd6a22@redhat.com> References: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> In-Reply-To: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> To: qemu-devel@nongnu.org Cc: "Dr. David Alan Gilbert" , Paolo Bonzini , Richard Henderson , "Michael S. Tsirkin" , Gerd Hoffmann , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Jan Kiszka , Peter Maydell , qemu-arm@nongnu.org, Mark Cave-Ayland , qemu-ppc@nongnu.org, Thomas Huth X-Developer-Signature: v=1; a=openpgp-sha256; l=2933; i=marcandre.lureau@redhat.com; h=from:subject:message-id; bh=HRbJvGcvY/gPmNkSLQ78JPU6/EdaocsZHw4YvB7qXuE=; b=owEBbQKS/ZANAwAKAdro4Ql1lpzlAcsmYgBqKUMAl2/dYRYAMIc8DUL+7/tCb2SsFSSeVtmLp cUCsPfgVx+JAjMEAAEKAB0WIQSHqb2TP4fGBtJ29i3a6OEJdZac5QUCailDAAAKCRDa6OEJdZac 5WHGD/0d8kJfPqiPILqhE7IYpr7k5O9/AXCo23IIdU63YRdHtKVc/+PEo+PIW8egYioawHIW1sD Uo0MtzjENAK6LJb/dPxKs5HjaoX4evMa3lmgqiiHY1vqz3h1z3GDrZTszptFUokKYFudepiB//8 o7GCOQ9mEdS/b52YqjV7AfzySba3fNn+TB0KVubclapwxfz2GudZxqO5VYYItHubBmdRuAz8ZVX fi+Lm7p/p9wM5Jc+ew8+LvrUwA01+3y1Ywy/3KWardvK411hUSXEWbz5uBBZMB4BJGE+CE/7fqD 7LRk0Uy9252irX/om0NPHprJM2d6PCbsUDKf7UmChkL/UX2rJKq8TL0edU4WFir056l0VruFMd8 rH+B/2YrLFfluxATSXPzkz4T3n3AmSf0+t2f2N6SKQTp2a+Wvrqs1yzyae9op5oplRoqPruD76b NfQ/488QJswiCf4Kq8wzJAZDedoxMbz1gJLCMNZbnhz7BzjUeFhGf9AVqL2kJy7WsgO4CprdZn3 BhI7fsPI0RwLLIsgoPqf6XYP9T+m3wWArCJNG56JaVVgWWeSVId1rkGbwJOwvZKpTBHDOEYBHP/ SDB0aGOGhC/Bo4I1FbC1UTtZhtXck84UEC8ImKa13QFxoYpo0Go4Sw0cN3E75nmq0fvfYLVAzkA ZU41fLUcvKWacAw== X-Developer-Key: i=marcandre.lureau@redhat.com; a=openpgp; fpr=87A9BD933F87C606D276F62DDAE8E10975969CE5 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; 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: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, 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_H5=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-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1781089146051154100 Track the input handled state, and dispose it on unrealize. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Marc-Andr=C3=A9 Lureau --- include/hw/input/ps2.h | 2 ++ hw/input/ps2.c | 24 ++++++++++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/include/hw/input/ps2.h b/include/hw/input/ps2.h index 058db3e0890..d0c532a38f2 100644 --- a/include/hw/input/ps2.h +++ b/include/hw/input/ps2.h @@ -26,6 +26,7 @@ #define HW_PS2_H =20 #include "hw/core/sysbus.h" +#include "ui/input.h" =20 #define PS2_MOUSE_BUTTON_LEFT 0x01 #define PS2_MOUSE_BUTTON_RIGHT 0x02 @@ -59,6 +60,7 @@ struct PS2State { PS2Queue queue; int32_t write_cmd; qemu_irq irq; + QemuInputHandlerState *hs; }; =20 #define TYPE_PS2_DEVICE "ps2-device" diff --git a/hw/input/ps2.c b/hw/input/ps2.c index f2523ff4bc7..97df7a9a43e 100644 --- a/hw/input/ps2.c +++ b/hw/input/ps2.c @@ -1233,7 +1233,16 @@ static const QemuInputHandler ps2_keyboard_handler = =3D { =20 static void ps2_kbd_realize(DeviceState *dev, Error **errp) { - qemu_input_handler_register(dev, &ps2_keyboard_handler); + PS2State *s =3D PS2_DEVICE(dev); + + s->hs =3D qemu_input_handler_register(dev, &ps2_keyboard_handler); +} + +static void ps2_kbd_unrealize(DeviceState *dev) +{ + PS2State *s =3D PS2_DEVICE(dev); + + g_clear_pointer(&s->hs, qemu_input_handler_unregister); } =20 static const QemuInputHandler ps2_mouse_handler =3D { @@ -1245,7 +1254,16 @@ static const QemuInputHandler ps2_mouse_handler =3D { =20 static void ps2_mouse_realize(DeviceState *dev, Error **errp) { - qemu_input_handler_register(dev, &ps2_mouse_handler); + PS2State *s =3D PS2_DEVICE(dev); + + s->hs =3D qemu_input_handler_register(dev, &ps2_mouse_handler); +} + +static void ps2_mouse_unrealize(DeviceState *dev) +{ + PS2State *s =3D PS2_DEVICE(dev); + + g_clear_pointer(&s->hs, qemu_input_handler_unregister); } =20 static void ps2_kbd_class_init(ObjectClass *klass, const void *data) @@ -1255,6 +1273,7 @@ static void ps2_kbd_class_init(ObjectClass *klass, co= nst void *data) PS2DeviceClass *ps2dc =3D PS2_DEVICE_CLASS(klass); =20 dc->realize =3D ps2_kbd_realize; + dc->unrealize =3D ps2_kbd_unrealize; resettable_class_set_parent_phases(rc, NULL, ps2_kbd_reset_hold, NULL, &ps2dc->parent_phases); dc->vmsd =3D &vmstate_ps2_keyboard; @@ -1274,6 +1293,7 @@ static void ps2_mouse_class_init(ObjectClass *klass, = const void *data) PS2DeviceClass *ps2dc =3D PS2_DEVICE_CLASS(klass); =20 dc->realize =3D ps2_mouse_realize; + dc->unrealize =3D ps2_mouse_unrealize; resettable_class_set_parent_phases(rc, NULL, ps2_mouse_reset_hold, NUL= L, &ps2dc->parent_phases); dc->vmsd =3D &vmstate_ps2_mouse; --=20 2.54.0 From nobody Sun Jul 26 14:10:25 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1781089295; cv=none; d=zohomail.com; s=zohoarc; b=a2Ql3g4DMFKQYgPIYs8r28MshZG7AaCoA9D91B8rPeKf2dJc9Jl9yy5IREJg1+10kJ8mmtvjyAB3dCVwj3ueAkwOwjKOQ7/6eJMGghs/11/Ul9PtPOQPpQgBrDbY2VWaHy18+iv+IusKozrB2Ifn+pBnKPsxu/86LEW1ObFpK8c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781089295; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Z3x98RLTDQDDbBc3k2+DOQ4NJcU8pbjelIglG1thHGM=; b=bNn0oO6XEFTLBRZCNMz6bfWFvB3jUIvG5nK2ciyROR8gUNuU2hkNndvlwO44zp1nEOxz1iBz444nRDAQrzzXpxQnPpFXu7MyY9LkS8r6WOz8/QFDqsf6MuAYFTViJJct4IAdchbnkSIJ1COryggFKHzqa9nuXKoXqPn8gzAeooE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781089295522365.0120396231191; Wed, 10 Jun 2026 04:01:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wXGdo-000472-JV; Wed, 10 Jun 2026 06:58:37 -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 1wXGdl-00044h-9D for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:58:33 -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 1wXGdj-00076t-CH for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:58:32 -0400 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-161-jBSZrDqCO16aXq5NegReVA-1; Wed, 10 Jun 2026 06:58:27 -0400 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (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 7B2281954111; Wed, 10 Jun 2026 10:58:25 +0000 (UTC) Received: from localhost (unknown [10.44.24.21]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 955851800599; Wed, 10 Jun 2026 10:58:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1781089110; 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=Z3x98RLTDQDDbBc3k2+DOQ4NJcU8pbjelIglG1thHGM=; b=DniyinTf8PsDGrMYIvTZ+LeI/4WSfoHFrgqB89xTjyfk7D58OCR3Itqib7FjFv2CbTU+T0 oec/OefAHpGGKDrWOXQdzmSh6p0JO93HBuYLc3iP6Gai2ifcnQfxi50vmVks1Dmv4tc9A4 mUZGX+4A6w2w4uAdet3ZiC2ZqUt9br4= X-MC-Unique: jBSZrDqCO16aXq5NegReVA-1 X-Mimecast-MFC-AGG-ID: jBSZrDqCO16aXq5NegReVA_1781089106 From: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Date: Wed, 10 Jun 2026 14:56:53 +0400 Subject: [PATCH v2 11/22] hw/arm: keep QemuInputHandlerState in musicpal MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260610-ui-input-v2-11-f68452dd6a22@redhat.com> References: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> In-Reply-To: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> To: qemu-devel@nongnu.org Cc: "Dr. David Alan Gilbert" , Paolo Bonzini , Richard Henderson , "Michael S. Tsirkin" , Gerd Hoffmann , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Jan Kiszka , Peter Maydell , qemu-arm@nongnu.org, Mark Cave-Ayland , qemu-ppc@nongnu.org, Thomas Huth X-Developer-Signature: v=1; a=openpgp-sha256; l=1436; i=marcandre.lureau@redhat.com; h=from:subject:message-id; bh=u6RG46vN0H5nTKZNkw4st/d2Sfo+DtW0qvBbkOugEy4=; b=owEBbQKS/ZANAwAKAdro4Ql1lpzlAcsmYgBqKUMArNhxzoUTPa1V2FymHQneqUWmH7TotSoj+ Evc0EapgsiJAjMEAAEKAB0WIQSHqb2TP4fGBtJ29i3a6OEJdZac5QUCailDAAAKCRDa6OEJdZac 5ULOEACcYBgo9zeOU4C6MpdEyOBaiNt0ogoVWzZSqhbs9gJ8idctbpP0m6EF0srJ8ZxX6NLjN4J 9P2IuMTO2fWx9JGYksS/FGkBOmfacU+5z/ISKmHIj5P0k0vAbRjUrW4XQ9uaRxHUHPlHZH7cz07 yW7llNCunceGQPd10sqrbaXRazvmLXP26pL16DToWgj7fh1fcOz6ugME5vbm71qTnq4bmrwG1zj 7DoZEAq3zFdZTvCqeaImhDt//flKNxfaGklYxZ9RAebS2WUM9udj+UCZQz5Owtbg7BhRxzSlsy7 J8U/yQEQvgNppfyy/1XYNeqgdvm+k8JZH5yImxYubbCEmyZ3tAhciE8ZY2hWZZED38KWSP10Fkl sXLET0aBIgJ+FHJDdLpvVLIXfNCBi4fbqRQjpNt3yifdRIEmxfBK2PL3tnR3HDg1o7Bo2LcF1n2 u+qb9njPjuj60pCEUcfmqR7Ut2XYUmDvjsOgPYGKShCic4B0iq82XzamoURfK0uvSV8VjY2+vPj PV0bwWyQKHuYtb8FmyplKt+Ee9zCCudlAjAfZC7nlCreY/lapWR7sdC7dDg1YKR9tJsSPHgTMpS siS8HwE0QuWOvchdSC+44YxNescbtmlQ1ICSBwntWBy7UEmTM1aoFYm99gcLE+eawwBOCZHeaGI sH/YsXO1PLz5kUA== X-Developer-Key: i=marcandre.lureau@redhat.com; a=openpgp; fpr=87A9BD933F87C606D276F62DDAE8E10975969CE5 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; 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: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, 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-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1781089297539158502 Track the input handled state, and dispose it on unrealize. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/arm/musicpal.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/hw/arm/musicpal.c b/hw/arm/musicpal.c index e2630243eb7..69e83bdd973 100644 --- a/hw/arm/musicpal.c +++ b/hw/arm/musicpal.c @@ -1062,6 +1062,7 @@ struct musicpal_key_state { SysBusDevice parent_obj; /*< public >*/ =20 + QemuInputHandlerState *hs; uint32_t pressed_keys; qemu_irq out[8]; }; @@ -1158,7 +1159,16 @@ static const QemuInputHandler musicpal_key_handler = =3D { =20 static void musicpal_key_realize(DeviceState *dev, Error **errp) { - qemu_input_handler_register(dev, &musicpal_key_handler); + musicpal_key_state *s =3D MUSICPAL_KEY(dev); + + s->hs =3D qemu_input_handler_register(dev, &musicpal_key_handler); +} + +static void musicpal_key_unrealize(DeviceState *dev) +{ + musicpal_key_state *s =3D MUSICPAL_KEY(dev); + + g_clear_pointer(&s->hs, qemu_input_handler_unregister); } =20 static const VMStateDescription musicpal_key_vmsd =3D { @@ -1177,6 +1187,7 @@ static void musicpal_key_class_init(ObjectClass *klas= s, const void *data) =20 dc->vmsd =3D &musicpal_key_vmsd; dc->realize =3D musicpal_key_realize; + dc->unrealize =3D musicpal_key_unrealize; } =20 static const TypeInfo musicpal_key_info =3D { --=20 2.54.0 From nobody Sun Jul 26 14:10:25 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1781089192; cv=none; d=zohomail.com; s=zohoarc; b=YQG4lAOaX8RFH5nmuRGpDxZUlgo87mgF8U/4+Q+YbcTX9UkMk1fIWmbj3DTkrEO/kv+d3NPK8gtVMyIRkvRJTYDYZTT9+6tYWaTGsG6i0EyvLTFYxcmoF/3uZTp3F5AMWPGDj7mMElqDtElMiq5c5+zl0FDDTXt+hHjrPfbJNLk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781089192; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Z8c1FIMKwaYoOTZE7vyDECq+aVQ4SBC6fnh/QYsxx+g=; b=Q+Ly4zb2x5ZUmLPX0i07zZImXzciSgPTK7G5xqLSN8ZUZcds3HCg6NY3Ga9Vxpz72sDs2CnS2PJuLN1OgNpV9Kakfgsdvw2iFn0jvbpstuKFd7E9qYj1gt3ci9ld+gujZ82fGP3vzqeY3K4vU9DGg4hPSyYur4zWf3yoxdxJqZI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781089192911479.18631822697364; Wed, 10 Jun 2026 03:59:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wXGdv-0004OL-Ma; Wed, 10 Jun 2026 06:58:43 -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 1wXGdp-0004Ag-Vb for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:58:38 -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 1wXGdn-0007FB-V9 for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:58:37 -0400 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-484-Q58_Y8iIM-e2yTrXT9NGXw-1; Wed, 10 Jun 2026 06:58:32 -0400 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (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 8870F1800656; Wed, 10 Jun 2026 10:58:30 +0000 (UTC) Received: from localhost (unknown [10.44.24.21]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 566E3195410A; Wed, 10 Jun 2026 10:58:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1781089115; 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=Z8c1FIMKwaYoOTZE7vyDECq+aVQ4SBC6fnh/QYsxx+g=; b=USgKzrE6k0ZgQK7BsT+3zuWvASSbz2XNtQ+gtxusw7qbhI2oKq+mDdOAR20sQjD01hmbgB w4Q0qSNajz+dvd4deifaVkE60uPmsfJOBBSqEVG/LsN3Vu97Omv9UppHJ/oHGyI0ksVn2r IK5X1Is7wPyZ/6uHzHQAuAzMZ7Oghyc= X-MC-Unique: Q58_Y8iIM-e2yTrXT9NGXw-1 X-Mimecast-MFC-AGG-ID: Q58_Y8iIM-e2yTrXT9NGXw_1781089110 From: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Date: Wed, 10 Jun 2026 14:56:54 +0400 Subject: [PATCH v2 12/22] hw/input: keep QemuInputHandlerState in adb-kbd MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260610-ui-input-v2-12-f68452dd6a22@redhat.com> References: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> In-Reply-To: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> To: qemu-devel@nongnu.org Cc: "Dr. David Alan Gilbert" , Paolo Bonzini , Richard Henderson , "Michael S. Tsirkin" , Gerd Hoffmann , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Jan Kiszka , Peter Maydell , qemu-arm@nongnu.org, Mark Cave-Ayland , qemu-ppc@nongnu.org, Thomas Huth X-Developer-Signature: v=1; a=openpgp-sha256; l=1946; i=marcandre.lureau@redhat.com; h=from:subject:message-id; bh=GmSCc22GoNS7ltH+XjMYln3CZYqrnxab3Gc6bVadlm8=; b=owEBbQKS/ZANAwAKAdro4Ql1lpzlAcsmYgBqKUMAeVO6phufymg1FE2Gm2zCMJQDr4SGwKDHi AgmekUOyL2JAjMEAAEKAB0WIQSHqb2TP4fGBtJ29i3a6OEJdZac5QUCailDAAAKCRDa6OEJdZac 5ZY2D/9SXPuumnO54wQdrMTwm8IVIjtwAGJt7btxM3rYRNkNZ0AlK18Z5sSntjdgEwEL2GIaucX nUx0cEE6gnQVXCh451qWyuw7Ya03AadcRfUaDhljXHfzLIUzs4dfALLMGoPrR8P0fEd3Iai3j7q xx06KikaBIcsxdmxMB9o8JSnb0JwQ06nz15NXDTxE6xoR12+h6NjqcnlMdm2AUPoZ4Tf04tzvVf uut/vCWs8SlPyNyw71a8WOHfaJsBtAlUx3sdypgnTHwXenT+YnqZXDVDdz858b1yr3kCfEQP4R5 szPrX7g1nyaWfsnYXv6IMzQeWg8Cwc+1QXJs5pfvjYAfvuJtFLDxGehOICCo1p1e6/5qcdOaWPS 6qZcjNySeOP5/UOMbQ+kwbbY23fo48mL7KZydGNHzCkKbJ2HWCm+IvhVbdozqSLX02MU1GfBJUn TOAxkaC7UdRrLEPRk0ZY8+1HGIOF11oNFGg1MCMbzzHREM31wCBDkKZ9rJxn2GY+ct+/9ALpSr/ GQO8quxUwnVo8q+H+RGmJyy5XoKz9tzziXHdXkhZw0Iq2JKDFseScDTivIaCjqlWFiJpI8I22E5 WKCdbMtbG2s3u9L1S/RBpCPTmuYGHWsFQbCBxn+X0IDcud+EfB369Ze4I0d9rShQ0Gr/SS37eCv vXaiZKZn65ji92A== X-Developer-Key: i=marcandre.lureau@redhat.com; a=openpgp; fpr=87A9BD933F87C606D276F62DDAE8E10975969CE5 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; 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: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, 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_H5=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-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1781089196817154100 Track the input handled state, and dispose it on unrealize. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/input/adb-kbd.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/hw/input/adb-kbd.c b/hw/input/adb-kbd.c index c4ef9ebb90c..ece51d5df72 100644 --- a/hw/input/adb-kbd.c +++ b/hw/input/adb-kbd.c @@ -40,6 +40,7 @@ struct KBDState { ADBDevice parent_obj; /*< public >*/ =20 + QemuInputHandlerState *hs; uint8_t data[128]; int rptr, wptr, count; }; @@ -51,6 +52,7 @@ struct ADBKeyboardClass { /*< public >*/ =20 DeviceRealize parent_realize; + DeviceUnrealize parent_unrealize; }; =20 /* The adb keyboard doesn't have every key imaginable */ @@ -361,9 +363,20 @@ static const QemuInputHandler adb_keyboard_handler =3D= { =20 static void adb_kbd_realizefn(DeviceState *dev, Error **errp) { + KBDState *s =3D ADB_KEYBOARD(dev); ADBKeyboardClass *akc =3D ADB_KEYBOARD_GET_CLASS(dev); + akc->parent_realize(dev, errp); - qemu_input_handler_register(dev, &adb_keyboard_handler); + s->hs =3D qemu_input_handler_register(dev, &adb_keyboard_handler); +} + +static void adb_kbd_unrealizefn(DeviceState *dev) +{ + KBDState *s =3D ADB_KEYBOARD(dev); + ADBKeyboardClass *akc =3D ADB_KEYBOARD_GET_CLASS(dev); + + g_clear_pointer(&s->hs, qemu_input_handler_unregister); + akc->parent_unrealize(dev); } =20 static void adb_kbd_initfn(Object *obj) @@ -381,6 +394,8 @@ static void adb_kbd_class_init(ObjectClass *oc, const v= oid *data) =20 device_class_set_parent_realize(dc, adb_kbd_realizefn, &akc->parent_realize); + device_class_set_parent_unrealize(dc, adb_kbd_unrealizefn, + &akc->parent_unrealize); set_bit(DEVICE_CATEGORY_INPUT, dc->categories); =20 adc->devreq =3D adb_kbd_request; --=20 2.54.0 From nobody Sun Jul 26 14:10:25 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1781089162; cv=none; d=zohomail.com; s=zohoarc; b=abxonStsKx7wTeJoCGRgKA8t5oiDL/3FuKPa5PNg1ZWZhO+jKAw7gbVJc0raTDD5KEAk2gkT+BVKO4tQquL/ERoponGMV4sT+8i4H3+CkT+RRoqhb0LRh/W0lLftYoJdSM1DOTksWBpjtzDFFJk600zDh+a/74ZnAi2/6LxOAf4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781089162; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=lginq05kULLa0WOrt+nJYrmjrMyTghx9mx56okfUJWI=; b=S8aZ6c+d5mtw1UI7KmJYZ/5uCrZ3FjfLkw0SQYz0dXrlfPic3bsGqIsMxZD9BCUmG6HbpNDz+qN0Di8+V2qAQ1qfqvkvMTrW63AH2T7B5zRPX/qsEjoLShf6PITnx55wFDcSdtrZCVhPrSNMUzi6Lp/csExPil1xH7VoH5gmjkk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781089162987146.02973495212245; Wed, 10 Jun 2026 03:59:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wXGdy-0004YT-HG; Wed, 10 Jun 2026 06:58:46 -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 1wXGdw-0004T3-FD for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:58:44 -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 1wXGdt-0007N0-Gv for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:58:44 -0400 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-605-Nf_PqFIqNKKuTM2MkA_xsw-1; Wed, 10 Jun 2026 06:58:37 -0400 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (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 C7BD119540CC; Wed, 10 Jun 2026 10:58:35 +0000 (UTC) Received: from localhost (unknown [10.44.24.21]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 8D5B1180057F; Wed, 10 Jun 2026 10:58:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1781089120; 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=lginq05kULLa0WOrt+nJYrmjrMyTghx9mx56okfUJWI=; b=i1UWofO7S+QfxIIZ13HBH+rk6Ji7VdcB30naB0TWt3g3J6vpXrK/aht8WNOH/FjukUiWHT 9IB7MDx7jd1spJXHe9Rw1Df0XdsG+9SAA3EqgfoUXdaDGne+tyH6CYSbbXoM6oupe9vagP n9EOXvLIhj11/uXBjVcYNFJ0zVF3Gv0= X-MC-Unique: Nf_PqFIqNKKuTM2MkA_xsw-1 X-Mimecast-MFC-AGG-ID: Nf_PqFIqNKKuTM2MkA_xsw_1781089115 From: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Date: Wed, 10 Jun 2026 14:56:55 +0400 Subject: [PATCH v2 13/22] hw/input: keep QemuInputHandlerState in stellaris MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260610-ui-input-v2-13-f68452dd6a22@redhat.com> References: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> In-Reply-To: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> To: qemu-devel@nongnu.org Cc: "Dr. David Alan Gilbert" , Paolo Bonzini , Richard Henderson , "Michael S. Tsirkin" , Gerd Hoffmann , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Jan Kiszka , Peter Maydell , qemu-arm@nongnu.org, Mark Cave-Ayland , qemu-ppc@nongnu.org, Thomas Huth X-Developer-Signature: v=1; a=openpgp-sha256; l=2258; i=marcandre.lureau@redhat.com; h=from:subject:message-id; bh=31dKGmjQ0ucYg8DBaj+bqrZrM6KhG0cYtmReIw9YdWs=; b=owEBbQKS/ZANAwAKAdro4Ql1lpzlAcsmYgBqKUMANB/B1BjoTx7etAXnd+O/dqm0zB8rk16v+ gQvRkPtKVCJAjMEAAEKAB0WIQSHqb2TP4fGBtJ29i3a6OEJdZac5QUCailDAAAKCRDa6OEJdZac 5d41D/9ha7dg3IdRYdl7vrNGf5174Zn+VxVT+Ipo8GLzqKuTeABvkPNT8sueEPatQUJpvG7gzMb hXBY3ysve+Mzzc/CiSmBqf02eW3Ej3kkxKeQ46AQDZsFVKltPpfhwctJXonLV1K6B2wSt93k59U hi7TAYPd2YHRz5aiSd0IPIXEehFgAji1x6/m/XN9TWRSY/9KKKchyQrKRAIMY3A+RTcctkimMc/ W6sHQPHB3VOaZTzjKZQgx8pLH+NdEXF5oNbYU7dvZBrZR0irUjAPeDZXzOLwR7gnKLaH88no+Z1 KrdJ1td19/7oh24XYWiC6tTdxBo+T33YvtweEG5DeRmKCFyz6Ym8dnRozXrPYlRFLKPK5bYQiqE HQSbnWyMdMuYBltM0zhCx+jR2zduaX8pbO08/WQL8rCxbX5OpemyH548c0MF9tU/Q+e2RCRbB8j YI82kv8GiXSCONSxs6wOB5fWJ54LcXwpC6VmzSMWiG2/hDpmBgP5K6Y47oW3s0Y8Fjbvv7PPOyp lSi3ExruBE/Fdl8P5gRvyeljjrcl+DcpIjReFwvshQx2iGTcsSnQnrXfH04h0+VIht2E/El0pPO nnhyhkQLdzGg/A67ZJEt6DTHK8cwf8Y9qcYUn5UhkBkvXfJTIj17h5j8jafwXPuDUyXtklM5EFP NTCfJX5qGVjbLNw== X-Developer-Key: i=marcandre.lureau@redhat.com; a=openpgp; fpr=87A9BD933F87C606D276F62DDAE8E10975969CE5 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; 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: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, 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-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1781089164268158500 Track the input handled state, and dispose it on unrealize. Also free some allocated fields during unrealize. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- include/hw/input/stellaris_gamepad.h | 2 ++ hw/input/stellaris_gamepad.c | 12 +++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/include/hw/input/stellaris_gamepad.h b/include/hw/input/stella= ris_gamepad.h index e011482646f..c1069735010 100644 --- a/include/hw/input/stellaris_gamepad.h +++ b/include/hw/input/stellaris_gamepad.h @@ -13,6 +13,7 @@ =20 #include "hw/core/sysbus.h" #include "qom/object.h" +#include "ui/input.h" =20 /* * QEMU interface: @@ -28,6 +29,7 @@ OBJECT_DECLARE_SIMPLE_TYPE(StellarisGamepad, STELLARIS_GA= MEPAD) struct StellarisGamepad { SysBusDevice parent_obj; =20 + QemuInputHandlerState *hs; uint32_t num_buttons; qemu_irq *irqs; uint32_t *keycodes; diff --git a/hw/input/stellaris_gamepad.c b/hw/input/stellaris_gamepad.c index 25769fc2616..376d91abad7 100644 --- a/hw/input/stellaris_gamepad.c +++ b/hw/input/stellaris_gamepad.c @@ -59,7 +59,16 @@ static void stellaris_gamepad_realize(DeviceState *dev, = Error **errp) s->irqs =3D g_new0(qemu_irq, s->num_buttons); s->pressed =3D g_new0(uint8_t, s->num_buttons); qdev_init_gpio_out(dev, s->irqs, s->num_buttons); - qemu_input_handler_register(dev, &stellaris_gamepad_handler); + s->hs =3D qemu_input_handler_register(dev, &stellaris_gamepad_handler); +} + +static void stellaris_gamepad_unrealize(DeviceState *dev) +{ + StellarisGamepad *s =3D STELLARIS_GAMEPAD(dev); + + g_clear_pointer(&s->irqs, g_free); + g_clear_pointer(&s->pressed, g_free); + g_clear_pointer(&s->hs, qemu_input_handler_unregister); } =20 static void stellaris_gamepad_reset_enter(Object *obj, ResetType type) @@ -81,6 +90,7 @@ static void stellaris_gamepad_class_init(ObjectClass *kla= ss, const void *data) =20 rc->phases.enter =3D stellaris_gamepad_reset_enter; dc->realize =3D stellaris_gamepad_realize; + dc->unrealize =3D stellaris_gamepad_unrealize; dc->vmsd =3D &vmstate_stellaris_gamepad; device_class_set_props(dc, stellaris_gamepad_properties); } --=20 2.54.0 From nobody Sun Jul 26 14:10:25 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1781089301; cv=none; d=zohomail.com; s=zohoarc; b=hMLXFRbicYzSMKRpKh2a3w8Mu8D3fwhLi0LKLboOJZdnsdXalzRQf04ltlkakPT2sH7i89ugHCyqE4yzczysk6UoKosJpDAOgYMh+TirfCv01kIl21cevCdUKeE7thn22sOiF+1igOB9gRszX+2VRP3dsMxd8twVy8WhvnlRxr8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781089301; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=a7UMc9Olibe39PMu1zZm86wMxYjIQkDMmyXGtriuq+A=; b=eManb+QCz7oYe9dghqnq731SM/8h0qVQ37vqFBeGrjjCgHy1AlVfeChi6kX+lLS+K14DF9freyAQJThsqDSmlijubzcHomUYby5U/QHJNnVClOjEleuJpYyH9UiM1P37t3vHziZi5dWSsSe/H2YfX+f0awFFyS5GxQ6KIVU4gWE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781089301843855.9336029965361; Wed, 10 Jun 2026 04:01:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wXGe6-0004zh-OQ; Wed, 10 Jun 2026 06:58:54 -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 1wXGe5-0004uy-4b for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:58:53 -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 1wXGe3-0007cf-MF for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:58:52 -0400 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-328-NHmnLpk-NKyBl44V5LRyiA-1; Wed, 10 Jun 2026 06:58:43 -0400 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-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 3CAC118009DC; Wed, 10 Jun 2026 10:58:41 +0000 (UTC) Received: from localhost (unknown [10.44.24.21]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id AF1083008B35; Wed, 10 Jun 2026 10:58:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1781089130; 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=a7UMc9Olibe39PMu1zZm86wMxYjIQkDMmyXGtriuq+A=; b=LxZaxqWyseuXoOjwSGGO53+Rsv8XaEoGQlGwDrXaGCaWg7MJSLi5beUsK64MMFfkwTnwjf 2xizXKNtNgqL8yAXGu4cACdjxBPvwrZPGnMQp8haXN6XuK+soi6O52UoiLtvBGhrTAIvw9 eNPtVzyAbv9XfMrJEVAM5g/DSE56oYc= X-MC-Unique: NHmnLpk-NKyBl44V5LRyiA-1 X-Mimecast-MFC-AGG-ID: NHmnLpk-NKyBl44V5LRyiA_1781089121 From: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Date: Wed, 10 Jun 2026 14:56:56 +0400 Subject: [PATCH v2 14/22] hw/m68k: keep QemuInputHandlerState in next-kbd MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260610-ui-input-v2-14-f68452dd6a22@redhat.com> References: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> In-Reply-To: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> To: qemu-devel@nongnu.org Cc: "Dr. David Alan Gilbert" , Paolo Bonzini , Richard Henderson , "Michael S. Tsirkin" , Gerd Hoffmann , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Jan Kiszka , Peter Maydell , qemu-arm@nongnu.org, Mark Cave-Ayland , qemu-ppc@nongnu.org, Thomas Huth X-Developer-Signature: v=1; a=openpgp-sha256; l=1459; i=marcandre.lureau@redhat.com; h=from:subject:message-id; bh=4Pla2htVz5YE2pGrHqAWgYdSRFlBor8jDG+m/EG6xN4=; b=owEBbQKS/ZANAwAKAdro4Ql1lpzlAcsmYgBqKUMABWdcufUUdygn8eQu/IxUkR2C3U/5HafEW 1q+pVP5/oaJAjMEAAEKAB0WIQSHqb2TP4fGBtJ29i3a6OEJdZac5QUCailDAAAKCRDa6OEJdZac 5WA7D/40oHrucQ7s4qu7LEzBE8Yj6uh30x5c6VqKfwA0U7Vu3csLSq/2RWJ8Ov4dgzZDWCSkU5v qkIuBWhgVKomC/kR9l9jThcrAgwIU9OxYNeppiubJHtI4/KkyOJiSJPlt7mJNfaiFB65vuWarV5 ymun1qcKKKmkOV8oDrFb9j88J+oLI2AvNCpOZHVqYEXigAX/DfCmmGhhWspJ16Fbf+lksT/CBay BQvF74C4SrQ2W968dN1WbYRmZqyh4yy+iN8cnSENtCfv9JrtGM6HFQCi3/gebyoS3RxVyC3zO4a FZBJTuw0cYVE29okcggtxGsb6MioD3Nc0HpJbQj7KDzlcxtnNjvxOwrJfP5jrVUI/eB+mDn4Z8E mLaOmPvoJgVocn4a4VCDGoFjZtiXAHRZ/1gcTPHhTx4joMKl2BI6U79CXa+w1i0gZRum2tHsurN yukC4tspM9CGOEqw6+DAAUh20pSGv5NrKCz3t7F0bkUVJd33hBRFu5QjYQ2y/Mw1xQlp5+J8I1j PZpW0HREuZ9uYiSlYVgbPbm5fl3rWp/NpMTASOch4z+6eoB4sWHUoFftnsfu5V9jXlutMDTtp6U 3qYvt74Z0zaP+wRgAldKF/BJA6eF3OxrgWSTpcU9/6gNVOdyDfwMG/KUvLAb8kDEyhrw+UI65yk 5Jb0bbq7hW7rXoQ== X-Developer-Key: i=marcandre.lureau@redhat.com; a=openpgp; fpr=87A9BD933F87C606D276F62DDAE8E10975969CE5 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; 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: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, 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_H5=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-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1781089303503158500 Track the input handled state, and dispose it on unrealize. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/m68k/next-kbd.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/hw/m68k/next-kbd.c b/hw/m68k/next-kbd.c index 7be5ab2fb79..84a610edab2 100644 --- a/hw/m68k/next-kbd.c +++ b/hw/m68k/next-kbd.c @@ -65,6 +65,7 @@ typedef struct { struct NextKBDState { SysBusDevice sbd; MemoryRegion mr; + QemuInputHandlerState *hs; KBDQueue queue; uint16_t shift; }; @@ -304,7 +305,14 @@ static void nextkbd_realize(DeviceState *dev, Error **= errp) memory_region_init_io(&s->mr, OBJECT(dev), &kbd_ops, s, "next.kbd", 0x= 1000); sysbus_init_mmio(SYS_BUS_DEVICE(dev), &s->mr); =20 - qemu_input_handler_register(dev, &nextkbd_handler); + s->hs =3D qemu_input_handler_register(dev, &nextkbd_handler); +} + +static void nextkbd_unrealize(DeviceState *dev) +{ + NextKBDState *s =3D NEXTKBD(dev); + + g_clear_pointer(&s->hs, qemu_input_handler_unregister); } =20 static const VMStateDescription nextkbd_vmstate =3D { @@ -319,6 +327,7 @@ static void nextkbd_class_init(ObjectClass *oc, const v= oid *data) set_bit(DEVICE_CATEGORY_INPUT, dc->categories); dc->vmsd =3D &nextkbd_vmstate; dc->realize =3D nextkbd_realize; + dc->unrealize =3D nextkbd_unrealize; device_class_set_legacy_reset(dc, nextkbd_reset); } =20 --=20 2.54.0 From nobody Sun Jul 26 14:10:25 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1781089189; cv=none; d=zohomail.com; s=zohoarc; b=O2Kq3YOcgH0COJADHP3+gbek9klpH13J31o1KJb7DzUuVr0HyPDhHZi+XBUBwNo5ZLRY1ZfhUF/DkGZVgusRb7WRyr/SOEFgvgNkdwdbv2zXhKkhU6j31CSyGq1xcEsQSj0NLHQbqL5O223v829Dj4JqTNIvn5d4svdyiNfa+D8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781089189; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=8ovS/sVNMJKyOAfVQNi+vvbijpH9Tp4bdUPmW1tKPn8=; b=MCNTLgBYqoXvyzsUgZA1Zfu0GGxkzYAL3w9C4MQh3XkPZdY8WfbYdA+EWTXn+KhZVl6q881Z8Ajf8IVn//5at+28lLZcPbwT+4G2ccJMSH8UqCWrJSSDylGh4ci1PscrH6XAw+QGYlGOEWTz6xXJbPsQ3+S6FvC/yI7myIaAJQ0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781089189810552.9063091570248; Wed, 10 Jun 2026 03:59:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wXGe7-00050E-4e; Wed, 10 Jun 2026 06:58:55 -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 1wXGe5-0004xh-JL for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:58:53 -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 1wXGe4-0007hD-6w for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:58:53 -0400 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-507--fxK6FwZPp23x6nSBMXnRw-1; Wed, 10 Jun 2026 06:58:48 -0400 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 707551801233; Wed, 10 Jun 2026 10:58:46 +0000 (UTC) Received: from localhost (unknown [10.44.24.21]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 2B97C1954B09; Wed, 10 Jun 2026 10:58:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1781089131; 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=8ovS/sVNMJKyOAfVQNi+vvbijpH9Tp4bdUPmW1tKPn8=; b=VOBkpGxkpBoU0MYCbBfXrW52OgMKiefnNA8Fg+Rzu81IfCNmQII3LWAEiVt/71FzMM0gY9 VrmERLOIBcq/qsKgyTlZknNKFTImYWF2dknXwXWT/0iobirCvqFMlxN0Py71JezYUV2WLv kaVy4SaqnsIq8ewViR0ErnEEnPGZnRg= X-MC-Unique: -fxK6FwZPp23x6nSBMXnRw-1 X-Mimecast-MFC-AGG-ID: -fxK6FwZPp23x6nSBMXnRw_1781089126 From: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Date: Wed, 10 Jun 2026 14:56:57 +0400 Subject: [PATCH v2 15/22] ui/input: qemu_input_handler_register to warn for unused result MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260610-ui-input-v2-15-f68452dd6a22@redhat.com> References: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> In-Reply-To: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> To: qemu-devel@nongnu.org Cc: "Dr. David Alan Gilbert" , Paolo Bonzini , Richard Henderson , "Michael S. Tsirkin" , Gerd Hoffmann , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Jan Kiszka , Peter Maydell , qemu-arm@nongnu.org, Mark Cave-Ayland , qemu-ppc@nongnu.org, Thomas Huth X-Developer-Signature: v=1; a=openpgp-sha256; l=686; i=marcandre.lureau@redhat.com; h=from:subject:message-id; bh=Kc2fKD50I8FJ0Pc9X1YOpmWSpQlE0hG/DBR+izlf9iA=; b=owEBbQKS/ZANAwAKAdro4Ql1lpzlAcsmYgBqKUMBRkRpC+i9Yi7d1ygxF2TTwmXgr0Ztzk9BS b2Ft+6/nKeJAjMEAAEKAB0WIQSHqb2TP4fGBtJ29i3a6OEJdZac5QUCailDAQAKCRDa6OEJdZac 5Ru3D/sHm7/2sfEO6Zj6nVetLxFkCcmZZ/ZP1NaZRO5uHh6WB3gJSoW5iSEc3Vlu8rtZY+YUSsV 9xG1jRDEBFhxCJPLJcZoyyNSM57A2g5Nwl1ZVYp5mr7yK5nsEDmY7W7IxsQiZTfybyUqA3ADh4K 2HvWWZdqv9C6DAwdCwabTnkyOpbu1eVgmiWpe0IpDAA3T8ZWly32RHKQpMurABym1BGXaaG7/OF HSSc5jXufhwpUXFQOUwrCYrb1rwyA24V2RgPS5MYOVJSqmRdgFsSj0fYC2va9SrWvqeE3bJVeAy QcfVbf/t5l4MqC21LY6MmAVpmtIDHc7TdUkgEm76XHCsZJ5Q7N1PI5+R+ZtnOZyalfiDb4lDd8I P0ufkGJDYPokr2zvtmi2qodFlMzBwQr10EgySirWD2rBIk8van08p1RDjUYAIaTXmknv7JkorSr HVeEES5jGHBlqnO30zeL7myIkSm58bpqRUjP3m897BHzLu4O8OOazQo/79oNApRr2bUY+9Jmv9e Xp87utEhcHDxjSpvSLvntPdThGg8L5E6BgTK6MQvB9hqcqNF1QMLZ3gEYe0A5AoiMbMrrZDYAcA Y8Xc/Ka5oT4QHJhtaYboK7jepF30ZppTTlfJCRuXs+vr8YPEMM1OraBMubqWX85JNll/qKsWk5Q 6wI96+ROkZQOaLA== X-Developer-Key: i=marcandre.lureau@redhat.com; a=openpgp; fpr=87A9BD933F87C606D276F62DDAE8E10975969CE5 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; 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: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, 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-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1781089190398158500 Suggested-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- include/ui/input.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/ui/input.h b/include/ui/input.h index 66e5c1f4b06..ea9f5b82646 100644 --- a/include/ui/input.h +++ b/include/ui/input.h @@ -45,6 +45,7 @@ struct QemuInputHandler { QemuInputHandlerSync sync; }; =20 +G_GNUC_WARN_UNUSED_RESULT QemuInputHandlerState *qemu_input_handler_register(DeviceState *dev, const QemuInputHandler *handle= r); void qemu_input_handler_activate(QemuInputHandlerState *s); --=20 2.54.0 From nobody Sun Jul 26 14:10:25 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1781089354; cv=none; d=zohomail.com; s=zohoarc; b=EYrOt7TfjiNFAvGlQYUQbOizoyhV6f98AQ0il0jCBWDMHnJ05Sq07UVhjuZ+RSa/IsjfLXWy8EAPaZsG5dmJeTLvyD1fZyhZPAj8j2jkdc1HVeEE/r+fAkPiUYHuXoooc7H0uLt7y6w9w3ePEp3jPwBFatKD7nkwJZIriUT5FwA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781089354; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=1nNc/INcsPpcggiUKdGL+v67fCZIsx+PXcGTnYiRPMc=; b=kyJKhFWTDpIYkXVbBCL572XAAGBSI/vSc6vXkRoXxxTmjiiDnQ1IkmVUsGadSciCxWFCedb2UmHZiX0Tuqvy2a9TssnWHma9kMDoarjYVbusokBn0GqiO9cwDjsnL68lm8xLc6MPKB9romMmazYKuNsk0WGbt871BUUvKQI5RRo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781089354582746.5884796485863; Wed, 10 Jun 2026 04:02:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wXGeM-0005Z0-8r; Wed, 10 Jun 2026 06:59:10 -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 1wXGeJ-0005XZ-SS for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:59:07 -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 1wXGeG-00085t-SC for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:59:07 -0400 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-568-605Qza7aNWim6xvbo3x1SQ-1; Wed, 10 Jun 2026 06:58:53 -0400 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-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id DA08A1955F03; Wed, 10 Jun 2026 10:58:51 +0000 (UTC) Received: from localhost (unknown [10.44.24.21]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 9CE3A1954B09; Wed, 10 Jun 2026 10:58:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1781089138; 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=1nNc/INcsPpcggiUKdGL+v67fCZIsx+PXcGTnYiRPMc=; b=CwIGOR2XxxrgoDdnjjc46i8nXIAw4t2vGk31nO2Xu2xse3c+oeKe3Mr5XrRJHNW3Dch8hw rsYOih6gG11DrNr280aAIkvDrZsPecCuuJ/Msl9zrnDjsVO9ZBvzodWknuiBwe3jY3UwbS 5r76ZFpT2xGZ8U3Nuh3GFjldKGQx6s4= X-MC-Unique: 605Qza7aNWim6xvbo3x1SQ-1 X-Mimecast-MFC-AGG-ID: 605Qza7aNWim6xvbo3x1SQ_1781089132 From: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Date: Wed, 10 Jun 2026 14:56:58 +0400 Subject: [PATCH v2 16/22] hw/input/ps2: use qemu_input_handler_set_led() for LED state MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260610-ui-input-v2-16-f68452dd6a22@redhat.com> References: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> In-Reply-To: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> To: qemu-devel@nongnu.org Cc: "Dr. David Alan Gilbert" , Paolo Bonzini , Richard Henderson , "Michael S. Tsirkin" , Gerd Hoffmann , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Jan Kiszka , Peter Maydell , qemu-arm@nongnu.org, Mark Cave-Ayland , qemu-ppc@nongnu.org, Thomas Huth X-Developer-Signature: v=1; a=openpgp-sha256; l=857; i=marcandre.lureau@redhat.com; h=from:subject:message-id; bh=t0Z9m7c1Hh+44awYmkSHssaygTyzyWH8QlSLYI/LQak=; b=owEBbQKS/ZANAwAKAdro4Ql1lpzlAcsmYgBqKUMBG8zmOISnd7VW9MlSn1iZ8LWN7sOPAM/3y dQvUZbFUjuJAjMEAAEKAB0WIQSHqb2TP4fGBtJ29i3a6OEJdZac5QUCailDAQAKCRDa6OEJdZac 5SMpEACqqodu+0ONuWm685xBWMXATOAOD/IGoAuTq3hXyGog6kRUhBgx2a5mB0E7nN3NFE7o+j0 3MjfDM9G/9X87BdgQQwUjg69DK++vFGyqKuSKeb0T3slv4V6qs/CEgTLcFaL0IJgmqKyeCbHWR3 sqpKE+ROfrbcfwxXJX3DqUyQ9IyrDkbDMkOt9W2r4Llm3Z7zidUH591K2XmsGZiLf+CAK8XPHky aGnK50oPR5vpfCLHji+22YjuIJ5fPqeH7QWYiuOo98rxYxbQgr3Xo1BjZYgXHN9HInVj5Sgjrzo /ONOZbANJVfoYLsi9z6nBjrZ5vWgsNeHlY1vEjugvCxJXac6cqx0tCCa+7QD7dUqcBV98rYj4Vo /OCopKpLkCGTIaYVdh1PI/4qiLFLjZom6JdFiz7EF2I1XrpdkgC1vc2Es0hrxDQP6WRmx9DZw8C DjTwxbA1L1heicsbUyZuuMT3nWn+5ZnhkL1JPmx+irROt6lSdFMqORSBu5zSMI+bKwIcCWbuhHa M550Wa8T5o3YkLgrm5Si6MkDT3REdWYInn1q1UngTRNUwsznHt08RwTnaBzj/MpEKSo+QwBCbhE LJOqoBS0tQO47grFDYPrt5QPy6x5/iClQditDojuhQ+OToCRzjMGiQx2l8mRXjaDsZRtCODcu2V 7f6ux3tOj1kO6Bw== X-Developer-Key: i=marcandre.lureau@redhat.com; a=openpgp; fpr=87A9BD933F87C606D276F62DDAE8E10975969CE5 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; 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: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, 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_H5=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-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1781089357443154100 Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/input/ps2.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/input/ps2.c b/hw/input/ps2.c index 97df7a9a43e..7fbee17fbf0 100644 --- a/hw/input/ps2.c +++ b/hw/input/ps2.c @@ -577,7 +577,7 @@ static void ps2_set_ledstate(PS2KbdState *s, int ledsta= te) { trace_ps2_set_ledstate(s, ledstate); s->ledstate =3D ledstate; - kbd_put_ledstate(ledstate); + qemu_input_handler_set_led(PS2_DEVICE(s)->hs, ledstate); } =20 static void ps2_reset_keyboard(PS2KbdState *s) @@ -1108,7 +1108,7 @@ static int ps2_kbd_ledstate_post_load(void *opaque, i= nt version_id) { PS2KbdState *s =3D opaque; =20 - kbd_put_ledstate(s->ledstate); + qemu_input_handler_set_led(PS2_DEVICE(s)->hs, s->ledstate); return 0; } =20 --=20 2.54.0 From nobody Sun Jul 26 14:10:25 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1781089317; cv=none; d=zohomail.com; s=zohoarc; b=LJsuGisHpZPmQ7wOu0pbxM9pRNXSbLAxBIVy41LK0uafzb7gGPL5lohLlF2bVpPVoCajjWEEntDsRSeMXVQg2NKwx7/W8YykzFWWFpRckVqwQQqBTh8qYUJ2TstcNjEJfteLc7bxuCEuhvRMhpkbo13N7VGzkXyH47ogJzbgIBQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781089317; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=CwVwvbSd0OrB/pLvMzG/RW2SPdBdDyZxlIjg2PbK6wY=; b=N/puxG6+DJwsznghKvraEPhEwflxFgLIyJW2Ynl2cphHX8p7cJcZnkFOUa5hem1ficSfNog7IQdNsBdGwhe6xO0Jycskz+BuWKahOz1UUXUxBIiMAh1UQmGGUIzpyMLySNI5jevzreeZwL7sj8roanomNABOGxW+JebRtvcIlSY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781089317940340.3941332121392; Wed, 10 Jun 2026 04:01:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wXGeI-0005Vt-Lz; Wed, 10 Jun 2026 06:59:06 -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 1wXGeH-0005Rf-6i for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:59:05 -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 1wXGeF-0008Ax-Hi for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:59:04 -0400 Received: from mx-prod-mc-08.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-593-F_5iGebrMhaM81t9i0-EiQ-1; Wed, 10 Jun 2026 06:58:58 -0400 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-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id F106618307E5; Wed, 10 Jun 2026 10:58:56 +0000 (UTC) Received: from localhost (unknown [10.44.24.21]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id B4A7C1954B09; Wed, 10 Jun 2026 10:58:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1781089141; 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=CwVwvbSd0OrB/pLvMzG/RW2SPdBdDyZxlIjg2PbK6wY=; b=PDv7ipq5fbQppuoZW5jWGKR/Bj3WLP95q5ZdSESHEBkX7AqdurpFpUhHQhDK93a0cZFca+ dydUttFjykdIlr+7me+/1xrcxnKXIEb2mFng/leMI+006Kable02rUwf/jghiuQ0xdD7Gr eMfDXUq4k5MWcZOPjpcOJ4tKqpCX3w4= X-MC-Unique: F_5iGebrMhaM81t9i0-EiQ-1 X-Mimecast-MFC-AGG-ID: F_5iGebrMhaM81t9i0-EiQ_1781089137 From: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Date: Wed, 10 Jun 2026 14:56:59 +0400 Subject: [PATCH v2 17/22] hw/input/hid: use qemu_input_handler_set_led() for LED state MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260610-ui-input-v2-17-f68452dd6a22@redhat.com> References: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> In-Reply-To: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> To: qemu-devel@nongnu.org Cc: "Dr. David Alan Gilbert" , Paolo Bonzini , Richard Henderson , "Michael S. Tsirkin" , Gerd Hoffmann , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Jan Kiszka , Peter Maydell , qemu-arm@nongnu.org, Mark Cave-Ayland , qemu-ppc@nongnu.org, Thomas Huth X-Developer-Signature: v=1; a=openpgp-sha256; l=788; i=marcandre.lureau@redhat.com; h=from:subject:message-id; bh=ZtFjNPqtjzK8POC7BkT2jb6wYCgMKEiur3NINOMCbNk=; b=kA0DAAoB2ujhCXWWnOUByyZiAGopQwGjFcH8StruX19jshitWsYml9Gxb4n/wSm/oMk4ft9fY 4kCMwQAAQoAHRYhBIepvZM/h8YG0nb2Ldro4Ql1lpzlBQJqKUMBAAoJENro4Ql1lpzl+OsQALQ9 FlSMNTMdRm4NHLxChhLSD69SmsVWx3/m69cJFmFLRwE3nd+WDCCjyuqhn09jUxonVe5LekwkTPJ qXe/TQb4xnHGRiL250Emq6f/cSrVCTmdVDSwRyYEUW0R2C5XmJ7WtEAkhY1JoFk8LJf9KZ99yQU JaNqU1qU5/FsMzke+iFcco4wSEqKJSSD6qsLz/02MV/dX20/b1rWghIfdgu7KDhveWMdRx/5KLR rR8bjyBQL4C9V/rU7WIvRqKR1TNfEq92IhzZi6WGC9rw+t3kFvs/+v4JCoCFHkQmXDmgr1vnDcC 18XLpZfCcxcNmYJPFwq1g7wifWBnVFZTx0O8HqBxw39xpxXjVv0254L/XvFDcUT5Fu2RapK+lDS 1FMAsnL3Y9NFaqGsKirg2BEOlma7lJq3mQk9jBoAcqUoDL+QIO8vsvuFerY8ajO+W18jmq6+9fs Hi5vRjMkCxjYvikLDJNoxLZwJWse4N/EAdvMnCntDahUH4xUW094x79jiGQ/2hb3NzOm75KAWu3 T53lPQqZVqGCHI+N8DnN80FI4i636yqmsieqqlmkBJHR/S6FbypKQ81LB37nsfPY/R2bfFnvVWb 3n8rhCnx+lCPrpY9ta1QaHrbTwYFISHF3DDw80Dgi9NzW8pd56XM1FwmLtSLV6PSmka5T8lN2qe l9Azs X-Developer-Key: i=marcandre.lureau@redhat.com; a=openpgp; fpr=87A9BD933F87C606D276F62DDAE8E10975969CE5 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; 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: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, 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-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1781089318799154100 Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/input/hid.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/input/hid.c b/hw/input/hid.c index 467ba8f14f3..d386e52585c 100644 --- a/hw/input/hid.c +++ b/hw/input/hid.c @@ -25,6 +25,7 @@ =20 #include "qemu/osdep.h" #include "ui/console.h" +#include "ui/input.h" #include "qemu/timer.h" #include "hw/input/hid.h" #include "migration/vmstate.h" @@ -470,7 +471,7 @@ int hid_keyboard_write(HIDState *hs, uint8_t *buf, int = len) if (hs->kbd.leds & 0x02) { ledstate |=3D QEMU_CAPS_LOCK_LED; } - kbd_put_ledstate(ledstate); + qemu_input_handler_set_led(hs->s, ledstate); return 1; } return 0; --=20 2.54.0 From nobody Sun Jul 26 14:10:25 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1781089215; cv=none; d=zohomail.com; s=zohoarc; b=AG3PPpl95V3If/lIqEFOOYDbU4WICfgBhj+8hWRKsCa8kUyUa6ePktUdA2lYa0exjAM0MB/G6G4ExxkmkD74NHUun/LPgXPsZ/tnObc9qqbExWQpYan6dM8RKeIGnES3RQZyzZHfiTdpDvJ4uqUkz4Ci76BTcADouAsSWf4eJac= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781089215; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=v/g5jfTi2AD+hzkWtUUyAkv+WqHTfhObwkFPbXFeULU=; b=dPvhfniBPZR5zbeLmxwCecsSP/BPH45xy+HZNcY0myWnItfyWrnM1CGY0otv1EoUerkSIf00UeoNP0uvpYgMbCkkYqkboD8YtOC+sotg6VYRhcPTNe378c45X97KfoIbnPw7iLeOgZ7zus6YgX5afGFRY2luvv9pNe7hsIdWrHY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781089215484700.1935989735297; Wed, 10 Jun 2026 04:00:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wXGeb-0005um-QR; Wed, 10 Jun 2026 06:59:29 -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 1wXGeS-0005jc-7M for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:59: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 1wXGeN-0000Al-Jf for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:59:12 -0400 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-632-OgAhiXmnM1OdayB5g7ISIw-1; Wed, 10 Jun 2026 06:59:04 -0400 Received: from mx-prod-int-10.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-10.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.95]) (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 E67301800D9F; Wed, 10 Jun 2026 10:59:02 +0000 (UTC) Received: from localhost (unknown [10.44.24.21]) by mx-prod-int-10.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 47359414; Wed, 10 Jun 2026 10:59:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1781089151; 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=v/g5jfTi2AD+hzkWtUUyAkv+WqHTfhObwkFPbXFeULU=; b=EfO/yg5B0lEwO2sXPNCc3kf0YGdDvy7bTipAe7bWIfIAHgdUXuxEypEIZwH8sSxTqaTtoN faR8iKbQdMboT7PHaz4G68J05/bgtkaiGHv3Qywvry1ZR5a0cTNQ3fndzl/fUcjvHdnK0J V6EDM2v/THuttOifEXVy9J2CFvybGcE= X-MC-Unique: OgAhiXmnM1OdayB5g7ISIw-1 X-Mimecast-MFC-AGG-ID: OgAhiXmnM1OdayB5g7ISIw_1781089143 From: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Date: Wed, 10 Jun 2026 14:57:00 +0400 Subject: [PATCH v2 18/22] hw/input/virtio-input-hid: use qemu_input_handler_set_led() for LED state MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260610-ui-input-v2-18-f68452dd6a22@redhat.com> References: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> In-Reply-To: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> To: qemu-devel@nongnu.org Cc: "Dr. David Alan Gilbert" , Paolo Bonzini , Richard Henderson , "Michael S. Tsirkin" , Gerd Hoffmann , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Jan Kiszka , Peter Maydell , qemu-arm@nongnu.org, Mark Cave-Ayland , qemu-ppc@nongnu.org, Thomas Huth X-Developer-Signature: v=1; a=openpgp-sha256; l=877; i=marcandre.lureau@redhat.com; h=from:subject:message-id; bh=FxrGAwrXr2ksjrfGyAaKoh9XtsL3mW3yFUW3RWHGSfA=; b=owEBbQKS/ZANAwAKAdro4Ql1lpzlAcsmYgBqKUMBz9ffM6aA0FJXHn0z0skUON0T+m7CTRgHY dTiozAR1g6JAjMEAAEKAB0WIQSHqb2TP4fGBtJ29i3a6OEJdZac5QUCailDAQAKCRDa6OEJdZac 5YHMD/96MdKXukgMZzsVd2DozlfLB5BTGOVrDUuhQ78MTgBTgmVQs2tOJVDRfhFG3qBQd759/h4 WRX5oeJmG/VMlPtrJp6hcwm7+Vex+q0AukJMUb9AUrQTtmbN5TFNfreIxrlhnLmcMod+K8q6PFa 3flmt/c5Blj0Nwm4951JH/3CqzHDWkB2Iwwr72+b9cscKmBpsBJlCq7JztU2n3bMMbvR76njdT+ YfQv3LwcUcV5TkV6gxsvW0741Np2sW0mD1ew4p7KOojPFRfYLR5yQYq8Flq276vKlU0n1WY534I 8Q8hkfa8iRWaTilUxQCxALh4YyjEo6njknZl+HMzHLdbOnN/5/1r58TVAP63NAaZ3709UuNh2yN YX3A+HgYeePYR0THTVobBuXojVK0/DbSKdXeeaulklH9Iz/2cr/mYIqHN8TrN42XakRnxC5zcIH 0AIkG5ZNFCX5+Dag69YETGtU5IhdRdgKWXvFRpXwa3c17MrZNmklSps8ddX1ts4vFKII6TWBgGn mTZXRT4pqaUAgxc2+6Z9LcyUB5Fd/uFcWCmSpzUIOcBIxpbuiXM8RlMoCZDCiRkN+8j10XKVDFl jCnIwWfDbjHXAeoOjjrmhsJWxsIQf8XUMydohdQGjFcQe2bILylJ216Gj34xxyMNIb/+71fhAjj aqGXr7M6h6QfLiQ== X-Developer-Key: i=marcandre.lureau@redhat.com; a=openpgp; fpr=87A9BD933F87C606D276F62DDAE8E10975969CE5 X-Scanned-By: MIMEDefang 3.6 on 10.30.177.95 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; 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: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, 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_H5=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-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1781089217132154100 Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/input/virtio-input-hid.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/input/virtio-input-hid.c b/hw/input/virtio-input-hid.c index 73423ac0c73..d3062809a13 100644 --- a/hw/input/virtio-input-hid.c +++ b/hw/input/virtio-input-hid.c @@ -12,6 +12,7 @@ #include "hw/virtio/virtio.h" #include "hw/core/qdev-properties.h" #include "hw/virtio/virtio-input.h" +#include "ui/input.h" =20 #include "ui/console.h" =20 @@ -208,7 +209,7 @@ static void virtio_input_hid_handle_status(VirtIOInput = *vinput, } else { vhid->ledstate &=3D ~ledbit; } - kbd_put_ledstate(vhid->ledstate); + qemu_input_handler_set_led(vhid->hs, vhid->ledstate); break; default: qemu_log_mask(LOG_GUEST_ERROR, --=20 2.54.0 From nobody Sun Jul 26 14:10:25 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1781089293; cv=none; d=zohomail.com; s=zohoarc; b=Yt0VOBlvCBUYSwA+M037uOqFYFVj7Ua1/ZQas0rdpF0tQLsb0iexm+CQbhknNh2uymaurATtn/52m0S5TuY4IU6ktvSYD2g/M2VotgMSr/ra0OPow1cLNKVezWi8YWrGMW7r/KzeHexrnmxfbFE/97CEdz84UVP0pLsBfLkrOGA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781089293; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=4Y8EBryG7J2AwkW2FnwDImop49e0w/lo+Q8d2a9jPH4=; b=m6HEBnxgMiPzApzFNnHo3e7CrVm0j5H8TzVWSzaswJX6DjCaGs6zwebGcauR9BlWFu9+jdJGWtCLdta6E/T3qmsnos6uaBcE0XN859ToTleyL0+sMguC4SHY26Fu3Vg/L9zmXESWs4nxxUK95cnhK2h/vf/+ruAdUO8WoRbPaWY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781089293460498.36059607206005; Wed, 10 Jun 2026 04:01:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wXGet-0006Cj-FJ; Wed, 10 Jun 2026 06:59:43 -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 1wXGeU-0005ls-2l for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:59:19 -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 1wXGeQ-0000Iw-BJ for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:59:17 -0400 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-77-mC0rNIbfMK2ugDY7d8-ODg-1; Wed, 10 Jun 2026 06:59:09 -0400 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-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 2D21E19540CC; Wed, 10 Jun 2026 10:59:08 +0000 (UTC) Received: from localhost (unknown [10.44.24.21]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id C8D413000223; Wed, 10 Jun 2026 10:59:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1781089153; 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=4Y8EBryG7J2AwkW2FnwDImop49e0w/lo+Q8d2a9jPH4=; b=SaxffsXlJqq9XPXNGFZ/nB+c0h4kBQTw31yMhKzhadGeGJEKvIKyI/0eviH7a2GNm528ri /j4p02Hce8g0fuCD33a2hIvxSoR741TBvgWsttZUN3kzBU7FluygdcHNwmGkxi4BPvNnYx wLAu4bFn0LOr/+EXhq72/jW2qOJtKCU= X-MC-Unique: mC0rNIbfMK2ugDY7d8-ODg-1 X-Mimecast-MFC-AGG-ID: mC0rNIbfMK2ugDY7d8-ODg_1781089148 From: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Date: Wed, 10 Jun 2026 14:57:01 +0400 Subject: [PATCH v2 19/22] ui/vnc: switch LED handling to Notifier-based input API MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260610-ui-input-v2-19-f68452dd6a22@redhat.com> References: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> In-Reply-To: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> To: qemu-devel@nongnu.org Cc: "Dr. David Alan Gilbert" , Paolo Bonzini , Richard Henderson , "Michael S. Tsirkin" , Gerd Hoffmann , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Jan Kiszka , Peter Maydell , qemu-arm@nongnu.org, Mark Cave-Ayland , qemu-ppc@nongnu.org, Thomas Huth X-Developer-Signature: v=1; a=openpgp-sha256; l=4414; i=marcandre.lureau@redhat.com; h=from:subject:message-id; bh=9EvPEBUMG8vTwC/626zYm+fU5TkcgcDC/RHnOIaj7XQ=; b=owEBbQKS/ZANAwAKAdro4Ql1lpzlAcsmYgBqKUMBbGaZ2FimEqmGjP6HYV6RKkEvMSnMAnkC9 bFsCu+ao6eJAjMEAAEKAB0WIQSHqb2TP4fGBtJ29i3a6OEJdZac5QUCailDAQAKCRDa6OEJdZac 5UCQD/44RiLO0TRWzL6oJqwpCU0HNC713YkUFH8QM7xEKscDtqPbdGAVvSGcYwwSGzg6Zvetum0 CJ5ZLyG4B9Q1R+vxfNg+2nmK0lxdvizOUw0+Z9Ynbb1uShszic++Bpftrq+khO5pL7+J6jS4Oz1 CXBjVfcr91mUzMCqykTC4KfEYO2QOGhi0JYNUENy0wd2BVt+rqJo81Ss9ADmhFclgSPvJUxxGQ2 F3r/mzIAYL2rDJu9NrkgAvSvjiQhrFIpfUAUwk8yFYVW2NEbjHDd5cDisvO1nzeFWcto5tm0gcZ h4t9IEKk6+/VP76X5NYCtRPyF/aYXI8WznqaVHy+DpDEinuA1uc0vWkeInraAqM7YYzgGzdzewl 0LRxeSQvAZzlLk+lPgeONg1k5IMrwYg7jh6OYthkpPiwED9sBbEJfSuPr3K6iHdSeruOsg+0Rxo s9p2F0nP2v+GLRrAfT2990h2kl+CHs1PJQrMAYJ4TGqKTdkua/3E4cKi1tFU1uiCWmOvQ2aVkqq PUW3uK0EHUssxFRA8MwOMQRZAgQEJE2v2ZsT6LzL4nIaDV/IdWeC7b0XF1PY/PA2S+M0C+WHoEB 9uNBuIeeKTDT/PLysdJuHp5fy3VRXbfqBCKg2aEqys5kU7OiL1HHVAD6Ow+wJaGJR3pJMho5ldc ontnPa9k3Va2h7Q== X-Developer-Key: i=marcandre.lureau@redhat.com; a=openpgp; fpr=87A9BD933F87C606D276F62DDAE8E10975969CE5 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; 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: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, 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-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1781089294414154100 Replace QEMUPutLEDEntry with an embedded Notifier in VncDisplay. Use qemu_input_led_notifier_add/remove instead of the old qemu_add/remove_led_event_handler. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- ui/vnc.h | 2 +- tools/qemu-vnc/input.c | 49 +++++++++++++++++-----------------------------= --- ui/vnc.c | 11 ++++++----- 3 files changed, 24 insertions(+), 38 deletions(-) diff --git a/ui/vnc.h b/ui/vnc.h index c8d87cd5301..88293ef4971 100644 --- a/ui/vnc.h +++ b/ui/vnc.h @@ -147,7 +147,7 @@ struct VncDisplay DisplayChangeListener dcl; kbd_layout_t *kbd_layout; int lock_key_sync; - QEMUPutLEDEntry *led; + Notifier led_notifier; int ledstate; QKbdState *kbd; QemuMutex mutex; diff --git a/tools/qemu-vnc/input.c b/tools/qemu-vnc/input.c index 6fb73b31248..b96ff741308 100644 --- a/tools/qemu-vnc/input.c +++ b/tools/qemu-vnc/input.c @@ -13,58 +13,43 @@ #include "trace.h" #include "qemu-vnc.h" =20 -struct QEMUPutLEDEntry { - QEMUPutLEDEvent *put_led; - void *opaque; - QTAILQ_ENTRY(QEMUPutLEDEntry) next; -}; - static NotifierList mouse_mode_notifiers =3D NOTIFIER_LIST_INITIALIZER(mouse_mode_notifiers); -static QTAILQ_HEAD(, QEMUPutLEDEntry) led_handlers =3D - QTAILQ_HEAD_INITIALIZER(led_handlers); +static NotifierList led_notifiers =3D + NOTIFIER_LIST_INITIALIZER(led_notifiers); =20 /* Track the target console for pending mouse events (used by sync) */ static QemuConsole *mouse_target; =20 -QEMUPutLEDEntry *qemu_add_led_event_handler(QEMUPutLEDEvent *func, - void *opaque) +/* + * The D-Bus Keyboard.Modifiers property uses the same + * bit layout as QEMU's LED constants. + */ +static guint modifiers; + +void qemu_input_led_notifier_add(Notifier *n) { - QEMUPutLEDEntry *s; + notifier_list_add(&led_notifiers, n); +} =20 - s =3D g_new0(QEMUPutLEDEntry, 1); - s->put_led =3D func; - s->opaque =3D opaque; - QTAILQ_INSERT_TAIL(&led_handlers, s, next); - return s; +void qemu_input_led_notifier_remove(Notifier *n) +{ + notifier_remove(n); } =20 -void qemu_remove_led_event_handler(QEMUPutLEDEntry *entry) +int qemu_input_get_led(QemuConsole *con) { - if (!entry) { - return; - } - QTAILQ_REMOVE(&led_handlers, entry, next); - g_free(entry); + return modifiers; } =20 static void on_keyboard_modifiers_changed(GObject *gobject, GParamSpec *pspec, gpointer user_data) { - guint modifiers; - QEMUPutLEDEntry *cursor; - modifiers =3D qemu_dbus_display1_keyboard_get_modifiers( QEMU_DBUS_DISPLAY1_KEYBOARD(gobject)); =20 - /* - * The D-Bus Keyboard.Modifiers property uses the same - * bit layout as QEMU's LED constants. - */ - QTAILQ_FOREACH(cursor, &led_handlers, next) { - cursor->put_led(cursor->opaque, modifiers); - } + notifier_list_notify(&led_notifiers, NULL); } =20 void qemu_add_mouse_mode_change_notifier(Notifier *notify) diff --git a/ui/vnc.c b/ui/vnc.c index 253b1a9f634..3b6765393e0 100644 --- a/ui/vnc.c +++ b/ui/vnc.c @@ -1820,9 +1820,10 @@ static void vnc_led_state_change(VncState *vs) vnc_flush(vs); } =20 -static void kbd_leds(void *opaque, int ledstate) +static void kbd_leds(Notifier *notifier, void *data) { - VncDisplay *vd =3D opaque; + VncDisplay *vd =3D container_of(notifier, VncDisplay, led_notifier); + int ledstate =3D qemu_input_get_led(vd->dcl.con); VncState *client; =20 trace_vnc_key_guest_leds((ledstate & QEMU_CAPS_LOCK_LED), @@ -3489,8 +3490,7 @@ static void vnc_display_close(VncDisplay *vd) g_free(vd->tlsauthzid); vd->tlsauthzid =3D NULL; if (vd->lock_key_sync) { - qemu_remove_led_event_handler(vd->led); - vd->led =3D NULL; + qemu_input_led_notifier_remove(&vd->led_notifier); } #ifdef CONFIG_VNC_SASL if (vd->sasl.authz) { @@ -4221,7 +4221,8 @@ static bool vnc_display_open(VncDisplay *vd, Error **= errp) #endif vd->lock_key_sync =3D lock_key_sync; if (lock_key_sync) { - vd->led =3D qemu_add_led_event_handler(kbd_leds, vd); + vd->led_notifier.notify =3D kbd_leds; + qemu_input_led_notifier_add(&vd->led_notifier); } vd->ledstate =3D 0; =20 --=20 2.54.0 From nobody Sun Jul 26 14:10:25 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1781089257; cv=none; d=zohomail.com; s=zohoarc; b=KnSfo2otyvxEHl2TCgn3/ovoDrQQVGV6rac5ISK7JR0SPmTtYNkAvZFBjFGaljK+yia1+4VnJSf4xLbfQ+b1Dj3YtTqCUDyduOhGccsrvRGgLK5fligz3oDQRLMO2UVuyToe95PinzxM293oA6JCKir7fX0dTL78+156cwamfuU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781089257; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=FjXNi19ZJmavNuiphzSk5VdGv3UJju9zSxL7sC1u9eQ=; b=iz9sgRad6W9TkdCvcIkD1VosNQIvJ1lHNIuVp+6I7uFa0HfzbO3EL97cNzoudJHmWn8X1hzUiRkYGG3JtI+J1g2wNMZDciFw4RDweIgDNEqfZbi0EAFasnq2yCC9sLoyldCPwBoKw/+kQJj7i3vLwliuauMA461MdeqQzH69v6k= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781089257262776.4858928730532; Wed, 10 Jun 2026 04:00:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wXGew-0006b0-7v; Wed, 10 Jun 2026 06:59:46 -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 1wXGeZ-0005uB-TZ for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:59:25 -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 1wXGeW-0000i2-89 for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:59:22 -0400 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-144-0EyDtP-nNRqu0S7ECQg69g-1; Wed, 10 Jun 2026 06:59:15 -0400 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (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 A22281955DE8; Wed, 10 Jun 2026 10:59:13 +0000 (UTC) Received: from localhost (unknown [10.44.24.21]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 23EC1180057F; Wed, 10 Jun 2026 10:59:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1781089159; 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=FjXNi19ZJmavNuiphzSk5VdGv3UJju9zSxL7sC1u9eQ=; b=VEoheu0gat7+3mqWb6QpDexOtyPBQ/yVRj3iFcHFsjZFSDLihW3oljyOuCMAZCcuV7h8aV B+u5H9guOHxcZIFdCByTMNeZyoZnVhHjFLQk+UIYEX9YGlwduJfAIoXUz/CQw+xEzXt2J3 oLJEjzhBWh1seM8u3CxpVeBFCHGS0OY= X-MC-Unique: 0EyDtP-nNRqu0S7ECQg69g-1 X-Mimecast-MFC-AGG-ID: 0EyDtP-nNRqu0S7ECQg69g_1781089153 From: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Date: Wed, 10 Jun 2026 14:57:02 +0400 Subject: [PATCH v2 20/22] ui/spice: switch LED handling to Notifier-based input API MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260610-ui-input-v2-20-f68452dd6a22@redhat.com> References: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> In-Reply-To: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> To: qemu-devel@nongnu.org Cc: "Dr. David Alan Gilbert" , Paolo Bonzini , Richard Henderson , "Michael S. Tsirkin" , Gerd Hoffmann , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Jan Kiszka , Peter Maydell , qemu-arm@nongnu.org, Mark Cave-Ayland , qemu-ppc@nongnu.org, Thomas Huth X-Developer-Signature: v=1; a=openpgp-sha256; l=1471; i=marcandre.lureau@redhat.com; h=from:subject:message-id; bh=mhLxwyrNkZYzaYRF+D3AbBaHWTrkuxc49OGXzxkMtOY=; b=owEBbQKS/ZANAwAKAdro4Ql1lpzlAcsmYgBqKUMCnb4Bo3gNGOQn1irC+xQi0mPyyFRTo8Pm9 +iQbrN/TIiJAjMEAAEKAB0WIQSHqb2TP4fGBtJ29i3a6OEJdZac5QUCailDAgAKCRDa6OEJdZac 5XUyD/0SCIjpEBWkO8xBU0TVxP1bu+/fXDYq6UYA9nkPrccpCacusiYp4aQNDpv+RDzKAK4NDzN 9+fOHGngmJGJQwkm2egvOoX6d3f1Ob1geSONl+qA82eLjm03VubZf2K1s+nb8ZDl7ebjHXeizpR PeXDt6kmF0fo9tmUybuIur3Bf+yH7uhIDHl/uAFLLcc+A0wLZQDTASUuY9QH95/uoi7s0hWkh++ kclqKfJcVctlHnB++GhTyHKxZ3fzTUevlJtlbbLh1kfvzaf/RiEEY0nTJYXl+gAROiCF9GrHee1 EhyGTD/IDRbEqoI/BqHST9esPcK2BvfgZvq+mQ/vsEjGofjl1aMjmWMZs7t/nw90NICe4QFXs3p hRlGXIdsauTXhtGrYNhB5KNqyisvbK8LlnWmJGKx2qpU97MT9qhq1Y5+SkuSkYYnnI7hbmCKXaL RfAZzgw3JfjRC9+joNwahQgls1x66ZXCyyfiXuKhmVOHq9eqHWfLE+nbQsCrzu8MCQ6sjDWEt3I RaAgEBS8LuEenqIHRFtGftKB3LCNcmbJgDPAS5brIIDgIL8Vi413dBpsVGZH+EfxCkM2a94Dj15 Tb36HZqjz6hJPTmT9i0POA35YWbRaFjq8OyZ1TDDFC+8bOqUG0UaM0Gz8qk0JS9cDu3NetFiiFG ktUMy2rdZiphlWA== X-Developer-Key: i=marcandre.lureau@redhat.com; a=openpgp; fpr=87A9BD933F87C606D276F62DDAE8E10975969CE5 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; 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: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, 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_H5=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-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1781089259842154100 Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- ui/spice-input.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/ui/spice-input.c b/ui/spice-input.c index f0bb915fd77..f5329b8aed9 100644 --- a/ui/spice-input.c +++ b/ui/spice-input.c @@ -33,6 +33,7 @@ typedef struct QemuSpiceKbd { int ledstate; bool emul0; size_t pauseseq; + Notifier led_notifier; } QemuSpiceKbd; =20 static void kbd_push_key(SpiceKbdInstance *sin, uint8_t frag); @@ -86,9 +87,11 @@ static uint8_t kbd_get_leds(SpiceKbdInstance *sin) return kbd->ledstate; } =20 -static void kbd_leds(void *opaque, int ledstate) +static void kbd_leds(Notifier *notifier, void *data) { - QemuSpiceKbd *kbd =3D opaque; + QemuSpiceKbd *kbd =3D container_of(notifier, QemuSpiceKbd, led_notifie= r); + /* spice has no associated console support */ + int ledstate =3D qemu_input_get_led(NULL); =20 kbd->ledstate =3D 0; if (ledstate & QEMU_SCROLL_LOCK_LED) { @@ -247,7 +250,8 @@ void qemu_spice_input_init(void) kbd =3D g_malloc0(sizeof(*kbd)); kbd->sin.base.sif =3D &kbd_interface.base; qemu_spice.add_interface(&kbd->sin.base); - qemu_add_led_event_handler(kbd_leds, kbd); + kbd->led_notifier.notify =3D kbd_leds; + qemu_input_led_notifier_add(&kbd->led_notifier); =20 pointer =3D g_malloc0(sizeof(*pointer)); pointer->mouse.base.sif =3D &mouse_interface.base; --=20 2.54.0 From nobody Sun Jul 26 14:10:25 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1781089231; cv=none; d=zohomail.com; s=zohoarc; b=Ux2dmIby9I6RzeMzDjl6IDrhkqADdQxBcAP0a+svKO333vIFfpq9XqGLlsdeLbJj/pk3PuhWNcxxMRfi4PsKV5IWcWX6LCaipmWqWRW2ZFmRHEBrPi4glEVcUEYY9QVU+x6tg3vJRQPrYfVj2Nc4WEc/ebihZx3tmsm2IzX467g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781089231; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Qx38nzR7RAS4RV+BWU9P9B+GDyhdYUd+EO5NmH4hnuA=; b=EhO1Kf0FRrA/hAktr4kISd/dQyQeo2QeeRqtlfBnWIYaOuunyg3Hs1gAzLuPFlJBNKMmZj4NyAjSpmsG6O3RPPm6a2ubjbcfhkxeYTZFTaQMNXZuTcavAY0OSILPEOXaH9B6bKuWeCpPsNWAgtBHGz1ihWRoO2qEN32V3koOwFA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1781089231958471.5569169133232; Wed, 10 Jun 2026 04:00:31 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wXGeu-0006Nx-QJ; Wed, 10 Jun 2026 06:59:44 -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 1wXGep-00069B-CN for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:59:41 -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 1wXGeb-0000lb-JJ for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:59:26 -0400 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-513-3iUX_xIWMTesHnvPhAODPQ-1; Wed, 10 Jun 2026 06:59:20 -0400 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-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id B121E1955F12; Wed, 10 Jun 2026 10:59:18 +0000 (UTC) Received: from localhost (unknown [10.44.24.21]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 7BD401954B09; Wed, 10 Jun 2026 10:59:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1781089163; 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=Qx38nzR7RAS4RV+BWU9P9B+GDyhdYUd+EO5NmH4hnuA=; b=fnyzexPdjU1ZtAG0K7mgLiTLGwshZLb8ZS5B3cXRDr3mx/ld/JAPJxVlc9fkWv5dVaT4hi wgGamD9RO1GRuw1f6a6TxhT0mPvNlEXmfbE5zCJ05RVkNyaemYPf8VCVyXmoPpMtbrUvaE /15/NliJtUz69ZOAC3XYNDiqr69AXUs= X-MC-Unique: 3iUX_xIWMTesHnvPhAODPQ-1 X-Mimecast-MFC-AGG-ID: 3iUX_xIWMTesHnvPhAODPQ_1781089158 From: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Date: Wed, 10 Jun 2026 14:57:03 +0400 Subject: [PATCH v2 21/22] ui/dbus: switch LED handling to Notifier-based input API MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260610-ui-input-v2-21-f68452dd6a22@redhat.com> References: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> In-Reply-To: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> To: qemu-devel@nongnu.org Cc: "Dr. David Alan Gilbert" , Paolo Bonzini , Richard Henderson , "Michael S. Tsirkin" , Gerd Hoffmann , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Jan Kiszka , Peter Maydell , qemu-arm@nongnu.org, Mark Cave-Ayland , qemu-ppc@nongnu.org, Thomas Huth X-Developer-Signature: v=1; a=openpgp-sha256; l=1963; i=marcandre.lureau@redhat.com; h=from:subject:message-id; bh=2C4B4AqpW8MpGJ6frIAWY552nHkk+HJpvh9goLxBKjs=; b=owEBbQKS/ZANAwAKAdro4Ql1lpzlAcsmYgBqKUMCzTPnyGL8Zpji8Dv3encwLyJRElBfIrnqK lF9F1cosDKJAjMEAAEKAB0WIQSHqb2TP4fGBtJ29i3a6OEJdZac5QUCailDAgAKCRDa6OEJdZac 5Wd3D/9J25aWkslYF37irlBk+GJlVFgn2F/fwWuEsEqM+vzinWyBXPBnprmdzP40Pwexpzw87uw sQbIYI8J5FuYPItsyF0SZapVfIkBbVm4HqWDZhmy06rqmEknwR3V62HBw9XSz92RHeGtv4MLjG7 MwXCp0yFSVRPWOKQ9wQlsJ/6lz3M8hvx+ZHz5nliE1eNpuWiEUAOZtbggakU1zxh2PHOmONaoK1 +uKNkZ+2vDo/qt7OnkdS5IOY/RlHG7fZnABtlhTuB52aRFgKuiScnBW2zBK9u4HjdAr15a9vn2d RVIJtXHbxpmlp8OXHJJmmq1Z/AY/7kLSDmgydgyl69HFwexI0QJhrutfnhTV2wj6IOIYoL+Nahs egAzGyL6EMqxWuBdMlEYloQknHFD5HMwGUJHzIdgR01Y4qlz8JsURGk7R4UdtqwUYgXEKeOWZtw 3B/wH/2NL4+3a35Nglpud0K225B94BmDG8k3euZ0u5XMxlfuY8ggimS6bL0N37x859hoQbLZmKv A3kPZwwEVel/02lYYbdqxP6UVQrzFiWN4BxK6kDXsTDsKRPyaaclCgVxZg8xj0cpVyFwCbqi/OC FMYJdlWdQbbSSKrPudpeIDi6HcYhu6gXyIBqvfv60gCGtmhjsord8STvyAM7vI55AQ+CdwmZUB5 uyHHaV7RbH4WgyQ== X-Developer-Key: i=marcandre.lureau@redhat.com; a=openpgp; fpr=87A9BD933F87C606D276F62DDAE8E10975969CE5 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; 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: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, 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-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1781089232829158500 Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- ui/dbus-console.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/ui/dbus-console.c b/ui/dbus-console.c index 21eceb24362..6ff44881895 100644 --- a/ui/dbus-console.c +++ b/ui/dbus-console.c @@ -46,6 +46,7 @@ struct _DBusDisplayConsole { =20 QemuDBusDisplay1Keyboard *iface_kbd; QKbdState *kbd; + Notifier led_notifier; =20 QemuDBusDisplay1Mouse *iface_mouse; QemuDBusDisplay1MultiTouch *iface_touch; @@ -150,6 +151,7 @@ dbus_display_console_dispose(GObject *object) { DBusDisplayConsole *ddc =3D DBUS_DISPLAY_CONSOLE(object); =20 + qemu_input_led_notifier_remove(&ddc->led_notifier); qemu_console_unregister_listener(&ddc->dcl); g_clear_object(&ddc->iface_touch); g_clear_object(&ddc->iface_mouse); @@ -367,9 +369,11 @@ dbus_kbd_release(DBusDisplayConsole *ddc, } =20 static void -dbus_kbd_qemu_leds_updated(void *data, int ledstate) +dbus_kbd_qemu_leds_updated(Notifier *notifier, void *data) { - DBusDisplayConsole *ddc =3D DBUS_DISPLAY_CONSOLE(data); + DBusDisplayConsole *ddc =3D container_of(notifier, DBusDisplayConsole, + led_notifier); + int ledstate =3D qemu_input_get_led(ddc->dcl.con); =20 qemu_dbus_display1_keyboard_set_modifiers(ddc->iface_kbd, ledstate); } @@ -577,7 +581,8 @@ dbus_display_console_new(DBusDisplay *display, QemuCons= ole *con) =20 ddc->kbd =3D qkbd_state_init(con); ddc->iface_kbd =3D qemu_dbus_display1_keyboard_skeleton_new(); - qemu_add_led_event_handler(dbus_kbd_qemu_leds_updated, ddc); + ddc->led_notifier.notify =3D dbus_kbd_qemu_leds_updated; + qemu_input_led_notifier_add(&ddc->led_notifier); g_object_connect(ddc->iface_kbd, "swapped-signal::handle-press", dbus_kbd_press, ddc, "swapped-signal::handle-release", dbus_kbd_release, ddc, --=20 2.54.0 From nobody Sun Jul 26 14:10:25 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1781089284; cv=none; d=zohomail.com; s=zohoarc; b=k0IabBY85s/cHV/HNwxxPjO5Id8sRCoNY/iHfEdDTNIjhhINkacSS6U9UIvlAvLv5x9CwX9aXcXbyhBhoxTVs9EqjxXAcLVWQZh5cIrR4fgKXdDaUzzBUbsYDYvhH1uq5LSgFFECEkM3O1yHvpjXF0IOLIYIHBp9lxj97Re6CWI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1781089284; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=DjnAxC/Mc7CJiqlOeCM3RQtg+Isi+MArKrw26TJllhg=; b=RKXrcH4QLNV/6zmWZrR4d6K1PaCkFyZd/7TcjyQCZGqqFDuP5NFHPyz7qEGxsHc89JI6dDxFFN1WH/Fweq4rL/gCRWrK2ReZ6/cuR9QpruCCgLWAthnbvt9ugNCGxVPoo1PJCEobS3d98TtU1BrDc/sUskY3mUCL72j/VQ2nNP8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178108928440716.681631746773064; Wed, 10 Jun 2026 04:01:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wXGew-0006gO-Sz; Wed, 10 Jun 2026 06:59:46 -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 1wXGes-0006Aw-NA for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:59:43 -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 1wXGer-0000rN-1X for qemu-devel@nongnu.org; Wed, 10 Jun 2026 06:59:42 -0400 Received: from mx-prod-mc-08.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-468-S1bNUaZnPp2ZT8k5ayIGZQ-1; Wed, 10 Jun 2026 06:59:25 -0400 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-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 30A721835E2A; Wed, 10 Jun 2026 10:59:24 +0000 (UTC) Received: from localhost (unknown [10.44.24.21]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id DC4E33000223; Wed, 10 Jun 2026 10:59:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1781089168; 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=DjnAxC/Mc7CJiqlOeCM3RQtg+Isi+MArKrw26TJllhg=; b=BFtShg25EG1+5FFeLzD/dHz13rRKy/TGnNa0W2nwQW9YT2bq529js1/BF2wgI+OrSfsfav AzZvyKUcKvFssKhsIdoR6hVwP316586WG3MaAQPjUbjD72o7xeO7kGT95aocH1pc7/3h1X aXQF5q63fZxKY2hYA3PlsmNFXI3S+J4= X-MC-Unique: S1bNUaZnPp2ZT8k5ayIGZQ-1 X-Mimecast-MFC-AGG-ID: S1bNUaZnPp2ZT8k5ayIGZQ_1781089164 From: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Date: Wed, 10 Jun 2026 14:57:04 +0400 Subject: [PATCH v2 22/22] ui/input: remove old LED handler broadcast queue MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260610-ui-input-v2-22-f68452dd6a22@redhat.com> References: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> In-Reply-To: <20260610-ui-input-v2-0-f68452dd6a22@redhat.com> To: qemu-devel@nongnu.org Cc: "Dr. David Alan Gilbert" , Paolo Bonzini , Richard Henderson , "Michael S. Tsirkin" , Gerd Hoffmann , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Jan Kiszka , Peter Maydell , qemu-arm@nongnu.org, Mark Cave-Ayland , qemu-ppc@nongnu.org, Thomas Huth X-Developer-Signature: v=1; a=openpgp-sha256; l=2215; i=marcandre.lureau@redhat.com; h=from:subject:message-id; bh=NHaVAaoIWOcPRSUWYUSpmvX80VOfS5rhWCqfzhbLc/A=; b=owEBbQKS/ZANAwAKAdro4Ql1lpzlAcsmYgBqKUMCLa/fQk8dnW2uYSSOvc5y5KgibiFfDhFaf K0WAUTlbjCJAjMEAAEKAB0WIQSHqb2TP4fGBtJ29i3a6OEJdZac5QUCailDAgAKCRDa6OEJdZac 5YIHD/45615a+w90gRGk8EzG58eppx0B2URftz5YLSh7NzXY5w+8AFFTiJUo+jbAp8k1yjd+GuP e2M5U0C2TWVCy44ywKJKELCRYLtBWhmwFyCeaSOtop3ql0ahEfHCH8bYpRKrhrBRHVdFOFJcrkY PPWHpx8goVuyRCLPfTYkTFK5OrMscpGw/ePDilc6XwElJNPPbjevLByjir5nkePHWyo0hGojty9 c89bgnl+NmsH32ACPe17qDpfPUK9aALQYGeUBKXY9zI+i7hK338KB9ei8qY7EUCgf/PenKzUcMD GepNICpQMDMev5USo5cmZzTDRtub1ldKDBxZBPbPSkpUrP8ww3d39CGp5v6b6QbSjRuZxUmQ9a9 ll0Kyy/1uzJkXhwEg+Ob+3pGP49+BPsRNf94/iU36SeikSgWQMaexfGLp1aXZpX2z3HVwPPLy8R P4Q+Q9515h+ZrprkE9s6AADnoQM3PHEUOPXGFJjbBCqmnPpdhlcoA6aqlTYW78gPDVoyaUVu9Is 615XZmAsMED8AZwqlFz/jGunhgiMck7WletKziJPCqKKo98Sm9hlJ8wz0MFCaTDCgeMQtZL7QsY eAf9DlphAcX0QLthoJuIY+0lKyfr/mM1Ebjt6VB//Qt82T0lYK7keX0W2vMQMfoIYplQokm+FSS /tH4yxHSD2oMu/A== X-Developer-Key: i=marcandre.lureau@redhat.com; a=openpgp; fpr=87A9BD933F87C606D276F62DDAE8E10975969CE5 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; 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: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, 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_H5=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-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1781089286232154100 Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- include/ui/console.h | 9 --------- ui/input.c | 40 ---------------------------------------- 2 files changed, 49 deletions(-) diff --git a/include/ui/console.h b/include/ui/console.h index 0299ed4b566..b7bfecb6ee9 100644 --- a/include/ui/console.h +++ b/include/ui/console.h @@ -54,15 +54,6 @@ enum qemu_color_names { #define ATTR2CHTYPE(c, fg, bg, bold) \ ((bold) << 21 | (bg) << 11 | (fg) << 8 | (c)) =20 -typedef void QEMUPutLEDEvent(void *opaque, int ledstate); - -typedef struct QEMUPutLEDEntry QEMUPutLEDEntry; - -QEMUPutLEDEntry *qemu_add_led_event_handler(QEMUPutLEDEvent *func, void *o= paque); -void qemu_remove_led_event_handler(QEMUPutLEDEntry *entry); - -void kbd_put_ledstate(int ledstate); - bool qemu_mouse_set(int index, Error **errp); =20 /* keysym is a unicode code except for special keys (see QEMU_KEY_xxx diff --git a/ui/input.c b/ui/input.c index 99a1090f8c3..b6bbfa8f128 100644 --- a/ui/input.c +++ b/ui/input.c @@ -689,46 +689,6 @@ void qemu_input_touch_event(QemuConsole *con, } } =20 -struct QEMUPutLEDEntry { - QEMUPutLEDEvent *put_led; - void *opaque; - QTAILQ_ENTRY(QEMUPutLEDEntry) next; -}; - -static QTAILQ_HEAD(, QEMUPutLEDEntry) led_handlers =3D - QTAILQ_HEAD_INITIALIZER(led_handlers); - -QEMUPutLEDEntry *qemu_add_led_event_handler(QEMUPutLEDEvent *func, - void *opaque) -{ - QEMUPutLEDEntry *s; - - s =3D g_new0(QEMUPutLEDEntry, 1); - - s->put_led =3D func; - s->opaque =3D opaque; - QTAILQ_INSERT_TAIL(&led_handlers, s, next); - return s; -} - -void qemu_remove_led_event_handler(QEMUPutLEDEntry *entry) -{ - if (entry =3D=3D NULL) { - return; - } - QTAILQ_REMOVE(&led_handlers, entry, next); - g_free(entry); -} - -void kbd_put_ledstate(int ledstate) -{ - QEMUPutLEDEntry *cursor; - - QTAILQ_FOREACH(cursor, &led_handlers, next) { - cursor->put_led(cursor->opaque, ledstate); - } -} - void qmp_send_key(KeyValueList *keys, bool has_hold_time, int64_t hold_tim= e, Error **errp) { --=20 2.54.0