From nobody Wed Nov 27 00:28:15 2024 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=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1702999003; cv=none; d=zohomail.com; s=zohoarc; b=Vbt9l+0oPnCGtaZjrbyaRXPcNKV2z6x7+upDEqZW5GfrsfNyVinBaGAZqud5zteE9c+MAXn6VzZcmeJd3gPNeo3Kl/KvRPJh5AdJgTLEPBp0DiJmoxnPBjBwkh5EmVXVbM3cEY5Zoq0sL5DFnu7Oy6Xa82x8dfEfjoobRRcTbEk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1702999003; h=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=aJp28RWD0Bmd2/0WGTsegmzATzRz3IZpSu80iClxoG4=; b=PILO06vgzjb/USe/jK51AdemSEKD4QvY/zENC17VQpfc2c/nVPkNZuBrRocF8lBorcRo0n15qG16mcZmRd5xQTQFIQJOGQ9jdzDKsswpAAxRuGfIYJbWyelEpIiNIfkchPj14JLx3Eom1OyPVtay5Lhn5TsLPAyRTVJk+bgDP28= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1702999003664145.63514691030423; Tue, 19 Dec 2023 07:16:43 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rFbpW-0006SQ-29; Tue, 19 Dec 2023 10:16:22 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rFbpO-0006AX-4P for qemu-devel@nongnu.org; Tue, 19 Dec 2023 10:16:15 -0500 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 1rFbpI-0002BE-4y for qemu-devel@nongnu.org; Tue, 19 Dec 2023 10:16:13 -0500 Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-516-SVOUB7bUOjSokU8jsMrTow-1; Tue, 19 Dec 2023 10:15:56 -0500 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 9CE6D3813BC3; Tue, 19 Dec 2023 15:15:55 +0000 (UTC) Received: from localhost (unknown [10.39.194.138]) by smtp.corp.redhat.com (Postfix) with ESMTP id 15A03492BF0; Tue, 19 Dec 2023 15:15:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1702998958; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=aJp28RWD0Bmd2/0WGTsegmzATzRz3IZpSu80iClxoG4=; b=RHCWrnR9/eIk5kWrUqrr0MJLIyA1umkfNFoHPEm88Yr9BE6S01jOrm9QKlc942Uc2uaiN0 gfISRvi8lbuAFiamskSzSPoBwL3/B+Lk7HcrYkt4n1Gn/Sdthv/H9XgjGWaKfnLSMgnIzD 4S7KKc8tsLI4eVzXNTjSdWPUB5THidA= X-MC-Unique: SVOUB7bUOjSokU8jsMrTow-1 From: Stefan Hajnoczi To: qemu-devel@nongnu.org Cc: Michal Privoznik , Kevin Wolf , Stefan Hajnoczi , "Michael S. Tsirkin" , Michael Roth , Eduardo Habkost , Eric Blake , Paolo Bonzini , Markus Armbruster , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , qemu-block@nongnu.org, Hanna Reitz Subject: [PATCH v3 1/4] qdev-properties: alias all object class properties Date: Tue, 19 Dec 2023 10:15:47 -0500 Message-ID: <20231219151550.223303-2-stefanha@redhat.com> In-Reply-To: <20231219151550.223303-1-stefanha@redhat.com> References: <20231219151550.223303-1-stefanha@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 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=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=stefanha@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -21 X-Spam_score: -2.2 X-Spam_bar: -- X-Spam_report: (-2.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.066, 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_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1702999005419100001 Content-Type: text/plain; charset="utf-8" qdev_alias_all_properties() aliases a DeviceState's qdev properties onto an Object. This is used for VirtioPCIProxy types so that --device virtio-blk-pci has properties of its embedded --device virtio-blk-device object. Currently this function is implemented using qdev properties. Change the function to use QOM object class properties instead. This works because qdev properties create QOM object class properties, but it also catches any QOM object class-only properties that have no qdev properties. This change ensures that properties of devices are shown with --device foo,\? even if they are QOM object class properties. Signed-off-by: Stefan Hajnoczi --- hw/core/qdev-properties.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 840006e953..7d6fa726fd 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -1076,16 +1076,18 @@ void device_class_set_props(DeviceClass *dc, Proper= ty *props) void qdev_alias_all_properties(DeviceState *target, Object *source) { ObjectClass *class; - Property *prop; + ObjectPropertyIterator iter; + ObjectProperty *prop; =20 class =3D object_get_class(OBJECT(target)); - do { - DeviceClass *dc =3D DEVICE_CLASS(class); =20 - for (prop =3D dc->props_; prop && prop->name; prop++) { - object_property_add_alias(source, prop->name, - OBJECT(target), prop->name); + object_class_property_iter_init(&iter, class); + while ((prop =3D object_property_iter_next(&iter))) { + if (object_property_find(source, prop->name)) { + continue; /* skip duplicate properties */ } - class =3D object_class_get_parent(class); - } while (class !=3D object_class_by_name(TYPE_DEVICE)); + + object_property_add_alias(source, prop->name, + OBJECT(target), prop->name); + } } --=20 2.43.0