From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604009131; cv=none; d=zohomail.com; s=zohoarc; b=lV/PqUN0re5bMlpQwaaJ7Vl7yJt+Bgtf0MdIfCU1Smp4fTPoWrQjaI2XCzOCermNoXWIUx21dQCUks1geBV5V7GYv5ARIGd+y1PtnAJ4zZYvnRtDArPx3EaxnaqGcgtZ91KWB8DfMKpkp6qET2aJfeKBrv5q3MkEFiJo9Wq66YI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604009131; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=qHd8aGKR47PGpz95RiiyIOWIamkysgvhCIz21n6qgQM=; b=WII73MVIltV6+Zyzm34UovrmhTlxyDOTBsFcwFjCf1UuHXWvXJx4sZN4MCsqAg0NMMSqOgiwzqm9EmUlDU8mjFmmCbzOr7E8l4Oev8nFmgLMm+2PBHBm/PQ0dG+ICD7sSP4/9xTSBHF385E8IxiQipc9HUW35WdZzF1VVMLD3b4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604009131285740.2011510559876; Thu, 29 Oct 2020 15:05:31 -0700 (PDT) Received: from localhost ([::1]:55872 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYG2z-0004je-Rj for importer@patchew.org; Thu, 29 Oct 2020 18:05:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42312) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG0d-0002tr-PH for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:03 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:24549) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG0a-0006XD-6p for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:03 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-403-YlCyJMOBMKG-rUQDsHo9Qg-1; Thu, 29 Oct 2020 18:02:56 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 449A580475B for ; Thu, 29 Oct 2020 22:02:55 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id 21BC355780; Thu, 29 Oct 2020 22:02:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604008978; 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=qHd8aGKR47PGpz95RiiyIOWIamkysgvhCIz21n6qgQM=; b=XEk9QWBWKHeApwhIgFxIMIRa018LNsZ4PGeThLZv9TBM9/j8+cqBF70cCInX8vneQRPCIe gy/2pr3jTY5TOTyb4qworT5GTXywJ8qet/5ZSUZngDrL2ai9xpftQ/JUKa4YyCJm+PR4Ge XVN0It6dhOkOcTi1HX3cHqm3IM5Btsw= X-MC-Unique: YlCyJMOBMKG-rUQDsHo9Qg-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 01/36] cs4231: Get rid of empty property array Date: Thu, 29 Oct 2020 18:02:11 -0400 Message-Id: <20201029220246.472693-2-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable 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=216.205.24.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 00:47:54 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Daniel P. Berrange" , John Snow , Markus Armbruster , Gerd Hoffmann , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" An empty props array is unnecessary, we can just not call device_class_set_props(). Signed-off-by: Eduardo Habkost Reviewed-by: Marc-Andr=C3=A9 Lureau --- Cc: Gerd Hoffmann Cc: qemu-devel@nongnu.org --- hw/audio/cs4231.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/hw/audio/cs4231.c b/hw/audio/cs4231.c index 8e9554ce9b..209c05a0a0 100644 --- a/hw/audio/cs4231.c +++ b/hw/audio/cs4231.c @@ -160,17 +160,12 @@ static void cs4231_init(Object *obj) sysbus_init_irq(dev, &s->irq); } =20 -static Property cs4231_properties[] =3D { - {.name =3D NULL}, -}; - static void cs4231_class_init(ObjectClass *klass, void *data) { DeviceClass *dc =3D DEVICE_CLASS(klass); =20 dc->reset =3D cs_reset; dc->vmsd =3D &vmstate_cs4231; - device_class_set_props(dc, cs4231_properties); } =20 static const TypeInfo cs4231_info =3D { --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604009276; cv=none; d=zohomail.com; s=zohoarc; b=benhQJ2OoJ6ie7xK0e/HIuKHSWGCAUm5Gz7yEt2oQd5u8PJEWTWRAHjLyRBHrXN/KIUTTbjD94nGj9JLZ7DpVp1yB4MB2FPZFJdAjcRi1snOq30Jcvyq0MZXUYXTxtt6Nh1TLMRmTW2/Q+biVRO6srWVChLsQ3QCgzYKLCXsZQM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604009276; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=yK8fXoNijGvJkZCHAg77qM5UoYs33ZIDnUj+ZyGBd5s=; b=VL7spBjwQha0iE5ZOp5rHlOM696Whw1y8bOQcU3PojrjBC/kHZtExht9j0mLArabZTMNs3fkBJ5WJ2pNzRjF2Yk29zgttOE28iLDC3I1mRZo3wUsp85nUiVi+Ul0bEfuOxsRfomhKdsgJ7viz76WTFyltFWPgTAO5SYM+ZCGY2s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604009276052317.04307572060986; Thu, 29 Oct 2020 15:07:56 -0700 (PDT) Received: from localhost ([::1]:35810 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYG5J-000898-Iz for importer@patchew.org; Thu, 29 Oct 2020 18:07:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42336) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG0f-0002uk-LL for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:06 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:59220) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG0d-0006XY-NF for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:05 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-113-5y66PHdcOUGyzEwcOpxhfw-1; Thu, 29 Oct 2020 18:02:58 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 1BEF49CC0B; Thu, 29 Oct 2020 22:02:57 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id CB33C5D9D3; Thu, 29 Oct 2020 22:02:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604008981; 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=yK8fXoNijGvJkZCHAg77qM5UoYs33ZIDnUj+ZyGBd5s=; b=dLYaQ7lXmFMpuKqy8eCGhfPVNx+r10hUeyFqRFQQnUUgED/flDZ9mTUfa3a9/Xg0hvc4vc o4Kg51iCY5/dZrh2jz4PBOyoBg+bIeQ4aFZBcX+Pu9zBdD7FwChMSDDVrSsnocgUdn3lE8 7RgFh5YcESIm8vkW/kmSNgesCsDyMGo= X-MC-Unique: 5y66PHdcOUGyzEwcOpxhfw-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 02/36] cpu: Move cpu_common_props to hw/core/cpu.c Date: Thu, 29 Oct 2020 18:02:12 -0400 Message-Id: <20201029220246.472693-3-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable 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=216.205.24.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 00:47:54 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Daniel P. Berrange" , John Snow , Markus Armbruster , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" There's no reason to keep the property list separate from the CPU class code. Move the variable to hw/core/cpu.c and make it static. Signed-off-by: Eduardo Habkost Reviewed-by: Marc-Andr=C3=A9 Lureau --- Cc: Eduardo Habkost Cc: Marcel Apfelbaum Cc: qemu-devel@nongnu.org --- include/hw/core/cpu.h | 1 - cpu.c | 15 --------------- hw/core/cpu.c | 15 +++++++++++++++ 3 files changed, 15 insertions(+), 16 deletions(-) diff --git a/include/hw/core/cpu.h b/include/hw/core/cpu.h index 9c3a45ad7b..2bc8429559 100644 --- a/include/hw/core/cpu.h +++ b/include/hw/core/cpu.h @@ -1119,7 +1119,6 @@ AddressSpace *cpu_get_address_space(CPUState *cpu, in= t asidx); =20 void QEMU_NORETURN cpu_abort(CPUState *cpu, const char *fmt, ...) GCC_FMT_ATTR(2, 3); -extern Property cpu_common_props[]; void cpu_exec_initfn(CPUState *cpu); void cpu_exec_realizefn(CPUState *cpu, Error **errp); void cpu_exec_unrealizefn(CPUState *cpu); diff --git a/cpu.c b/cpu.c index 0be5dcb6f3..0c485cdf2d 100644 --- a/cpu.c +++ b/cpu.c @@ -144,21 +144,6 @@ void cpu_exec_unrealizefn(CPUState *cpu) #endif } =20 -Property cpu_common_props[] =3D { -#ifndef CONFIG_USER_ONLY - /* Create a memory property for softmmu CPU object, - * so users can wire up its memory. (This can't go in hw/core/cpu.c - * because that file is compiled only once for both user-mode - * and system builds.) The default if no link is set up is to use - * the system address space. - */ - DEFINE_PROP_LINK("memory", CPUState, memory, TYPE_MEMORY_REGION, - MemoryRegion *), -#endif - DEFINE_PROP_BOOL("start-powered-off", CPUState, start_powered_off, fal= se), - DEFINE_PROP_END_OF_LIST(), -}; - void cpu_exec_initfn(CPUState *cpu) { cpu->as =3D NULL; diff --git a/hw/core/cpu.c b/hw/core/cpu.c index 576fa1d7ba..5c89c858aa 100644 --- a/hw/core/cpu.c +++ b/hw/core/cpu.c @@ -393,6 +393,21 @@ static vaddr cpu_adjust_watchpoint_address(CPUState *c= pu, vaddr addr, int len) return addr; } =20 +static Property cpu_common_props[] =3D { +#ifndef CONFIG_USER_ONLY + /* Create a memory property for softmmu CPU object, + * so users can wire up its memory. (This can't go in hw/core/cpu.c + * because that file is compiled only once for both user-mode + * and system builds.) The default if no link is set up is to use + * the system address space. + */ + DEFINE_PROP_LINK("memory", CPUState, memory, TYPE_MEMORY_REGION, + MemoryRegion *), +#endif + DEFINE_PROP_BOOL("start-powered-off", CPUState, start_powered_off, fal= se), + DEFINE_PROP_END_OF_LIST(), +}; + static void cpu_class_init(ObjectClass *klass, void *data) { DeviceClass *dc =3D DEVICE_CLASS(klass); --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604009148; cv=none; d=zohomail.com; s=zohoarc; b=Ur+WmrzrBqSXWg10txZYoUjqY4m3MhhT2JgZ6kky/viZO7UuV7Ql84m/Zn1SN6QZdI5HTyXUCtqsKPirU2D79Q0p30TiboW0IV2XZXLPHfS5oCm+4i2HFIXRi2FeiR5Dxke4lQLEEyNcYrWl0kKrVlptTMfSjKwhn+RelJlaMOM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604009148; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=EgONCAVKKy9Cj4TpncDvo/cdkkaIBMRVsuiSBqiz1qs=; b=n6aBiS/q/mzfkS4QI5ptGe9r9XRygEx9f2REmy+bWgG8zwb3HXtT5cMm+r4lXHb7ZZ0ELc6iFDL6rwy2QvKBS5VBcte3VMHRDFdb5a8ILtL6oNgv4GojqGN9euLClrIpDHhrSBw5gbHGWCfncd7bfhiaeXYL1wzJITNCm7Ag1ng= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604009148231843.6646783899221; Thu, 29 Oct 2020 15:05:48 -0700 (PDT) Received: from localhost ([::1]:56192 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYG3G-0004rS-VM for importer@patchew.org; Thu, 29 Oct 2020 18:05:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42350) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG0g-0002us-IM for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:07 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:24301) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG0d-0006Xf-OI for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:06 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-285-a7xaehvePyK8QydeH6sJrg-1; Thu, 29 Oct 2020 18:03:00 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 72E0E1018F79 for ; Thu, 29 Oct 2020 22:02:59 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7226D5D9D3; Thu, 29 Oct 2020 22:02:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604008982; 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=EgONCAVKKy9Cj4TpncDvo/cdkkaIBMRVsuiSBqiz1qs=; b=J72onVZiiELV+oSJKmAlGN8cbqTU/vHQvpXGuAVLJ9UhX1IRqG+p0I+ghZLwmZahfFY22n pX/gw4CkiVym1MFOoUQ00W84G1hJ93XYuJ8j6Bp7YNYY/WkfnX6w4758KD85+stS5nM/zq vLhMO8u+VbNC28kWMu9KQvgsf+HGO/U= X-MC-Unique: a7xaehvePyK8QydeH6sJrg-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 03/36] qdev: Move property code to qdev-properties.[ch] Date: Thu, 29 Oct 2020 18:02:13 -0400 Message-Id: <20201029220246.472693-4-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=216.205.24.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 00:47:54 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Daniel P. Berrange" , John Snow , Markus Armbruster , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Move everything related to Property and PropertyInfo to qdev-properties.[ch] to make it easier to refactor that code. Signed-off-by: Eduardo Habkost Reviewed-by: Marc-Andr=C3=A9 Lureau --- Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- include/hw/qdev-core.h | 37 ----------- include/hw/qdev-properties.h | 38 +++++++++++ hw/core/qdev-properties.c | 120 +++++++++++++++++++++++++++++++++++ hw/core/qdev.c | 120 ----------------------------------- softmmu/qdev-monitor.c | 1 + 5 files changed, 159 insertions(+), 157 deletions(-) diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h index a653295d6f..aea49355fa 100644 --- a/include/hw/qdev-core.h +++ b/include/hw/qdev-core.h @@ -274,43 +274,6 @@ struct BusState { ResettableState reset; }; =20 -/** - * Property: - * @set_default: true if the default value should be set from @defval, - * in which case @info->set_default_value must not be NULL - * (if false then no default value is set by the property system - * and the field retains whatever value it was given by instance_init). - * @defval: default value for the property. This is used only if @set_defa= ult - * is true. - */ -struct Property { - const char *name; - const PropertyInfo *info; - ptrdiff_t offset; - uint8_t bitnr; - bool set_default; - union { - int64_t i; - uint64_t u; - } defval; - int arrayoffset; - const PropertyInfo *arrayinfo; - int arrayfieldsize; - const char *link_type; -}; - -struct PropertyInfo { - const char *name; - const char *description; - const QEnumLookup *enum_table; - int (*print)(DeviceState *dev, Property *prop, char *dest, size_t len); - void (*set_default_value)(ObjectProperty *op, const Property *prop); - void (*create)(ObjectClass *oc, Property *prop); - ObjectPropertyAccessor *get; - ObjectPropertyAccessor *set; - ObjectPropertyRelease *release; -}; - /** * GlobalProperty: * @used: Set to true if property was used when initializing a device. diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h index 4437450065..db7ce51dd5 100644 --- a/include/hw/qdev-properties.h +++ b/include/hw/qdev-properties.h @@ -3,6 +3,44 @@ =20 #include "hw/qdev-core.h" =20 +/** + * Property: + * @set_default: true if the default value should be set from @defval, + * in which case @info->set_default_value must not be NULL + * (if false then no default value is set by the property system + * and the field retains whatever value it was given by instance_init). + * @defval: default value for the property. This is used only if @set_defa= ult + * is true. + */ +struct Property { + const char *name; + const PropertyInfo *info; + ptrdiff_t offset; + uint8_t bitnr; + bool set_default; + union { + int64_t i; + uint64_t u; + } defval; + int arrayoffset; + const PropertyInfo *arrayinfo; + int arrayfieldsize; + const char *link_type; +}; + +struct PropertyInfo { + const char *name; + const char *description; + const QEnumLookup *enum_table; + int (*print)(DeviceState *dev, Property *prop, char *dest, size_t len); + void (*set_default_value)(ObjectProperty *op, const Property *prop); + void (*create)(ObjectClass *oc, Property *prop); + ObjectPropertyAccessor *get; + ObjectPropertyAccessor *set; + ObjectPropertyRelease *release; +}; + + /*** qdev-properties.c ***/ =20 extern const PropertyInfo qdev_prop_bit; diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 509cbf155d..12a053e732 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -929,3 +929,123 @@ const PropertyInfo qdev_prop_link =3D { .name =3D "link", .create =3D create_link_property, }; + +void qdev_property_add_static(DeviceState *dev, Property *prop) +{ + Object *obj =3D OBJECT(dev); + ObjectProperty *op; + + assert(!prop->info->create); + + op =3D object_property_add(obj, prop->name, prop->info->name, + prop->info->get, prop->info->set, + prop->info->release, + prop); + + object_property_set_description(obj, prop->name, + prop->info->description); + + if (prop->set_default) { + prop->info->set_default_value(op, prop); + if (op->init) { + op->init(obj, op); + } + } +} + +static void qdev_class_add_property(DeviceClass *klass, Property *prop) +{ + ObjectClass *oc =3D OBJECT_CLASS(klass); + + if (prop->info->create) { + prop->info->create(oc, prop); + } else { + ObjectProperty *op; + + op =3D object_class_property_add(oc, + prop->name, prop->info->name, + prop->info->get, prop->info->set, + prop->info->release, + prop); + if (prop->set_default) { + prop->info->set_default_value(op, prop); + } + } + object_class_property_set_description(oc, prop->name, + prop->info->description); +} + +/** + * Legacy property handling + */ + +static void qdev_get_legacy_property(Object *obj, Visitor *v, + const char *name, void *opaque, + Error **errp) +{ + DeviceState *dev =3D DEVICE(obj); + Property *prop =3D opaque; + + char buffer[1024]; + char *ptr =3D buffer; + + prop->info->print(dev, prop, buffer, sizeof(buffer)); + visit_type_str(v, name, &ptr, errp); +} + +/** + * qdev_class_add_legacy_property: + * @dev: Device to add the property to. + * @prop: The qdev property definition. + * + * Add a legacy QOM property to @dev for qdev property @prop. + * + * Legacy properties are string versions of QOM properties. The format of + * the string depends on the property type. Legacy properties are only + * needed for "info qtree". + * + * Do not use this in new code! QOM Properties added through this interfa= ce + * will be given names in the "legacy" namespace. + */ +static void qdev_class_add_legacy_property(DeviceClass *dc, Property *prop) +{ + g_autofree char *name =3D NULL; + + /* Register pointer properties as legacy properties */ + if (!prop->info->print && prop->info->get) { + return; + } + + name =3D g_strdup_printf("legacy-%s", prop->name); + object_class_property_add(OBJECT_CLASS(dc), name, "str", + prop->info->print ? qdev_get_legacy_property : prop->info->get, + NULL, NULL, prop); +} + +void device_class_set_props(DeviceClass *dc, Property *props) +{ + Property *prop; + + dc->props_ =3D props; + for (prop =3D props; prop && prop->name; prop++) { + qdev_class_add_legacy_property(dc, prop); + qdev_class_add_property(dc, prop); + } +} + +void qdev_alias_all_properties(DeviceState *target, Object *source) +{ + ObjectClass *class; + Property *prop; + + class =3D object_get_class(OBJECT(target)); + do { + DeviceClass *dc =3D DEVICE_CLASS(class); + + for (prop =3D dc->props_; prop && prop->name; prop++) { + object_property_add_alias(source, prop->name, + OBJECT(target), prop->name); + } + class =3D object_class_get_parent(class); + } while (class !=3D object_class_by_name(TYPE_DEVICE)); +} diff --git a/hw/core/qdev.c b/hw/core/qdev.c index fc4daa36fa..3c43107f71 100644 --- a/hw/core/qdev.c +++ b/hw/core/qdev.c @@ -714,115 +714,6 @@ char *qdev_get_dev_path(DeviceState *dev) return NULL; } =20 -/** - * Legacy property handling - */ - -static void qdev_get_legacy_property(Object *obj, Visitor *v, - const char *name, void *opaque, - Error **errp) -{ - DeviceState *dev =3D DEVICE(obj); - Property *prop =3D opaque; - - char buffer[1024]; - char *ptr =3D buffer; - - prop->info->print(dev, prop, buffer, sizeof(buffer)); - visit_type_str(v, name, &ptr, errp); -} - -/** - * qdev_class_add_legacy_property: - * @dev: Device to add the property to. - * @prop: The qdev property definition. - * - * Add a legacy QOM property to @dev for qdev property @prop. - * - * Legacy properties are string versions of QOM properties. The format of - * the string depends on the property type. Legacy properties are only - * needed for "info qtree". - * - * Do not use this in new code! QOM Properties added through this interfa= ce - * will be given names in the "legacy" namespace. - */ -static void qdev_class_add_legacy_property(DeviceClass *dc, Property *prop) -{ - g_autofree char *name =3D NULL; - - /* Register pointer properties as legacy properties */ - if (!prop->info->print && prop->info->get) { - return; - } - - name =3D g_strdup_printf("legacy-%s", prop->name); - object_class_property_add(OBJECT_CLASS(dc), name, "str", - prop->info->print ? qdev_get_legacy_property : prop->info->get, - NULL, NULL, prop); -} - -void qdev_property_add_static(DeviceState *dev, Property *prop) -{ - Object *obj =3D OBJECT(dev); - ObjectProperty *op; - - assert(!prop->info->create); - - op =3D object_property_add(obj, prop->name, prop->info->name, - prop->info->get, prop->info->set, - prop->info->release, - prop); - - object_property_set_description(obj, prop->name, - prop->info->description); - - if (prop->set_default) { - prop->info->set_default_value(op, prop); - if (op->init) { - op->init(obj, op); - } - } -} - -static void qdev_class_add_property(DeviceClass *klass, Property *prop) -{ - ObjectClass *oc =3D OBJECT_CLASS(klass); - - if (prop->info->create) { - prop->info->create(oc, prop); - } else { - ObjectProperty *op; - - op =3D object_class_property_add(oc, - prop->name, prop->info->name, - prop->info->get, prop->info->set, - prop->info->release, - prop); - if (prop->set_default) { - prop->info->set_default_value(op, prop); - } - } - object_class_property_set_description(oc, prop->name, - prop->info->description); -} - -void qdev_alias_all_properties(DeviceState *target, Object *source) -{ - ObjectClass *class; - Property *prop; - - class =3D object_get_class(OBJECT(target)); - do { - DeviceClass *dc =3D DEVICE_CLASS(class); - - for (prop =3D dc->props_; prop && prop->name; prop++) { - object_property_add_alias(source, prop->name, - OBJECT(target), prop->name); - } - class =3D object_class_get_parent(class); - } while (class !=3D object_class_by_name(TYPE_DEVICE)); -} - static bool device_get_realized(Object *obj, Error **errp) { DeviceState *dev =3D DEVICE(obj); @@ -1217,17 +1108,6 @@ static void device_class_init(ObjectClass *class, vo= id *data) offsetof(DeviceState, parent_bus), NULL= , 0); } =20 -void device_class_set_props(DeviceClass *dc, Property *props) -{ - Property *prop; - - dc->props_ =3D props; - for (prop =3D props; prop && prop->name; prop++) { - qdev_class_add_legacy_property(dc, prop); - qdev_class_add_property(dc, prop); - } -} - void device_class_set_parent_reset(DeviceClass *dc, DeviceReset dev_reset, DeviceReset *parent_reset) diff --git a/softmmu/qdev-monitor.c b/softmmu/qdev-monitor.c index bcfb90a08f..79164e4a3f 100644 --- a/softmmu/qdev-monitor.c +++ b/softmmu/qdev-monitor.c @@ -38,6 +38,7 @@ #include "migration/misc.h" #include "migration/migration.h" #include "qemu/cutils.h" +#include "hw/qdev-properties.h" #include "hw/clock.h" =20 /* --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604009276; cv=none; d=zohomail.com; s=zohoarc; b=K5A1Va0idFIA0uhsaSBRfqZcwMXlLEWYC9rGSjVWtuzLfAi8QNNLr/E5Jqbi9pnKtApfoYPQ6LdXh/s6XZP5FKEol0KwsAsFwj0iFpuI8tcbEZ7CycKN7T6cwn8Ea5cldQ48mOwR4XZe2JdT8q75BCw3ea34mmY5XR6mMEaT3qw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604009276; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=kYpxhnLTB2sU5xwnTBjEVycT/qQRoFFUTo51wqIF2uc=; b=Y44GXh36K5h84asTZQwh/xG/eKFXPQOd/+nLSFWmSReOOsR1fNc504TsrU0lovF//5X6tkJkv17P2YxvOf9FO/huZZ+/DNBp4OunOMkgBTGnSH+mbMksfNQnRXoUZv27lzwICtUnkW6tNCHK8SSMGsrB0HpL66kIBCUtWXpsh7I= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604009276644631.7023722112274; Thu, 29 Oct 2020 15:07:56 -0700 (PDT) Received: from localhost ([::1]:35938 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYG5K-0008C9-Ha for importer@patchew.org; Thu, 29 Oct 2020 18:07:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42354) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG0h-0002v0-9D for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:07 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:39863) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG0e-0006Xq-Ot for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:06 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-1-Yh6LVFXdMOW5CyeNkZhDlg-1; Thu, 29 Oct 2020 18:03:01 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id E53F0802B66 for ; Thu, 29 Oct 2020 22:03:00 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8FC6C60C17; Thu, 29 Oct 2020 22:03:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604008983; 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=kYpxhnLTB2sU5xwnTBjEVycT/qQRoFFUTo51wqIF2uc=; b=FXEPvQP9mADvhjWt436xGM8I05Bbp1YundZnj/YRNC2e3RRY2TDbeEzuLa+8pDLWh21q5L eSj5Xd8RTEQkQC6rDVifnmTQNHxzuieOb1nP2k0Yw9c2/zOwyFAInBtbF30j+9yQA0+R2d uu6MCECFkJ7+IvkhXnKtKdJNexIkdSo= X-MC-Unique: Yh6LVFXdMOW5CyeNkZhDlg-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 04/36] qdev: Check dev->realized at set_size() Date: Thu, 29 Oct 2020 18:02:14 -0400 Message-Id: <20201029220246.472693-5-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=216.205.24.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 00:47:54 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Daniel P. Berrange" , John Snow , Markus Armbruster , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) This setter is one of the very few property setters that don't check dev->realized, and there's no reason to make size properties different from the rest. Add the missing check. Fixes: e8cd45c78f53 ("qdev: Add SIZE type to qdev properties") Signed-off-by: Eduardo Habkost Reviewed-by: Marc-Andr=C3=A9 Lureau --- Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-properties.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 12a053e732..67ae19df05 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -905,6 +905,11 @@ static void set_size(Object *obj, Visitor *v, const ch= ar *name, void *opaque, Property *prop =3D opaque; uint64_t *ptr =3D qdev_get_prop_ptr(dev, prop); =20 + if (dev->realized) { + qdev_prop_set_after_realize(dev, name, errp); + return; + } + visit_type_size(v, name, ptr, errp); } =20 --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604009279; cv=none; d=zohomail.com; s=zohoarc; b=SOW/wsb8UZ5w4AKGUNhtGJtH87wB727v51iAKjIitOrZHHHdzyEzBPD+HuePJJr8k7Mt0JRwU2h5bndfi37M9Esp1I2xkvyYQ0/NNYcanmGWU/bv8Y6MpZ+Wb7aH0SpuqxhGpCZQw+jPoMpG1fe+L3MFrbofjWDaab/ZVdD+/fA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604009279; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=YqXty0Hhjl2IAAgQwDKLPITrFdXxEQfGBBXtWrSqdXg=; b=PDgJVlMjD+hyqZ+LDEtkogfBAPbPjqJ6fcTZOtR32VyFQl+n1nU0URzF+WcdLBf/poyRfFcrUDNs+Res6lYJhsbapae9cnL3d+eqxQJESvQoMGVbPRb/3OV8oQq1afmO38d7P9XLwP3ZTrTKSgsbvcD1HpmGNlbuBuwa+8iS3qs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604009279579173.9427166394222; Thu, 29 Oct 2020 15:07:59 -0700 (PDT) Received: from localhost ([::1]:36338 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYG5O-0008MH-Ez for importer@patchew.org; Thu, 29 Oct 2020 18:07:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42400) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG0p-000323-5V for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:15 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:54615) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG0m-0006YJ-4K for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:14 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-294-Wz30tt5VOwWnTtT6P5IgIg-1; Thu, 29 Oct 2020 18:03:03 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 3CFC31018F84; Thu, 29 Oct 2020 22:03:02 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id C59731975F; Thu, 29 Oct 2020 22:03:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604008987; 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=YqXty0Hhjl2IAAgQwDKLPITrFdXxEQfGBBXtWrSqdXg=; b=ZTQvgrZO1LCRSDh9gaynXgAgKnw/tzgizIgdiOBxZDYLx+G8nF9O+hb8NVuPkU4A0ZPEPX 3YLWcvc63hMJ+madRXBMv+Wn/DlV9WX0gFTjc8gFRXll+RerWrx/iQAZNEMpLwxxYknkVC Ss3c6SHHkY4fXnG6Uhoxnpg6/mN6/KA= X-MC-Unique: Wz30tt5VOwWnTtT6P5IgIg-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 05/36] sparc: Check dev->realized at sparc_set_nwindows() Date: Thu, 29 Oct 2020 18:02:15 -0400 Message-Id: <20201029220246.472693-6-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable 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=63.128.21.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 01:47:28 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Daniel P. Berrange" , John Snow , Mark Cave-Ayland , Markus Armbruster , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Artyom Tarasenko Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" sparc_set_nwindows() is one of the very few property setters that don't check dev->realized, and there's no reason for it to be special. Check dev->realized like the other setters. Signed-off-by: Eduardo Habkost Reviewed-by: Marc-Andr=C3=A9 Lureau --- Cc: Mark Cave-Ayland Cc: Artyom Tarasenko Cc: qemu-devel@nongnu.org --- target/sparc/cpu.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/target/sparc/cpu.c b/target/sparc/cpu.c index cf21efd85f..8ecb20e55f 100644 --- a/target/sparc/cpu.c +++ b/target/sparc/cpu.c @@ -798,11 +798,17 @@ static void sparc_get_nwindows(Object *obj, Visitor *= v, const char *name, static void sparc_set_nwindows(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { + DeviceState *dev =3D DEVICE(obj); const int64_t min =3D MIN_NWINDOWS; const int64_t max =3D MAX_NWINDOWS; SPARCCPU *cpu =3D SPARC_CPU(obj); int64_t value; =20 + if (dev->realized) { + qdev_prop_set_after_realize(dev, name, errp); + return; + } + if (!visit_type_int(v, name, &value, errp)) { return; } --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604009148; cv=none; d=zohomail.com; s=zohoarc; b=SiCZZcGXZlgjq/DS1vfXvuPwg2mMdtArLEdQ3aRsbBqN8AlxG3m5kYKBGCt6zSEhLn9dScDv/e4lFErRWp8CQE03cdrK0vnRHJXCqMM2Q21mXWnw8SNcRW5ERt/szLHYuc1AkZKckKawk6KJUjdtuyQ+g+WW48wQyBRmwAr5AE0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604009148; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=tMyj+yLLsuoC33V6ByrjXJuM5TMj0lzUZ7QO9e+FUJE=; b=Qdy9jZhPOAC1EvV3i7lq++febfAvJMvhX3D3K/+o4lj/ryTAdsh7wZIwjx+xpAbtEXd0szZiveC9gA6mrp3ZvPQvLaEc6nwP/aqn7HC1lAeyjNHM3FAsvzloZuWb79O8Rs/kM2YjDMEehZpGr2NfGqz2tj4n85KHfPo4h0MYy0Q= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604009148089381.2621422094355; Thu, 29 Oct 2020 15:05:48 -0700 (PDT) Received: from localhost ([::1]:56196 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYG3H-0004rW-29 for importer@patchew.org; Thu, 29 Oct 2020 18:05:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42370) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG0m-0002wP-DK for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:12 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:48955) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG0h-0006Y8-00 for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:12 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-145-XpMw6JjSNVO4eFF_Btb8EA-1; Thu, 29 Oct 2020 18:03:04 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 6E3A39CC02 for ; Thu, 29 Oct 2020 22:03:03 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3598D60C17; Thu, 29 Oct 2020 22:03:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604008986; 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=tMyj+yLLsuoC33V6ByrjXJuM5TMj0lzUZ7QO9e+FUJE=; b=E1DuD9tzl79xwwuzRtc+2QGIrgWBTtArm1Kw/tBRXbHu17zIahMDE0i7iJpR1dZeQ/P1Dl 8sb76YwgprslYw4+sqhDCzusKGKfuTb4ngeNW4cFmdZvlgywQBP3xaHrYc/MKYPmvyer8V WDRzsIjd6S/QZt1JXAQOBaYk+oYx7LU= X-MC-Unique: XpMw6JjSNVO4eFF_Btb8EA-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 06/36] qdev: Don't use dev->id on set_size32() error message Date: Thu, 29 Oct 2020 18:02:16 -0400 Message-Id: <20201029220246.472693-7-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=216.205.24.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 00:47:54 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Daniel P. Berrange" , John Snow , Markus Armbruster , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) All other qdev property error messages use "." instead of ".". Change set_size32() for consistency, and to make the code not specific to TYPE_DEVICE. Signed-off-by: Eduardo Habkost Reviewed-by: Marc-Andr=C3=A9 Lureau --- Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-properties.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 67ae19df05..daf844c2d3 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -542,7 +542,7 @@ static void set_size32(Object *obj, Visitor *v, const c= har *name, void *opaque, error_setg(errp, "Property %s.%s doesn't take value %" PRIu64 " (maximum: %u)", - dev->id ? : "", name, value, UINT32_MAX); + object_get_typename(obj), name, value, UINT32_MAX); return; } =20 --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604009404; cv=none; d=zohomail.com; s=zohoarc; b=BsrFrtTzG1gUaJ/kgnh6kYiGwoVIC4hYeafQ/dniS04BCzkoJBypiTdWM+jv3qJEF8xZ2avsd4e72+wGjFDdxT5CnNeVVqFsCsm847qYhOTY/OOl9AY1dLXCj/SUr7zP9A66QKawdU+JP637iDsefq6JgGpMvi8Nq5a/ZxaW0Xg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604009404; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=tAM7xYCyGMCOzIDu0PHt5yIiFGpsggoFjf1K1OhATs8=; b=Vy7C3hdbCS3dy1tvYwZ6piNs4vOI4CgXYyClqutJc34YtIheWTuhyTYNVzzzx/Vb1cjKnfJukZ5W0dElP1dBEyvD4fkqavLzBb/eQrgw4yDJiSjFikvUdxpueTPXs3iaypN7uGOlWgTDoNDmqNWa1VCAWCmAmPa7M3hXfYWjzeU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604009404277773.1348520935074; Thu, 29 Oct 2020 15:10:04 -0700 (PDT) Received: from localhost ([::1]:44118 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYG7P-00034l-7O for importer@patchew.org; Thu, 29 Oct 2020 18:10:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42388) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG0n-0002yp-N9 for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:13 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:26541) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG0m-0006YK-1Z for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:13 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-157-QYPHd_eUO22r27DssGOT4Q-1; Thu, 29 Oct 2020 18:03:05 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id A8EDF10E2192 for ; Thu, 29 Oct 2020 22:03:04 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6A8C25D9D3; Thu, 29 Oct 2020 22:03:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604008987; 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=tAM7xYCyGMCOzIDu0PHt5yIiFGpsggoFjf1K1OhATs8=; b=M2m/grPVEJ9trwPhEVTZ3OXw8NF5x8GAT+82QSv65YVD7/QRPO2/Q5BM9stNVExVfepK0e N+GitxUaTqVEa+tG/LNvxJGpDd3kFTwGTpTqXGj49Qtg61Rpy8qKO2pPmH2pYDpDUJbAx7 +ndqA5kK70f6SjeUfT5R8pbdGTm+VB8= X-MC-Unique: QYPHd_eUO22r27DssGOT4Q-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 07/36] qdev: Make PropertyInfo.print method get Object* argument Date: Thu, 29 Oct 2020 18:02:17 -0400 Message-Id: <20201029220246.472693-8-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=216.205.24.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 00:47:54 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Daniel P. Berrange" , John Snow , Markus Armbruster , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Make the code more generic and not specific to TYPE_DEVICE. Signed-off-by: Eduardo Habkost Reviewed-by: Marc-Andr=C3=A9 Lureau --- Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- include/hw/qdev-properties.h | 2 +- hw/core/qdev-properties-system.c | 3 ++- hw/core/qdev-properties.c | 3 +-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h index db7ce51dd5..0ea822e6a7 100644 --- a/include/hw/qdev-properties.h +++ b/include/hw/qdev-properties.h @@ -32,7 +32,7 @@ struct PropertyInfo { const char *name; const char *description; const QEnumLookup *enum_table; - int (*print)(DeviceState *dev, Property *prop, char *dest, size_t len); + int (*print)(Object *obj, Property *prop, char *dest, size_t len); void (*set_default_value)(ObjectProperty *op, const Property *prop); void (*create)(ObjectClass *oc, Property *prop); ObjectPropertyAccessor *get; diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-sys= tem.c index b81a4e8d14..d0fb063a49 100644 --- a/hw/core/qdev-properties-system.c +++ b/hw/core/qdev-properties-system.c @@ -801,9 +801,10 @@ invalid: g_free(str); } =20 -static int print_pci_devfn(DeviceState *dev, Property *prop, char *dest, +static int print_pci_devfn(Object *obj, Property *prop, char *dest, size_t len) { + DeviceState *dev =3D DEVICE(obj); int32_t *ptr =3D qdev_get_prop_ptr(dev, prop); =20 if (*ptr =3D=3D -1) { diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index daf844c2d3..b6cf53e929 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -988,13 +988,12 @@ static void qdev_get_legacy_property(Object *obj, Vis= itor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; =20 char buffer[1024]; char *ptr =3D buffer; =20 - prop->info->print(dev, prop, buffer, sizeof(buffer)); + prop->info->print(obj, prop, buffer, sizeof(buffer)); visit_type_str(v, name, &ptr, errp); } =20 --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604009543; cv=none; d=zohomail.com; s=zohoarc; b=j40AKVJvz05FNVUXPvqmv0GqQ3QWgu/7F9bM6yxFiaHZLnNfxCeHuVEKrMCwH6GVG30QyEXWfq4ZwOxfC0Z5zTLGIUKTLP6VqmP3Sno8xyhzjZhZRBd1bWUw5J/R9nL4HxHDpfhDIq8y4bpVx7dYDiqi4r5vCuJDII0eTo2AU2A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604009543; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=1kDCf8oi17+eqObCGQGkMjPNBVRKUZzmaaMtICo8ucU=; b=DUtdpKjTG+/KFzFboxFsPxahwce4nSV7JGfyyl8FpCfhP2wZsm48F072DyR8M2c6bM0yd+ENU+ggnaDs9qTnlaGxSGYs7ZP4S/ePqgSTHrzATqE/YcEzu4BL3oWCKKSXpXJEXDM85rC1E4+mzW5E3ONC94tAFQ2tIzx/pdijcb8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604009543202526.8818435433703; Thu, 29 Oct 2020 15:12:23 -0700 (PDT) Received: from localhost ([::1]:52512 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYG9e-0006Y9-0a for importer@patchew.org; Thu, 29 Oct 2020 18:12:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42390) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG0n-0002z5-RQ for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:13 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:50228) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG0m-0006YU-3w for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:13 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-281-I79x39D1PpCDQd5vUEXwVg-1; Thu, 29 Oct 2020 18:03:07 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 415909CC07 for ; Thu, 29 Oct 2020 22:03:06 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id CAFA660C17; Thu, 29 Oct 2020 22:03:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604008988; 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=1kDCf8oi17+eqObCGQGkMjPNBVRKUZzmaaMtICo8ucU=; b=CzKSu3PVDfm89W+Z64h66UXWay4YTnXx6ox3SA3SD5rcdM4rZ3hqijyAgAPoJzheFl5le1 2inl0c9gxYAhPWEA0iXU/CLq9EKNI64QJ88vrBTC16cNiYi4LkSQ2SXm12TMZqk5hfDL1W BQUTZbLBa3sCwJSodnTKz3RVbuL3be8= X-MC-Unique: I79x39D1PpCDQd5vUEXwVg-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 08/36] qdev: Make bit_prop_set() get Object* argument Date: Thu, 29 Oct 2020 18:02:18 -0400 Message-Id: <20201029220246.472693-9-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=216.205.24.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 00:47:54 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Daniel P. Berrange" , John Snow , Markus Armbruster , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Make the code more generic and not specific to TYPE_DEVICE. Signed-off-by: Eduardo Habkost Reviewed-by: Marc-Andr=C3=A9 Lureau --- Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-properties.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index b6cf53e929..3a4638f4de 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -92,8 +92,9 @@ static uint32_t qdev_get_prop_mask(Property *prop) return 0x1 << prop->bitnr; } =20 -static void bit_prop_set(DeviceState *dev, Property *props, bool val) +static void bit_prop_set(Object *obj, Property *props, bool val) { + DeviceState *dev =3D DEVICE(obj); uint32_t *p =3D qdev_get_prop_ptr(dev, props); uint32_t mask =3D qdev_get_prop_mask(props); if (val) { @@ -129,7 +130,7 @@ static void prop_set_bit(Object *obj, Visitor *v, const= char *name, if (!visit_type_bool(v, name, &value, errp)) { return; } - bit_prop_set(dev, prop, value); + bit_prop_set(obj, prop, value); } =20 static void set_default_value_bool(ObjectProperty *op, const Property *pro= p) @@ -153,8 +154,9 @@ static uint64_t qdev_get_prop_mask64(Property *prop) return 0x1ull << prop->bitnr; } =20 -static void bit64_prop_set(DeviceState *dev, Property *props, bool val) +static void bit64_prop_set(Object *obj, Property *props, bool val) { + DeviceState *dev =3D DEVICE(obj); uint64_t *p =3D qdev_get_prop_ptr(dev, props); uint64_t mask =3D qdev_get_prop_mask64(props); if (val) { @@ -190,7 +192,7 @@ static void prop_set_bit64(Object *obj, Visitor *v, con= st char *name, if (!visit_type_bool(v, name, &value, errp)) { return; } - bit64_prop_set(dev, prop, value); + bit64_prop_set(obj, prop, value); } =20 const PropertyInfo qdev_prop_bit64 =3D { --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604009034; cv=none; d=zohomail.com; s=zohoarc; b=Fr9PbdBfua/ud+xlM7uP8LofNwOhG5A3xejEdC9fmOFvvYdeGCCLAd9XS8O08ldC3Tu4cDZEXWSj/WiIIwXHm2sV6ctGBY79qBHBri2pE+u7E0h8Pp/QTa17gCCMDYW+ozaKuHlCB8BXkWz4McMF2gfegp+woKD14yPAez3dva0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604009034; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=SnHfOwCs2tzlEiGVuOK1p3qk46w81VRMdurae76Skl8=; b=Jg7HOuCDuzcJRPy05iz1yMMeCc+fhAe74JcKJlB+2GTuwLgpYkTN41zTiXr+gefW462bukU5O2lafWNnvwM2tFUgjZDlOt7Hf5wz5LfLvUQoCpUTSjIXVUfz6Slu04UjwrscPZs0tCXOxwvf/L15SZoEN9XJvUHgyd7oZU1Utzg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1604009034026666.5932731457248; Thu, 29 Oct 2020 15:03:54 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.15177.38142 (Exim 4.92) (envelope-from ) id 1kYG0w-0002O3-MS; Thu, 29 Oct 2020 22:03:22 +0000 Received: by outflank-mailman (output) from mailman id 15177.38142; Thu, 29 Oct 2020 22:03:22 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kYG0w-0002Nw-JF; Thu, 29 Oct 2020 22:03:22 +0000 Received: by outflank-mailman (input) for mailman id 15177; Thu, 29 Oct 2020 22:03:21 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kYG0v-0002Nq-Fj for xen-devel@lists.xenproject.org; Thu, 29 Oct 2020 22:03:21 +0000 Received: from us-smtp-delivery-124.mimecast.com (unknown [216.205.24.124]) by us1-rack-iad1.inumbo.com (Halon) with ESMTP id 0b923d13-7339-4191-9bbf-e356f1660d3f; Thu, 29 Oct 2020 22:03:19 +0000 (UTC) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-161-e21b2LpUM7-lrnfJUBFn8A-1; Thu, 29 Oct 2020 18:03:15 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 75CEE81CAF8; Thu, 29 Oct 2020 22:03:13 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id EB3B455780; Thu, 29 Oct 2020 22:03:06 +0000 (UTC) Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kYG0v-0002Nq-Fj for xen-devel@lists.xenproject.org; Thu, 29 Oct 2020 22:03:21 +0000 Received: from us-smtp-delivery-124.mimecast.com (unknown [216.205.24.124]) by us1-rack-iad1.inumbo.com (Halon) with ESMTP id 0b923d13-7339-4191-9bbf-e356f1660d3f; Thu, 29 Oct 2020 22:03:19 +0000 (UTC) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-161-e21b2LpUM7-lrnfJUBFn8A-1; Thu, 29 Oct 2020 18:03:15 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 75CEE81CAF8; Thu, 29 Oct 2020 22:03:13 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id EB3B455780; Thu, 29 Oct 2020 22:03:06 +0000 (UTC) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 0b923d13-7339-4191-9bbf-e356f1660d3f DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604008998; 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=SnHfOwCs2tzlEiGVuOK1p3qk46w81VRMdurae76Skl8=; b=FT/VgYAUG3Rff4KfY5gl1d9vujWs86/VmnF2gdGVSSQhes8paUtAHZJV7EhiPyjqmxbtad ojjPRi7M40BvNLGHxX5DfxXF9MVjKvVt+GM1M834JpxwoAKYMNmP+/A47eeq9Mf3TdypLy bOELrsSgjxtIKXQFQFC82JpL9THM140= X-MC-Unique: e21b2LpUM7-lrnfJUBFn8A-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Cc: John Snow , Paolo Bonzini , Eric Blake , "Daniel P. Berrange" , Markus Armbruster , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Igor Mammedov , Stefan Berger , Stefano Stabellini , Anthony Perard , Paul Durrant , Kevin Wolf , Max Reitz , Richard Henderson , David Hildenbrand , Cornelia Huck , Halil Pasic , Christian Borntraeger , Thomas Huth , Matthew Rosato , Alex Williamson , xen-devel@lists.xenproject.org, qemu-block@nongnu.org, qemu-s390x@nongnu.org Subject: [PATCH 09/36] qdev: Make qdev_get_prop_ptr() get Object* arg Date: Thu, 29 Oct 2020 18:02:19 -0400 Message-Id: <20201029220246.472693-10-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Make the code more generic and not specific to TYPE_DEVICE. Signed-off-by: Eduardo Habkost Reviewed-by: Marc-Andr=C3=A9 Lureau Reviewed-by:=C2=A0 Stefan Berger --- Cc: Stefan Berger Cc: Stefano Stabellini Cc: Anthony Perard Cc: Paul Durrant Cc: Kevin Wolf Cc: Max Reitz Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: Richard Henderson Cc: David Hildenbrand Cc: Cornelia Huck Cc: Halil Pasic Cc: Christian Borntraeger Cc: Thomas Huth Cc: Matthew Rosato Cc: Alex Williamson Cc: qemu-devel@nongnu.org Cc: xen-devel@lists.xenproject.org Cc: qemu-block@nongnu.org Cc: qemu-s390x@nongnu.org --- include/hw/qdev-properties.h | 2 +- backends/tpm/tpm_util.c | 8 ++-- hw/block/xen-block.c | 6 +-- hw/core/qdev-properties-system.c | 57 +++++++++------------- hw/core/qdev-properties.c | 82 +++++++++++++------------------- hw/s390x/css.c | 5 +- hw/s390x/s390-pci-bus.c | 4 +- hw/vfio/pci-quirks.c | 5 +- 8 files changed, 68 insertions(+), 101 deletions(-) diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h index 0ea822e6a7..0b92cfc761 100644 --- a/include/hw/qdev-properties.h +++ b/include/hw/qdev-properties.h @@ -302,7 +302,7 @@ void qdev_prop_set_macaddr(DeviceState *dev, const char= *name, const uint8_t *value); void qdev_prop_set_enum(DeviceState *dev, const char *name, int value); =20 -void *qdev_get_prop_ptr(DeviceState *dev, Property *prop); +void *qdev_get_prop_ptr(Object *obj, Property *prop); =20 void qdev_prop_register_global(GlobalProperty *prop); const GlobalProperty *qdev_find_global_prop(DeviceState *dev, diff --git a/backends/tpm/tpm_util.c b/backends/tpm/tpm_util.c index b58d298c1a..e91c21dd4a 100644 --- a/backends/tpm/tpm_util.c +++ b/backends/tpm/tpm_util.c @@ -35,8 +35,7 @@ static void get_tpm(Object *obj, Visitor *v, const char *name, void *opaqu= e, Error **errp) { - DeviceState *dev =3D DEVICE(obj); - TPMBackend **be =3D qdev_get_prop_ptr(dev, opaque); + TPMBackend **be =3D qdev_get_prop_ptr(obj, opaque); char *p; =20 p =3D g_strdup(*be ? (*be)->id : ""); @@ -49,7 +48,7 @@ static void set_tpm(Object *obj, Visitor *v, const char *= name, void *opaque, { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - TPMBackend *s, **be =3D qdev_get_prop_ptr(dev, prop); + TPMBackend *s, **be =3D qdev_get_prop_ptr(obj, prop); char *str; =20 if (dev->realized) { @@ -73,9 +72,8 @@ static void set_tpm(Object *obj, Visitor *v, const char *= name, void *opaque, =20 static void release_tpm(Object *obj, const char *name, void *opaque) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - TPMBackend **be =3D qdev_get_prop_ptr(dev, prop); + TPMBackend **be =3D qdev_get_prop_ptr(obj, prop); =20 if (*be) { tpm_backend_reset(*be); diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c index 8a7a3f5452..1ba9981c08 100644 --- a/hw/block/xen-block.c +++ b/hw/block/xen-block.c @@ -335,9 +335,8 @@ static char *disk_to_vbd_name(unsigned int disk) static void xen_block_get_vdev(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - XenBlockVdev *vdev =3D qdev_get_prop_ptr(dev, prop); + XenBlockVdev *vdev =3D qdev_get_prop_ptr(obj, prop); char *str; =20 switch (vdev->type) { @@ -396,9 +395,8 @@ static int vbd_name_to_disk(const char *name, const cha= r **endp, static void xen_block_set_vdev(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - XenBlockVdev *vdev =3D qdev_get_prop_ptr(dev, prop); + XenBlockVdev *vdev =3D qdev_get_prop_ptr(obj, prop); char *str, *p; const char *end; =20 diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-sys= tem.c index d0fb063a49..c8c73c371b 100644 --- a/hw/core/qdev-properties-system.c +++ b/hw/core/qdev-properties-system.c @@ -59,9 +59,8 @@ static bool check_prop_still_unset(DeviceState *dev, cons= t char *name, static void get_drive(Object *obj, Visitor *v, const char *name, void *opa= que, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - void **ptr =3D qdev_get_prop_ptr(dev, prop); + void **ptr =3D qdev_get_prop_ptr(obj, prop); const char *value; char *p; =20 @@ -87,7 +86,7 @@ static void set_drive_helper(Object *obj, Visitor *v, con= st char *name, { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - void **ptr =3D qdev_get_prop_ptr(dev, prop); + void **ptr =3D qdev_get_prop_ptr(obj, prop); char *str; BlockBackend *blk; bool blk_created =3D false; @@ -185,7 +184,7 @@ static void release_drive(Object *obj, const char *name= , void *opaque) { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - BlockBackend **ptr =3D qdev_get_prop_ptr(dev, prop); + BlockBackend **ptr =3D qdev_get_prop_ptr(obj, prop); =20 if (*ptr) { AioContext *ctx =3D blk_get_aio_context(*ptr); @@ -218,8 +217,7 @@ const PropertyInfo qdev_prop_drive_iothread =3D { static void get_chr(Object *obj, Visitor *v, const char *name, void *opaqu= e, Error **errp) { - DeviceState *dev =3D DEVICE(obj); - CharBackend *be =3D qdev_get_prop_ptr(dev, opaque); + CharBackend *be =3D qdev_get_prop_ptr(obj, opaque); char *p; =20 p =3D g_strdup(be->chr && be->chr->label ? be->chr->label : ""); @@ -232,7 +230,7 @@ static void set_chr(Object *obj, Visitor *v, const char= *name, void *opaque, { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - CharBackend *be =3D qdev_get_prop_ptr(dev, prop); + CharBackend *be =3D qdev_get_prop_ptr(obj, prop); Chardev *s; char *str; =20 @@ -272,9 +270,8 @@ static void set_chr(Object *obj, Visitor *v, const char= *name, void *opaque, =20 static void release_chr(Object *obj, const char *name, void *opaque) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - CharBackend *be =3D qdev_get_prop_ptr(dev, prop); + CharBackend *be =3D qdev_get_prop_ptr(obj, prop); =20 qemu_chr_fe_deinit(be, false); } @@ -297,9 +294,8 @@ const PropertyInfo qdev_prop_chr =3D { static void get_mac(Object *obj, Visitor *v, const char *name, void *opaqu= e, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - MACAddr *mac =3D qdev_get_prop_ptr(dev, prop); + MACAddr *mac =3D qdev_get_prop_ptr(obj, prop); char buffer[2 * 6 + 5 + 1]; char *p =3D buffer; =20 @@ -315,7 +311,7 @@ static void set_mac(Object *obj, Visitor *v, const char= *name, void *opaque, { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - MACAddr *mac =3D qdev_get_prop_ptr(dev, prop); + MACAddr *mac =3D qdev_get_prop_ptr(obj, prop); int i, pos; char *str; const char *p; @@ -381,9 +377,8 @@ void qdev_prop_set_macaddr(DeviceState *dev, const char= *name, static void get_netdev(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - NICPeers *peers_ptr =3D qdev_get_prop_ptr(dev, prop); + NICPeers *peers_ptr =3D qdev_get_prop_ptr(obj, prop); char *p =3D g_strdup(peers_ptr->ncs[0] ? peers_ptr->ncs[0]->name : ""); =20 visit_type_str(v, name, &p, errp); @@ -395,7 +390,7 @@ static void set_netdev(Object *obj, Visitor *v, const c= har *name, { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - NICPeers *peers_ptr =3D qdev_get_prop_ptr(dev, prop); + NICPeers *peers_ptr =3D qdev_get_prop_ptr(obj, prop); NetClientState **ncs =3D peers_ptr->ncs; NetClientState *peers[MAX_QUEUE_NUM]; int queues, err =3D 0, i =3D 0; @@ -461,9 +456,8 @@ const PropertyInfo qdev_prop_netdev =3D { static void get_audiodev(Object *obj, Visitor *v, const char* name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - QEMUSoundCard *card =3D qdev_get_prop_ptr(dev, prop); + QEMUSoundCard *card =3D qdev_get_prop_ptr(obj, prop); char *p =3D g_strdup(audio_get_id(card)); =20 visit_type_str(v, name, &p, errp); @@ -475,7 +469,7 @@ static void set_audiodev(Object *obj, Visitor *v, const= char* name, { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - QEMUSoundCard *card =3D qdev_get_prop_ptr(dev, prop); + QEMUSoundCard *card =3D qdev_get_prop_ptr(obj, prop); AudioState *state; int err =3D 0; char *str; @@ -582,7 +576,7 @@ static void set_blocksize(Object *obj, Visitor *v, cons= t char *name, { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - uint32_t *ptr =3D qdev_get_prop_ptr(dev, prop); + uint32_t *ptr =3D qdev_get_prop_ptr(obj, prop); uint64_t value; Error *local_err =3D NULL; =20 @@ -674,9 +668,8 @@ const PropertyInfo qdev_prop_multifd_compression =3D { static void get_reserved_region(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - ReservedRegion *rr =3D qdev_get_prop_ptr(dev, prop); + ReservedRegion *rr =3D qdev_get_prop_ptr(obj, prop); char buffer[64]; char *p =3D buffer; int rc; @@ -693,7 +686,7 @@ static void set_reserved_region(Object *obj, Visitor *v= , const char *name, { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - ReservedRegion *rr =3D qdev_get_prop_ptr(dev, prop); + ReservedRegion *rr =3D qdev_get_prop_ptr(obj, prop); Error *local_err =3D NULL; const char *endptr; char *str; @@ -761,7 +754,7 @@ static void set_pci_devfn(Object *obj, Visitor *v, cons= t char *name, { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - int32_t value, *ptr =3D qdev_get_prop_ptr(dev, prop); + int32_t value, *ptr =3D qdev_get_prop_ptr(obj, prop); unsigned int slot, fn, n; char *str; =20 @@ -804,8 +797,7 @@ invalid: static int print_pci_devfn(Object *obj, Property *prop, char *dest, size_t len) { - DeviceState *dev =3D DEVICE(obj); - int32_t *ptr =3D qdev_get_prop_ptr(dev, prop); + int32_t *ptr =3D qdev_get_prop_ptr(obj, prop); =20 if (*ptr =3D=3D -1) { return snprintf(dest, len, ""); @@ -828,9 +820,8 @@ const PropertyInfo qdev_prop_pci_devfn =3D { static void get_pci_host_devaddr(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - PCIHostDeviceAddress *addr =3D qdev_get_prop_ptr(dev, prop); + PCIHostDeviceAddress *addr =3D qdev_get_prop_ptr(obj, prop); char buffer[] =3D "ffff:ff:ff.f"; char *p =3D buffer; int rc =3D 0; @@ -857,7 +848,7 @@ static void set_pci_host_devaddr(Object *obj, Visitor *= v, const char *name, { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - PCIHostDeviceAddress *addr =3D qdev_get_prop_ptr(dev, prop); + PCIHostDeviceAddress *addr =3D qdev_get_prop_ptr(obj, prop); char *str, *p; const char *e; unsigned long val; @@ -950,9 +941,8 @@ const PropertyInfo qdev_prop_off_auto_pcibar =3D { static void get_prop_pcielinkspeed(Object *obj, Visitor *v, const char *na= me, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - PCIExpLinkSpeed *p =3D qdev_get_prop_ptr(dev, prop); + PCIExpLinkSpeed *p =3D qdev_get_prop_ptr(obj, prop); int speed; =20 switch (*p) { @@ -981,7 +971,7 @@ static void set_prop_pcielinkspeed(Object *obj, Visitor= *v, const char *name, { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - PCIExpLinkSpeed *p =3D qdev_get_prop_ptr(dev, prop); + PCIExpLinkSpeed *p =3D qdev_get_prop_ptr(obj, prop); int speed; =20 if (dev->realized) { @@ -1027,9 +1017,8 @@ const PropertyInfo qdev_prop_pcie_link_speed =3D { static void get_prop_pcielinkwidth(Object *obj, Visitor *v, const char *na= me, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - PCIExpLinkWidth *p =3D qdev_get_prop_ptr(dev, prop); + PCIExpLinkWidth *p =3D qdev_get_prop_ptr(obj, prop); int width; =20 switch (*p) { @@ -1067,7 +1056,7 @@ static void set_prop_pcielinkwidth(Object *obj, Visit= or *v, const char *name, { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - PCIExpLinkWidth *p =3D qdev_get_prop_ptr(dev, prop); + PCIExpLinkWidth *p =3D qdev_get_prop_ptr(obj, prop); int width; =20 if (dev->realized) { diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 3a4638f4de..0a54a922c8 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -38,9 +38,9 @@ void qdev_prop_allow_set_link_before_realize(const Object= *obj, } } =20 -void *qdev_get_prop_ptr(DeviceState *dev, Property *prop) +void *qdev_get_prop_ptr(Object *obj, Property *prop) { - void *ptr =3D dev; + void *ptr =3D obj; ptr +=3D prop->offset; return ptr; } @@ -48,9 +48,8 @@ void *qdev_get_prop_ptr(DeviceState *dev, Property *prop) void qdev_propinfo_get_enum(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - int *ptr =3D qdev_get_prop_ptr(dev, prop); + int *ptr =3D qdev_get_prop_ptr(obj, prop); =20 visit_type_enum(v, prop->name, ptr, prop->info->enum_table, errp); } @@ -60,7 +59,7 @@ void qdev_propinfo_set_enum(Object *obj, Visitor *v, cons= t char *name, { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - int *ptr =3D qdev_get_prop_ptr(dev, prop); + int *ptr =3D qdev_get_prop_ptr(obj, prop); =20 if (dev->realized) { qdev_prop_set_after_realize(dev, name, errp); @@ -94,8 +93,7 @@ static uint32_t qdev_get_prop_mask(Property *prop) =20 static void bit_prop_set(Object *obj, Property *props, bool val) { - DeviceState *dev =3D DEVICE(obj); - uint32_t *p =3D qdev_get_prop_ptr(dev, props); + uint32_t *p =3D qdev_get_prop_ptr(obj, props); uint32_t mask =3D qdev_get_prop_mask(props); if (val) { *p |=3D mask; @@ -107,9 +105,8 @@ static void bit_prop_set(Object *obj, Property *props, = bool val) static void prop_get_bit(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - uint32_t *p =3D qdev_get_prop_ptr(dev, prop); + uint32_t *p =3D qdev_get_prop_ptr(obj, prop); bool value =3D (*p & qdev_get_prop_mask(prop)) !=3D 0; =20 visit_type_bool(v, name, &value, errp); @@ -156,8 +153,7 @@ static uint64_t qdev_get_prop_mask64(Property *prop) =20 static void bit64_prop_set(Object *obj, Property *props, bool val) { - DeviceState *dev =3D DEVICE(obj); - uint64_t *p =3D qdev_get_prop_ptr(dev, props); + uint64_t *p =3D qdev_get_prop_ptr(obj, props); uint64_t mask =3D qdev_get_prop_mask64(props); if (val) { *p |=3D mask; @@ -169,9 +165,8 @@ static void bit64_prop_set(Object *obj, Property *props= , bool val) static void prop_get_bit64(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - uint64_t *p =3D qdev_get_prop_ptr(dev, prop); + uint64_t *p =3D qdev_get_prop_ptr(obj, prop); bool value =3D (*p & qdev_get_prop_mask64(prop)) !=3D 0; =20 visit_type_bool(v, name, &value, errp); @@ -208,9 +203,8 @@ const PropertyInfo qdev_prop_bit64 =3D { static void get_bool(Object *obj, Visitor *v, const char *name, void *opaq= ue, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - bool *ptr =3D qdev_get_prop_ptr(dev, prop); + bool *ptr =3D qdev_get_prop_ptr(obj, prop); =20 visit_type_bool(v, name, ptr, errp); } @@ -220,7 +214,7 @@ static void set_bool(Object *obj, Visitor *v, const cha= r *name, void *opaque, { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - bool *ptr =3D qdev_get_prop_ptr(dev, prop); + bool *ptr =3D qdev_get_prop_ptr(obj, prop); =20 if (dev->realized) { qdev_prop_set_after_realize(dev, name, errp); @@ -242,9 +236,8 @@ const PropertyInfo qdev_prop_bool =3D { static void get_uint8(Object *obj, Visitor *v, const char *name, void *opa= que, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - uint8_t *ptr =3D qdev_get_prop_ptr(dev, prop); + uint8_t *ptr =3D qdev_get_prop_ptr(obj, prop); =20 visit_type_uint8(v, name, ptr, errp); } @@ -254,7 +247,7 @@ static void set_uint8(Object *obj, Visitor *v, const ch= ar *name, void *opaque, { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - uint8_t *ptr =3D qdev_get_prop_ptr(dev, prop); + uint8_t *ptr =3D qdev_get_prop_ptr(obj, prop); =20 if (dev->realized) { qdev_prop_set_after_realize(dev, name, errp); @@ -288,9 +281,8 @@ const PropertyInfo qdev_prop_uint8 =3D { void qdev_propinfo_get_uint16(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - uint16_t *ptr =3D qdev_get_prop_ptr(dev, prop); + uint16_t *ptr =3D qdev_get_prop_ptr(obj, prop); =20 visit_type_uint16(v, name, ptr, errp); } @@ -300,7 +292,7 @@ static void set_uint16(Object *obj, Visitor *v, const c= har *name, { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - uint16_t *ptr =3D qdev_get_prop_ptr(dev, prop); + uint16_t *ptr =3D qdev_get_prop_ptr(obj, prop); =20 if (dev->realized) { qdev_prop_set_after_realize(dev, name, errp); @@ -322,9 +314,8 @@ const PropertyInfo qdev_prop_uint16 =3D { static void get_uint32(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - uint32_t *ptr =3D qdev_get_prop_ptr(dev, prop); + uint32_t *ptr =3D qdev_get_prop_ptr(obj, prop); =20 visit_type_uint32(v, name, ptr, errp); } @@ -334,7 +325,7 @@ static void set_uint32(Object *obj, Visitor *v, const c= har *name, { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - uint32_t *ptr =3D qdev_get_prop_ptr(dev, prop); + uint32_t *ptr =3D qdev_get_prop_ptr(obj, prop); =20 if (dev->realized) { qdev_prop_set_after_realize(dev, name, errp); @@ -347,9 +338,8 @@ static void set_uint32(Object *obj, Visitor *v, const c= har *name, void qdev_propinfo_get_int32(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - int32_t *ptr =3D qdev_get_prop_ptr(dev, prop); + int32_t *ptr =3D qdev_get_prop_ptr(obj, prop); =20 visit_type_int32(v, name, ptr, errp); } @@ -359,7 +349,7 @@ static void set_int32(Object *obj, Visitor *v, const ch= ar *name, void *opaque, { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - int32_t *ptr =3D qdev_get_prop_ptr(dev, prop); + int32_t *ptr =3D qdev_get_prop_ptr(obj, prop); =20 if (dev->realized) { qdev_prop_set_after_realize(dev, name, errp); @@ -388,9 +378,8 @@ const PropertyInfo qdev_prop_int32 =3D { static void get_uint64(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - uint64_t *ptr =3D qdev_get_prop_ptr(dev, prop); + uint64_t *ptr =3D qdev_get_prop_ptr(obj, prop); =20 visit_type_uint64(v, name, ptr, errp); } @@ -400,7 +389,7 @@ static void set_uint64(Object *obj, Visitor *v, const c= har *name, { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - uint64_t *ptr =3D qdev_get_prop_ptr(dev, prop); + uint64_t *ptr =3D qdev_get_prop_ptr(obj, prop); =20 if (dev->realized) { qdev_prop_set_after_realize(dev, name, errp); @@ -413,9 +402,8 @@ static void set_uint64(Object *obj, Visitor *v, const c= har *name, static void get_int64(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - int64_t *ptr =3D qdev_get_prop_ptr(dev, prop); + int64_t *ptr =3D qdev_get_prop_ptr(obj, prop); =20 visit_type_int64(v, name, ptr, errp); } @@ -425,7 +413,7 @@ static void set_int64(Object *obj, Visitor *v, const ch= ar *name, { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - int64_t *ptr =3D qdev_get_prop_ptr(dev, prop); + int64_t *ptr =3D qdev_get_prop_ptr(obj, prop); =20 if (dev->realized) { qdev_prop_set_after_realize(dev, name, errp); @@ -454,15 +442,14 @@ const PropertyInfo qdev_prop_int64 =3D { static void release_string(Object *obj, const char *name, void *opaque) { Property *prop =3D opaque; - g_free(*(char **)qdev_get_prop_ptr(DEVICE(obj), prop)); + g_free(*(char **)qdev_get_prop_ptr(obj, prop)); } =20 static void get_string(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - char **ptr =3D qdev_get_prop_ptr(dev, prop); + char **ptr =3D qdev_get_prop_ptr(obj, prop); =20 if (!*ptr) { char *str =3D (char *)""; @@ -477,7 +464,7 @@ static void set_string(Object *obj, Visitor *v, const c= har *name, { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - char **ptr =3D qdev_get_prop_ptr(dev, prop); + char **ptr =3D qdev_get_prop_ptr(obj, prop); char *str; =20 if (dev->realized) { @@ -515,9 +502,8 @@ const PropertyInfo qdev_prop_on_off_auto =3D { void qdev_propinfo_get_size32(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - uint32_t *ptr =3D qdev_get_prop_ptr(dev, prop); + uint32_t *ptr =3D qdev_get_prop_ptr(obj, prop); uint64_t value =3D *ptr; =20 visit_type_size(v, name, &value, errp); @@ -528,7 +514,7 @@ static void set_size32(Object *obj, Visitor *v, const c= har *name, void *opaque, { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - uint32_t *ptr =3D qdev_get_prop_ptr(dev, prop); + uint32_t *ptr =3D qdev_get_prop_ptr(obj, prop); uint64_t value; =20 if (dev->realized) { @@ -563,9 +549,8 @@ const PropertyInfo qdev_prop_size32 =3D { static void get_uuid(Object *obj, Visitor *v, const char *name, void *opaq= ue, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - QemuUUID *uuid =3D qdev_get_prop_ptr(dev, prop); + QemuUUID *uuid =3D qdev_get_prop_ptr(obj, prop); char buffer[UUID_FMT_LEN + 1]; char *p =3D buffer; =20 @@ -581,7 +566,7 @@ static void set_uuid(Object *obj, Visitor *v, const cha= r *name, void *opaque, { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - QemuUUID *uuid =3D qdev_get_prop_ptr(dev, prop); + QemuUUID *uuid =3D qdev_get_prop_ptr(obj, prop); char *str; =20 if (dev->realized) { @@ -653,7 +638,7 @@ static void set_prop_arraylen(Object *obj, Visitor *v, = const char *name, */ DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - uint32_t *alenptr =3D qdev_get_prop_ptr(dev, prop); + uint32_t *alenptr =3D qdev_get_prop_ptr(obj, prop); void **arrayptr =3D (void *)dev + prop->arrayoffset; void *eltptr; const char *arrayname; @@ -699,7 +684,7 @@ static void set_prop_arraylen(Object *obj, Visitor *v, = const char *name, * being inside the device struct. */ arrayprop->prop.offset =3D eltptr - (void *)dev; - assert(qdev_get_prop_ptr(dev, &arrayprop->prop) =3D=3D eltptr); + assert(qdev_get_prop_ptr(obj, &arrayprop->prop) =3D=3D eltptr); object_property_add(obj, propname, arrayprop->prop.info->name, arrayprop->prop.info->get, @@ -893,9 +878,8 @@ void qdev_prop_set_globals(DeviceState *dev) static void get_size(Object *obj, Visitor *v, const char *name, void *opaq= ue, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - uint64_t *ptr =3D qdev_get_prop_ptr(dev, prop); + uint64_t *ptr =3D qdev_get_prop_ptr(obj, prop); =20 visit_type_size(v, name, ptr, errp); } @@ -905,7 +889,7 @@ static void set_size(Object *obj, Visitor *v, const cha= r *name, void *opaque, { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - uint64_t *ptr =3D qdev_get_prop_ptr(dev, prop); + uint64_t *ptr =3D qdev_get_prop_ptr(obj, prop); =20 if (dev->realized) { qdev_prop_set_after_realize(dev, name, errp); diff --git a/hw/s390x/css.c b/hw/s390x/css.c index 9961cfe7bf..2b8f33fec2 100644 --- a/hw/s390x/css.c +++ b/hw/s390x/css.c @@ -2343,9 +2343,8 @@ void css_reset(void) static void get_css_devid(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - CssDevId *dev_id =3D qdev_get_prop_ptr(dev, prop); + CssDevId *dev_id =3D qdev_get_prop_ptr(obj, prop); char buffer[] =3D "xx.x.xxxx"; char *p =3D buffer; int r; @@ -2375,7 +2374,7 @@ static void set_css_devid(Object *obj, Visitor *v, co= nst char *name, { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - CssDevId *dev_id =3D qdev_get_prop_ptr(dev, prop); + CssDevId *dev_id =3D qdev_get_prop_ptr(obj, prop); char *str; int num, n1, n2; unsigned int cssid, ssid, devid; diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c index fb4cee87a4..b59cf0651a 100644 --- a/hw/s390x/s390-pci-bus.c +++ b/hw/s390x/s390-pci-bus.c @@ -1248,7 +1248,7 @@ static void s390_pci_get_fid(Object *obj, Visitor *v,= const char *name, void *opaque, Error **errp) { Property *prop =3D opaque; - uint32_t *ptr =3D qdev_get_prop_ptr(DEVICE(obj), prop); + uint32_t *ptr =3D qdev_get_prop_ptr(obj, prop); =20 visit_type_uint32(v, name, ptr, errp); } @@ -1259,7 +1259,7 @@ static void s390_pci_set_fid(Object *obj, Visitor *v,= const char *name, DeviceState *dev =3D DEVICE(obj); S390PCIBusDevice *zpci =3D S390_PCI_DEVICE(obj); Property *prop =3D opaque; - uint32_t *ptr =3D qdev_get_prop_ptr(dev, prop); + uint32_t *ptr =3D qdev_get_prop_ptr(obj, prop); =20 if (dev->realized) { qdev_prop_set_after_realize(dev, name, errp); diff --git a/hw/vfio/pci-quirks.c b/hw/vfio/pci-quirks.c index 57150913b7..53569925a2 100644 --- a/hw/vfio/pci-quirks.c +++ b/hw/vfio/pci-quirks.c @@ -1488,9 +1488,8 @@ static void get_nv_gpudirect_clique_id(Object *obj, V= isitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - uint8_t *ptr =3D qdev_get_prop_ptr(dev, prop); + uint8_t *ptr =3D qdev_get_prop_ptr(obj, prop); =20 visit_type_uint8(v, name, ptr, errp); } @@ -1501,7 +1500,7 @@ static void set_nv_gpudirect_clique_id(Object *obj, V= isitor *v, { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - uint8_t value, *ptr =3D qdev_get_prop_ptr(dev, prop); + uint8_t value, *ptr =3D qdev_get_prop_ptr(obj, prop); =20 if (dev->realized) { qdev_prop_set_after_realize(dev, name, errp); --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604009436; cv=none; d=zohomail.com; s=zohoarc; b=QLr+8taMn/X7bDrktNFx/Z4zbeJy+hwZ6m+uAYlAnz4diqpl3EnDILnMDypwO/ef1kV/3cPp8d+q0ln69VOWQYh3WZXkKYmogF749fPo9hXfsSVmB4DAfnM674cXVHDHkfiEWfUbCdPyhg87U0E8jsTrtDOw1hJTZ66mzRIDK6k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604009436; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=LpDzRbGp+X0AUeOTs55yreUOPmoQmnXD3CBAv6zEhzs=; b=W8mcRGW0XaslcDABrkebTWEglAKaKbWygQ/z27wa0vMaJfUy1fbbBN3exxrL2qSunRRWub65qneQnKlGYqA3EvpIEsj3uB4uPaHj+9KhRXrdKO/bpNhLIRTKLA6QhNVCRueDnKy17JvVt362kApXjpN4OAZdgn1q383U2G17ph4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 160400943614481.59011390342334; Thu, 29 Oct 2020 15:10:36 -0700 (PDT) Received: from localhost ([::1]:44526 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYG7v-0003Eh-0h for importer@patchew.org; Thu, 29 Oct 2020 18:10:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42458) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG0w-0003J6-K2 for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:22 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:29230) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG0t-0006Z9-OV for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:22 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-115-Z1yBe7UVPzmRnaoHJATxqw-1; Thu, 29 Oct 2020 18:03:15 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id AAB4E18BA281 for ; Thu, 29 Oct 2020 22:03:14 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6B68C5D9D3; Thu, 29 Oct 2020 22:03:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604008999; 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=LpDzRbGp+X0AUeOTs55yreUOPmoQmnXD3CBAv6zEhzs=; b=HI73mROL7LH7dfrp0CDX0Vrjes+h0kvnZpJ+7aFVnQnpWp4KvknwAGH7TMavOuQ/y5uxh9 o55hfM1b82vi2VObF5yMQcY79i6YAaYv0KJi0itCGxonk0r28Ueb3a0U9GWyXlvZDx1o+L aOjlAfjnWoMLFg8xywM64x2V8nf5Cbs= X-MC-Unique: Z1yBe7UVPzmRnaoHJATxqw-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 10/36] qdev: Make qdev_find_global_prop() get Object* argument Date: Thu, 29 Oct 2020 18:02:20 -0400 Message-Id: <20201029220246.472693-11-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=216.205.24.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 00:47:54 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Daniel P. Berrange" , John Snow , Markus Armbruster , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Make the code more generic and not specific to TYPE_DEVICE. Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- include/hw/qdev-properties.h | 2 +- hw/core/qdev-properties-system.c | 2 +- hw/core/qdev-properties.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h index 0b92cfc761..7620095fed 100644 --- a/include/hw/qdev-properties.h +++ b/include/hw/qdev-properties.h @@ -305,7 +305,7 @@ void qdev_prop_set_enum(DeviceState *dev, const char *n= ame, int value); void *qdev_get_prop_ptr(Object *obj, Property *prop); =20 void qdev_prop_register_global(GlobalProperty *prop); -const GlobalProperty *qdev_find_global_prop(DeviceState *dev, +const GlobalProperty *qdev_find_global_prop(Object *obj, const char *name); int qdev_prop_check_globals(void); void qdev_prop_set_globals(DeviceState *dev); diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-sys= tem.c index c8c73c371b..af1339e562 100644 --- a/hw/core/qdev-properties-system.c +++ b/hw/core/qdev-properties-system.c @@ -36,7 +36,7 @@ static bool check_prop_still_unset(DeviceState *dev, cons= t char *name, const void *old_val, const char *new_va= l, Error **errp) { - const GlobalProperty *prop =3D qdev_find_global_prop(dev, name); + const GlobalProperty *prop =3D qdev_find_global_prop(OBJECT(dev), name= ); =20 if (!old_val) { return true; diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 0a54a922c8..41482d83d1 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -818,7 +818,7 @@ void qdev_prop_register_global(GlobalProperty *prop) g_ptr_array_add(global_props(), prop); } =20 -const GlobalProperty *qdev_find_global_prop(DeviceState *dev, +const GlobalProperty *qdev_find_global_prop(Object *obj, const char *name) { GPtrArray *props =3D global_props(); @@ -827,7 +827,7 @@ const GlobalProperty *qdev_find_global_prop(DeviceState= *dev, =20 for (i =3D 0; i < props->len; i++) { p =3D g_ptr_array_index(props, i); - if (object_dynamic_cast(OBJECT(dev), p->driver) + if (object_dynamic_cast(obj, p->driver) && !strcmp(p->property, name)) { return p; } --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604009661; cv=none; d=zohomail.com; s=zohoarc; b=lqz8kDhjmQAYyPMONlEEAYWWobbCpxk3bSNETVVtR5ILejSTxYio8xhtxZ6BsEJSd4nOqYW0s6v6QGbMSyyGQkZ81MxH5gu2gIsyMx+CeY58HJWUUIJL4BoAYR6pSZq7bMRc67z+l6Yun7ElCvHAztQ2v8dBYg4FkzDQrp2+OJk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604009661; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=+SZZYhSE2rpTgLRMeYs39Kq9SIu/LUpzeiN/rszhjA4=; b=O0FV57/Isi1GQ9fcUC/em7AkhUXAX51p7rnZw+V6SRZQD8OCtqfoS1a0ZBk4hVfZw8fSI/FIqW2IYzGEhPE+1V+4KuZNZmlWdfHuEQLnPSkRY1RotFZQWgc0h7pi95XWaMaFWRwqmwxdS8NnFxPltrV+8nVa+rSCMAp2Jb7Ts1U= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604009661644753.0155796169917; Thu, 29 Oct 2020 15:14:21 -0700 (PDT) Received: from localhost ([::1]:60910 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYGBY-0001Vj-FL for importer@patchew.org; Thu, 29 Oct 2020 18:14:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42474) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG0x-0003Kc-Fu for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:28 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:28104) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG0u-0006ZN-LG for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:23 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-419-yWraVOmoPVyzDAoNkDCSKQ-1; Thu, 29 Oct 2020 18:03:18 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id E260D1018F78 for ; Thu, 29 Oct 2020 22:03:16 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9DEDD5C1C4; Thu, 29 Oct 2020 22:03:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604008999; 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=+SZZYhSE2rpTgLRMeYs39Kq9SIu/LUpzeiN/rszhjA4=; b=JkPPek9KUkj1Fuaw2FhXvkYD0UnZW2CrHvQo2C+PBjjjv6nAbUywBrYMMRRUviFovpcXZw t+Rq2W1akxrSUmD6d/rjFxI31XnjlyQYcX6Zn/RlR96tjPkDQPfsYhfxgJPHy1ligIQMIx ArH/cHYEbvRLXowIEToDBznp/TPAF+0= X-MC-Unique: yWraVOmoPVyzDAoNkDCSKQ-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 11/36] qdev: Make check_prop_still_unset() get Object* argument Date: Thu, 29 Oct 2020 18:02:21 -0400 Message-Id: <20201029220246.472693-12-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=216.205.24.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 00:47:54 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Daniel P. Berrange" , John Snow , Markus Armbruster , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Make the code more generic and not specific to TYPE_DEVICE. Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-properties-system.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-sys= tem.c index af1339e562..85dd38db0f 100644 --- a/hw/core/qdev-properties-system.c +++ b/hw/core/qdev-properties-system.c @@ -32,11 +32,11 @@ #include "hw/pci/pci.h" #include "util/block-helpers.h" =20 -static bool check_prop_still_unset(DeviceState *dev, const char *name, +static bool check_prop_still_unset(Object *obj, const char *name, const void *old_val, const char *new_va= l, Error **errp) { - const GlobalProperty *prop =3D qdev_find_global_prop(OBJECT(dev), name= ); + const GlobalProperty *prop =3D qdev_find_global_prop(obj, name); =20 if (!old_val) { return true; @@ -105,7 +105,7 @@ static void set_drive_helper(Object *obj, Visitor *v, c= onst char *name, * TODO Should this really be an error? If no, the old value * needs to be released before we store the new one. */ - if (!check_prop_still_unset(dev, name, *ptr, str, errp)) { + if (!check_prop_still_unset(obj, name, *ptr, str, errp)) { return; } =20 @@ -247,7 +247,7 @@ static void set_chr(Object *obj, Visitor *v, const char= *name, void *opaque, * TODO Should this really be an error? If no, the old value * needs to be released before we store the new one. */ - if (!check_prop_still_unset(dev, name, be->chr, str, errp)) { + if (!check_prop_still_unset(obj, name, be->chr, str, errp)) { return; } =20 @@ -429,7 +429,7 @@ static void set_netdev(Object *obj, Visitor *v, const c= har *name, * TODO Should this really be an error? If no, the old value * needs to be released before we store the new one. */ - if (!check_prop_still_unset(dev, name, ncs[i], str, errp)) { + if (!check_prop_still_unset(obj, name, ncs[i], str, errp)) { goto out; } =20 --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604009835; cv=none; d=zohomail.com; s=zohoarc; b=YeD4J5fLpcpvlZWWCPF6KnvfbEd7KXS0XdA+klddiJm8W1r/j/A6LkO5qNdMDVCJU34LAWymQAXBZS6Dayj/eHiXg9PTlWRxOHjcMijD1oIHM2hn597M3gnP/IRqvMieKjDXzGAzHJ+9NnTWyrQ/K0+PQNf8V+SdW7RuKeYv8ew= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604009835; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=NctMuJLA1Rf4RgP5PRiGy0e4/n5BNGh0iuXOJxgJ/F4=; b=CG47T4yc46EZvxmg9taEdxEmfSjtthou/+kg0rUs+t6uX24BRq5YIVssaqx124otbvGe7ZcZE5/GPV1f7CafwhtdUqwK9VorpAkviKecdW/uPx5YPbxLmmJncIY+qP30XDJl8bHN2OcC5Ei3I+YGIOlqoomOrQpysdIiE3chH1o= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604009835105312.1285713067755; Thu, 29 Oct 2020 15:17:15 -0700 (PDT) Received: from localhost ([::1]:41156 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYGEM-00055O-0u for importer@patchew.org; Thu, 29 Oct 2020 18:17:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42530) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG14-0003Pg-SJ for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:31 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:33919) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG11-0006Zt-Uy for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:30 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-393-4v5942gfNqqpLZGQYDAWhA-1; Thu, 29 Oct 2020 18:03:22 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 1D830835B47; Thu, 29 Oct 2020 22:03:21 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id C70EA5B4C4; Thu, 29 Oct 2020 22:03:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604009004; 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=NctMuJLA1Rf4RgP5PRiGy0e4/n5BNGh0iuXOJxgJ/F4=; b=W8H1YuDOtmYJirHco0p9LilqNxfX5e5zI+M49asbfYp3MqAAicTzPrcv9RIaY+pw+Gigyu yAVELLiaURQHrhqnHV/mxffzSdKlclmHA7sAGjAXXsTbeybtoTEbdWZa/lgPT5dYCVHepW h4TlzHK0xhVQyc1dvn3tM5Ot6L7FQMc= X-MC-Unique: 4v5942gfNqqpLZGQYDAWhA-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 12/36] qdev: Make error_set_from_qdev_prop_error() get Object* argument Date: Thu, 29 Oct 2020 18:02:22 -0400 Message-Id: <20201029220246.472693-13-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=216.205.24.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 00:47:54 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Thomas Huth , "Daniel P. Berrange" , David Hildenbrand , John Snow , Cornelia Huck , Markus Armbruster , Halil Pasic , Christian Borntraeger , qemu-s390x@nongnu.org, Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Make the code more generic and not specific to TYPE_DEVICE. Signed-off-by: Eduardo Habkost Reviewed-by: Marc-Andr=C3=A9 Lureau --- Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: Cornelia Huck Cc: Thomas Huth Cc: Richard Henderson Cc: David Hildenbrand Cc: Halil Pasic Cc: Christian Borntraeger Cc: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org --- include/hw/qdev-properties.h | 2 +- hw/core/qdev-properties-system.c | 10 +++++----- hw/core/qdev-properties.c | 10 +++++----- hw/s390x/css.c | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h index 7620095fed..530286e869 100644 --- a/include/hw/qdev-properties.h +++ b/include/hw/qdev-properties.h @@ -309,7 +309,7 @@ const GlobalProperty *qdev_find_global_prop(Object *obj, const char *name); int qdev_prop_check_globals(void); void qdev_prop_set_globals(DeviceState *dev); -void error_set_from_qdev_prop_error(Error **errp, int ret, DeviceState *de= v, +void error_set_from_qdev_prop_error(Error **errp, int ret, Object *obj, Property *prop, const char *value); =20 /** diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-sys= tem.c index 85dd38db0f..fca1b694ca 100644 --- a/hw/core/qdev-properties-system.c +++ b/hw/core/qdev-properties-system.c @@ -352,7 +352,7 @@ static void set_mac(Object *obj, Visitor *v, const char= *name, void *opaque, return; =20 inval: - error_set_from_qdev_prop_error(errp, EINVAL, dev, prop, str); + error_set_from_qdev_prop_error(errp, EINVAL, obj, prop, str); g_free(str); } =20 @@ -440,7 +440,7 @@ static void set_netdev(Object *obj, Visitor *v, const c= har *name, peers_ptr->queues =3D queues; =20 out: - error_set_from_qdev_prop_error(errp, err, dev, prop, str); + error_set_from_qdev_prop_error(errp, err, obj, prop, str); g_free(str); } =20 @@ -492,7 +492,7 @@ static void set_audiodev(Object *obj, Visitor *v, const= char* name, card->state =3D state; =20 out: - error_set_from_qdev_prop_error(errp, err, dev, prop, str); + error_set_from_qdev_prop_error(errp, err, obj, prop, str); g_free(str); } =20 @@ -790,7 +790,7 @@ static void set_pci_devfn(Object *obj, Visitor *v, cons= t char *name, return; =20 invalid: - error_set_from_qdev_prop_error(errp, EINVAL, dev, prop, str); + error_set_from_qdev_prop_error(errp, EINVAL, obj, prop, str); g_free(str); } =20 @@ -913,7 +913,7 @@ static void set_pci_host_devaddr(Object *obj, Visitor *= v, const char *name, return; =20 inval: - error_set_from_qdev_prop_error(errp, EINVAL, dev, prop, str); + error_set_from_qdev_prop_error(errp, EINVAL, obj, prop, str); g_free(str); } =20 diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 41482d83d1..5e010afdb8 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -581,7 +581,7 @@ static void set_uuid(Object *obj, Visitor *v, const cha= r *name, void *opaque, if (!strcmp(str, UUID_VALUE_AUTO)) { qemu_uuid_generate(uuid); } else if (qemu_uuid_parse(str, uuid) < 0) { - error_set_from_qdev_prop_error(errp, EINVAL, dev, prop, str); + error_set_from_qdev_prop_error(errp, EINVAL, obj, prop, str); } g_free(str); } @@ -735,22 +735,22 @@ static Property *qdev_prop_find(DeviceState *dev, con= st char *name) return NULL; } =20 -void error_set_from_qdev_prop_error(Error **errp, int ret, DeviceState *de= v, +void error_set_from_qdev_prop_error(Error **errp, int ret, Object *obj, Property *prop, const char *value) { switch (ret) { case -EEXIST: error_setg(errp, "Property '%s.%s' can't take value '%s', it's in = use", - object_get_typename(OBJECT(dev)), prop->name, value); + object_get_typename(obj), prop->name, value); break; default: case -EINVAL: error_setg(errp, QERR_PROPERTY_VALUE_BAD, - object_get_typename(OBJECT(dev)), prop->name, value); + object_get_typename(obj), prop->name, value); break; case -ENOENT: error_setg(errp, "Property '%s.%s' can't find value '%s'", - object_get_typename(OBJECT(dev)), prop->name, value); + object_get_typename(obj), prop->name, value); break; case 0: break; diff --git a/hw/s390x/css.c b/hw/s390x/css.c index 2b8f33fec2..38fd46b9a9 100644 --- a/hw/s390x/css.c +++ b/hw/s390x/css.c @@ -2390,7 +2390,7 @@ static void set_css_devid(Object *obj, Visitor *v, co= nst char *name, =20 num =3D sscanf(str, "%2x.%1x%n.%4x%n", &cssid, &ssid, &n1, &devid, &n2= ); if (num !=3D 3 || (n2 - n1) !=3D 5 || strlen(str) !=3D n2) { - error_set_from_qdev_prop_error(errp, EINVAL, dev, prop, str); + error_set_from_qdev_prop_error(errp, EINVAL, obj, prop, str); goto out; } if ((cssid > MAX_CSSID) || (ssid > MAX_SSID)) { --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604009568; cv=none; d=zohomail.com; s=zohoarc; b=kDT5S/URH3//1SwT0F4CAgOxnF2+jeEKiSkDtK0cQzCp/PECqeuA5ThjSWxaRGAD0Z2OKz5dFbCnEES69Q4khi5xmFG1EKQZpdna2JCQQjaFNmG9s2IelJhGW9hF7T8fTjXPwNwwZfx2gdSKMZ8EynUrB+uvVrnlwg09w2U7Mb4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604009568; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=1iU7FBW2AnSjr1/4AFTqBtTUMBpLm1nVKWMNcWb1Dvg=; b=Q1nNZ4AQoRah3LjcH76B7XmRcl2PAAZ6FuJ8/KY9ixyAzjtX63EP1n2l81vMZVsQIUSf6jVGBvhsn53hI5QHq3fYrSUt8Jo+Di56Koqb38eLhIyh/hodhxCr9X0VWTNAhOeWuEiSd6nHHL/zf91l4g4Tw9wffIMVadyODjBuwtQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604009568083646.7844001978739; Thu, 29 Oct 2020 15:12:48 -0700 (PDT) Received: from localhost ([::1]:53796 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYGA3-000748-1i for importer@patchew.org; Thu, 29 Oct 2020 18:12:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42538) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG16-0003R3-Ep for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:34 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:35649) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG12-0006a9-Ip for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:32 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-440-grCTXJQgOX-FnTOWGF5Kkg-1; Thu, 29 Oct 2020 18:03:23 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 5E3061018F7B for ; Thu, 29 Oct 2020 22:03:22 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0C42B1002D48; Thu, 29 Oct 2020 22:03:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604009007; 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=1iU7FBW2AnSjr1/4AFTqBtTUMBpLm1nVKWMNcWb1Dvg=; b=UK7tChVO72EB83gdzZGlrUN127saJ059k3wMHsDK4XS2kSBby/yQyozmTEnr5kNKwAty9Q yVDgruQE09GU1+z7Y1erurrjs3fD8lIVE4qFk8+4ZflymxYwICckSYbFObWAatCneA5l5g ts9/FQH38v/TH9cDYdJnWfIWjYll8qI= X-MC-Unique: grCTXJQgOX-FnTOWGF5Kkg-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 13/36] qdev: Wrap getters and setters in separate helpers Date: Thu, 29 Oct 2020 18:02:23 -0400 Message-Id: <20201029220246.472693-14-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=63.128.21.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 01:47:28 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Daniel P. Berrange" , John Snow , Markus Armbruster , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) We'll add extra code to the qdev property getters and setters, so add wrapper functions where additional actions can be performed. The new functions have a "static_prop_" prefix instead of "qdev_" because the code will eventually be moved outside qdev-properties.c, to common QOM code. Signed-off-by: Eduardo Habkost Reviewed-by: Marc-Andr=C3=A9 Lureau --- Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-properties.c | 44 +++++++++++++++++++++++++++++++++++---- 1 file changed, 40 insertions(+), 4 deletions(-) diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 5e010afdb8..aab9e65e97 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -45,6 +45,40 @@ void *qdev_get_prop_ptr(Object *obj, Property *prop) return ptr; } =20 +static void static_prop_get(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + Property *prop =3D opaque; + return prop->info->get(obj, v, name, opaque, errp); +} + +/** + * static_prop_getter: Return getter function to be used for property + * + * Return value can be NULL if @info has no getter function. + */ +static ObjectPropertyAccessor *static_prop_getter(const PropertyInfo *info) +{ + return info->get ? static_prop_get : NULL; +} + +static void static_prop_set(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + Property *prop =3D opaque; + return prop->info->set(obj, v, name, opaque, errp); +} + +/** + * static_prop_setter: Return setter function to be used for property + * + * Return value can be NULL if @info has not setter function. + */ +static ObjectPropertyAccessor *static_prop_setter(const PropertyInfo *info) +{ + return info->set ? static_prop_set : NULL; +} + void qdev_propinfo_get_enum(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { @@ -687,8 +721,8 @@ static void set_prop_arraylen(Object *obj, Visitor *v, = const char *name, assert(qdev_get_prop_ptr(obj, &arrayprop->prop) =3D=3D eltptr); object_property_add(obj, propname, arrayprop->prop.info->name, - arrayprop->prop.info->get, - arrayprop->prop.info->set, + static_prop_getter(arrayprop->prop.info), + static_prop_setter(arrayprop->prop.info), array_element_release, arrayprop); } @@ -929,7 +963,8 @@ void qdev_property_add_static(DeviceState *dev, Propert= y *prop) assert(!prop->info->create); =20 op =3D object_property_add(obj, prop->name, prop->info->name, - prop->info->get, prop->info->set, + static_prop_getter(prop->info), + static_prop_setter(prop->info), prop->info->release, prop); =20 @@ -955,7 +990,8 @@ static void qdev_class_add_property(DeviceClass *klass,= Property *prop) =20 op =3D object_class_property_add(oc, prop->name, prop->info->name, - prop->info->get, prop->info->set, + static_prop_getter(prop->info), + static_prop_setter(prop->info), prop->info->release, prop); if (prop->set_default) { --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604009036; cv=none; d=zohomail.com; s=zohoarc; b=IWlODJPGYF2DTrT4ZTeEU2mXYTmYDE1W6o7X2qfpGqZB8Om+8V5XIMHHu5jVIAL37ASRYer2shjHFwJ84jnp1n3XmI24FU3YYR92qD6/0HOU9N9jJu1a0QvmawymCgp3XGlZ89gMVWWRpLbkpnosiEGZvPFR4kOUYsPxQTLrQfM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604009036; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=BjFOMSTX6fdH1tpm8duv0qhQRUHgbBNeh3ANOAmFKgQ=; b=VcoC/Vjq8YtoD7VglEWDXq3IHmt60T+CizW/7mBEzdLLCjQY9rkXbUPWaUJ07Up/btZKNn1ro0zuZ5TxQGshZ01WGK2m91E0DLFXqOxWf44O3qLgFcErycZDaep3V7G/R3dBWS9ySdY5U2N+BirYYAuNkYfyc4CYxQIH7UK4qdI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1604009036490613.2835239673726; Thu, 29 Oct 2020 15:03:56 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.15178.38154 (Exim 4.92) (envelope-from ) id 1kYG19-0002RG-4A; Thu, 29 Oct 2020 22:03:35 +0000 Received: by outflank-mailman (output) from mailman id 15178.38154; Thu, 29 Oct 2020 22:03:35 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kYG19-0002R9-0m; Thu, 29 Oct 2020 22:03:35 +0000 Received: by outflank-mailman (input) for mailman id 15178; Thu, 29 Oct 2020 22:03:33 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kYG17-0002Qb-Fe for xen-devel@lists.xenproject.org; Thu, 29 Oct 2020 22:03:33 +0000 Received: from us-smtp-delivery-124.mimecast.com (unknown [63.128.21.124]) by us1-rack-iad1.inumbo.com (Halon) with ESMTP id 09ba3a73-1cde-4de8-8799-bb8872e675da; Thu, 29 Oct 2020 22:03:31 +0000 (UTC) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-196-mT6zWae2O6enDNs-xp8QhA-1; Thu, 29 Oct 2020 18:03:29 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 396F71018F78; Thu, 29 Oct 2020 22:03:27 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id 47C225B4B5; Thu, 29 Oct 2020 22:03:23 +0000 (UTC) Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kYG17-0002Qb-Fe for xen-devel@lists.xenproject.org; Thu, 29 Oct 2020 22:03:33 +0000 Received: from us-smtp-delivery-124.mimecast.com (unknown [63.128.21.124]) by us1-rack-iad1.inumbo.com (Halon) with ESMTP id 09ba3a73-1cde-4de8-8799-bb8872e675da; Thu, 29 Oct 2020 22:03:31 +0000 (UTC) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-196-mT6zWae2O6enDNs-xp8QhA-1; Thu, 29 Oct 2020 18:03:29 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 396F71018F78; Thu, 29 Oct 2020 22:03:27 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id 47C225B4B5; Thu, 29 Oct 2020 22:03:23 +0000 (UTC) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 09ba3a73-1cde-4de8-8799-bb8872e675da DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604009011; 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=BjFOMSTX6fdH1tpm8duv0qhQRUHgbBNeh3ANOAmFKgQ=; b=Jv7UKt4Ni8likMoLwpxkAS9RITv2L0KEZGcOqBYVMYAZDBwsLw4b7aBHgjX5vl/+Hn5vKB +mAntb3/H/yyYKpDBKOxhFfi7Y9k9jSS2grzwKrIvkmBzgLxMEccxGylTiAUfzpWdOdhD+ ET1FiAIzYxCjHcoNgnef5fq3WYEJecs= X-MC-Unique: mT6zWae2O6enDNs-xp8QhA-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Cc: John Snow , Paolo Bonzini , Eric Blake , "Daniel P. Berrange" , Markus Armbruster , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Igor Mammedov , Stefan Berger , Stefano Stabellini , Anthony Perard , Paul Durrant , Kevin Wolf , Max Reitz , Cornelia Huck , Halil Pasic , Christian Borntraeger , Thomas Huth , Richard Henderson , David Hildenbrand , Matthew Rosato , Alex Williamson , Mark Cave-Ayland , Artyom Tarasenko , xen-devel@lists.xenproject.org, qemu-block@nongnu.org, qemu-s390x@nongnu.org Subject: [PATCH 14/36] qdev: Move dev->realized check to qdev_property_set() Date: Thu, 29 Oct 2020 18:02:24 -0400 Message-Id: <20201029220246.472693-15-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Every single qdev property setter function manually checks dev->realized. We can just check dev->realized inside qdev_property_set() instead. The check is being added as a separate function (qdev_prop_allow_set()) because it will become a callback later. Signed-off-by: Eduardo Habkost Reviewed-by: Marc-Andr=C3=A9 Lureau Reviewed-by:=C2=A0 Stefan Berger --- Cc: Stefan Berger Cc: Stefano Stabellini Cc: Anthony Perard Cc: Paul Durrant Cc: Kevin Wolf Cc: Max Reitz Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: Cornelia Huck Cc: Halil Pasic Cc: Christian Borntraeger Cc: Thomas Huth Cc: Richard Henderson Cc: David Hildenbrand Cc: Matthew Rosato Cc: Alex Williamson Cc: Mark Cave-Ayland Cc: Artyom Tarasenko Cc: qemu-devel@nongnu.org Cc: xen-devel@lists.xenproject.org Cc: qemu-block@nongnu.org Cc: qemu-s390x@nongnu.org --- backends/tpm/tpm_util.c | 6 -- hw/block/xen-block.c | 5 -- hw/core/qdev-properties-system.c | 64 ------------------- hw/core/qdev-properties.c | 106 ++++++------------------------- hw/s390x/css.c | 6 -- hw/s390x/s390-pci-bus.c | 6 -- hw/vfio/pci-quirks.c | 6 -- target/sparc/cpu.c | 6 -- 8 files changed, 18 insertions(+), 187 deletions(-) diff --git a/backends/tpm/tpm_util.c b/backends/tpm/tpm_util.c index e91c21dd4a..042cacfcca 100644 --- a/backends/tpm/tpm_util.c +++ b/backends/tpm/tpm_util.c @@ -46,16 +46,10 @@ static void get_tpm(Object *obj, Visitor *v, const char= *name, void *opaque, static void set_tpm(Object *obj, Visitor *v, const char *name, void *opaqu= e, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; TPMBackend *s, **be =3D qdev_get_prop_ptr(obj, prop); char *str; =20 - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - if (!visit_type_str(v, name, &str, errp)) { return; } diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c index 1ba9981c08..bd1aef63a7 100644 --- a/hw/block/xen-block.c +++ b/hw/block/xen-block.c @@ -400,11 +400,6 @@ static void xen_block_set_vdev(Object *obj, Visitor *v= , const char *name, char *str, *p; const char *end; =20 - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - if (!visit_type_str(v, name, &str, errp)) { return; } diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-sys= tem.c index fca1b694ca..60a45f5620 100644 --- a/hw/core/qdev-properties-system.c +++ b/hw/core/qdev-properties-system.c @@ -92,11 +92,6 @@ static void set_drive_helper(Object *obj, Visitor *v, co= nst char *name, bool blk_created =3D false; int ret; =20 - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - if (!visit_type_str(v, name, &str, errp)) { return; } @@ -228,17 +223,11 @@ static void get_chr(Object *obj, Visitor *v, const ch= ar *name, void *opaque, static void set_chr(Object *obj, Visitor *v, const char *name, void *opaqu= e, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; CharBackend *be =3D qdev_get_prop_ptr(obj, prop); Chardev *s; char *str; =20 - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - if (!visit_type_str(v, name, &str, errp)) { return; } @@ -309,18 +298,12 @@ static void get_mac(Object *obj, Visitor *v, const ch= ar *name, void *opaque, static void set_mac(Object *obj, Visitor *v, const char *name, void *opaqu= e, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; MACAddr *mac =3D qdev_get_prop_ptr(obj, prop); int i, pos; char *str; const char *p; =20 - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - if (!visit_type_str(v, name, &str, errp)) { return; } @@ -388,7 +371,6 @@ static void get_netdev(Object *obj, Visitor *v, const c= har *name, static void set_netdev(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; NICPeers *peers_ptr =3D qdev_get_prop_ptr(obj, prop); NetClientState **ncs =3D peers_ptr->ncs; @@ -396,11 +378,6 @@ static void set_netdev(Object *obj, Visitor *v, const = char *name, int queues, err =3D 0, i =3D 0; char *str; =20 - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - if (!visit_type_str(v, name, &str, errp)) { return; } @@ -467,18 +444,12 @@ static void get_audiodev(Object *obj, Visitor *v, con= st char* name, static void set_audiodev(Object *obj, Visitor *v, const char* name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; QEMUSoundCard *card =3D qdev_get_prop_ptr(obj, prop); AudioState *state; int err =3D 0; char *str; =20 - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - if (!visit_type_str(v, name, &str, errp)) { return; } @@ -580,11 +551,6 @@ static void set_blocksize(Object *obj, Visitor *v, con= st char *name, uint64_t value; Error *local_err =3D NULL; =20 - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - if (!visit_type_size(v, name, &value, errp)) { return; } @@ -684,7 +650,6 @@ static void get_reserved_region(Object *obj, Visitor *v= , const char *name, static void set_reserved_region(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; ReservedRegion *rr =3D qdev_get_prop_ptr(obj, prop); Error *local_err =3D NULL; @@ -692,11 +657,6 @@ static void set_reserved_region(Object *obj, Visitor *= v, const char *name, char *str; int ret; =20 - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - visit_type_str(v, name, &str, &local_err); if (local_err) { error_propagate(errp, local_err); @@ -752,17 +712,11 @@ const PropertyInfo qdev_prop_reserved_region =3D { static void set_pci_devfn(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; int32_t value, *ptr =3D qdev_get_prop_ptr(obj, prop); unsigned int slot, fn, n; char *str; =20 - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - if (!visit_type_str(v, name, &str, NULL)) { if (!visit_type_int32(v, name, &value, errp)) { return; @@ -846,7 +800,6 @@ static void get_pci_host_devaddr(Object *obj, Visitor *= v, const char *name, static void set_pci_host_devaddr(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; PCIHostDeviceAddress *addr =3D qdev_get_prop_ptr(obj, prop); char *str, *p; @@ -855,11 +808,6 @@ static void set_pci_host_devaddr(Object *obj, Visitor = *v, const char *name, unsigned long dom =3D 0, bus =3D 0; unsigned int slot =3D 0, func =3D 0; =20 - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - if (!visit_type_str(v, name, &str, errp)) { return; } @@ -969,16 +917,10 @@ static void get_prop_pcielinkspeed(Object *obj, Visit= or *v, const char *name, static void set_prop_pcielinkspeed(Object *obj, Visitor *v, const char *na= me, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; PCIExpLinkSpeed *p =3D qdev_get_prop_ptr(obj, prop); int speed; =20 - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - if (!visit_type_enum(v, prop->name, &speed, prop->info->enum_table, errp)) { return; @@ -1054,16 +996,10 @@ static void get_prop_pcielinkwidth(Object *obj, Visi= tor *v, const char *name, static void set_prop_pcielinkwidth(Object *obj, Visitor *v, const char *na= me, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; PCIExpLinkWidth *p =3D qdev_get_prop_ptr(obj, prop); int width; =20 - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - if (!visit_type_enum(v, prop->name, &width, prop->info->enum_table, errp)) { return; diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index aab9e65e97..195bfed6e1 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -25,6 +25,19 @@ void qdev_prop_set_after_realize(DeviceState *dev, const= char *name, } } =20 +/* returns: true if property is allowed to be set, false otherwise */ +static bool qdev_prop_allow_set(Object *obj, const char *name, + Error **errp) +{ + DeviceState *dev =3D DEVICE(obj); + + if (dev->realized) { + qdev_prop_set_after_realize(dev, name, errp); + return false; + } + return true; +} + void qdev_prop_allow_set_link_before_realize(const Object *obj, const char *name, Object *val, Error **errp) @@ -66,6 +79,11 @@ static void static_prop_set(Object *obj, Visitor *v, con= st char *name, void *opaque, Error **errp) { Property *prop =3D opaque; + + if (!qdev_prop_allow_set(obj, name, errp)) { + return; + } + return prop->info->set(obj, v, name, opaque, errp); } =20 @@ -91,15 +109,9 @@ void qdev_propinfo_get_enum(Object *obj, Visitor *v, co= nst char *name, void qdev_propinfo_set_enum(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; int *ptr =3D qdev_get_prop_ptr(obj, prop); =20 - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - visit_type_enum(v, prop->name, ptr, prop->info->enum_table, errp); } =20 @@ -149,15 +161,9 @@ static void prop_get_bit(Object *obj, Visitor *v, cons= t char *name, static void prop_set_bit(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; bool value; =20 - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - if (!visit_type_bool(v, name, &value, errp)) { return; } @@ -209,15 +215,9 @@ static void prop_get_bit64(Object *obj, Visitor *v, co= nst char *name, static void prop_set_bit64(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; bool value; =20 - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - if (!visit_type_bool(v, name, &value, errp)) { return; } @@ -246,15 +246,9 @@ static void get_bool(Object *obj, Visitor *v, const ch= ar *name, void *opaque, static void set_bool(Object *obj, Visitor *v, const char *name, void *opaq= ue, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; bool *ptr =3D qdev_get_prop_ptr(obj, prop); =20 - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - visit_type_bool(v, name, ptr, errp); } =20 @@ -279,15 +273,9 @@ static void get_uint8(Object *obj, Visitor *v, const c= har *name, void *opaque, static void set_uint8(Object *obj, Visitor *v, const char *name, void *opa= que, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; uint8_t *ptr =3D qdev_get_prop_ptr(obj, prop); =20 - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - visit_type_uint8(v, name, ptr, errp); } =20 @@ -324,15 +312,9 @@ void qdev_propinfo_get_uint16(Object *obj, Visitor *v,= const char *name, static void set_uint16(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; uint16_t *ptr =3D qdev_get_prop_ptr(obj, prop); =20 - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - visit_type_uint16(v, name, ptr, errp); } =20 @@ -357,15 +339,9 @@ static void get_uint32(Object *obj, Visitor *v, const = char *name, static void set_uint32(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; uint32_t *ptr =3D qdev_get_prop_ptr(obj, prop); =20 - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - visit_type_uint32(v, name, ptr, errp); } =20 @@ -381,15 +357,9 @@ void qdev_propinfo_get_int32(Object *obj, Visitor *v, = const char *name, static void set_int32(Object *obj, Visitor *v, const char *name, void *opa= que, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; int32_t *ptr =3D qdev_get_prop_ptr(obj, prop); =20 - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - visit_type_int32(v, name, ptr, errp); } =20 @@ -421,15 +391,9 @@ static void get_uint64(Object *obj, Visitor *v, const = char *name, static void set_uint64(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; uint64_t *ptr =3D qdev_get_prop_ptr(obj, prop); =20 - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - visit_type_uint64(v, name, ptr, errp); } =20 @@ -445,15 +409,9 @@ static void get_int64(Object *obj, Visitor *v, const c= har *name, static void set_int64(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; int64_t *ptr =3D qdev_get_prop_ptr(obj, prop); =20 - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - visit_type_int64(v, name, ptr, errp); } =20 @@ -496,16 +454,10 @@ static void get_string(Object *obj, Visitor *v, const= char *name, static void set_string(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; char **ptr =3D qdev_get_prop_ptr(obj, prop); char *str; =20 - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - if (!visit_type_str(v, name, &str, errp)) { return; } @@ -546,16 +498,10 @@ void qdev_propinfo_get_size32(Object *obj, Visitor *v= , const char *name, static void set_size32(Object *obj, Visitor *v, const char *name, void *op= aque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; uint32_t *ptr =3D qdev_get_prop_ptr(obj, prop); uint64_t value; =20 - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - if (!visit_type_size(v, name, &value, errp)) { return; } @@ -598,16 +544,10 @@ static void get_uuid(Object *obj, Visitor *v, const c= har *name, void *opaque, static void set_uuid(Object *obj, Visitor *v, const char *name, void *opaq= ue, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; QemuUUID *uuid =3D qdev_get_prop_ptr(obj, prop); char *str; =20 - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - if (!visit_type_str(v, name, &str, errp)) { return; } @@ -678,10 +618,6 @@ static void set_prop_arraylen(Object *obj, Visitor *v,= const char *name, const char *arrayname; int i; =20 - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } if (*alenptr) { error_setg(errp, "array size property %s may not be set more than = once", name); @@ -921,15 +857,9 @@ static void get_size(Object *obj, Visitor *v, const ch= ar *name, void *opaque, static void set_size(Object *obj, Visitor *v, const char *name, void *opaq= ue, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; uint64_t *ptr =3D qdev_get_prop_ptr(obj, prop); =20 - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - visit_type_size(v, name, ptr, errp); } =20 diff --git a/hw/s390x/css.c b/hw/s390x/css.c index 38fd46b9a9..46cab94e2b 100644 --- a/hw/s390x/css.c +++ b/hw/s390x/css.c @@ -2372,18 +2372,12 @@ static void get_css_devid(Object *obj, Visitor *v, = const char *name, static void set_css_devid(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; CssDevId *dev_id =3D qdev_get_prop_ptr(obj, prop); char *str; int num, n1, n2; unsigned int cssid, ssid, devid; =20 - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - if (!visit_type_str(v, name, &str, errp)) { return; } diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c index b59cf0651a..d02e93a192 100644 --- a/hw/s390x/s390-pci-bus.c +++ b/hw/s390x/s390-pci-bus.c @@ -1256,16 +1256,10 @@ static void s390_pci_get_fid(Object *obj, Visitor *= v, const char *name, static void s390_pci_set_fid(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); S390PCIBusDevice *zpci =3D S390_PCI_DEVICE(obj); Property *prop =3D opaque; uint32_t *ptr =3D qdev_get_prop_ptr(obj, prop); =20 - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - if (!visit_type_uint32(v, name, ptr, errp)) { return; } diff --git a/hw/vfio/pci-quirks.c b/hw/vfio/pci-quirks.c index 53569925a2..802979635c 100644 --- a/hw/vfio/pci-quirks.c +++ b/hw/vfio/pci-quirks.c @@ -1498,15 +1498,9 @@ static void set_nv_gpudirect_clique_id(Object *obj, = Visitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; uint8_t value, *ptr =3D qdev_get_prop_ptr(obj, prop); =20 - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - if (!visit_type_uint8(v, name, &value, errp)) { return; } diff --git a/target/sparc/cpu.c b/target/sparc/cpu.c index 8ecb20e55f..cf21efd85f 100644 --- a/target/sparc/cpu.c +++ b/target/sparc/cpu.c @@ -798,17 +798,11 @@ static void sparc_get_nwindows(Object *obj, Visitor *= v, const char *name, static void sparc_set_nwindows(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - DeviceState *dev =3D DEVICE(obj); const int64_t min =3D MIN_NWINDOWS; const int64_t max =3D MAX_NWINDOWS; SPARCCPU *cpu =3D SPARC_CPU(obj); int64_t value; =20 - if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); - return; - } - if (!visit_type_int(v, name, &value, errp)) { return; } --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604009701; cv=none; d=zohomail.com; s=zohoarc; b=EyhnZjFOpZUoRFPDp+TkUZQB1/90tHsCOv3jLfVH6Z6zQMgotxBC2fxDANkFqlAA+VdUL7C1cOvEsaovExIg42sNLb/HjBR2FwbImtWmsPba4YBjCaP5gwLNeNTjgJnDfb6eGVgP+eJ5+2C3J0tptR12oP76giSo6n0o7t620ws= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604009701; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=PYqBw404nya5K8lxIqHPM1NnICn2FHO0IC/N3cMXi94=; b=JmQVaBT8K+z3ASsEc9U5ioSVXyTxK52E9uHLtYD4wj4YsxIusxvCfO/mNcU4iyoCrxqmg3LGnc+K0x+DA42AeJksXIwfIVgkdB9X9s1f6Da2NCeSHqH9ystdG2YdnZvDAgcaitjztjhLD6QIVXixb7hezF2ZSXSblWtIkePzj38= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604009701452215.5247505797854; Thu, 29 Oct 2020 15:15:01 -0700 (PDT) Received: from localhost ([::1]:33902 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYGCC-0001zp-BZ for importer@patchew.org; Thu, 29 Oct 2020 18:15:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42588) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG1F-0003SJ-Oj for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:41 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:56718) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG16-0006am-V0 for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:39 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-237-_nNfHLc2MfGI9-pTap4GNQ-1; Thu, 29 Oct 2020 18:03:30 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 7600B8030CC for ; Thu, 29 Oct 2020 22:03:29 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0C8831002D48; Thu, 29 Oct 2020 22:03:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604009012; 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=PYqBw404nya5K8lxIqHPM1NnICn2FHO0IC/N3cMXi94=; b=Cq57UG/7CXCLDWj1Cvog50h8xnLvf5TIw4lCmvI351kmi7l93VLubo9iXY3cdbtJV6nJvS 5h+M6gGMCpuZHOPe+eNLLjjFaRCasW4hqymh7ct8reO738cXw+GLF473sr3teb6TvFSCp2 V9YKiQ+giP8OBgsgOS40FcFSA0fXDlo= X-MC-Unique: _nNfHLc2MfGI9-pTap4GNQ-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 15/36] qdev: Make PropertyInfo.create return ObjectProperty* Date: Thu, 29 Oct 2020 18:02:25 -0400 Message-Id: <20201029220246.472693-16-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=216.205.24.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 00:47:54 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Daniel P. Berrange" , John Snow , Markus Armbruster , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Signed-off-by: Eduardo Habkost Reviewed-by: Marc-Andr=C3=A9 Lureau --- Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- include/hw/qdev-properties.h | 2 +- hw/core/qdev-properties.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h index 530286e869..7f8e4daade 100644 --- a/include/hw/qdev-properties.h +++ b/include/hw/qdev-properties.h @@ -34,7 +34,7 @@ struct PropertyInfo { const QEnumLookup *enum_table; int (*print)(Object *obj, Property *prop, char *dest, size_t len); void (*set_default_value)(ObjectProperty *op, const Property *prop); - void (*create)(ObjectClass *oc, Property *prop); + ObjectProperty *(*create)(ObjectClass *oc, Property *prop); ObjectPropertyAccessor *get; ObjectPropertyAccessor *set; ObjectPropertyRelease *release; diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 195bfed6e1..89e292dc25 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -872,12 +872,12 @@ const PropertyInfo qdev_prop_size =3D { =20 /* --- object link property --- */ =20 -static void create_link_property(ObjectClass *oc, Property *prop) +static ObjectProperty *create_link_property(ObjectClass *oc, Property *pro= p) { - object_class_property_add_link(oc, prop->name, prop->link_type, - prop->offset, - qdev_prop_allow_set_link_before_realize, - OBJ_PROP_LINK_STRONG); + return object_class_property_add_link(oc, prop->name, prop->link_type, + prop->offset, + qdev_prop_allow_set_link_before_= realize, + OBJ_PROP_LINK_STRONG); } =20 const PropertyInfo qdev_prop_link =3D { --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604009589; cv=none; d=zohomail.com; s=zohoarc; b=fNFTb14NHRsphPThgdZ2InlKG1kf8KUwJ5vI5QWevyhWEvFSzuUibYYLCxyQevY64I6J2i7HqXO6CTDeVXgFwCcmrYskUAO9fLjU2707BOmRtELS395ac8RruDKsbDJp7P6yxgPwMV+P+pgJoMm12o2ox9Pcw4kvn0yZn4IshCo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604009589; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=jLlJBr7SgpOv5gaLjqD3GYfJzMABJAxfqTC7IiSG/wk=; b=jh5ay+HeqNYwufUGx4SBJgiXvCUARGYUGr8VZzc8GIOUh5CJz82klCwX63QaNkq1fI7jzX1eUqHwlWXsM8RX3TThbs15JESadYwSyoQjD71G3w8MoeALmkAyTeDtFayhZsjg/1Ty8bLVK+LgXHs1W/ascfL521ME+Qn/WTD1WPk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 160400958964523.408381933472242; Thu, 29 Oct 2020 15:13:09 -0700 (PDT) Received: from localhost ([::1]:55980 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYGAO-0007ww-EN for importer@patchew.org; Thu, 29 Oct 2020 18:13:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42632) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG1H-0003US-LN for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:45 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:32876) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG18-0006as-1m for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:43 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-203-nTl09xHHPxWIkcM-AdAVFg-1; Thu, 29 Oct 2020 18:03:31 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 9D4D39CC00 for ; Thu, 29 Oct 2020 22:03:30 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4B7EF55780; Thu, 29 Oct 2020 22:03:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604009013; 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=jLlJBr7SgpOv5gaLjqD3GYfJzMABJAxfqTC7IiSG/wk=; b=fZcakGsSQp+zP+qmHvwnPcUInfebvZhyvF24smqo0nZCQxFO4awt31fGm4HCYr/eAqHqSr Zq0ruUtz4fGbnzACM1l5nxqEn9AvxinYt3fZ0YR1ce1oHPZkwp+8ItHNZo/xkFHcxSmt08 xNdjh4XjwV5dinShJk/FpwaP+1kNWlk= X-MC-Unique: nTl09xHHPxWIkcM-AdAVFg-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 16/36] qdev: Make qdev_class_add_property() more flexible Date: Thu, 29 Oct 2020 18:02:26 -0400 Message-Id: <20201029220246.472693-17-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=216.205.24.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 00:47:54 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Daniel P. Berrange" , John Snow , Markus Armbruster , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Support Property.set_default and PropertyInfo.description even if PropertyInfo.create is set. Signed-off-by: Eduardo Habkost Reviewed-by: Marc-Andr=C3=A9 Lureau --- Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-properties.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 89e292dc25..ad685f371d 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -912,24 +912,25 @@ void qdev_property_add_static(DeviceState *dev, Prope= rty *prop) static void qdev_class_add_property(DeviceClass *klass, Property *prop) { ObjectClass *oc =3D OBJECT_CLASS(klass); + ObjectProperty *op; =20 if (prop->info->create) { - prop->info->create(oc, prop); + op =3D prop->info->create(oc, prop); } else { - ObjectProperty *op; - op =3D object_class_property_add(oc, prop->name, prop->info->name, static_prop_getter(prop->info), static_prop_setter(prop->info), prop->info->release, prop); - if (prop->set_default) { - prop->info->set_default_value(op, prop); - } } - object_class_property_set_description(oc, prop->name, - prop->info->description); + if (prop->set_default) { + prop->info->set_default_value(op, prop); + } + if (prop->info->description) { + object_class_property_set_description(oc, prop->name, + prop->info->description); + } } =20 /** --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604009964; cv=none; d=zohomail.com; s=zohoarc; b=gGYFmTsM3ZWz4TrZCsMW0jqA6bxsOaHDD/WdLAIgckWtGm7gSRgULA0pk0RJXpAIpSf1mJ02jDWI5buLrU7kANzYwg339Cto1d+NzeHw4EmbdaNuu5OkBnznsMOnzg4QgmRzZmTGnPCF0CK4QIX+HUdxU7YJdYEzeq1N93Nx/+Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604009964; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=1ozq5c29ToMtZxIRD7Q8p4k7GFhu4PcpfAP54MD07co=; b=gP+uH/V88nirhurWjZiaOq9xGHRQvLg41ORf82YGyoum8Lge0yHnuLf+4F4Zi8Q0JE+ziQMHQr8Akcy0byeKBMTnIrZdCqRcT2pJ4x3mi/oxBnrZ3LT+bRF26/4KvbJT2szsn3gF6FHCkBcd/n4j7R9vfj6ibDLdYdCsoo5Jn+0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604009964232785.4794706641707; Thu, 29 Oct 2020 15:19:24 -0700 (PDT) Received: from localhost ([::1]:49294 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYGGR-0008OS-3g for importer@patchew.org; Thu, 29 Oct 2020 18:19:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42658) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG1J-0003V7-JC for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:47 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:50661) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG1F-0006b5-Bu for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:45 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-568-lkZv34lnNp2JL_nI0GYTYg-1; Thu, 29 Oct 2020 18:03:32 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id CEECE8030BD for ; Thu, 29 Oct 2020 22:03:31 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id 90EC76EF68; Thu, 29 Oct 2020 22:03:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604009014; 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=1ozq5c29ToMtZxIRD7Q8p4k7GFhu4PcpfAP54MD07co=; b=bMpHTDHMzkZk2sKivqnWxVRoS0trNN8gxF84Dlm1f+uy9O0dadBDewHB5Fxm/6sdExqf35 p6qGHYJSFMO6iOMA7rZWRbemf0mYR0aj1nDLrSX9N5SNpg4FiImiNdxqiNF9dBBgZZy0qg hH9TYj5inn1syo8v9EEq0mNFBwETz0U= X-MC-Unique: lkZv34lnNp2JL_nI0GYTYg-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 17/36] qdev: Separate generic and device-specific property registration Date: Thu, 29 Oct 2020 18:02:27 -0400 Message-Id: <20201029220246.472693-18-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=63.128.21.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 01:47:28 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Daniel P. Berrange" , John Snow , Markus Armbruster , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) qdev_class_add_property() and qdev_property_add_static() will have code that's specific for device types. object_class_property_add_static(), object_class_add_static_props(), and object_property_add_static() will be generic and part of the QOM static property API. The declarations for the new functions are being added to qdev-properties.h, but they will be moved to a QOM header later. Signed-off-by: Eduardo Habkost Reviewed-by: Marc-Andr=C3=A9 Lureau --- Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-prop-internal.h | 11 +++++++++++ include/hw/qdev-properties.h | 24 ++++++++++++++++++++++++ hw/core/qdev-properties.c | 36 ++++++++++++++++++++++++++++-------- 3 files changed, 63 insertions(+), 8 deletions(-) diff --git a/hw/core/qdev-prop-internal.h b/hw/core/qdev-prop-internal.h index 9cf5cc1d51..858f844504 100644 --- a/hw/core/qdev-prop-internal.h +++ b/hw/core/qdev-prop-internal.h @@ -27,4 +27,15 @@ void qdev_propinfo_get_int32(Object *obj, Visitor *v, co= nst char *name, void qdev_propinfo_get_size32(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp); =20 +/** + * object_property_add_static: Add a static property to an object instance + * @obj: object instance + * @prop: property definition + * + * This function should not be used in new code. Please add class propert= ies + * instead, using object_class_add_static_props(). + */ +ObjectProperty * +object_property_add_static(Object *obj, Property *prop); + #endif diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h index 7f8e4daade..c94301c349 100644 --- a/include/hw/qdev-properties.h +++ b/include/hw/qdev-properties.h @@ -275,6 +275,30 @@ extern const PropertyInfo qdev_prop_pcie_link_width; #define DEFINE_PROP_END_OF_LIST() \ {} =20 +/** + * object_class_property_add_static: Add a static property to object class + * @oc: object class + * @prop: property definition + * + * Add a property to an object class based on the property definition + * at @prop. + * + * The property definition at @prop should be defined using the + * ``DEFINE_PROP`` family of macros. *@prop must exist for the + * life time of @oc. + */ +ObjectProperty * +object_class_property_add_static(ObjectClass *oc, Property *prop); + +/** + * object_class_add_static_props: Add multiple static properties to object= class + * @oc: object class + * @props: property definition array, terminated by DEFINED_PROP_END_OF_LI= ST() + * + * Add properties from @props using object_class_property_add_static() + */ +void object_class_add_static_props(ObjectClass *oc, Property *props); + /* * Set properties between creation and realization. * diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index ad685f371d..68b1666e14 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -885,9 +885,9 @@ const PropertyInfo qdev_prop_link =3D { .create =3D create_link_property, }; =20 -void qdev_property_add_static(DeviceState *dev, Property *prop) +ObjectProperty * +object_property_add_static(Object *obj, Property *prop) { - Object *obj =3D OBJECT(dev); ObjectProperty *op; =20 assert(!prop->info->create); @@ -907,11 +907,13 @@ void qdev_property_add_static(DeviceState *dev, Prope= rty *prop) op->init(obj, op); } } + + return op; } =20 -static void qdev_class_add_property(DeviceClass *klass, Property *prop) +ObjectProperty * +object_class_property_add_static(ObjectClass *oc, Property *prop) { - ObjectClass *oc =3D OBJECT_CLASS(klass); ObjectProperty *op; =20 if (prop->info->create) { @@ -931,6 +933,21 @@ static void qdev_class_add_property(DeviceClass *klass= , Property *prop) object_class_property_set_description(oc, prop->name, prop->info->description); } + return op; +} + +void object_class_add_static_props(ObjectClass *oc, Property *props) +{ + Property *prop; + + for (prop =3D props; prop && prop->name; prop++) { + object_class_property_add_static(oc, prop); + } +} + +void qdev_property_add_static(DeviceState *dev, Property *prop) +{ + object_property_add_static(OBJECT(dev), prop); } =20 /** @@ -979,16 +996,19 @@ static void qdev_class_add_legacy_property(DeviceClas= s *dc, Property *prop) NULL, NULL, prop); } =20 -void device_class_set_props(DeviceClass *dc, Property *props) +static void qdev_class_add_legacy_properties(DeviceClass *dc, Property *pr= ops) { Property *prop; - - dc->props_ =3D props; for (prop =3D props; prop && prop->name; prop++) { qdev_class_add_legacy_property(dc, prop); - qdev_class_add_property(dc, prop); } } +void device_class_set_props(DeviceClass *dc, Property *props) +{ + dc->props_ =3D props; + qdev_class_add_legacy_properties(dc, props); + object_class_add_static_props(OBJECT_CLASS(dc), props); +} =20 void qdev_alias_all_properties(DeviceState *target, Object *source) { --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604009976; cv=none; d=zohomail.com; s=zohoarc; b=iLDbbMKyghZKH/+BElcutjcXLiy2LXS9bx6ntvXP0YQTZnDt9JOzgBHPXnDe3zA7zoIQPaO37Q0U90+wNbLjSt7DXpP7dyVj7Zb0Zp/OE/xADZnzwRkOYLo46OyRVZEI3N4l9nfCBo6caKaYr+CNO4ZFfPG42raXiNL+ATqT3Oo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604009976; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=sgwEPM/lfC5i3EXhA07sXzEDbOJAoJ6t3BEQVnT1duU=; b=Sb+9bing65Kt1ntaEGcf+q+LVreoFEU5bOqWHdGOq7Ij2oBvVn0XCb8SbhJVjq5s7A8z2D4O2n5zgZlYkfbe2SqrNj9jfYaixHLpgBJ5Wrw94JPo3gL7wfUumWixyXCW48kkYg8kr/KVCHt7nAydJiCzHV9CrvDEZWgfmPiwC5I= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604009976617323.3715064765638; Thu, 29 Oct 2020 15:19:36 -0700 (PDT) Received: from localhost ([::1]:50580 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYGGd-0000Ta-JX for importer@patchew.org; Thu, 29 Oct 2020 18:19:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42708) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG1N-0003aI-6u for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:49 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:30639) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG1H-0006bA-8s for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:48 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-529-pJr4Qc8mN-y9ET5S-SuGiQ-1; Thu, 29 Oct 2020 18:03:33 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id E72F89CC00 for ; Thu, 29 Oct 2020 22:03:32 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id A88D75578C; Thu, 29 Oct 2020 22:03:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604009015; 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=sgwEPM/lfC5i3EXhA07sXzEDbOJAoJ6t3BEQVnT1duU=; b=atLRqjQqtxnKZrYV9uVK2dd5eb0zY/TswrzAD9xNleBlYZAEsoUCUOhAy7/1RQjtSI2xlN A1Rk+hSpkCYXFrf96cOe9nh5yFOz2WIgKMJadIhOvSOWchGXpi5FVWpv4XbFTHjqQB33NQ 4Qi7h0kPismrBCQJdWPnZO0FHCpD31I= X-MC-Unique: pJr4Qc8mN-y9ET5S-SuGiQ-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 18/36] qdev: Avoid unnecessary DeviceState* variable at set_prop_arraylen() Date: Thu, 29 Oct 2020 18:02:28 -0400 Message-Id: <20201029220246.472693-19-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=216.205.24.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 00:47:54 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Daniel P. Berrange" , John Snow , Markus Armbruster , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) We're just doing pointer math with the device pointer, we can simply use obj instead. Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-properties.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 68b1666e14..27c09255d7 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -610,10 +610,9 @@ static void set_prop_arraylen(Object *obj, Visitor *v,= const char *name, * array-length field in the device struct, we have to create the * array itself and dynamically add the corresponding properties. */ - DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; uint32_t *alenptr =3D qdev_get_prop_ptr(obj, prop); - void **arrayptr =3D (void *)dev + prop->arrayoffset; + void **arrayptr =3D (void *)obj + prop->arrayoffset; void *eltptr; const char *arrayname; int i; @@ -653,7 +652,7 @@ static void set_prop_arraylen(Object *obj, Visitor *v, = const char *name, * they get the right answer despite the array element not actually * being inside the device struct. */ - arrayprop->prop.offset =3D eltptr - (void *)dev; + arrayprop->prop.offset =3D eltptr - (void *)obj; assert(qdev_get_prop_ptr(obj, &arrayprop->prop) =3D=3D eltptr); object_property_add(obj, propname, arrayprop->prop.info->name, --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604009849; cv=none; d=zohomail.com; s=zohoarc; b=W3w6+DCl0pxB1FdtVweqHXDy4eSS0BjeKJB3RyLWqPL88RwemSTgtHl9hTuDNDdeaB2j3dRmvKePvsSMowkI/0qAxc54ILeg/Tnp4xPXiOb44Xvfsx5x6zCZCgZeOF3hDhs/MpqSfk7WEoDjfX+84BX+tT/Xm9vkKNESv8nss7A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604009849; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=4HROLlXHlhYMQbZTAf6PS83/wxPe3JxmKVcuywy/oIE=; b=LJ+YkqU5vuHNTWVUbnM42ltUX3Rnuc5YE6CRjIP2qaHDwoOhvY7ynztI5O74VHpxJ4I89/1cjCT7+7yKGxJ20GkFtjOt9fyCeWiF9zGHKxNXfO1DTVcXKroK9HHRhfU4oz2bnpFCOJU908Vt3h5fAnsWSxKT/M1lgwVTCtdS1VQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604009849034157.70466057825593; Thu, 29 Oct 2020 15:17:29 -0700 (PDT) Received: from localhost ([::1]:42434 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYGEZ-0005as-Ra for importer@patchew.org; Thu, 29 Oct 2020 18:17:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42676) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG1L-0003W0-KI for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:47 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:53435) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG1F-0006bI-VY for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:46 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-104-N1rOvlYhN_K5PLiadHxQMw-1; Thu, 29 Oct 2020 18:03:35 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 5802D9CC11 for ; Thu, 29 Oct 2020 22:03:34 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id E7C545B4A4; Thu, 29 Oct 2020 22:03:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604009017; 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=4HROLlXHlhYMQbZTAf6PS83/wxPe3JxmKVcuywy/oIE=; b=f7CArYqUQcryuUfzU8+rpEoLEWxBBtk1DIijzNHi3tIBnZUgjoWqkdsageiYfewmsnsY02 6XQH1xM0fHuqAPs/KsfiiODfqh6oil+CCsTCENREqzwnk6xCkW93/2HKDkMLcfVCTD8Rf7 /cJjt/bXGRcPlPBc0A7FEA7SWUnnU+Q= X-MC-Unique: N1rOvlYhN_K5PLiadHxQMw-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 19/36] qdev: Move array property creation/registration to separate functions Date: Thu, 29 Oct 2020 18:02:29 -0400 Message-Id: <20201029220246.472693-20-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=63.128.21.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 01:47:28 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Daniel P. Berrange" , John Snow , Markus Armbruster , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) The array property registration code is hard to follow. Move the two steps into separate functions that have clear responsibilities. Signed-off-by: Eduardo Habkost Reviewed-by: Marc-Andr=C3=A9 Lureau --- Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-properties.c | 60 ++++++++++++++++++++++++++------------- 1 file changed, 41 insertions(+), 19 deletions(-) diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 27c09255d7..1f06dfb5d5 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -588,6 +588,32 @@ typedef struct { ObjectPropertyRelease *release; } ArrayElementProperty; =20 +/** + * Create ArrayElementProperty based on array length property + * @array_len_prop (which was previously defined using DEFINE_PROP_ARRAY()= ). + */ +static ArrayElementProperty *array_element_new(Object *obj, + Property *array_len_prop, + const char *arrayname, + int index, + void *eltptr) +{ + char *propname =3D g_strdup_printf("%s[%d]", arrayname, index); + ArrayElementProperty *arrayprop =3D g_new0(ArrayElementProperty, 1); + arrayprop->release =3D array_len_prop->arrayinfo->release; + arrayprop->propname =3D propname; + arrayprop->prop.info =3D array_len_prop->arrayinfo; + arrayprop->prop.name =3D propname; + /* This ugly piece of pointer arithmetic sets up the offset so + * that when the underlying get/set hooks call qdev_get_prop_ptr + * they get the right answer despite the array element not actually + * being inside the device struct. + */ + arrayprop->prop.offset =3D eltptr - (void *)obj; + assert(qdev_get_prop_ptr(obj, &arrayprop->prop) =3D=3D eltptr); + return arrayprop; +} + /* object property release callback for array element properties: * we call the underlying element's property release hook, and * then free the memory we allocated when we added the property. @@ -602,6 +628,18 @@ static void array_element_release(Object *obj, const c= har *name, void *opaque) g_free(p); } =20 +static void object_property_add_array_element(Object *obj, + Property *array_len_prop, + ArrayElementProperty *prop) +{ + object_property_add(obj, prop->prop.name, + prop->prop.info->name, + static_prop_getter(prop->prop.info), + static_prop_setter(prop->prop.info), + array_element_release, + prop); +} + static void set_prop_arraylen(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { @@ -641,25 +679,9 @@ static void set_prop_arraylen(Object *obj, Visitor *v,= const char *name, */ *arrayptr =3D eltptr =3D g_malloc0(*alenptr * prop->arrayfieldsize); for (i =3D 0; i < *alenptr; i++, eltptr +=3D prop->arrayfieldsize) { - char *propname =3D g_strdup_printf("%s[%d]", arrayname, i); - ArrayElementProperty *arrayprop =3D g_new0(ArrayElementProperty, 1= ); - arrayprop->release =3D prop->arrayinfo->release; - arrayprop->propname =3D propname; - arrayprop->prop.info =3D prop->arrayinfo; - arrayprop->prop.name =3D propname; - /* This ugly piece of pointer arithmetic sets up the offset so - * that when the underlying get/set hooks call qdev_get_prop_ptr - * they get the right answer despite the array element not actually - * being inside the device struct. - */ - arrayprop->prop.offset =3D eltptr - (void *)obj; - assert(qdev_get_prop_ptr(obj, &arrayprop->prop) =3D=3D eltptr); - object_property_add(obj, propname, - arrayprop->prop.info->name, - static_prop_getter(arrayprop->prop.info), - static_prop_setter(arrayprop->prop.info), - array_element_release, - arrayprop); + ArrayElementProperty *elt_prop =3D array_element_new(obj, prop, ar= rayname, + i, eltptr); + object_property_add_array_element(obj, prop, elt_prop); } } =20 --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604009444; cv=none; d=zohomail.com; s=zohoarc; b=msUbn1pgzA06sTifR8n9+l4L8E4UUcpkPvFsEcEwphnUyxIsVYWsggPnBnX2HEiWA25Z6Rs3GgspE8LPlaKRIAPN+q1i9X2DzZfzLC7MNpXM38HTxRVDEwDNYwGuLJTn5dltw2+g4z/clwOARk4+pIPtOq8SwQzueulatUHlL9I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604009444; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=B+p7rRmridN4HPSmGA8f7ZIuPV/a/xPDCBMShnMFMuI=; b=QChZ5EGbpkPYCK/l779SkRHJq+gPv469wV7qIsMRu71qGAquW+eSnpTwPK2B6reie+OxQI0JjM+pSWCpHLXG6abAXTCDfyiqBIT2FVcU1McTTaIxShWuQf107pgEXoRFu1FHmpLP83xsJ1zg3Y6N+v4qRG/riDpO71dnyMrakWg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604009444640607.5593264996351; Thu, 29 Oct 2020 15:10:44 -0700 (PDT) Received: from localhost ([::1]:45394 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYG83-0003Zt-Hz for importer@patchew.org; Thu, 29 Oct 2020 18:10:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42684) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG1M-0003Xj-Al for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:48 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:58166) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG1H-0006bK-8J for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:47 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-558-19VNaPlWN3ysGuorlavbZQ-1; Thu, 29 Oct 2020 18:03:36 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 79D9A8030CC for ; Thu, 29 Oct 2020 22:03:35 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id 392B219646; Thu, 29 Oct 2020 22:03:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604009018; 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=B+p7rRmridN4HPSmGA8f7ZIuPV/a/xPDCBMShnMFMuI=; b=iAz+0zCPQpC3SClkS5Zemd1vnuf3ZeH0UKesb0UtWwyxBOUpJweNiMzBcQyTJYHYVDy6Ax WqaJLVWpsd24iRGrbd17KR1+Qtb3W0h5+86VCnehba29NyiZ7jaa8MdFXwxYupGx4QN2ml bNT2d5HwcxojN9PbzXJwKOkXQxZHkRA= X-MC-Unique: 19VNaPlWN3ysGuorlavbZQ-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 20/36] qdev: Reuse object_property_add_static() when adding array elements Date: Thu, 29 Oct 2020 18:02:30 -0400 Message-Id: <20201029220246.472693-21-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=63.128.21.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 01:47:28 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Daniel P. Berrange" , John Snow , Markus Armbruster , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Reuse function instead of calling object_property_add() directly. We need to hack ObjectProperty.release to make sure we will free the array property. Signed-off-by: Eduardo Habkost Reviewed-by: Marc-Andr=C3=A9 Lureau --- Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-properties.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 1f06dfb5d5..4fec9cb73b 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -600,7 +600,6 @@ static ArrayElementProperty *array_element_new(Object *= obj, { char *propname =3D g_strdup_printf("%s[%d]", arrayname, index); ArrayElementProperty *arrayprop =3D g_new0(ArrayElementProperty, 1); - arrayprop->release =3D array_len_prop->arrayinfo->release; arrayprop->propname =3D propname; arrayprop->prop.info =3D array_len_prop->arrayinfo; arrayprop->prop.name =3D propname; @@ -632,12 +631,12 @@ static void object_property_add_array_element(Object = *obj, Property *array_len_prop, ArrayElementProperty *prop) { - object_property_add(obj, prop->prop.name, - prop->prop.info->name, - static_prop_getter(prop->prop.info), - static_prop_setter(prop->prop.info), - array_element_release, - prop); + ObjectProperty *op =3D object_property_add_static(obj, &prop->prop); + + assert((void *)prop =3D=3D (void *)&prop->prop); + prop->release =3D op->release; + /* array_element_release() will call the original release function */ + op->release =3D array_element_release; } =20 static void set_prop_arraylen(Object *obj, Visitor *v, const char *name, --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604009567; cv=none; d=zohomail.com; s=zohoarc; b=NTAoLjY96MBxuiowIEdkhrWckrz/hH/dLYgexnXyss7J2RZQ/Ev0WbgUNVVtqX3EutCZSqoZpP3aqAOUL39QTF5WinFPt7UM4i2IPhk+2znafmrhQS2Rco83fGbdIlKDayqvQ2qvxkhnpHRsyB6GAHZ8u8KcT3zdlWcAinwPjHo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604009567; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=QUxh+dAMr7asfgASVssXiGfljD2JvuaH/LJeEOqBzHc=; b=MRUPDyyU5R1adlGli0LujsQkjvH3ZNWvSCFY9135hHUJEP5Z8olQGBYuIri5lhBRvhwW+w3wqSpSxT5sAX0OWeAGGRAPY+YN+txhmd2xuPbkPcRfPkFtAOO+ZsHUkH6rgxaQz2c96KJn3auBJmEUmOnV9IlUtCW4IjRJdkU1l3o= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604009567735310.6989558096444; Thu, 29 Oct 2020 15:12:47 -0700 (PDT) Received: from localhost ([::1]:53694 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYGA2-00071g-Lk for importer@patchew.org; Thu, 29 Oct 2020 18:12:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42700) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG1M-0003Yt-MZ for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:48 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:55227) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG1H-0006bS-96 for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:48 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-367-fUCgkL_bOcqkT2zPyglrwg-1; Thu, 29 Oct 2020 18:03:37 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id E058A802B66 for ; Thu, 29 Oct 2020 22:03:36 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id A0CEF5DA2A; Thu, 29 Oct 2020 22:03:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604009019; 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=QUxh+dAMr7asfgASVssXiGfljD2JvuaH/LJeEOqBzHc=; b=I2BQOF9jnxr3T023GcPUcsEPOMbkCWUxn/rsYTU0pf2ci5uqWyOC1kUvXRt/PHxr7pbymg SB9W9fbKEqoMD2j3hrLF0XRYfn33ICpJAdLCoiJu3dRI2i+IyVz6ESuHkJ/Lb2JXnuRQIr YMj/IB3QvFqetMqcD8XkQ1TkpnTcfMA= X-MC-Unique: fUCgkL_bOcqkT2zPyglrwg-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 21/36] qom: Add allow_set callback to ObjectProperty Date: Thu, 29 Oct 2020 18:02:31 -0400 Message-Id: <20201029220246.472693-22-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=216.205.24.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 00:47:54 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Daniel P. Berrange" , John Snow , Markus Armbruster , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Note that this doesn't replace the check callback at object*_property_add_link() (yet), because currently the link property check callback needs to get the property value as argument (despite this not being necessary in most cases). Signed-off-by: Eduardo Habkost Reviewed-by: Marc-Andr=C3=A9 Lureau --- Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- include/qom/object.h | 16 ++++++++++++++++ qom/object.c | 4 ++++ 2 files changed, 20 insertions(+) diff --git a/include/qom/object.h b/include/qom/object.h index d378f13a11..24e591d954 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -86,6 +86,21 @@ typedef void (ObjectPropertyRelease)(Object *obj, */ typedef void (ObjectPropertyInit)(Object *obj, ObjectProperty *prop); =20 +/** + * typedef ObjectPropertyAllowSet: + * @obj: the object that owns the property + * @prop: the property being set + * @errp: pointer to error information + * + * Called when a property is being set. + * + * If return value is false, it will prevent the property from + * being changed. Error information should be filled in @errp + * if return vlaue is false. + */ +typedef bool (ObjectPropertyAllowSet)(Object *obj, ObjectProperty *prop, + Error **errp); + struct ObjectProperty { char *name; @@ -96,6 +111,7 @@ struct ObjectProperty ObjectPropertyResolve *resolve; ObjectPropertyRelease *release; ObjectPropertyInit *init; + ObjectPropertyAllowSet *allow_set; void *opaque; QObject *defval; }; diff --git a/qom/object.c b/qom/object.c index 1065355233..20726e4584 100644 --- a/qom/object.c +++ b/qom/object.c @@ -1395,6 +1395,10 @@ bool object_property_set(Object *obj, const char *na= me, Visitor *v, error_setg(errp, QERR_PERMISSION_DENIED); return false; } + if (prop->allow_set && !prop->allow_set(obj, prop, errp)) { + return false; + } + prop->set(obj, v, name, prop->opaque, &err); error_propagate(errp, err); return !err; --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604009729; cv=none; d=zohomail.com; s=zohoarc; b=ShbC9hLF8pPVlKEooccnQmTc0il1qS8x25S3J5tGi4wrLD3X/TYEdWrD4E/ZqUOD+gs+G73yt7dxQOBbt3Ym3CRbWR1ByddpSk8ks27qX2R1Re1RlYsWoLIgMlJ4Rp0Q42HyZMQ6c+FT9sll8nqEPF9s1zzmaHE56XCn5Jwvyz8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604009729; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=73dqo+DZjK9A2wR9mXizxxs4T9+NmFXNl0+jmr3inog=; b=nwhaqoSmoknfbO3LhXXBO8PyuWzuManANhaqhajkkSNyrhIre5UFbhosphaPHD4tjVJlx7tiOdsgYP/oyPnI9N7TgCvkL/7JkGQ2aw0tvf4kYbbkzZJUiqbaWWJbaZMruF3MqjdRS2H/ibXt1ERJblcgjA6jk1STtDbuq7nhVaI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604009729004319.9119273337984; Thu, 29 Oct 2020 15:15:29 -0700 (PDT) Received: from localhost ([::1]:36170 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYGCd-0002w5-QV for importer@patchew.org; Thu, 29 Oct 2020 18:15:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42738) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG1O-0003cr-7a for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:50 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:39658) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG1H-0006ba-AO for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:49 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-163-eyuuCOcLM0iNt4k5nrdBuw-1; Thu, 29 Oct 2020 18:03:39 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 2756518BA281 for ; Thu, 29 Oct 2020 22:03:38 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id CEFFA1975F; Thu, 29 Oct 2020 22:03:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604009021; 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=73dqo+DZjK9A2wR9mXizxxs4T9+NmFXNl0+jmr3inog=; b=gk6FUTjSFE3kFkizwwzXedZX3KV6pCRi9oN3JvlVg99ZIDI5y26B9S62adQNvePlBdyGuz 1RhtR10L7ilb7eiqDx1oWnA11TpPFcJObKu4gtus/RINF4H+g5oMKbTRjSaXvTQZRCBjzs crnP7lXhssX2YE2J0i7S7jm27qNZz2E= X-MC-Unique: eyuuCOcLM0iNt4k5nrdBuw-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 22/36] qdev: Make qdev_prop_allow_set() a property allow_set callback Date: Thu, 29 Oct 2020 18:02:32 -0400 Message-Id: <20201029220246.472693-23-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=216.205.24.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 00:47:54 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Daniel P. Berrange" , John Snow , Markus Armbruster , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) This removes the last remaining DeviceState-specific line of code inside qdev property registration code, and will allow us to make static properties a core QOM feature. Signed-off-by: Eduardo Habkost Reviewed-by: Marc-Andr=C3=A9 Lureau --- Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-prop-internal.h | 4 +++- include/hw/qdev-core.h | 10 ++++++++++ include/hw/qdev-properties.h | 10 ++++++++-- hw/core/qdev-properties.c | 36 ++++++++++++++++++++++-------------- 4 files changed, 43 insertions(+), 17 deletions(-) diff --git a/hw/core/qdev-prop-internal.h b/hw/core/qdev-prop-internal.h index 858f844504..49bf557fd5 100644 --- a/hw/core/qdev-prop-internal.h +++ b/hw/core/qdev-prop-internal.h @@ -31,11 +31,13 @@ void qdev_propinfo_get_size32(Object *obj, Visitor *v, = const char *name, * object_property_add_static: Add a static property to an object instance * @obj: object instance * @prop: property definition + * @allow_set: optional check function * * This function should not be used in new code. Please add class propert= ies * instead, using object_class_add_static_props(). */ ObjectProperty * -object_property_add_static(Object *obj, Property *prop); +object_property_add_static(Object *obj, Property *prop, + ObjectPropertyAllowSet allow_set); =20 #endif diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h index aea49355fa..e69d19d06b 100644 --- a/include/hw/qdev-core.h +++ b/include/hw/qdev-core.h @@ -765,6 +765,16 @@ void qdev_machine_init(void); */ void device_legacy_reset(DeviceState *dev); =20 +/** + * device_class_set_props: Add class properties from #Property array + * + * @dc: Device class + * @props: array of device properties, terminated by DEFINE_PROP_END_OF_LI= ST + * + * Add class properties from the array at @props. + * Properties added using this function will be settable only + * before the device is realized. + */ void device_class_set_props(DeviceClass *dc, Property *props); =20 /** diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h index c94301c349..0acc92ae2b 100644 --- a/include/hw/qdev-properties.h +++ b/include/hw/qdev-properties.h @@ -279,25 +279,31 @@ extern const PropertyInfo qdev_prop_pcie_link_width; * object_class_property_add_static: Add a static property to object class * @oc: object class * @prop: property definition + * @allow_set: optional check function * * Add a property to an object class based on the property definition * at @prop. * + * If @allow_set is NULL, the property will always be allowed to be set. + * * The property definition at @prop should be defined using the * ``DEFINE_PROP`` family of macros. *@prop must exist for the * life time of @oc. */ ObjectProperty * -object_class_property_add_static(ObjectClass *oc, Property *prop); +object_class_property_add_static(ObjectClass *oc, Property *prop, + ObjectPropertyAllowSet allow_set); =20 /** * object_class_add_static_props: Add multiple static properties to object= class * @oc: object class * @props: property definition array, terminated by DEFINED_PROP_END_OF_LI= ST() + * @allow_set: optional check function * * Add properties from @props using object_class_property_add_static() */ -void object_class_add_static_props(ObjectClass *oc, Property *props); +void object_class_add_static_props(ObjectClass *oc, Property *props, + ObjectPropertyAllowSet allow_set); =20 /* * Set properties between creation and realization. diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 4fec9cb73b..4cb8baa6a0 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -26,13 +26,13 @@ void qdev_prop_set_after_realize(DeviceState *dev, cons= t char *name, } =20 /* returns: true if property is allowed to be set, false otherwise */ -static bool qdev_prop_allow_set(Object *obj, const char *name, +static bool qdev_prop_allow_set(Object *obj, ObjectProperty *op, Error **errp) { DeviceState *dev =3D DEVICE(obj); =20 if (dev->realized) { - qdev_prop_set_after_realize(dev, name, errp); + qdev_prop_set_after_realize(dev, op->name, errp); return false; } return true; @@ -80,10 +80,6 @@ static void static_prop_set(Object *obj, Visitor *v, con= st char *name, { Property *prop =3D opaque; =20 - if (!qdev_prop_allow_set(obj, name, errp)) { - return; - } - return prop->info->set(obj, v, name, opaque, errp); } =20 @@ -631,7 +627,9 @@ static void object_property_add_array_element(Object *o= bj, Property *array_len_prop, ArrayElementProperty *prop) { - ObjectProperty *op =3D object_property_add_static(obj, &prop->prop); + ObjectProperty *array_op =3D object_property_find(obj, array_len_prop-= >name); + ObjectProperty *op =3D object_property_add_static(obj, &prop->prop, + array_op->allow_set); =20 assert((void *)prop =3D=3D (void *)&prop->prop); prop->release =3D op->release; @@ -894,9 +892,13 @@ const PropertyInfo qdev_prop_size =3D { =20 static ObjectProperty *create_link_property(ObjectClass *oc, Property *pro= p) { + /* + * NOTE: object_property_allow_set_link is unconditional, but + * ObjectProperty.allow_set may be set for the property too. + */ return object_class_property_add_link(oc, prop->name, prop->link_type, prop->offset, - qdev_prop_allow_set_link_before_= realize, + object_property_allow_set_link, OBJ_PROP_LINK_STRONG); } =20 @@ -906,7 +908,8 @@ const PropertyInfo qdev_prop_link =3D { }; =20 ObjectProperty * -object_property_add_static(Object *obj, Property *prop) +object_property_add_static(Object *obj, Property *prop, + ObjectPropertyAllowSet allow_set) { ObjectProperty *op; =20 @@ -928,11 +931,13 @@ object_property_add_static(Object *obj, Property *pro= p) } } =20 + op->allow_set =3D allow_set; return op; } =20 ObjectProperty * -object_class_property_add_static(ObjectClass *oc, Property *prop) +object_class_property_add_static(ObjectClass *oc, Property *prop, + ObjectPropertyAllowSet allow_set) { ObjectProperty *op; =20 @@ -953,21 +958,24 @@ object_class_property_add_static(ObjectClass *oc, Pro= perty *prop) object_class_property_set_description(oc, prop->name, prop->info->description); } + + op->allow_set =3D allow_set; return op; } =20 -void object_class_add_static_props(ObjectClass *oc, Property *props) +void object_class_add_static_props(ObjectClass *oc, Property *props, + ObjectPropertyAllowSet allow_set) { Property *prop; =20 for (prop =3D props; prop && prop->name; prop++) { - object_class_property_add_static(oc, prop); + object_class_property_add_static(oc, prop, allow_set); } } =20 void qdev_property_add_static(DeviceState *dev, Property *prop) { - object_property_add_static(OBJECT(dev), prop); + object_property_add_static(OBJECT(dev), prop, qdev_prop_allow_set); } =20 /** @@ -1027,7 +1035,7 @@ void device_class_set_props(DeviceClass *dc, Property= *props) { dc->props_ =3D props; qdev_class_add_legacy_properties(dc, props); - object_class_add_static_props(OBJECT_CLASS(dc), props); + object_class_add_static_props(OBJECT_CLASS(dc), props, qdev_prop_allow= _set); } =20 void qdev_alias_all_properties(DeviceState *target, Object *source) --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604010155; cv=none; d=zohomail.com; s=zohoarc; b=n+s+S43jFR6QUxlGD5vMV6Aai1j++6VrNVNkHYB1CeW+c95qQIUml8fTjhmhGb0J3Aktx7FdX+7ZH5wQAe74kReq0SzvlMUHvlS7V16wtMZlzR4BV0qH6Iw4S7F9tvlIFXmj4xoNIT0fOJ9SqBILSxSBDKwFHzOrMz+IsjRnPlY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604010155; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=6QqF1h0jHtaWAY24awHawid96gubhZ/Hd9VL48o+QVI=; b=KMwm39VKIUSZHjenU9HEvoQGOmOaRiJ6GAOuKCQw1eQSEmbgTT0Qm2LRz+6OTSStcJyUZnKYZWuotonG02zm9SRLIvJAAdu9wfEY64oWEnVYCfMH+Idrjidw2q3U2leXwoprip2h7o4AFFQBx4np7yzUelDUAER4zYT9IWSdIw4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 160401015516643.10558930832531; Thu, 29 Oct 2020 15:22:35 -0700 (PDT) Received: from localhost ([::1]:58138 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYGJW-0003hp-56 for importer@patchew.org; Thu, 29 Oct 2020 18:22:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42722) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG1N-0003bd-Pc for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:49 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:46931) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG1J-0006bp-68 for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:49 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-96-x69HVDdzMF-_3zP7ImKn_Q-1; Thu, 29 Oct 2020 18:03:40 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 74BE78030CC for ; Thu, 29 Oct 2020 22:03:39 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1D3AA1002D48; Thu, 29 Oct 2020 22:03:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604009022; 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=6QqF1h0jHtaWAY24awHawid96gubhZ/Hd9VL48o+QVI=; b=XolIXxITardbo+R1fAbMd6I2tont+lnAJiHBjdaCdkWeYA1v/5E0OCtrKc8QiJxBkr/UiZ n2cnLPB/T02X6jKwlTGesGDIdQbU/I+9bj8IxtKTt36osup1FzIYJxGsiNejBjo05jAM+C Bflil/WWsmUmpvOMa5FFXceCVKBeLv8= X-MC-Unique: x69HVDdzMF-_3zP7ImKn_Q-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 23/36] qdev: Make qdev_propinfo_get_uint16() static Date: Thu, 29 Oct 2020 18:02:33 -0400 Message-Id: <20201029220246.472693-24-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=63.128.21.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 01:47:28 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Daniel P. Berrange" , John Snow , Markus Armbruster , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) There are no users of the function outside qdev-properties.c. Make function static and rename it to get_uint16(). Signed-off-by: Eduardo Habkost Reviewed-by: Marc-Andr=C3=A9 Lureau --- Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-prop-internal.h | 2 -- hw/core/qdev-properties.c | 6 +++--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/hw/core/qdev-prop-internal.h b/hw/core/qdev-prop-internal.h index 49bf557fd5..c8006a21c7 100644 --- a/hw/core/qdev-prop-internal.h +++ b/hw/core/qdev-prop-internal.h @@ -20,8 +20,6 @@ void qdev_propinfo_set_default_value_int(ObjectProperty *= op, void qdev_propinfo_set_default_value_uint(ObjectProperty *op, const Property *prop); =20 -void qdev_propinfo_get_uint16(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp); void qdev_propinfo_get_int32(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp); void qdev_propinfo_get_size32(Object *obj, Visitor *v, const char *name, diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 4cb8baa6a0..5189626c09 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -296,8 +296,8 @@ const PropertyInfo qdev_prop_uint8 =3D { =20 /* --- 16bit integer --- */ =20 -void qdev_propinfo_get_uint16(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) +static void get_uint16(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) { Property *prop =3D opaque; uint16_t *ptr =3D qdev_get_prop_ptr(obj, prop); @@ -316,7 +316,7 @@ static void set_uint16(Object *obj, Visitor *v, const c= har *name, =20 const PropertyInfo qdev_prop_uint16 =3D { .name =3D "uint16", - .get =3D qdev_propinfo_get_uint16, + .get =3D get_uint16, .set =3D set_uint16, .set_default_value =3D qdev_propinfo_set_default_value_uint, }; --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604009701; cv=none; d=zohomail.com; s=zohoarc; b=ROHRFYb7AhH91GhvUdzwmwaX2zWXIPMuh3CGX0Rd+4RqL/n+3TTkyTES+2+X/XW4R8+CyVKTeOWxIZc/9HL2T+QIbnzOterV3cUt7UmPnhOEVzOOi1dTsXtTJQoNCz/IEr9egObzDafuCAbbP83wgU3L0ls3tctpVYj1MTj9g3M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604009701; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=1DdZBB4EDlaaZxGBRJRdKw7c/rep5ZMVUi4EkmGtpg8=; b=RdYJzdQVEbMsJJezfmzwEXDeZG5NIcOcJAy7AUUJ6tSHx+uI4PXebkntyqhQCq1RWVH82CUkd42l4Bv+k2ZYfSBa59ZVr1ZMFUtojhQI6c/zu8JQljs+MjlpFWLZmBGWuzWl9XzG9ZPXO2F3jLXYwVv9ZTI4fC03UEL9vGfavME= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604009701795258.9759540584081; Thu, 29 Oct 2020 15:15:01 -0700 (PDT) Received: from localhost ([::1]:33932 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYGCC-00020a-Et for importer@patchew.org; Thu, 29 Oct 2020 18:15:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42742) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG1O-0003ea-Ug for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:50 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:37550) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG1J-0006c3-8h for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:03:50 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-412-dNdBBI3pM_Ooqh_Z0FKdKA-1; Thu, 29 Oct 2020 18:03:41 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 8A25118BA280 for ; Thu, 29 Oct 2020 22:03:40 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id 40E2B60C17; Thu, 29 Oct 2020 22:03:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604009023; 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=1DdZBB4EDlaaZxGBRJRdKw7c/rep5ZMVUi4EkmGtpg8=; b=Q8VhfoUxyOpxC9Qv4utlhIfbnCcwd4gWzghAE/aOdAenqant5Ff78Bzmh/oEJIvY8OM7P+ vbDwD9aWDs/hyIzqwitA8QQ6l4ZiSsncR0n1/ZLt6nXQk5x0Mh0xWyfFteU0XIJcuLqe2Z dKnSs4oYGWFUR3cTpANU2FUhnGIviZA= X-MC-Unique: dNdBBI3pM_Ooqh_Z0FKdKA-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 24/36] qdev: Rename qdev_propinfo_* to object_propinfo_* Date: Thu, 29 Oct 2020 18:02:34 -0400 Message-Id: <20201029220246.472693-25-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=63.128.21.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 01:47:28 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Daniel P. Berrange" , John Snow , Markus Armbruster , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) These functions will be moved to be part of QOM, so rename them. Signed-off-by: Eduardo Habkost Reviewed-by: Marc-Andr=C3=A9 Lureau --- Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-prop-internal.h | 28 +++++++++---------- hw/core/qdev-properties-system.c | 48 ++++++++++++++++---------------- hw/core/qdev-properties.c | 48 ++++++++++++++++---------------- 3 files changed, 62 insertions(+), 62 deletions(-) diff --git a/hw/core/qdev-prop-internal.h b/hw/core/qdev-prop-internal.h index c8006a21c7..41ec9e8942 100644 --- a/hw/core/qdev-prop-internal.h +++ b/hw/core/qdev-prop-internal.h @@ -8,22 +8,22 @@ #ifndef HW_CORE_QDEV_PROP_INTERNAL_H #define HW_CORE_QDEV_PROP_INTERNAL_H =20 -void qdev_propinfo_get_enum(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp); -void qdev_propinfo_set_enum(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp); +void object_propinfo_get_enum(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp); +void object_propinfo_set_enum(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp); =20 -void qdev_propinfo_set_default_value_enum(ObjectProperty *op, - const Property *prop); -void qdev_propinfo_set_default_value_int(ObjectProperty *op, - const Property *prop); -void qdev_propinfo_set_default_value_uint(ObjectProperty *op, - const Property *prop); +void object_propinfo_set_default_value_enum(ObjectProperty *op, + const Property *prop); +void object_propinfo_set_default_value_int(ObjectProperty *op, + const Property *prop); +void object_propinfo_set_default_value_uint(ObjectProperty *op, + const Property *prop); =20 -void qdev_propinfo_get_int32(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp); -void qdev_propinfo_get_size32(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp); +void object_propinfo_get_int32(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp); +void object_propinfo_get_size32(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp); =20 /** * object_property_add_static: Add a static property to an object instance diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-sys= tem.c index 60a45f5620..d9355053d2 100644 --- a/hw/core/qdev-properties-system.c +++ b/hw/core/qdev-properties-system.c @@ -535,9 +535,9 @@ QEMU_BUILD_BUG_ON(sizeof(LostTickPolicy) !=3D sizeof(in= t)); const PropertyInfo qdev_prop_losttickpolicy =3D { .name =3D "LostTickPolicy", .enum_table =3D &LostTickPolicy_lookup, - .get =3D qdev_propinfo_get_enum, - .set =3D qdev_propinfo_set_enum, - .set_default_value =3D qdev_propinfo_set_default_value_enum, + .get =3D object_propinfo_get_enum, + .set =3D object_propinfo_set_enum, + .set_default_value =3D object_propinfo_set_default_value_enum, }; =20 /* --- blocksize --- */ @@ -566,9 +566,9 @@ const PropertyInfo qdev_prop_blocksize =3D { .name =3D "size", .description =3D "A power of two between " MIN_BLOCK_SIZE_STR " and " MAX_BLOCK_SIZE_STR, - .get =3D qdev_propinfo_get_size32, + .get =3D object_propinfo_get_size32, .set =3D set_blocksize, - .set_default_value =3D qdev_propinfo_set_default_value_uint, + .set_default_value =3D object_propinfo_set_default_value_uint, }; =20 /* --- Block device error handling policy --- */ @@ -580,9 +580,9 @@ const PropertyInfo qdev_prop_blockdev_on_error =3D { .description =3D "Error handling policy, " "report/ignore/enospc/stop/auto", .enum_table =3D &BlockdevOnError_lookup, - .get =3D qdev_propinfo_get_enum, - .set =3D qdev_propinfo_set_enum, - .set_default_value =3D qdev_propinfo_set_default_value_enum, + .get =3D object_propinfo_get_enum, + .set =3D object_propinfo_set_enum, + .set_default_value =3D object_propinfo_set_default_value_enum, }; =20 /* --- BIOS CHS translation */ @@ -594,9 +594,9 @@ const PropertyInfo qdev_prop_bios_chs_trans =3D { .description =3D "Logical CHS translation algorithm, " "auto/none/lba/large/rechs", .enum_table =3D &BiosAtaTranslation_lookup, - .get =3D qdev_propinfo_get_enum, - .set =3D qdev_propinfo_set_enum, - .set_default_value =3D qdev_propinfo_set_default_value_enum, + .get =3D object_propinfo_get_enum, + .set =3D object_propinfo_set_enum, + .set_default_value =3D object_propinfo_set_default_value_enum, }; =20 /* --- FDC default drive types */ @@ -606,9 +606,9 @@ const PropertyInfo qdev_prop_fdc_drive_type =3D { .description =3D "FDC drive type, " "144/288/120/none/auto", .enum_table =3D &FloppyDriveType_lookup, - .get =3D qdev_propinfo_get_enum, - .set =3D qdev_propinfo_set_enum, - .set_default_value =3D qdev_propinfo_set_default_value_enum, + .get =3D object_propinfo_get_enum, + .set =3D object_propinfo_set_enum, + .set_default_value =3D object_propinfo_set_default_value_enum, }; =20 /* --- MultiFDCompression --- */ @@ -618,9 +618,9 @@ const PropertyInfo qdev_prop_multifd_compression =3D { .description =3D "multifd_compression values, " "none/zlib/zstd", .enum_table =3D &MultiFDCompression_lookup, - .get =3D qdev_propinfo_get_enum, - .set =3D qdev_propinfo_set_enum, - .set_default_value =3D qdev_propinfo_set_default_value_enum, + .get =3D object_propinfo_get_enum, + .set =3D object_propinfo_set_enum, + .set_default_value =3D object_propinfo_set_default_value_enum, }; =20 /* --- Reserved Region --- */ @@ -764,9 +764,9 @@ const PropertyInfo qdev_prop_pci_devfn =3D { .name =3D "int32", .description =3D "Slot and optional function number, example: 06.0 or = 06", .print =3D print_pci_devfn, - .get =3D qdev_propinfo_get_int32, + .get =3D object_propinfo_get_int32, .set =3D set_pci_devfn, - .set_default_value =3D qdev_propinfo_set_default_value_int, + .set_default_value =3D object_propinfo_set_default_value_int, }; =20 /* --- pci host address --- */ @@ -879,9 +879,9 @@ const PropertyInfo qdev_prop_off_auto_pcibar =3D { .name =3D "OffAutoPCIBAR", .description =3D "off/auto/bar0/bar1/bar2/bar3/bar4/bar5", .enum_table =3D &OffAutoPCIBAR_lookup, - .get =3D qdev_propinfo_get_enum, - .set =3D qdev_propinfo_set_enum, - .set_default_value =3D qdev_propinfo_set_default_value_enum, + .get =3D object_propinfo_get_enum, + .set =3D object_propinfo_set_enum, + .set_default_value =3D object_propinfo_set_default_value_enum, }; =20 /* --- PCIELinkSpeed 2_5/5/8/16 -- */ @@ -951,7 +951,7 @@ const PropertyInfo qdev_prop_pcie_link_speed =3D { .enum_table =3D &PCIELinkSpeed_lookup, .get =3D get_prop_pcielinkspeed, .set =3D set_prop_pcielinkspeed, - .set_default_value =3D qdev_propinfo_set_default_value_enum, + .set_default_value =3D object_propinfo_set_default_value_enum, }; =20 /* --- PCIELinkWidth 1/2/4/8/12/16/32 -- */ @@ -1039,5 +1039,5 @@ const PropertyInfo qdev_prop_pcie_link_width =3D { .enum_table =3D &PCIELinkWidth_lookup, .get =3D get_prop_pcielinkwidth, .set =3D set_prop_pcielinkwidth, - .set_default_value =3D qdev_propinfo_set_default_value_enum, + .set_default_value =3D object_propinfo_set_default_value_enum, }; diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 5189626c09..e4aba2b237 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -93,7 +93,7 @@ static ObjectPropertyAccessor *static_prop_setter(const P= ropertyInfo *info) return info->set ? static_prop_set : NULL; } =20 -void qdev_propinfo_get_enum(Object *obj, Visitor *v, const char *name, +void object_propinfo_get_enum(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { Property *prop =3D opaque; @@ -102,7 +102,7 @@ void qdev_propinfo_get_enum(Object *obj, Visitor *v, co= nst char *name, visit_type_enum(v, prop->name, ptr, prop->info->enum_table, errp); } =20 -void qdev_propinfo_set_enum(Object *obj, Visitor *v, const char *name, +void object_propinfo_set_enum(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { Property *prop =3D opaque; @@ -111,7 +111,7 @@ void qdev_propinfo_set_enum(Object *obj, Visitor *v, co= nst char *name, visit_type_enum(v, prop->name, ptr, prop->info->enum_table, errp); } =20 -void qdev_propinfo_set_default_value_enum(ObjectProperty *op, +void object_propinfo_set_default_value_enum(ObjectProperty *op, const Property *prop) { object_property_set_default_str(op, @@ -120,9 +120,9 @@ void qdev_propinfo_set_default_value_enum(ObjectPropert= y *op, =20 const PropertyInfo qdev_prop_enum =3D { .name =3D "enum", - .get =3D qdev_propinfo_get_enum, - .set =3D qdev_propinfo_set_enum, - .set_default_value =3D qdev_propinfo_set_default_value_enum, + .get =3D object_propinfo_get_enum, + .set =3D object_propinfo_set_enum, + .set_default_value =3D object_propinfo_set_default_value_enum, }; =20 /* Bit */ @@ -275,13 +275,13 @@ static void set_uint8(Object *obj, Visitor *v, const = char *name, void *opaque, visit_type_uint8(v, name, ptr, errp); } =20 -void qdev_propinfo_set_default_value_int(ObjectProperty *op, +void object_propinfo_set_default_value_int(ObjectProperty *op, const Property *prop) { object_property_set_default_int(op, prop->defval.i); } =20 -void qdev_propinfo_set_default_value_uint(ObjectProperty *op, +void object_propinfo_set_default_value_uint(ObjectProperty *op, const Property *prop) { object_property_set_default_uint(op, prop->defval.u); @@ -291,7 +291,7 @@ const PropertyInfo qdev_prop_uint8 =3D { .name =3D "uint8", .get =3D get_uint8, .set =3D set_uint8, - .set_default_value =3D qdev_propinfo_set_default_value_uint, + .set_default_value =3D object_propinfo_set_default_value_uint, }; =20 /* --- 16bit integer --- */ @@ -318,7 +318,7 @@ const PropertyInfo qdev_prop_uint16 =3D { .name =3D "uint16", .get =3D get_uint16, .set =3D set_uint16, - .set_default_value =3D qdev_propinfo_set_default_value_uint, + .set_default_value =3D object_propinfo_set_default_value_uint, }; =20 /* --- 32bit integer --- */ @@ -341,7 +341,7 @@ static void set_uint32(Object *obj, Visitor *v, const c= har *name, visit_type_uint32(v, name, ptr, errp); } =20 -void qdev_propinfo_get_int32(Object *obj, Visitor *v, const char *name, +void object_propinfo_get_int32(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { Property *prop =3D opaque; @@ -363,14 +363,14 @@ const PropertyInfo qdev_prop_uint32 =3D { .name =3D "uint32", .get =3D get_uint32, .set =3D set_uint32, - .set_default_value =3D qdev_propinfo_set_default_value_uint, + .set_default_value =3D object_propinfo_set_default_value_uint, }; =20 const PropertyInfo qdev_prop_int32 =3D { .name =3D "int32", - .get =3D qdev_propinfo_get_int32, + .get =3D object_propinfo_get_int32, .set =3D set_int32, - .set_default_value =3D qdev_propinfo_set_default_value_int, + .set_default_value =3D object_propinfo_set_default_value_int, }; =20 /* --- 64bit integer --- */ @@ -415,14 +415,14 @@ const PropertyInfo qdev_prop_uint64 =3D { .name =3D "uint64", .get =3D get_uint64, .set =3D set_uint64, - .set_default_value =3D qdev_propinfo_set_default_value_uint, + .set_default_value =3D object_propinfo_set_default_value_uint, }; =20 const PropertyInfo qdev_prop_int64 =3D { .name =3D "int64", .get =3D get_int64, .set =3D set_int64, - .set_default_value =3D qdev_propinfo_set_default_value_int, + .set_default_value =3D object_propinfo_set_default_value_int, }; =20 /* --- string --- */ @@ -474,14 +474,14 @@ const PropertyInfo qdev_prop_on_off_auto =3D { .name =3D "OnOffAuto", .description =3D "on/off/auto", .enum_table =3D &OnOffAuto_lookup, - .get =3D qdev_propinfo_get_enum, - .set =3D qdev_propinfo_set_enum, - .set_default_value =3D qdev_propinfo_set_default_value_enum, + .get =3D object_propinfo_get_enum, + .set =3D object_propinfo_set_enum, + .set_default_value =3D object_propinfo_set_default_value_enum, }; =20 /* --- 32bit unsigned int 'size' type --- */ =20 -void qdev_propinfo_get_size32(Object *obj, Visitor *v, const char *name, +void object_propinfo_get_size32(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { Property *prop =3D opaque; @@ -515,9 +515,9 @@ static void set_size32(Object *obj, Visitor *v, const c= har *name, void *opaque, =20 const PropertyInfo qdev_prop_size32 =3D { .name =3D "size", - .get =3D qdev_propinfo_get_size32, + .get =3D object_propinfo_get_size32, .set =3D set_size32, - .set_default_value =3D qdev_propinfo_set_default_value_uint, + .set_default_value =3D object_propinfo_set_default_value_uint, }; =20 /* --- UUID --- */ @@ -686,7 +686,7 @@ const PropertyInfo qdev_prop_arraylen =3D { .name =3D "uint32", .get =3D get_uint32, .set =3D set_prop_arraylen, - .set_default_value =3D qdev_propinfo_set_default_value_uint, + .set_default_value =3D object_propinfo_set_default_value_uint, }; =20 /* --- public helpers --- */ @@ -885,7 +885,7 @@ const PropertyInfo qdev_prop_size =3D { .name =3D "size", .get =3D get_size, .set =3D set_size, - .set_default_value =3D qdev_propinfo_set_default_value_uint, + .set_default_value =3D object_propinfo_set_default_value_uint, }; =20 /* --- object link property --- */ --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604009054; cv=none; d=zohomail.com; s=zohoarc; b=DzV7ygKP3RVet+1G2g7GWC2daasIivZ+axv9y4BjDx9+TQpdbfnZmQCZ6xbJXuso0QDeLPY3spwqOgnSnQuY+ZyFZsFeeVpKUhe71aj1+Bs/zGXQcxCe2dAqf+GvVz9FbXMYTtQgJQYg9nCqZFHOrTlTGOcXEPx0knzjW0S366k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604009054; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ghGtQGb+4l5vTeOq5EcJj/Yo0EHPLxl5VGbxEaF22Yo=; b=Qfw229b7jujMpTik31t5Nhh0w/VArS6m/HK/kjjQf20px17n59Swwh5/HxZ4Y/TKw0dorcJJr2+hh2Fe3I6llWXRXZ6UFpqwd8S/DpMmFOTrgT6WMa23Z7NucO7fZurem4j0l3IsH/v8onvXoujaGdd+JiuTej8e+vw8vCBW49I= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1604009054936198.6252956743898; Thu, 29 Oct 2020 15:04:14 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.15183.38166 (Exim 4.92) (envelope-from ) id 1kYG1U-0002Yp-Ej; Thu, 29 Oct 2020 22:03:56 +0000 Received: by outflank-mailman (output) from mailman id 15183.38166; Thu, 29 Oct 2020 22:03:56 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kYG1U-0002Yi-Ay; Thu, 29 Oct 2020 22:03:56 +0000 Received: by outflank-mailman (input) for mailman id 15183; Thu, 29 Oct 2020 22:03:54 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kYG1S-0002YG-4Z for xen-devel@lists.xenproject.org; Thu, 29 Oct 2020 22:03:54 +0000 Received: from us-smtp-delivery-124.mimecast.com (unknown [63.128.21.124]) by us1-rack-iad1.inumbo.com (Halon) with ESMTP id 328c929a-1878-46ff-acfd-832c80e4a959; Thu, 29 Oct 2020 22:03:52 +0000 (UTC) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-404-V-z-WGJaOwy6R88EMbiifg-1; Thu, 29 Oct 2020 18:03:50 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 4722C1018F7A; Thu, 29 Oct 2020 22:03:48 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8958D5B4A4; Thu, 29 Oct 2020 22:03:41 +0000 (UTC) Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kYG1S-0002YG-4Z for xen-devel@lists.xenproject.org; Thu, 29 Oct 2020 22:03:54 +0000 Received: from us-smtp-delivery-124.mimecast.com (unknown [63.128.21.124]) by us1-rack-iad1.inumbo.com (Halon) with ESMTP id 328c929a-1878-46ff-acfd-832c80e4a959; Thu, 29 Oct 2020 22:03:52 +0000 (UTC) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-404-V-z-WGJaOwy6R88EMbiifg-1; Thu, 29 Oct 2020 18:03:50 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 4722C1018F7A; Thu, 29 Oct 2020 22:03:48 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8958D5B4A4; Thu, 29 Oct 2020 22:03:41 +0000 (UTC) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 328c929a-1878-46ff-acfd-832c80e4a959 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604009031; 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=ghGtQGb+4l5vTeOq5EcJj/Yo0EHPLxl5VGbxEaF22Yo=; b=IXXiR5KXr56MuwZJW/5bMPZNiUiwXIhgMQStpzWI6eRVjvfAbA11pIjAfAuK73pWuZMvpS 6DM+RfrN2veLeLwdfyZdtf43ulMZPnFCeZJpXsCy3QiU6hVaU9TgpnTJuaBojy0SK3yS1V hTrw+beUuHW+5kdHAndkCB+t5kgh57Y= X-MC-Unique: V-z-WGJaOwy6R88EMbiifg-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Cc: John Snow , Paolo Bonzini , Eric Blake , "Daniel P. Berrange" , Markus Armbruster , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Igor Mammedov , Stefan Berger , Stefano Stabellini , Anthony Perard , Paul Durrant , Kevin Wolf , Max Reitz , Cornelia Huck , Halil Pasic , Christian Borntraeger , Richard Henderson , David Hildenbrand , Thomas Huth , Matthew Rosato , Alex Williamson , xen-devel@lists.xenproject.org, qemu-block@nongnu.org, qemu-s390x@nongnu.org Subject: [PATCH 25/36] qdev: Rename qdev_get_prop_ptr() to object_static_prop_ptr() Date: Thu, 29 Oct 2020 18:02:35 -0400 Message-Id: <20201029220246.472693-26-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) The function will be moved to common QOM code, as it is not specific to TYPE_DEVICE anymore. Signed-off-by: Eduardo Habkost Reviewed-by:=C2=A0 Stefan Berger --- Cc: Stefan Berger Cc: Stefano Stabellini Cc: Anthony Perard Cc: Paul Durrant Cc: Kevin Wolf Cc: Max Reitz Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: Cornelia Huck Cc: Halil Pasic Cc: Christian Borntraeger Cc: Richard Henderson Cc: David Hildenbrand Cc: Thomas Huth Cc: Matthew Rosato Cc: Alex Williamson Cc: qemu-devel@nongnu.org Cc: xen-devel@lists.xenproject.org Cc: qemu-block@nongnu.org Cc: qemu-s390x@nongnu.org --- include/hw/qdev-properties.h | 2 +- backends/tpm/tpm_util.c | 6 +-- hw/block/xen-block.c | 4 +- hw/core/qdev-properties-system.c | 46 +++++++++++------------ hw/core/qdev-properties.c | 64 ++++++++++++++++---------------- hw/s390x/css.c | 4 +- hw/s390x/s390-pci-bus.c | 4 +- hw/vfio/pci-quirks.c | 4 +- 8 files changed, 67 insertions(+), 67 deletions(-) diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h index 0acc92ae2b..4146dac281 100644 --- a/include/hw/qdev-properties.h +++ b/include/hw/qdev-properties.h @@ -332,7 +332,7 @@ void qdev_prop_set_macaddr(DeviceState *dev, const char= *name, const uint8_t *value); void qdev_prop_set_enum(DeviceState *dev, const char *name, int value); =20 -void *qdev_get_prop_ptr(Object *obj, Property *prop); +void *object_static_prop_ptr(Object *obj, Property *prop); =20 void qdev_prop_register_global(GlobalProperty *prop); const GlobalProperty *qdev_find_global_prop(Object *obj, diff --git a/backends/tpm/tpm_util.c b/backends/tpm/tpm_util.c index 042cacfcca..2b5f788861 100644 --- a/backends/tpm/tpm_util.c +++ b/backends/tpm/tpm_util.c @@ -35,7 +35,7 @@ static void get_tpm(Object *obj, Visitor *v, const char *name, void *opaqu= e, Error **errp) { - TPMBackend **be =3D qdev_get_prop_ptr(obj, opaque); + TPMBackend **be =3D object_static_prop_ptr(obj, opaque); char *p; =20 p =3D g_strdup(*be ? (*be)->id : ""); @@ -47,7 +47,7 @@ static void set_tpm(Object *obj, Visitor *v, const char *= name, void *opaque, Error **errp) { Property *prop =3D opaque; - TPMBackend *s, **be =3D qdev_get_prop_ptr(obj, prop); + TPMBackend *s, **be =3D object_static_prop_ptr(obj, prop); char *str; =20 if (!visit_type_str(v, name, &str, errp)) { @@ -67,7 +67,7 @@ static void set_tpm(Object *obj, Visitor *v, const char *= name, void *opaque, static void release_tpm(Object *obj, const char *name, void *opaque) { Property *prop =3D opaque; - TPMBackend **be =3D qdev_get_prop_ptr(obj, prop); + TPMBackend **be =3D object_static_prop_ptr(obj, prop); =20 if (*be) { tpm_backend_reset(*be); diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c index bd1aef63a7..20985c465a 100644 --- a/hw/block/xen-block.c +++ b/hw/block/xen-block.c @@ -336,7 +336,7 @@ static void xen_block_get_vdev(Object *obj, Visitor *v,= const char *name, void *opaque, Error **errp) { Property *prop =3D opaque; - XenBlockVdev *vdev =3D qdev_get_prop_ptr(obj, prop); + XenBlockVdev *vdev =3D object_static_prop_ptr(obj, prop); char *str; =20 switch (vdev->type) { @@ -396,7 +396,7 @@ static void xen_block_set_vdev(Object *obj, Visitor *v,= const char *name, void *opaque, Error **errp) { Property *prop =3D opaque; - XenBlockVdev *vdev =3D qdev_get_prop_ptr(obj, prop); + XenBlockVdev *vdev =3D object_static_prop_ptr(obj, prop); char *str, *p; const char *end; =20 diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-sys= tem.c index d9355053d2..448d77ecab 100644 --- a/hw/core/qdev-properties-system.c +++ b/hw/core/qdev-properties-system.c @@ -60,7 +60,7 @@ static void get_drive(Object *obj, Visitor *v, const char= *name, void *opaque, Error **errp) { Property *prop =3D opaque; - void **ptr =3D qdev_get_prop_ptr(obj, prop); + void **ptr =3D object_static_prop_ptr(obj, prop); const char *value; char *p; =20 @@ -86,7 +86,7 @@ static void set_drive_helper(Object *obj, Visitor *v, con= st char *name, { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - void **ptr =3D qdev_get_prop_ptr(obj, prop); + void **ptr =3D object_static_prop_ptr(obj, prop); char *str; BlockBackend *blk; bool blk_created =3D false; @@ -179,7 +179,7 @@ static void release_drive(Object *obj, const char *name= , void *opaque) { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - BlockBackend **ptr =3D qdev_get_prop_ptr(obj, prop); + BlockBackend **ptr =3D object_static_prop_ptr(obj, prop); =20 if (*ptr) { AioContext *ctx =3D blk_get_aio_context(*ptr); @@ -212,7 +212,7 @@ const PropertyInfo qdev_prop_drive_iothread =3D { static void get_chr(Object *obj, Visitor *v, const char *name, void *opaqu= e, Error **errp) { - CharBackend *be =3D qdev_get_prop_ptr(obj, opaque); + CharBackend *be =3D object_static_prop_ptr(obj, opaque); char *p; =20 p =3D g_strdup(be->chr && be->chr->label ? be->chr->label : ""); @@ -224,7 +224,7 @@ static void set_chr(Object *obj, Visitor *v, const char= *name, void *opaque, Error **errp) { Property *prop =3D opaque; - CharBackend *be =3D qdev_get_prop_ptr(obj, prop); + CharBackend *be =3D object_static_prop_ptr(obj, prop); Chardev *s; char *str; =20 @@ -260,7 +260,7 @@ static void set_chr(Object *obj, Visitor *v, const char= *name, void *opaque, static void release_chr(Object *obj, const char *name, void *opaque) { Property *prop =3D opaque; - CharBackend *be =3D qdev_get_prop_ptr(obj, prop); + CharBackend *be =3D object_static_prop_ptr(obj, prop); =20 qemu_chr_fe_deinit(be, false); } @@ -284,7 +284,7 @@ static void get_mac(Object *obj, Visitor *v, const char= *name, void *opaque, Error **errp) { Property *prop =3D opaque; - MACAddr *mac =3D qdev_get_prop_ptr(obj, prop); + MACAddr *mac =3D object_static_prop_ptr(obj, prop); char buffer[2 * 6 + 5 + 1]; char *p =3D buffer; =20 @@ -299,7 +299,7 @@ static void set_mac(Object *obj, Visitor *v, const char= *name, void *opaque, Error **errp) { Property *prop =3D opaque; - MACAddr *mac =3D qdev_get_prop_ptr(obj, prop); + MACAddr *mac =3D object_static_prop_ptr(obj, prop); int i, pos; char *str; const char *p; @@ -361,7 +361,7 @@ static void get_netdev(Object *obj, Visitor *v, const c= har *name, void *opaque, Error **errp) { Property *prop =3D opaque; - NICPeers *peers_ptr =3D qdev_get_prop_ptr(obj, prop); + NICPeers *peers_ptr =3D object_static_prop_ptr(obj, prop); char *p =3D g_strdup(peers_ptr->ncs[0] ? peers_ptr->ncs[0]->name : ""); =20 visit_type_str(v, name, &p, errp); @@ -372,7 +372,7 @@ static void set_netdev(Object *obj, Visitor *v, const c= har *name, void *opaque, Error **errp) { Property *prop =3D opaque; - NICPeers *peers_ptr =3D qdev_get_prop_ptr(obj, prop); + NICPeers *peers_ptr =3D object_static_prop_ptr(obj, prop); NetClientState **ncs =3D peers_ptr->ncs; NetClientState *peers[MAX_QUEUE_NUM]; int queues, err =3D 0, i =3D 0; @@ -434,7 +434,7 @@ static void get_audiodev(Object *obj, Visitor *v, const= char* name, void *opaque, Error **errp) { Property *prop =3D opaque; - QEMUSoundCard *card =3D qdev_get_prop_ptr(obj, prop); + QEMUSoundCard *card =3D object_static_prop_ptr(obj, prop); char *p =3D g_strdup(audio_get_id(card)); =20 visit_type_str(v, name, &p, errp); @@ -445,7 +445,7 @@ static void set_audiodev(Object *obj, Visitor *v, const= char* name, void *opaque, Error **errp) { Property *prop =3D opaque; - QEMUSoundCard *card =3D qdev_get_prop_ptr(obj, prop); + QEMUSoundCard *card =3D object_static_prop_ptr(obj, prop); AudioState *state; int err =3D 0; char *str; @@ -547,7 +547,7 @@ static void set_blocksize(Object *obj, Visitor *v, cons= t char *name, { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - uint32_t *ptr =3D qdev_get_prop_ptr(obj, prop); + uint32_t *ptr =3D object_static_prop_ptr(obj, prop); uint64_t value; Error *local_err =3D NULL; =20 @@ -635,7 +635,7 @@ static void get_reserved_region(Object *obj, Visitor *v= , const char *name, void *opaque, Error **errp) { Property *prop =3D opaque; - ReservedRegion *rr =3D qdev_get_prop_ptr(obj, prop); + ReservedRegion *rr =3D object_static_prop_ptr(obj, prop); char buffer[64]; char *p =3D buffer; int rc; @@ -651,7 +651,7 @@ static void set_reserved_region(Object *obj, Visitor *v= , const char *name, void *opaque, Error **errp) { Property *prop =3D opaque; - ReservedRegion *rr =3D qdev_get_prop_ptr(obj, prop); + ReservedRegion *rr =3D object_static_prop_ptr(obj, prop); Error *local_err =3D NULL; const char *endptr; char *str; @@ -713,7 +713,7 @@ static void set_pci_devfn(Object *obj, Visitor *v, cons= t char *name, void *opaque, Error **errp) { Property *prop =3D opaque; - int32_t value, *ptr =3D qdev_get_prop_ptr(obj, prop); + int32_t value, *ptr =3D object_static_prop_ptr(obj, prop); unsigned int slot, fn, n; char *str; =20 @@ -751,7 +751,7 @@ invalid: static int print_pci_devfn(Object *obj, Property *prop, char *dest, size_t len) { - int32_t *ptr =3D qdev_get_prop_ptr(obj, prop); + int32_t *ptr =3D object_static_prop_ptr(obj, prop); =20 if (*ptr =3D=3D -1) { return snprintf(dest, len, ""); @@ -775,7 +775,7 @@ static void get_pci_host_devaddr(Object *obj, Visitor *= v, const char *name, void *opaque, Error **errp) { Property *prop =3D opaque; - PCIHostDeviceAddress *addr =3D qdev_get_prop_ptr(obj, prop); + PCIHostDeviceAddress *addr =3D object_static_prop_ptr(obj, prop); char buffer[] =3D "ffff:ff:ff.f"; char *p =3D buffer; int rc =3D 0; @@ -801,7 +801,7 @@ static void set_pci_host_devaddr(Object *obj, Visitor *= v, const char *name, void *opaque, Error **errp) { Property *prop =3D opaque; - PCIHostDeviceAddress *addr =3D qdev_get_prop_ptr(obj, prop); + PCIHostDeviceAddress *addr =3D object_static_prop_ptr(obj, prop); char *str, *p; const char *e; unsigned long val; @@ -890,7 +890,7 @@ static void get_prop_pcielinkspeed(Object *obj, Visitor= *v, const char *name, void *opaque, Error **errp) { Property *prop =3D opaque; - PCIExpLinkSpeed *p =3D qdev_get_prop_ptr(obj, prop); + PCIExpLinkSpeed *p =3D object_static_prop_ptr(obj, prop); int speed; =20 switch (*p) { @@ -918,7 +918,7 @@ static void set_prop_pcielinkspeed(Object *obj, Visitor= *v, const char *name, void *opaque, Error **errp) { Property *prop =3D opaque; - PCIExpLinkSpeed *p =3D qdev_get_prop_ptr(obj, prop); + PCIExpLinkSpeed *p =3D object_static_prop_ptr(obj, prop); int speed; =20 if (!visit_type_enum(v, prop->name, &speed, prop->info->enum_table, @@ -960,7 +960,7 @@ static void get_prop_pcielinkwidth(Object *obj, Visitor= *v, const char *name, void *opaque, Error **errp) { Property *prop =3D opaque; - PCIExpLinkWidth *p =3D qdev_get_prop_ptr(obj, prop); + PCIExpLinkWidth *p =3D object_static_prop_ptr(obj, prop); int width; =20 switch (*p) { @@ -997,7 +997,7 @@ static void set_prop_pcielinkwidth(Object *obj, Visitor= *v, const char *name, void *opaque, Error **errp) { Property *prop =3D opaque; - PCIExpLinkWidth *p =3D qdev_get_prop_ptr(obj, prop); + PCIExpLinkWidth *p =3D object_static_prop_ptr(obj, prop); int width; =20 if (!visit_type_enum(v, prop->name, &width, prop->info->enum_table, diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index e4aba2b237..0b53e5ba63 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -51,7 +51,7 @@ void qdev_prop_allow_set_link_before_realize(const Object= *obj, } } =20 -void *qdev_get_prop_ptr(Object *obj, Property *prop) +void *object_static_prop_ptr(Object *obj, Property *prop) { void *ptr =3D obj; ptr +=3D prop->offset; @@ -97,7 +97,7 @@ void object_propinfo_get_enum(Object *obj, Visitor *v, co= nst char *name, void *opaque, Error **errp) { Property *prop =3D opaque; - int *ptr =3D qdev_get_prop_ptr(obj, prop); + int *ptr =3D object_static_prop_ptr(obj, prop); =20 visit_type_enum(v, prop->name, ptr, prop->info->enum_table, errp); } @@ -106,7 +106,7 @@ void object_propinfo_set_enum(Object *obj, Visitor *v, = const char *name, void *opaque, Error **errp) { Property *prop =3D opaque; - int *ptr =3D qdev_get_prop_ptr(obj, prop); + int *ptr =3D object_static_prop_ptr(obj, prop); =20 visit_type_enum(v, prop->name, ptr, prop->info->enum_table, errp); } @@ -135,7 +135,7 @@ static uint32_t qdev_get_prop_mask(Property *prop) =20 static void bit_prop_set(Object *obj, Property *props, bool val) { - uint32_t *p =3D qdev_get_prop_ptr(obj, props); + uint32_t *p =3D object_static_prop_ptr(obj, props); uint32_t mask =3D qdev_get_prop_mask(props); if (val) { *p |=3D mask; @@ -148,7 +148,7 @@ static void prop_get_bit(Object *obj, Visitor *v, const= char *name, void *opaque, Error **errp) { Property *prop =3D opaque; - uint32_t *p =3D qdev_get_prop_ptr(obj, prop); + uint32_t *p =3D object_static_prop_ptr(obj, prop); bool value =3D (*p & qdev_get_prop_mask(prop)) !=3D 0; =20 visit_type_bool(v, name, &value, errp); @@ -189,7 +189,7 @@ static uint64_t qdev_get_prop_mask64(Property *prop) =20 static void bit64_prop_set(Object *obj, Property *props, bool val) { - uint64_t *p =3D qdev_get_prop_ptr(obj, props); + uint64_t *p =3D object_static_prop_ptr(obj, props); uint64_t mask =3D qdev_get_prop_mask64(props); if (val) { *p |=3D mask; @@ -202,7 +202,7 @@ static void prop_get_bit64(Object *obj, Visitor *v, con= st char *name, void *opaque, Error **errp) { Property *prop =3D opaque; - uint64_t *p =3D qdev_get_prop_ptr(obj, prop); + uint64_t *p =3D object_static_prop_ptr(obj, prop); bool value =3D (*p & qdev_get_prop_mask64(prop)) !=3D 0; =20 visit_type_bool(v, name, &value, errp); @@ -234,7 +234,7 @@ static void get_bool(Object *obj, Visitor *v, const cha= r *name, void *opaque, Error **errp) { Property *prop =3D opaque; - bool *ptr =3D qdev_get_prop_ptr(obj, prop); + bool *ptr =3D object_static_prop_ptr(obj, prop); =20 visit_type_bool(v, name, ptr, errp); } @@ -243,7 +243,7 @@ static void set_bool(Object *obj, Visitor *v, const cha= r *name, void *opaque, Error **errp) { Property *prop =3D opaque; - bool *ptr =3D qdev_get_prop_ptr(obj, prop); + bool *ptr =3D object_static_prop_ptr(obj, prop); =20 visit_type_bool(v, name, ptr, errp); } @@ -261,7 +261,7 @@ static void get_uint8(Object *obj, Visitor *v, const ch= ar *name, void *opaque, Error **errp) { Property *prop =3D opaque; - uint8_t *ptr =3D qdev_get_prop_ptr(obj, prop); + uint8_t *ptr =3D object_static_prop_ptr(obj, prop); =20 visit_type_uint8(v, name, ptr, errp); } @@ -270,7 +270,7 @@ static void set_uint8(Object *obj, Visitor *v, const ch= ar *name, void *opaque, Error **errp) { Property *prop =3D opaque; - uint8_t *ptr =3D qdev_get_prop_ptr(obj, prop); + uint8_t *ptr =3D object_static_prop_ptr(obj, prop); =20 visit_type_uint8(v, name, ptr, errp); } @@ -300,7 +300,7 @@ static void get_uint16(Object *obj, Visitor *v, const c= har *name, void *opaque, Error **errp) { Property *prop =3D opaque; - uint16_t *ptr =3D qdev_get_prop_ptr(obj, prop); + uint16_t *ptr =3D object_static_prop_ptr(obj, prop); =20 visit_type_uint16(v, name, ptr, errp); } @@ -309,7 +309,7 @@ static void set_uint16(Object *obj, Visitor *v, const c= har *name, void *opaque, Error **errp) { Property *prop =3D opaque; - uint16_t *ptr =3D qdev_get_prop_ptr(obj, prop); + uint16_t *ptr =3D object_static_prop_ptr(obj, prop); =20 visit_type_uint16(v, name, ptr, errp); } @@ -327,7 +327,7 @@ static void get_uint32(Object *obj, Visitor *v, const c= har *name, void *opaque, Error **errp) { Property *prop =3D opaque; - uint32_t *ptr =3D qdev_get_prop_ptr(obj, prop); + uint32_t *ptr =3D object_static_prop_ptr(obj, prop); =20 visit_type_uint32(v, name, ptr, errp); } @@ -336,7 +336,7 @@ static void set_uint32(Object *obj, Visitor *v, const c= har *name, void *opaque, Error **errp) { Property *prop =3D opaque; - uint32_t *ptr =3D qdev_get_prop_ptr(obj, prop); + uint32_t *ptr =3D object_static_prop_ptr(obj, prop); =20 visit_type_uint32(v, name, ptr, errp); } @@ -345,7 +345,7 @@ void object_propinfo_get_int32(Object *obj, Visitor *v,= const char *name, void *opaque, Error **errp) { Property *prop =3D opaque; - int32_t *ptr =3D qdev_get_prop_ptr(obj, prop); + int32_t *ptr =3D object_static_prop_ptr(obj, prop); =20 visit_type_int32(v, name, ptr, errp); } @@ -354,7 +354,7 @@ static void set_int32(Object *obj, Visitor *v, const ch= ar *name, void *opaque, Error **errp) { Property *prop =3D opaque; - int32_t *ptr =3D qdev_get_prop_ptr(obj, prop); + int32_t *ptr =3D object_static_prop_ptr(obj, prop); =20 visit_type_int32(v, name, ptr, errp); } @@ -379,7 +379,7 @@ static void get_uint64(Object *obj, Visitor *v, const c= har *name, void *opaque, Error **errp) { Property *prop =3D opaque; - uint64_t *ptr =3D qdev_get_prop_ptr(obj, prop); + uint64_t *ptr =3D object_static_prop_ptr(obj, prop); =20 visit_type_uint64(v, name, ptr, errp); } @@ -388,7 +388,7 @@ static void set_uint64(Object *obj, Visitor *v, const c= har *name, void *opaque, Error **errp) { Property *prop =3D opaque; - uint64_t *ptr =3D qdev_get_prop_ptr(obj, prop); + uint64_t *ptr =3D object_static_prop_ptr(obj, prop); =20 visit_type_uint64(v, name, ptr, errp); } @@ -397,7 +397,7 @@ static void get_int64(Object *obj, Visitor *v, const ch= ar *name, void *opaque, Error **errp) { Property *prop =3D opaque; - int64_t *ptr =3D qdev_get_prop_ptr(obj, prop); + int64_t *ptr =3D object_static_prop_ptr(obj, prop); =20 visit_type_int64(v, name, ptr, errp); } @@ -406,7 +406,7 @@ static void set_int64(Object *obj, Visitor *v, const ch= ar *name, void *opaque, Error **errp) { Property *prop =3D opaque; - int64_t *ptr =3D qdev_get_prop_ptr(obj, prop); + int64_t *ptr =3D object_static_prop_ptr(obj, prop); =20 visit_type_int64(v, name, ptr, errp); } @@ -430,14 +430,14 @@ const PropertyInfo qdev_prop_int64 =3D { static void release_string(Object *obj, const char *name, void *opaque) { Property *prop =3D opaque; - g_free(*(char **)qdev_get_prop_ptr(obj, prop)); + g_free(*(char **)object_static_prop_ptr(obj, prop)); } =20 static void get_string(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { Property *prop =3D opaque; - char **ptr =3D qdev_get_prop_ptr(obj, prop); + char **ptr =3D object_static_prop_ptr(obj, prop); =20 if (!*ptr) { char *str =3D (char *)""; @@ -451,7 +451,7 @@ static void set_string(Object *obj, Visitor *v, const c= har *name, void *opaque, Error **errp) { Property *prop =3D opaque; - char **ptr =3D qdev_get_prop_ptr(obj, prop); + char **ptr =3D object_static_prop_ptr(obj, prop); char *str; =20 if (!visit_type_str(v, name, &str, errp)) { @@ -485,7 +485,7 @@ void object_propinfo_get_size32(Object *obj, Visitor *v= , const char *name, void *opaque, Error **errp) { Property *prop =3D opaque; - uint32_t *ptr =3D qdev_get_prop_ptr(obj, prop); + uint32_t *ptr =3D object_static_prop_ptr(obj, prop); uint64_t value =3D *ptr; =20 visit_type_size(v, name, &value, errp); @@ -495,7 +495,7 @@ static void set_size32(Object *obj, Visitor *v, const c= har *name, void *opaque, Error **errp) { Property *prop =3D opaque; - uint32_t *ptr =3D qdev_get_prop_ptr(obj, prop); + uint32_t *ptr =3D object_static_prop_ptr(obj, prop); uint64_t value; =20 if (!visit_type_size(v, name, &value, errp)) { @@ -526,7 +526,7 @@ static void get_uuid(Object *obj, Visitor *v, const cha= r *name, void *opaque, Error **errp) { Property *prop =3D opaque; - QemuUUID *uuid =3D qdev_get_prop_ptr(obj, prop); + QemuUUID *uuid =3D object_static_prop_ptr(obj, prop); char buffer[UUID_FMT_LEN + 1]; char *p =3D buffer; =20 @@ -541,7 +541,7 @@ static void set_uuid(Object *obj, Visitor *v, const cha= r *name, void *opaque, Error **errp) { Property *prop =3D opaque; - QemuUUID *uuid =3D qdev_get_prop_ptr(obj, prop); + QemuUUID *uuid =3D object_static_prop_ptr(obj, prop); char *str; =20 if (!visit_type_str(v, name, &str, errp)) { @@ -605,7 +605,7 @@ static ArrayElementProperty *array_element_new(Object *= obj, * being inside the device struct. */ arrayprop->prop.offset =3D eltptr - (void *)obj; - assert(qdev_get_prop_ptr(obj, &arrayprop->prop) =3D=3D eltptr); + assert(object_static_prop_ptr(obj, &arrayprop->prop) =3D=3D eltptr); return arrayprop; } =20 @@ -646,7 +646,7 @@ static void set_prop_arraylen(Object *obj, Visitor *v, = const char *name, * array itself and dynamically add the corresponding properties. */ Property *prop =3D opaque; - uint32_t *alenptr =3D qdev_get_prop_ptr(obj, prop); + uint32_t *alenptr =3D object_static_prop_ptr(obj, prop); void **arrayptr =3D (void *)obj + prop->arrayoffset; void *eltptr; const char *arrayname; @@ -867,7 +867,7 @@ static void get_size(Object *obj, Visitor *v, const cha= r *name, void *opaque, Error **errp) { Property *prop =3D opaque; - uint64_t *ptr =3D qdev_get_prop_ptr(obj, prop); + uint64_t *ptr =3D object_static_prop_ptr(obj, prop); =20 visit_type_size(v, name, ptr, errp); } @@ -876,7 +876,7 @@ static void set_size(Object *obj, Visitor *v, const cha= r *name, void *opaque, Error **errp) { Property *prop =3D opaque; - uint64_t *ptr =3D qdev_get_prop_ptr(obj, prop); + uint64_t *ptr =3D object_static_prop_ptr(obj, prop); =20 visit_type_size(v, name, ptr, errp); } diff --git a/hw/s390x/css.c b/hw/s390x/css.c index 46cab94e2b..c8e7ce232a 100644 --- a/hw/s390x/css.c +++ b/hw/s390x/css.c @@ -2344,7 +2344,7 @@ static void get_css_devid(Object *obj, Visitor *v, co= nst char *name, void *opaque, Error **errp) { Property *prop =3D opaque; - CssDevId *dev_id =3D qdev_get_prop_ptr(obj, prop); + CssDevId *dev_id =3D object_static_prop_ptr(obj, prop); char buffer[] =3D "xx.x.xxxx"; char *p =3D buffer; int r; @@ -2373,7 +2373,7 @@ static void set_css_devid(Object *obj, Visitor *v, co= nst char *name, void *opaque, Error **errp) { Property *prop =3D opaque; - CssDevId *dev_id =3D qdev_get_prop_ptr(obj, prop); + CssDevId *dev_id =3D object_static_prop_ptr(obj, prop); char *str; int num, n1, n2; unsigned int cssid, ssid, devid; diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c index d02e93a192..74a469e91d 100644 --- a/hw/s390x/s390-pci-bus.c +++ b/hw/s390x/s390-pci-bus.c @@ -1248,7 +1248,7 @@ static void s390_pci_get_fid(Object *obj, Visitor *v,= const char *name, void *opaque, Error **errp) { Property *prop =3D opaque; - uint32_t *ptr =3D qdev_get_prop_ptr(obj, prop); + uint32_t *ptr =3D object_static_prop_ptr(obj, prop); =20 visit_type_uint32(v, name, ptr, errp); } @@ -1258,7 +1258,7 @@ static void s390_pci_set_fid(Object *obj, Visitor *v,= const char *name, { S390PCIBusDevice *zpci =3D S390_PCI_DEVICE(obj); Property *prop =3D opaque; - uint32_t *ptr =3D qdev_get_prop_ptr(obj, prop); + uint32_t *ptr =3D object_static_prop_ptr(obj, prop); =20 if (!visit_type_uint32(v, name, ptr, errp)) { return; diff --git a/hw/vfio/pci-quirks.c b/hw/vfio/pci-quirks.c index 802979635c..37cb9ab1fa 100644 --- a/hw/vfio/pci-quirks.c +++ b/hw/vfio/pci-quirks.c @@ -1489,7 +1489,7 @@ static void get_nv_gpudirect_clique_id(Object *obj, V= isitor *v, Error **errp) { Property *prop =3D opaque; - uint8_t *ptr =3D qdev_get_prop_ptr(obj, prop); + uint8_t *ptr =3D object_static_prop_ptr(obj, prop); =20 visit_type_uint8(v, name, ptr, errp); } @@ -1499,7 +1499,7 @@ static void set_nv_gpudirect_clique_id(Object *obj, V= isitor *v, Error **errp) { Property *prop =3D opaque; - uint8_t value, *ptr =3D qdev_get_prop_ptr(obj, prop); + uint8_t value, *ptr =3D object_static_prop_ptr(obj, prop); =20 if (!visit_type_uint8(v, name, &value, errp)) { return; --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604009866; cv=none; d=zohomail.com; s=zohoarc; b=hpLi9CgWzYGRX0CB6c+Y81rvfFgrXHvsbp9qxami86X36u8bxI2qMQof7vgHSabS2Q977Hst5X3ky9CUdhMr2QXIVdTUJJFfhQ83gAjfhJgelZQlpHNgVJQjpxUA+11gGP57LaEWhMw+I9dPhBjAAsZhmE+GgOZWGoirOq8jtzE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604009866; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=WMUrlr5Nzg2z1fF/Bg2uIbL8BR52n2nZGCLd1uOXnGQ=; b=VksNJTLpLpkaFZIjXk6c3T6ACahgF+oLYlkE3MFx7R/Nk+KPD1A0wnxTvJ94+pap97CgUR2+zVvJz9yFtarVYCuFTi38U45asYs3lgMI2SQEjPWRAKUzE++mbpXIvl3FthQle271gXtf6xr9PivUjlezd3mQ/RDyEijOA3jb5Ds= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604009866066838.8369763524463; Thu, 29 Oct 2020 15:17:46 -0700 (PDT) Received: from localhost ([::1]:43362 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYGEp-0005xt-3i for importer@patchew.org; Thu, 29 Oct 2020 18:17:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42834) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG1c-0003tN-12 for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:04:04 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:37470) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG1R-0006eY-HT for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:04:02 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-461-S5_60EvlMuqRSSbN4f9fug-1; Thu, 29 Oct 2020 18:03:50 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id CF845802B66 for ; Thu, 29 Oct 2020 22:03:49 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4695A60C17; Thu, 29 Oct 2020 22:03:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604009032; 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=WMUrlr5Nzg2z1fF/Bg2uIbL8BR52n2nZGCLd1uOXnGQ=; b=G0aOmEFnPJilttC1BJBvgQveyw2itaN1KtbKq73RG5OmgJcxtOxjDNRlCclVe793BwmJ5b gtYMlL6nJfHDgAbcgFMecRf/ZZlBg4ITbh4sfiJnMCaQnY09SiQ9B7zzqqEW3p6TC8LpzK pd8UvCvyQelgj6QsurqoBk8nrmiIz08= X-MC-Unique: S5_60EvlMuqRSSbN4f9fug-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 26/36] qdev: Move softmmu properties to qdev-properties-system.h Date: Thu, 29 Oct 2020 18:02:36 -0400 Message-Id: <20201029220246.472693-27-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable 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=216.205.24.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 00:47:54 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Daniel P. Berrange" , John Snow , Markus Armbruster , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Move the property types and property macros implemented in qdev-properties-system.c to a new qdev-properties-system.h header. Signed-off-by: Eduardo Habkost Reviewed-by: Marc-Andr=C3=A9 Lureau --- audio/audio.h | 1 + include/hw/block/block.h | 1 + include/hw/qdev-properties-system.h | 68 +++++++++++++++++++++++++++++ include/hw/qdev-properties.h | 61 -------------------------- include/net/net.h | 1 + hw/arm/pxa2xx.c | 1 + hw/arm/strongarm.c | 1 + hw/block/fdc.c | 1 + hw/block/m25p80.c | 1 + hw/block/nand.c | 1 + hw/block/onenand.c | 1 + hw/block/pflash_cfi01.c | 1 + hw/block/pflash_cfi02.c | 1 + hw/block/vhost-user-blk.c | 1 + hw/char/avr_usart.c | 1 + hw/char/bcm2835_aux.c | 1 + hw/char/cadence_uart.c | 1 + hw/char/cmsdk-apb-uart.c | 1 + hw/char/debugcon.c | 1 + hw/char/digic-uart.c | 1 + hw/char/escc.c | 1 + hw/char/etraxfs_ser.c | 1 + hw/char/exynos4210_uart.c | 1 + hw/char/grlib_apbuart.c | 1 + hw/char/ibex_uart.c | 1 + hw/char/imx_serial.c | 1 + hw/char/ipoctal232.c | 1 + hw/char/lm32_juart.c | 1 + hw/char/lm32_uart.c | 1 + hw/char/mcf_uart.c | 1 + hw/char/milkymist-uart.c | 1 + hw/char/nrf51_uart.c | 1 + hw/char/parallel.c | 1 + hw/char/pl011.c | 1 + hw/char/renesas_sci.c | 1 + hw/char/sclpconsole-lm.c | 1 + hw/char/sclpconsole.c | 1 + hw/char/serial-pci-multi.c | 1 + hw/char/serial.c | 1 + hw/char/spapr_vty.c | 1 + hw/char/stm32f2xx_usart.c | 1 + hw/char/terminal3270.c | 1 + hw/char/virtio-console.c | 1 + hw/char/xilinx_uartlite.c | 1 + hw/core/qdev-properties-system.c | 1 + hw/i386/kvm/i8254.c | 1 + hw/ide/qdev.c | 1 + hw/ipmi/ipmi_bmc_extern.c | 1 + hw/misc/ivshmem.c | 1 + hw/misc/mac_via.c | 1 + hw/misc/sifive_u_otp.c | 1 + hw/net/rocker/rocker.c | 1 + hw/nvram/eeprom_at24c.c | 1 + hw/nvram/spapr_nvram.c | 1 + hw/pci-bridge/gen_pcie_root_port.c | 1 + hw/pci/pci.c | 1 + hw/ppc/pnv_pnor.c | 1 + hw/rdma/vmw/pvrdma_main.c | 1 + hw/rtc/mc146818rtc.c | 1 + hw/scsi/scsi-disk.c | 1 + hw/scsi/scsi-generic.c | 1 + hw/scsi/vhost-user-scsi.c | 1 + hw/sd/sd.c | 1 + hw/usb/ccid-card-passthru.c | 1 + hw/usb/dev-serial.c | 1 + hw/usb/redirect.c | 1 + hw/vfio/pci.c | 1 + hw/virtio/vhost-user-fs.c | 1 + hw/virtio/vhost-user-vsock.c | 1 + hw/virtio/virtio-iommu-pci.c | 1 + hw/xen/xen_pt.c | 1 + migration/migration.c | 1 + 72 files changed, 138 insertions(+), 61 deletions(-) create mode 100644 include/hw/qdev-properties-system.h diff --git a/audio/audio.h b/audio/audio.h index b883ebfb1f..21fe3226ae 100644 --- a/audio/audio.h +++ b/audio/audio.h @@ -28,6 +28,7 @@ #include "qemu/queue.h" #include "qapi/qapi-types-audio.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" =20 typedef void (*audio_callback_fn) (void *opaque, int avail); =20 diff --git a/include/hw/block/block.h b/include/hw/block/block.h index 1e8b6253dd..c172cbe65f 100644 --- a/include/hw/block/block.h +++ b/include/hw/block/block.h @@ -13,6 +13,7 @@ =20 #include "exec/hwaddr.h" #include "qapi/qapi-types-block-core.h" +#include "hw/qdev-properties-system.h" =20 /* Configuration */ =20 diff --git a/include/hw/qdev-properties-system.h b/include/hw/qdev-properti= es-system.h new file mode 100644 index 0000000000..0792d5236e --- /dev/null +++ b/include/hw/qdev-properties-system.h @@ -0,0 +1,68 @@ +#ifndef HW_QDEV_PROPERTIES_SYSTEM_H +#define HW_QDEV_PROPERTIES_SYSTEM_H + +#include "hw/qdev-properties.h" + +extern const PropertyInfo qdev_prop_drive; +extern const PropertyInfo qdev_prop_drive_iothread; +extern const PropertyInfo qdev_prop_chr; +extern const PropertyInfo qdev_prop_macaddr; +extern const PropertyInfo qdev_prop_netdev; +extern const PropertyInfo qdev_prop_audiodev; +extern const PropertyInfo qdev_prop_losttickpolicy; +extern const PropertyInfo qdev_prop_blocksize; +extern const PropertyInfo qdev_prop_blockdev_on_error; +extern const PropertyInfo qdev_prop_bios_chs_trans; +extern const PropertyInfo qdev_prop_fdc_drive_type; +extern const PropertyInfo qdev_prop_multifd_compression; +extern const PropertyInfo qdev_prop_reserved_region; +extern const PropertyInfo qdev_prop_pci_devfn; +extern const PropertyInfo qdev_prop_pci_host_devaddr; +extern const PropertyInfo qdev_prop_off_auto_pcibar; +extern const PropertyInfo qdev_prop_pcie_link_speed; +extern const PropertyInfo qdev_prop_pcie_link_width; + +#define DEFINE_PROP_PCI_DEVFN(_n, _s, _f, _d) \ + DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_pci_devfn, int32_t) +#define DEFINE_PROP_CHR(_n, _s, _f) \ + DEFINE_PROP(_n, _s, _f, qdev_prop_chr, CharBackend) +#define DEFINE_PROP_NETDEV(_n, _s, _f) \ + DEFINE_PROP(_n, _s, _f, qdev_prop_netdev, NICPeers) +#define DEFINE_PROP_DRIVE(_n, _s, _f) \ + DEFINE_PROP(_n, _s, _f, qdev_prop_drive, BlockBackend *) +#define DEFINE_PROP_DRIVE_IOTHREAD(_n, _s, _f) \ + DEFINE_PROP(_n, _s, _f, qdev_prop_drive_iothread, BlockBackend *) +#define DEFINE_PROP_MACADDR(_n, _s, _f) \ + DEFINE_PROP(_n, _s, _f, qdev_prop_macaddr, MACAddr) +#define DEFINE_PROP_RESERVED_REGION(_n, _s, _f) \ + DEFINE_PROP(_n, _s, _f, qdev_prop_reserved_region, ReservedRegion) +#define DEFINE_PROP_MULTIFD_COMPRESSION(_n, _s, _f, _d) \ + DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_multifd_compression, \ + MultiFDCompression) +#define DEFINE_PROP_LOSTTICKPOLICY(_n, _s, _f, _d) \ + DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_losttickpolicy, \ + LostTickPolicy) +#define DEFINE_PROP_BLOCKDEV_ON_ERROR(_n, _s, _f, _d) \ + DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_blockdev_on_error, \ + BlockdevOnError) +#define DEFINE_PROP_BIOS_CHS_TRANS(_n, _s, _f, _d) \ + DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_bios_chs_trans, int) +#define DEFINE_PROP_BLOCKSIZE(_n, _s, _f) \ + DEFINE_PROP_UNSIGNED(_n, _s, _f, 0, qdev_prop_blocksize, uint32_t) +#define DEFINE_PROP_PCI_HOST_DEVADDR(_n, _s, _f) \ + DEFINE_PROP(_n, _s, _f, qdev_prop_pci_host_devaddr, PCIHostDeviceAddre= ss) +#define DEFINE_PROP_OFF_AUTO_PCIBAR(_n, _s, _f, _d) \ + DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_off_auto_pcibar, \ + OffAutoPCIBAR) +#define DEFINE_PROP_PCIE_LINK_SPEED(_n, _s, _f, _d) \ + DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_pcie_link_speed, \ + PCIExpLinkSpeed) +#define DEFINE_PROP_PCIE_LINK_WIDTH(_n, _s, _f, _d) \ + DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_pcie_link_width, \ + PCIExpLinkWidth) +#define DEFINE_PROP_AUDIODEV(_n, _s, _f) \ + DEFINE_PROP(_n, _s, _f, qdev_prop_audiodev, QEMUSoundCard) + + + +#endif diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h index 4146dac281..3a7b4c8643 100644 --- a/include/hw/qdev-properties.h +++ b/include/hw/qdev-properties.h @@ -55,30 +55,12 @@ extern const PropertyInfo qdev_prop_uint64; extern const PropertyInfo qdev_prop_int64; extern const PropertyInfo qdev_prop_size; extern const PropertyInfo qdev_prop_string; -extern const PropertyInfo qdev_prop_chr; extern const PropertyInfo qdev_prop_tpm; -extern const PropertyInfo qdev_prop_macaddr; -extern const PropertyInfo qdev_prop_reserved_region; extern const PropertyInfo qdev_prop_on_off_auto; -extern const PropertyInfo qdev_prop_multifd_compression; -extern const PropertyInfo qdev_prop_losttickpolicy; -extern const PropertyInfo qdev_prop_blockdev_on_error; -extern const PropertyInfo qdev_prop_bios_chs_trans; -extern const PropertyInfo qdev_prop_fdc_drive_type; -extern const PropertyInfo qdev_prop_drive; -extern const PropertyInfo qdev_prop_drive_iothread; -extern const PropertyInfo qdev_prop_netdev; -extern const PropertyInfo qdev_prop_pci_devfn; extern const PropertyInfo qdev_prop_size32; -extern const PropertyInfo qdev_prop_blocksize; -extern const PropertyInfo qdev_prop_pci_host_devaddr; extern const PropertyInfo qdev_prop_uuid; extern const PropertyInfo qdev_prop_arraylen; -extern const PropertyInfo qdev_prop_audiodev; extern const PropertyInfo qdev_prop_link; -extern const PropertyInfo qdev_prop_off_auto_pcibar; -extern const PropertyInfo qdev_prop_pcie_link_speed; -extern const PropertyInfo qdev_prop_pcie_link_width; =20 #define DEFINE_PROP(_name, _state, _field, _prop, _type) { \ .name =3D (_name), \ @@ -209,52 +191,12 @@ extern const PropertyInfo qdev_prop_pcie_link_width; DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_int64, int64_t) #define DEFINE_PROP_SIZE(_n, _s, _f, _d) \ DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, qdev_prop_size, uint64_t) -#define DEFINE_PROP_PCI_DEVFN(_n, _s, _f, _d) \ - DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_pci_devfn, int32_t) - -#define DEFINE_PROP_CHR(_n, _s, _f) \ - DEFINE_PROP(_n, _s, _f, qdev_prop_chr, CharBackend) #define DEFINE_PROP_STRING(_n, _s, _f) \ DEFINE_PROP(_n, _s, _f, qdev_prop_string, char*) -#define DEFINE_PROP_NETDEV(_n, _s, _f) \ - DEFINE_PROP(_n, _s, _f, qdev_prop_netdev, NICPeers) -#define DEFINE_PROP_DRIVE(_n, _s, _f) \ - DEFINE_PROP(_n, _s, _f, qdev_prop_drive, BlockBackend *) -#define DEFINE_PROP_DRIVE_IOTHREAD(_n, _s, _f) \ - DEFINE_PROP(_n, _s, _f, qdev_prop_drive_iothread, BlockBackend *) -#define DEFINE_PROP_MACADDR(_n, _s, _f) \ - DEFINE_PROP(_n, _s, _f, qdev_prop_macaddr, MACAddr) -#define DEFINE_PROP_RESERVED_REGION(_n, _s, _f) \ - DEFINE_PROP(_n, _s, _f, qdev_prop_reserved_region, ReservedRegion) #define DEFINE_PROP_ON_OFF_AUTO(_n, _s, _f, _d) \ DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_on_off_auto, OnOffAuto) -#define DEFINE_PROP_MULTIFD_COMPRESSION(_n, _s, _f, _d) \ - DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_multifd_compression, \ - MultiFDCompression) -#define DEFINE_PROP_LOSTTICKPOLICY(_n, _s, _f, _d) \ - DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_losttickpolicy, \ - LostTickPolicy) -#define DEFINE_PROP_BLOCKDEV_ON_ERROR(_n, _s, _f, _d) \ - DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_blockdev_on_error, \ - BlockdevOnError) -#define DEFINE_PROP_BIOS_CHS_TRANS(_n, _s, _f, _d) \ - DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_bios_chs_trans, int) #define DEFINE_PROP_SIZE32(_n, _s, _f, _d) \ DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, qdev_prop_size32, uint32_t) -#define DEFINE_PROP_BLOCKSIZE(_n, _s, _f) \ - DEFINE_PROP_UNSIGNED(_n, _s, _f, 0, qdev_prop_blocksize, uint32_t) -#define DEFINE_PROP_PCI_HOST_DEVADDR(_n, _s, _f) \ - DEFINE_PROP(_n, _s, _f, qdev_prop_pci_host_devaddr, PCIHostDeviceAddre= ss) -#define DEFINE_PROP_OFF_AUTO_PCIBAR(_n, _s, _f, _d) \ - DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_off_auto_pcibar, \ - OffAutoPCIBAR) -#define DEFINE_PROP_PCIE_LINK_SPEED(_n, _s, _f, _d) \ - DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_pcie_link_speed, \ - PCIExpLinkSpeed) -#define DEFINE_PROP_PCIE_LINK_WIDTH(_n, _s, _f, _d) \ - DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_pcie_link_width, \ - PCIExpLinkWidth) - #define DEFINE_PROP_UUID(_name, _state, _field) { \ .name =3D (_name), \ .info =3D &qdev_prop_uuid, \ @@ -262,9 +204,6 @@ extern const PropertyInfo qdev_prop_pcie_link_width; + type_check(QemuUUID, typeof_field(_state, _field)), \ .set_default =3D true, \ } -#define DEFINE_PROP_AUDIODEV(_n, _s, _f) \ - DEFINE_PROP(_n, _s, _f, qdev_prop_audiodev, QEMUSoundCard) - #define DEFINE_PROP_UUID_NODEFAULT(_name, _state, _field) { \ .name =3D (_name), \ .info =3D &qdev_prop_uuid, \ diff --git a/include/net/net.h b/include/net/net.h index 897b2d7595..da48bc8254 100644 --- a/include/net/net.h +++ b/include/net/net.h @@ -4,6 +4,7 @@ #include "qemu/queue.h" #include "qapi/qapi-types-net.h" #include "net/queue.h" +#include "hw/qdev-properties-system.h" =20 #define MAC_FMT "%02X:%02X:%02X:%02X:%02X:%02X" #define MAC_ARG(x) ((uint8_t *)(x))[0], ((uint8_t *)(x))[1], \ diff --git a/hw/arm/pxa2xx.c b/hw/arm/pxa2xx.c index 591776ba88..9c8030a271 100644 --- a/hw/arm/pxa2xx.c +++ b/hw/arm/pxa2xx.c @@ -21,6 +21,7 @@ #include "hw/i2c/i2c.h" #include "hw/irq.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "hw/ssi/ssi.h" #include "hw/sd/sd.h" #include "chardev/char-fe.h" diff --git a/hw/arm/strongarm.c b/hw/arm/strongarm.c index ca7c385f31..c7ca54bcea 100644 --- a/hw/arm/strongarm.c +++ b/hw/arm/strongarm.c @@ -33,6 +33,7 @@ #include "hw/boards.h" #include "hw/irq.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "hw/sysbus.h" #include "migration/vmstate.h" #include "strongarm.h" diff --git a/hw/block/fdc.c b/hw/block/fdc.c index 4c2c35e223..3636874432 100644 --- a/hw/block/fdc.c +++ b/hw/block/fdc.c @@ -36,6 +36,7 @@ #include "hw/irq.h" #include "hw/isa/isa.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "hw/sysbus.h" #include "migration/vmstate.h" #include "hw/block/block.h" diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c index 483925f57a..0ef7f00cb6 100644 --- a/hw/block/m25p80.c +++ b/hw/block/m25p80.c @@ -25,6 +25,7 @@ #include "qemu/units.h" #include "sysemu/block-backend.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "hw/ssi/ssi.h" #include "migration/vmstate.h" #include "qemu/bitops.h" diff --git a/hw/block/nand.c b/hw/block/nand.c index bcceb64ebb..5558f5d2fa 100644 --- a/hw/block/nand.c +++ b/hw/block/nand.c @@ -21,6 +21,7 @@ #include "qemu/osdep.h" #include "hw/hw.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "hw/block/flash.h" #include "sysemu/block-backend.h" #include "migration/vmstate.h" diff --git a/hw/block/onenand.c b/hw/block/onenand.c index 5ff7be86bb..579a73d7f7 100644 --- a/hw/block/onenand.c +++ b/hw/block/onenand.c @@ -24,6 +24,7 @@ #include "hw/block/flash.h" #include "hw/irq.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "sysemu/block-backend.h" #include "exec/memory.h" #include "hw/sysbus.h" diff --git a/hw/block/pflash_cfi01.c b/hw/block/pflash_cfi01.c index f0fcd63f84..90baa72f82 100644 --- a/hw/block/pflash_cfi01.c +++ b/hw/block/pflash_cfi01.c @@ -40,6 +40,7 @@ #include "hw/block/block.h" #include "hw/block/flash.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "sysemu/block-backend.h" #include "qapi/error.h" #include "qemu/error-report.h" diff --git a/hw/block/pflash_cfi02.c b/hw/block/pflash_cfi02.c index eb02fccfa5..e2d8a004fe 100644 --- a/hw/block/pflash_cfi02.c +++ b/hw/block/pflash_cfi02.c @@ -36,6 +36,7 @@ #include "hw/block/block.h" #include "hw/block/flash.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "qapi/error.h" #include "qemu/error-report.h" #include "qemu/bitmap.h" diff --git a/hw/block/vhost-user-blk.c b/hw/block/vhost-user-blk.c index a076b1e54d..492dc73275 100644 --- a/hw/block/vhost-user-blk.c +++ b/hw/block/vhost-user-blk.c @@ -22,6 +22,7 @@ #include "qemu/cutils.h" #include "hw/qdev-core.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "hw/virtio/vhost.h" #include "hw/virtio/vhost-user-blk.h" #include "hw/virtio/virtio.h" diff --git a/hw/char/avr_usart.c b/hw/char/avr_usart.c index fbe2a112b7..5bcf9db0b7 100644 --- a/hw/char/avr_usart.c +++ b/hw/char/avr_usart.c @@ -24,6 +24,7 @@ #include "qemu/log.h" #include "hw/irq.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" =20 static int avr_usart_can_receive(void *opaque) { diff --git a/hw/char/bcm2835_aux.c b/hw/char/bcm2835_aux.c index dade2ab5fd..96410b1ff8 100644 --- a/hw/char/bcm2835_aux.c +++ b/hw/char/bcm2835_aux.c @@ -24,6 +24,7 @@ #include "hw/char/bcm2835_aux.h" #include "hw/irq.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "migration/vmstate.h" #include "qemu/log.h" #include "qemu/module.h" diff --git a/hw/char/cadence_uart.c b/hw/char/cadence_uart.c index e196906c92..c603e14012 100644 --- a/hw/char/cadence_uart.c +++ b/hw/char/cadence_uart.c @@ -32,6 +32,7 @@ #include "hw/char/cadence_uart.h" #include "hw/irq.h" #include "hw/qdev-clock.h" +#include "hw/qdev-properties-system.h" #include "trace.h" =20 #ifdef CADENCE_UART_ERR_DEBUG diff --git a/hw/char/cmsdk-apb-uart.c b/hw/char/cmsdk-apb-uart.c index 626b68f2ec..ba2cbbee3d 100644 --- a/hw/char/cmsdk-apb-uart.c +++ b/hw/char/cmsdk-apb-uart.c @@ -27,6 +27,7 @@ #include "chardev/char-serial.h" #include "hw/char/cmsdk-apb-uart.h" #include "hw/irq.h" +#include "hw/qdev-properties-system.h" =20 REG32(DATA, 0) REG32(STATE, 4) diff --git a/hw/char/debugcon.c b/hw/char/debugcon.c index 2a063ad72c..fdb04fee09 100644 --- a/hw/char/debugcon.c +++ b/hw/char/debugcon.c @@ -30,6 +30,7 @@ #include "chardev/char-fe.h" #include "hw/isa/isa.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "qom/object.h" =20 #define TYPE_ISA_DEBUGCON_DEVICE "isa-debugcon" diff --git a/hw/char/digic-uart.c b/hw/char/digic-uart.c index e130cb4692..00e5df5517 100644 --- a/hw/char/digic-uart.c +++ b/hw/char/digic-uart.c @@ -35,6 +35,7 @@ =20 #include "hw/char/digic-uart.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" =20 enum { ST_RX_RDY =3D (1 << 0), diff --git a/hw/char/escc.c b/hw/char/escc.c index 7d16ee8688..52e7978287 100644 --- a/hw/char/escc.c +++ b/hw/char/escc.c @@ -25,6 +25,7 @@ #include "qemu/osdep.h" #include "hw/irq.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "hw/sysbus.h" #include "migration/vmstate.h" #include "qemu/module.h" diff --git a/hw/char/etraxfs_ser.c b/hw/char/etraxfs_ser.c index d9fba2ae6c..6bee3ee18e 100644 --- a/hw/char/etraxfs_ser.c +++ b/hw/char/etraxfs_ser.c @@ -25,6 +25,7 @@ #include "qemu/osdep.h" #include "hw/irq.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "hw/sysbus.h" #include "chardev/char-fe.h" #include "qemu/log.h" diff --git a/hw/char/exynos4210_uart.c b/hw/char/exynos4210_uart.c index 96afe3580f..6361df2ad3 100644 --- a/hw/char/exynos4210_uart.c +++ b/hw/char/exynos4210_uart.c @@ -32,6 +32,7 @@ #include "hw/arm/exynos4210.h" #include "hw/irq.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" =20 #include "trace.h" #include "qom/object.h" diff --git a/hw/char/grlib_apbuart.c b/hw/char/grlib_apbuart.c index 3f80f6824e..82ff40a530 100644 --- a/hw/char/grlib_apbuart.c +++ b/hw/char/grlib_apbuart.c @@ -25,6 +25,7 @@ #include "qemu/osdep.h" #include "hw/irq.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "hw/sparc/grlib.h" #include "hw/sysbus.h" #include "qemu/module.h" diff --git a/hw/char/ibex_uart.c b/hw/char/ibex_uart.c index cc49a35013..89f1182c9b 100644 --- a/hw/char/ibex_uart.c +++ b/hw/char/ibex_uart.c @@ -30,6 +30,7 @@ #include "hw/irq.h" #include "hw/qdev-clock.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "migration/vmstate.h" #include "qemu/log.h" #include "qemu/module.h" diff --git a/hw/char/imx_serial.c b/hw/char/imx_serial.c index 731b8fc64c..ee1375e26d 100644 --- a/hw/char/imx_serial.c +++ b/hw/char/imx_serial.c @@ -22,6 +22,7 @@ #include "hw/char/imx_serial.h" #include "hw/irq.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "migration/vmstate.h" #include "qemu/log.h" #include "qemu/module.h" diff --git a/hw/char/ipoctal232.c b/hw/char/ipoctal232.c index ad000a39b9..3311e0872c 100644 --- a/hw/char/ipoctal232.c +++ b/hw/char/ipoctal232.c @@ -12,6 +12,7 @@ #include "hw/ipack/ipack.h" #include "hw/irq.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "migration/vmstate.h" #include "qemu/bitops.h" #include "qemu/module.h" diff --git a/hw/char/lm32_juart.c b/hw/char/lm32_juart.c index b97aacba91..c5ead05e08 100644 --- a/hw/char/lm32_juart.c +++ b/hw/char/lm32_juart.c @@ -26,6 +26,7 @@ =20 #include "hw/char/lm32_juart.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "qom/object.h" =20 enum { diff --git a/hw/char/lm32_uart.c b/hw/char/lm32_uart.c index 0e8b4e46a3..5cb87de548 100644 --- a/hw/char/lm32_uart.c +++ b/hw/char/lm32_uart.c @@ -25,6 +25,7 @@ #include "qemu/osdep.h" #include "hw/irq.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "hw/sysbus.h" #include "migration/vmstate.h" #include "trace.h" diff --git a/hw/char/mcf_uart.c b/hw/char/mcf_uart.c index e6814faffb..6fa4ac502c 100644 --- a/hw/char/mcf_uart.c +++ b/hw/char/mcf_uart.c @@ -13,6 +13,7 @@ #include "qapi/error.h" #include "hw/m68k/mcf.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "chardev/char-fe.h" #include "qom/object.h" =20 diff --git a/hw/char/milkymist-uart.c b/hw/char/milkymist-uart.c index 1e83dbcafa..09e2f6bd76 100644 --- a/hw/char/milkymist-uart.c +++ b/hw/char/milkymist-uart.c @@ -24,6 +24,7 @@ #include "qemu/osdep.h" #include "hw/irq.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "hw/sysbus.h" #include "migration/vmstate.h" #include "trace.h" diff --git a/hw/char/nrf51_uart.c b/hw/char/nrf51_uart.c index d1fef77acd..045ca5fa40 100644 --- a/hw/char/nrf51_uart.c +++ b/hw/char/nrf51_uart.c @@ -18,6 +18,7 @@ #include "hw/char/nrf51_uart.h" #include "hw/irq.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "migration/vmstate.h" #include "trace.h" =20 diff --git a/hw/char/parallel.c b/hw/char/parallel.c index 8b418abf71..b45e67bfbb 100644 --- a/hw/char/parallel.c +++ b/hw/char/parallel.c @@ -32,6 +32,7 @@ #include "hw/irq.h" #include "hw/isa/isa.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "migration/vmstate.h" #include "hw/char/parallel.h" #include "sysemu/reset.h" diff --git a/hw/char/pl011.c b/hw/char/pl011.c index ede16c781c..ea4a4e5235 100644 --- a/hw/char/pl011.c +++ b/hw/char/pl011.c @@ -23,6 +23,7 @@ #include "hw/irq.h" #include "hw/sysbus.h" #include "hw/qdev-clock.h" +#include "hw/qdev-properties-system.h" #include "migration/vmstate.h" #include "chardev/char-fe.h" #include "qemu/log.h" diff --git a/hw/char/renesas_sci.c b/hw/char/renesas_sci.c index 5d7c6e6523..1c63467290 100644 --- a/hw/char/renesas_sci.c +++ b/hw/char/renesas_sci.c @@ -26,6 +26,7 @@ #include "hw/irq.h" #include "hw/registerfields.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "hw/char/renesas_sci.h" #include "migration/vmstate.h" =20 diff --git a/hw/char/sclpconsole-lm.c b/hw/char/sclpconsole-lm.c index 81f6d0ed4f..b9e9b2d453 100644 --- a/hw/char/sclpconsole-lm.c +++ b/hw/char/sclpconsole-lm.c @@ -23,6 +23,7 @@ #include "migration/vmstate.h" #include "hw/s390x/event-facility.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "hw/s390x/ebcdic.h" #include "qom/object.h" =20 diff --git a/hw/char/sclpconsole.c b/hw/char/sclpconsole.c index aa72ab40b9..c36b572222 100644 --- a/hw/char/sclpconsole.c +++ b/hw/char/sclpconsole.c @@ -20,6 +20,7 @@ #include "hw/s390x/sclp.h" #include "migration/vmstate.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "hw/s390x/event-facility.h" #include "chardev/char-fe.h" #include "qom/object.h" diff --git a/hw/char/serial-pci-multi.c b/hw/char/serial-pci-multi.c index 2cf3e44177..3a9f96c2d1 100644 --- a/hw/char/serial-pci-multi.c +++ b/hw/char/serial-pci-multi.c @@ -33,6 +33,7 @@ #include "hw/irq.h" #include "hw/pci/pci.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "migration/vmstate.h" =20 #define PCI_SERIAL_MAX_PORTS 4 diff --git a/hw/char/serial.c b/hw/char/serial.c index 97f71879ff..d99daa7695 100644 --- a/hw/char/serial.c +++ b/hw/char/serial.c @@ -35,6 +35,7 @@ #include "qemu/error-report.h" #include "trace.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" =20 #define UART_LCR_DLAB 0x80 /* Divisor latch access bit */ =20 diff --git a/hw/char/spapr_vty.c b/hw/char/spapr_vty.c index e726d4d915..79eaa2fa52 100644 --- a/hw/char/spapr_vty.c +++ b/hw/char/spapr_vty.c @@ -8,6 +8,7 @@ #include "hw/ppc/spapr.h" #include "hw/ppc/spapr_vio.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "qom/object.h" =20 #define VTERM_BUFSIZE 16 diff --git a/hw/char/stm32f2xx_usart.c b/hw/char/stm32f2xx_usart.c index 0d661be6d3..8df0832424 100644 --- a/hw/char/stm32f2xx_usart.c +++ b/hw/char/stm32f2xx_usart.c @@ -26,6 +26,7 @@ #include "hw/char/stm32f2xx_usart.h" #include "hw/irq.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "qemu/log.h" #include "qemu/module.h" =20 diff --git a/hw/char/terminal3270.c b/hw/char/terminal3270.c index d77981bb6d..a9a46c8ed3 100644 --- a/hw/char/terminal3270.c +++ b/hw/char/terminal3270.c @@ -16,6 +16,7 @@ #include "qemu/module.h" #include "chardev/char-fe.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "hw/s390x/3270-ccw.h" #include "qom/object.h" =20 diff --git a/hw/char/virtio-console.c b/hw/char/virtio-console.c index bc752cf90f..6b132caa29 100644 --- a/hw/char/virtio-console.c +++ b/hw/char/virtio-console.c @@ -16,6 +16,7 @@ #include "qemu/module.h" #include "trace.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "hw/virtio/virtio-serial.h" #include "qapi/error.h" #include "qapi/qapi-events-char.h" diff --git a/hw/char/xilinx_uartlite.c b/hw/char/xilinx_uartlite.c index 2e773ec4c4..99b9a6f851 100644 --- a/hw/char/xilinx_uartlite.c +++ b/hw/char/xilinx_uartlite.c @@ -26,6 +26,7 @@ #include "qemu/log.h" #include "hw/irq.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "hw/sysbus.h" #include "qemu/module.h" #include "chardev/char-fe.h" diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-sys= tem.c index 448d77ecab..8cfa9a3d20 100644 --- a/hw/core/qdev-properties-system.c +++ b/hw/core/qdev-properties-system.c @@ -12,6 +12,7 @@ =20 #include "qemu/osdep.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "qapi/error.h" #include "qapi/visitor.h" #include "qapi/qapi-types-block.h" diff --git a/hw/i386/kvm/i8254.c b/hw/i386/kvm/i8254.c index 40d84734e7..c73254e886 100644 --- a/hw/i386/kvm/i8254.c +++ b/hw/i386/kvm/i8254.c @@ -32,6 +32,7 @@ #include "sysemu/runstate.h" #include "hw/timer/i8254.h" #include "hw/timer/i8254_internal.h" +#include "hw/qdev-properties-system.h" #include "sysemu/kvm.h" #include "qom/object.h" =20 diff --git a/hw/ide/qdev.c b/hw/ide/qdev.c index 27ff1f7f66..73499a6235 100644 --- a/hw/ide/qdev.c +++ b/hw/ide/qdev.c @@ -26,6 +26,7 @@ #include "qemu/module.h" #include "hw/ide/internal.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "sysemu/block-backend.h" #include "sysemu/blockdev.h" #include "hw/block/block.h" diff --git a/hw/ipmi/ipmi_bmc_extern.c b/hw/ipmi/ipmi_bmc_extern.c index c3f3306e66..e141a5cd45 100644 --- a/hw/ipmi/ipmi_bmc_extern.c +++ b/hw/ipmi/ipmi_bmc_extern.c @@ -35,6 +35,7 @@ #include "chardev/char-fe.h" #include "hw/ipmi/ipmi.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "migration/vmstate.h" #include "qom/object.h" =20 diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index e321e5cb69..0505b52c98 100644 --- a/hw/misc/ivshmem.c +++ b/hw/misc/ivshmem.c @@ -23,6 +23,7 @@ #include "qemu/cutils.h" #include "hw/pci/pci.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "hw/pci/msi.h" #include "hw/pci/msix.h" #include "sysemu/kvm.h" diff --git a/hw/misc/mac_via.c b/hw/misc/mac_via.c index 6db62dab7d..488d086a17 100644 --- a/hw/misc/mac_via.c +++ b/hw/misc/mac_via.c @@ -28,6 +28,7 @@ #include "qapi/error.h" #include "qemu/cutils.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "sysemu/block-backend.h" #include "trace.h" #include "qemu/log.h" diff --git a/hw/misc/sifive_u_otp.c b/hw/misc/sifive_u_otp.c index 60066375ab..4401787a5c 100644 --- a/hw/misc/sifive_u_otp.c +++ b/hw/misc/sifive_u_otp.c @@ -21,6 +21,7 @@ #include "qemu/osdep.h" #include "qapi/error.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "hw/sysbus.h" #include "qemu/log.h" #include "qemu/module.h" diff --git a/hw/net/rocker/rocker.c b/hw/net/rocker/rocker.c index 1af1e6fa2f..0fb8db1dee 100644 --- a/hw/net/rocker/rocker.c +++ b/hw/net/rocker/rocker.c @@ -18,6 +18,7 @@ #include "qemu/osdep.h" #include "hw/pci/pci.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "migration/vmstate.h" #include "hw/pci/msix.h" #include "net/net.h" diff --git a/hw/nvram/eeprom_at24c.c b/hw/nvram/eeprom_at24c.c index 3e93dbbffb..af6f5dbb99 100644 --- a/hw/nvram/eeprom_at24c.c +++ b/hw/nvram/eeprom_at24c.c @@ -13,6 +13,7 @@ #include "qemu/module.h" #include "hw/i2c/i2c.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "sysemu/block-backend.h" #include "qom/object.h" =20 diff --git a/hw/nvram/spapr_nvram.c b/hw/nvram/spapr_nvram.c index fc53a42572..9e51bc82ae 100644 --- a/hw/nvram/spapr_nvram.c +++ b/hw/nvram/spapr_nvram.c @@ -39,6 +39,7 @@ #include "hw/ppc/spapr.h" #include "hw/ppc/spapr_vio.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "qom/object.h" =20 struct SpaprNvram { diff --git a/hw/pci-bridge/gen_pcie_root_port.c b/hw/pci-bridge/gen_pcie_ro= ot_port.c index 8931afc049..ec9907917e 100644 --- a/hw/pci-bridge/gen_pcie_root_port.c +++ b/hw/pci-bridge/gen_pcie_root_port.c @@ -16,6 +16,7 @@ #include "hw/pci/msix.h" #include "hw/pci/pcie_port.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "migration/vmstate.h" #include "qom/object.h" =20 diff --git a/hw/pci/pci.c b/hw/pci/pci.c index 100c9381c2..2cd644285c 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -30,6 +30,7 @@ #include "hw/pci/pci_bus.h" #include "hw/pci/pci_host.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "migration/qemu-file-types.h" #include "migration/vmstate.h" #include "monitor/monitor.h" diff --git a/hw/ppc/pnv_pnor.c b/hw/ppc/pnv_pnor.c index c365ee58b8..ef8dff03e0 100644 --- a/hw/ppc/pnv_pnor.c +++ b/hw/ppc/pnv_pnor.c @@ -17,6 +17,7 @@ #include "hw/loader.h" #include "hw/ppc/pnv_pnor.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" =20 static uint64_t pnv_pnor_read(void *opaque, hwaddr addr, unsigned size) { diff --git a/hw/rdma/vmw/pvrdma_main.c b/hw/rdma/vmw/pvrdma_main.c index 77b1235a3f..8593570332 100644 --- a/hw/rdma/vmw/pvrdma_main.c +++ b/hw/rdma/vmw/pvrdma_main.c @@ -21,6 +21,7 @@ #include "hw/pci/msi.h" #include "hw/pci/msix.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "cpu.h" #include "trace.h" #include "monitor/monitor.h" diff --git a/hw/rtc/mc146818rtc.c b/hw/rtc/mc146818rtc.c index 7a38540cb9..5d0fcacd0c 100644 --- a/hw/rtc/mc146818rtc.c +++ b/hw/rtc/mc146818rtc.c @@ -30,6 +30,7 @@ #include "hw/acpi/aml-build.h" #include "hw/irq.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "qemu/timer.h" #include "sysemu/sysemu.h" #include "sysemu/replay.h" diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c index e859534eaf..f9a591cd17 100644 --- a/hw/scsi/scsi-disk.c +++ b/hw/scsi/scsi-disk.c @@ -34,6 +34,7 @@ #include "sysemu/blockdev.h" #include "hw/block/block.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "sysemu/dma.h" #include "sysemu/sysemu.h" #include "qemu/cutils.h" diff --git a/hw/scsi/scsi-generic.c b/hw/scsi/scsi-generic.c index 2cb23ca891..9740f7e36a 100644 --- a/hw/scsi/scsi-generic.c +++ b/hw/scsi/scsi-generic.c @@ -19,6 +19,7 @@ #include "hw/scsi/scsi.h" #include "migration/qemu-file-types.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "hw/scsi/emulation.h" #include "sysemu/block-backend.h" #include "trace.h" diff --git a/hw/scsi/vhost-user-scsi.c b/hw/scsi/vhost-user-scsi.c index 7c0631656c..4666019442 100644 --- a/hw/scsi/vhost-user-scsi.c +++ b/hw/scsi/vhost-user-scsi.c @@ -21,6 +21,7 @@ #include "hw/fw-path-provider.h" #include "hw/qdev-core.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "hw/virtio/vhost.h" #include "hw/virtio/vhost-backend.h" #include "hw/virtio/vhost-user-scsi.h" diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 3091382614..fa07398c8c 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -42,6 +42,7 @@ #include "qapi/error.h" #include "qemu/bitmap.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "qemu/error-report.h" #include "qemu/timer.h" #include "qemu/log.h" diff --git a/hw/usb/ccid-card-passthru.c b/hw/usb/ccid-card-passthru.c index e8e9d37e88..c27c602697 100644 --- a/hw/usb/ccid-card-passthru.c +++ b/hw/usb/ccid-card-passthru.c @@ -14,6 +14,7 @@ #include #include "chardev/char-fe.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "migration/vmstate.h" #include "qemu/error-report.h" #include "qemu/module.h" diff --git a/hw/usb/dev-serial.c b/hw/usb/dev-serial.c index b1622b7c7f..504e1ef423 100644 --- a/hw/usb/dev-serial.c +++ b/hw/usb/dev-serial.c @@ -14,6 +14,7 @@ #include "qemu/error-report.h" #include "qemu/module.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "hw/usb.h" #include "migration/vmstate.h" #include "desc.h" diff --git a/hw/usb/redirect.c b/hw/usb/redirect.c index 3238de6bb8..0b7e0e15f4 100644 --- a/hw/usb/redirect.c +++ b/hw/usb/redirect.c @@ -42,6 +42,7 @@ #include =20 #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "hw/usb.h" #include "migration/qemu-file-types.h" #include "migration/vmstate.h" diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c index 0d83eb0e47..2e7e4bd6c7 100644 --- a/hw/vfio/pci.c +++ b/hw/vfio/pci.c @@ -27,6 +27,7 @@ #include "hw/pci/msix.h" #include "hw/pci/pci_bridge.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "migration/vmstate.h" #include "qemu/error-report.h" #include "qemu/main-loop.h" diff --git a/hw/virtio/vhost-user-fs.c b/hw/virtio/vhost-user-fs.c index 1bc5d03a00..ed036ad9c1 100644 --- a/hw/virtio/vhost-user-fs.c +++ b/hw/virtio/vhost-user-fs.c @@ -16,6 +16,7 @@ #include "standard-headers/linux/virtio_fs.h" #include "qapi/error.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "hw/virtio/virtio-bus.h" #include "hw/virtio/virtio-access.h" #include "qemu/error-report.h" diff --git a/hw/virtio/vhost-user-vsock.c b/hw/virtio/vhost-user-vsock.c index 3534a39d62..a6f08c26b9 100644 --- a/hw/virtio/vhost-user-vsock.c +++ b/hw/virtio/vhost-user-vsock.c @@ -13,6 +13,7 @@ #include "qapi/error.h" #include "qemu/error-report.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "hw/virtio/vhost-user-vsock.h" =20 static const int user_feature_bits[] =3D { diff --git a/hw/virtio/virtio-iommu-pci.c b/hw/virtio/virtio-iommu-pci.c index 378f63b210..770c286be7 100644 --- a/hw/virtio/virtio-iommu-pci.c +++ b/hw/virtio/virtio-iommu-pci.c @@ -14,6 +14,7 @@ #include "virtio-pci.h" #include "hw/virtio/virtio-iommu.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "qapi/error.h" #include "hw/boards.h" #include "qom/object.h" diff --git a/hw/xen/xen_pt.c b/hw/xen/xen_pt.c index 6d359ee486..3cbd08b10e 100644 --- a/hw/xen/xen_pt.c +++ b/hw/xen/xen_pt.c @@ -58,6 +58,7 @@ =20 #include "hw/pci/pci.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "hw/xen/xen.h" #include "hw/i386/pc.h" #include "hw/xen/xen-legacy-backend.h" diff --git a/migration/migration.c b/migration/migration.c index 9bb4fee5ac..071e35ed44 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -52,6 +52,7 @@ #include "migration/colo.h" #include "hw/boards.h" #include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" #include "monitor/monitor.h" #include "net/announce.h" #include "qemu/queue.h" --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604010260; cv=none; d=zohomail.com; s=zohoarc; b=UgO7XVkiNu0NOc3wZEsmueu7Zj6IqPrX1KaLVmeMA3vNLif15Oh+6JQLbZY133ToARVWmYgAUYHIeRPi8k7f/Eb4bEPDkFaqeFtAVoSFnxMCZwecyIW8/VVxeTl9PtQgOfYsB7kwDXStmT0MtWXVTu5sUDClA3SHMg1Kb3wrE18= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604010260; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=YlrQfX4SrTqb2wRaaHzDfQvREutcnRbIOnsEs/Qo0zw=; b=gni9mQRTdBCUo8tE8Sm++VWzsCb9O17jIDh6Xy0Jfj0QmNDgrNMjkYO/rZqu/YkYiR3QDvZWbcPV0WTEVi5W+abKq3ovg+aaG9GBohrUNzQpa8Iblp2qgiOiRkgmmj6BP4soOSidlhPOvW9Fi62Ny4yXypwZAbbUT+YBOw0+/h8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604010260067396.5256538988872; Thu, 29 Oct 2020 15:24:20 -0700 (PDT) Received: from localhost ([::1]:36810 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYGLC-0006Wc-SY for importer@patchew.org; Thu, 29 Oct 2020 18:24:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42842) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG1c-0003tQ-43 for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:04:04 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:36889) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG1S-0006ef-T8 for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:04:03 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-268-sap6O4vUMKm_zFt7d3q6lA-1; Thu, 29 Oct 2020 18:03:51 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 1358A184215B for ; Thu, 29 Oct 2020 22:03:51 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id AE3EE1001281; Thu, 29 Oct 2020 22:03:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604009034; 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=YlrQfX4SrTqb2wRaaHzDfQvREutcnRbIOnsEs/Qo0zw=; b=c5P7dPfpXl1FyokmJbymKQC11Sy/l3QJ4vSZ5qs8YUFVT0blU8XE0ciUsc/hd4Sok5GCYh fRCQyS1pIq1aQ4HMciI+zciTG8TokKjiQXbmHC3z1nFYao4fCgyzLCLnzZ77tSBo4fkkiT rGBAUsEfbogfOR5/3irTUoyrOn0hDFI= X-MC-Unique: sap6O4vUMKm_zFt7d3q6lA-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 27/36] qdev: Reuse DEFINE_PROP in all DEFINE_PROP_* macros Date: Thu, 29 Oct 2020 18:02:37 -0400 Message-Id: <20201029220246.472693-28-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=63.128.21.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 01:47:28 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Daniel P. Berrange" , John Snow , Markus Armbruster , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Instead of duplicating the code that sets name, info, offset, and does type checking, make DEFINE_PROP accept a variable number of arguments and reuse it in all DEFINE_PROP_* macros. Signed-off-by: Eduardo Habkost Reviewed-by: Marc-Andr=C3=A9 Lureau --- Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- include/hw/qdev-properties.h | 132 ++++++++++++----------------------- 1 file changed, 45 insertions(+), 87 deletions(-) diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h index 3a7b4c8643..f9a4c132e7 100644 --- a/include/hw/qdev-properties.h +++ b/include/hw/qdev-properties.h @@ -62,73 +62,46 @@ extern const PropertyInfo qdev_prop_uuid; extern const PropertyInfo qdev_prop_arraylen; extern const PropertyInfo qdev_prop_link; =20 -#define DEFINE_PROP(_name, _state, _field, _prop, _type) { \ +#define DEFINE_PROP(_name, _state, _field, _prop, _type, ...) { \ .name =3D (_name), \ .info =3D &(_prop), \ .offset =3D offsetof(_state, _field) \ + type_check(_type, typeof_field(_state, _field)), \ + __VA_ARGS__ \ } =20 -#define DEFINE_PROP_SIGNED(_name, _state, _field, _defval, _prop, _type) {= \ - .name =3D (_name), \ - .info =3D &(_prop), \ - .offset =3D offsetof(_state, _field) \ - + type_check(_type,typeof_field(_state, _field)), \ - .set_default =3D true, \ - .defval.i =3D (_type)_defval, \ - } +#define DEFINE_PROP_SIGNED(_name, _state, _field, _defval, _prop, _type) \ + DEFINE_PROP(_name, _state, _field, _prop, _type, \ + .set_default =3D true, = \ + .defval.i =3D (_type)_defval) =20 -#define DEFINE_PROP_SIGNED_NODEFAULT(_name, _state, _field, _prop, _type) = { \ - .name =3D (_name), \ - .info =3D &(_prop), \ - .offset =3D offsetof(_state, _field) \ - + type_check(_type, typeof_field(_state, _field)), \ - } +#define DEFINE_PROP_SIGNED_NODEFAULT(_name, _state, _field, _prop, _type) \ + DEFINE_PROP(_name, _state, _field, _prop, _type) =20 -#define DEFINE_PROP_BIT(_name, _state, _field, _bit, _defval) { \ - .name =3D (_name), \ - .info =3D &(qdev_prop_bit), \ - .bitnr =3D (_bit), \ - .offset =3D offsetof(_state, _field) \ - + type_check(uint32_t,typeof_field(_state, _field)), \ - .set_default =3D true, \ - .defval.u =3D (bool)_defval, \ - } +#define DEFINE_PROP_BIT(_name, _state, _field, _bit, _defval) \ + DEFINE_PROP(_name, _state, _field, qdev_prop_bit, uint32_t, \ + .bitnr =3D (_bit), \ + .set_default =3D true, \ + .defval.u =3D (bool)_defval) =20 -#define DEFINE_PROP_UNSIGNED(_name, _state, _field, _defval, _prop, _type)= { \ - .name =3D (_name), \ - .info =3D &(_prop), \ - .offset =3D offsetof(_state, _field) \ - + type_check(_type, typeof_field(_state, _field)), \ - .set_default =3D true, \ - .defval.u =3D (_type)_defval, \ - } +#define DEFINE_PROP_UNSIGNED(_name, _state, _field, _defval, _prop, _type)= \ + DEFINE_PROP(_name, _state, _field, _prop, _type, = \ + .set_default =3D true, = \ + .defval.u =3D (_type)_defval) =20 -#define DEFINE_PROP_UNSIGNED_NODEFAULT(_name, _state, _field, _prop, _type= ) { \ - .name =3D (_name), \ - .info =3D &(_prop), \ - .offset =3D offsetof(_state, _field) \ - + type_check(_type, typeof_field(_state, _field)), \ - } +#define DEFINE_PROP_UNSIGNED_NODEFAULT(_name, _state, _field, _prop, _type= ) \ + DEFINE_PROP(_name, _state, _field, _prop, _type) =20 -#define DEFINE_PROP_BIT64(_name, _state, _field, _bit, _defval) { \ - .name =3D (_name), \ - .info =3D &(qdev_prop_bit64), \ - .bitnr =3D (_bit), \ - .offset =3D offsetof(_state, _field) \ - + type_check(uint64_t, typeof_field(_state, _field)), \ - .set_default =3D true, \ - .defval.u =3D (bool)_defval, \ - } +#define DEFINE_PROP_BIT64(_name, _state, _field, _bit, _defval) \ + DEFINE_PROP(_name, _state, _field, qdev_prop_bit64, uint64_t, \ + .bitnr =3D (_bit), \ + .set_default =3D true, \ + .defval.u =3D (bool)_defval) =20 -#define DEFINE_PROP_BOOL(_name, _state, _field, _defval) { \ - .name =3D (_name), \ - .info =3D &(qdev_prop_bool), \ - .offset =3D offsetof(_state, _field) \ - + type_check(bool, typeof_field(_state, _field)), \ - .set_default =3D true, \ - .defval.u =3D (bool)_defval, \ - } +#define DEFINE_PROP_BOOL(_name, _state, _field, _defval) \ + DEFINE_PROP(_name, _state, _field, qdev_prop_bool, bool, \ + .set_default =3D true, \ + .defval.u =3D (bool)_defval) =20 #define PROP_ARRAY_LEN_PREFIX "len-" =20 @@ -156,26 +129,19 @@ extern const PropertyInfo qdev_prop_link; * It is the responsibility of the device deinit code to free the * @_arrayfield memory. */ -#define DEFINE_PROP_ARRAY(_name, _state, _field, \ - _arrayfield, _arrayprop, _arraytype) { \ - .name =3D (PROP_ARRAY_LEN_PREFIX _name), \ - .info =3D &(qdev_prop_arraylen), \ - .set_default =3D true, \ - .defval.u =3D 0, \ - .offset =3D offsetof(_state, _field) \ - + type_check(uint32_t, typeof_field(_state, _field)), \ - .arrayinfo =3D &(_arrayprop), \ - .arrayfieldsize =3D sizeof(_arraytype), \ - .arrayoffset =3D offsetof(_state, _arrayfield), \ - } +#define DEFINE_PROP_ARRAY(_name, _state, _field, \ + _arrayfield, _arrayprop, _arraytype) \ + DEFINE_PROP((PROP_ARRAY_LEN_PREFIX _name), \ + _state, _field, qdev_prop_arraylen, uint32_t, \ + .set_default =3D true, \ + .defval.u =3D 0, \ + .arrayinfo =3D &(_arrayprop), \ + .arrayfieldsize =3D sizeof(_arraytype), \ + .arrayoffset =3D offsetof(_state, _arrayfield)) =20 -#define DEFINE_PROP_LINK(_name, _state, _field, _type, _ptr_type) { \ - .name =3D (_name), \ - .info =3D &(qdev_prop_link), \ - .offset =3D offsetof(_state, _field) \ - + type_check(_ptr_type, typeof_field(_state, _field)), \ - .link_type =3D _type, \ - } +#define DEFINE_PROP_LINK(_name, _state, _field, _type, _ptr_type) \ + DEFINE_PROP(_name, _state, _field, qdev_prop_link, _ptr_type, \ + .link_type =3D _type) =20 #define DEFINE_PROP_UINT8(_n, _s, _f, _d) \ DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, qdev_prop_uint8, uint8_t) @@ -197,19 +163,11 @@ extern const PropertyInfo qdev_prop_link; DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_on_off_auto, OnOffAuto) #define DEFINE_PROP_SIZE32(_n, _s, _f, _d) \ DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, qdev_prop_size32, uint32_t) -#define DEFINE_PROP_UUID(_name, _state, _field) { \ - .name =3D (_name), \ - .info =3D &qdev_prop_uuid, \ - .offset =3D offsetof(_state, _field) \ - + type_check(QemuUUID, typeof_field(_state, _field)), \ - .set_default =3D true, \ - } -#define DEFINE_PROP_UUID_NODEFAULT(_name, _state, _field) { \ - .name =3D (_name), \ - .info =3D &qdev_prop_uuid, \ - .offset =3D offsetof(_state, _field) \ - + type_check(QemuUUID, typeof_field(_state, _field)), \ - } +#define DEFINE_PROP_UUID(_name, _state, _field) \ + DEFINE_PROP(_name, _state, _field, qdev_prop_uuid, QemuUUID, \ + .set_default =3D true) +#define DEFINE_PROP_UUID_NODEFAULT(_name, _state, _field) \ + DEFINE_PROP(_name, _state, _field, qdev_prop_uuid, QemuUUID) =20 #define DEFINE_PROP_END_OF_LIST() \ {} --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604009886; cv=none; d=zohomail.com; s=zohoarc; b=e1CKsV5V7YzSoMiVz1haU1ruhbVfor7Q1vBlHkjI5RBB623eRwsRN7fr/Q5ifBA7/TsQIoOH7osVdUYCwHRIwlVllZv+a4Rbv1QBgZGpJnAeoWzp27djjk3BqqhENanxx2xqIae1/0W/AOO5mp6wtFm0/gj3QzzXS0Vb05JSaC0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604009886; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=EZwRkpA4UFOU6kfQSPFytgZn4L9sDCp6w7eB/PgKLuc=; b=SadhJV7KMZ73v/pSYYuVi2quUw+coMSUa9A4+2Pk098ngr8py0MLMEtDAaGVm4QfMmtR8R+OyxAr0IQQ+1k4iIG0f02oNKj0CK1He9C1jNXMtOmx60kgaOMjk/6NkcSMjZlqnh3IwKoR0g1RLlL6fIS27Qke33P/drmCAQEcpQs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604009886645943.9598262753601; Thu, 29 Oct 2020 15:18:06 -0700 (PDT) Received: from localhost ([::1]:44512 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYGFB-0006RJ-H3 for importer@patchew.org; Thu, 29 Oct 2020 18:18:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42872) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG1e-0003uD-2b for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:04:06 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:26893) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG1U-0006en-AK for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:04:05 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-107-PmvdXd_2NK6wJm4HJzrdAg-1; Thu, 29 Oct 2020 18:03:53 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 5D59B1842169 for ; Thu, 29 Oct 2020 22:03:52 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id E69475C1C4; Thu, 29 Oct 2020 22:03:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604009035; 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=EZwRkpA4UFOU6kfQSPFytgZn4L9sDCp6w7eB/PgKLuc=; b=VFR+jV6vdHSZkzf9njM6D9PnCyzEv5hAiodCJnskbFrsr/u6niPM2vF1oLM7IFEpA2Adh3 KBBmtXtLlW5sG0ijopGnBJO3TCPrM7L9g/vQgmYt7pQo6SElDHZ3LTiTrEptPF3rX+4xO1 7dSvAwLTAmVFSf+OSSQU575bzLtGgiw= X-MC-Unique: PmvdXd_2NK6wJm4HJzrdAg-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 28/36] qdev: Move core static property code to QOM Date: Thu, 29 Oct 2020 18:02:38 -0400 Message-Id: <20201029220246.472693-29-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=216.205.24.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 00:47:54 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Daniel P. Berrange" , John Snow , Markus Armbruster , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Move the core of the static property code to qom/static-property.c. The actual property type implementations are still in qdev-properties.c, they will be moved later. Signed-off-by: Eduardo Habkost Reviewed-by: Marc-Andr=C3=A9 Lureau --- Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- include/hw/qdev-properties.h | 71 +---------- .../qom/static-property-internal.h | 6 +- include/qom/static-property.h | 79 ++++++++++++ hw/core/qdev-properties-system.c | 2 +- hw/core/qdev-properties.c | 110 +---------------- qom/static-property.c | 114 ++++++++++++++++++ qom/meson.build | 1 + 7 files changed, 200 insertions(+), 183 deletions(-) rename hw/core/qdev-prop-internal.h =3D> include/qom/static-property-inter= nal.h (91%) create mode 100644 include/qom/static-property.h create mode 100644 qom/static-property.c diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h index f9a4c132e7..e1ef466790 100644 --- a/include/hw/qdev-properties.h +++ b/include/hw/qdev-properties.h @@ -2,44 +2,7 @@ #define QEMU_QDEV_PROPERTIES_H =20 #include "hw/qdev-core.h" - -/** - * Property: - * @set_default: true if the default value should be set from @defval, - * in which case @info->set_default_value must not be NULL - * (if false then no default value is set by the property system - * and the field retains whatever value it was given by instance_init). - * @defval: default value for the property. This is used only if @set_defa= ult - * is true. - */ -struct Property { - const char *name; - const PropertyInfo *info; - ptrdiff_t offset; - uint8_t bitnr; - bool set_default; - union { - int64_t i; - uint64_t u; - } defval; - int arrayoffset; - const PropertyInfo *arrayinfo; - int arrayfieldsize; - const char *link_type; -}; - -struct PropertyInfo { - const char *name; - const char *description; - const QEnumLookup *enum_table; - int (*print)(Object *obj, Property *prop, char *dest, size_t len); - void (*set_default_value)(ObjectProperty *op, const Property *prop); - ObjectProperty *(*create)(ObjectClass *oc, Property *prop); - ObjectPropertyAccessor *get; - ObjectPropertyAccessor *set; - ObjectPropertyRelease *release; -}; - +#include "qom/static-property.h" =20 /*** qdev-properties.c ***/ =20 @@ -172,36 +135,6 @@ extern const PropertyInfo qdev_prop_link; #define DEFINE_PROP_END_OF_LIST() \ {} =20 -/** - * object_class_property_add_static: Add a static property to object class - * @oc: object class - * @prop: property definition - * @allow_set: optional check function - * - * Add a property to an object class based on the property definition - * at @prop. - * - * If @allow_set is NULL, the property will always be allowed to be set. - * - * The property definition at @prop should be defined using the - * ``DEFINE_PROP`` family of macros. *@prop must exist for the - * life time of @oc. - */ -ObjectProperty * -object_class_property_add_static(ObjectClass *oc, Property *prop, - ObjectPropertyAllowSet allow_set); - -/** - * object_class_add_static_props: Add multiple static properties to object= class - * @oc: object class - * @props: property definition array, terminated by DEFINED_PROP_END_OF_LI= ST() - * @allow_set: optional check function - * - * Add properties from @props using object_class_property_add_static() - */ -void object_class_add_static_props(ObjectClass *oc, Property *props, - ObjectPropertyAllowSet allow_set); - /* * Set properties between creation and realization. * @@ -229,8 +162,6 @@ void qdev_prop_set_macaddr(DeviceState *dev, const char= *name, const uint8_t *value); void qdev_prop_set_enum(DeviceState *dev, const char *name, int value); =20 -void *object_static_prop_ptr(Object *obj, Property *prop); - void qdev_prop_register_global(GlobalProperty *prop); const GlobalProperty *qdev_find_global_prop(Object *obj, const char *name); diff --git a/hw/core/qdev-prop-internal.h b/include/qom/static-property-int= ernal.h similarity index 91% rename from hw/core/qdev-prop-internal.h rename to include/qom/static-property-internal.h index 41ec9e8942..7cde883a04 100644 --- a/hw/core/qdev-prop-internal.h +++ b/include/qom/static-property-internal.h @@ -1,12 +1,12 @@ /* - * qdev property parsing + * QOM static property internal API (for implementing custom types) * * This work is licensed under the terms of the GNU GPL, version 2 or late= r. * See the COPYING file in the top-level directory. */ =20 -#ifndef HW_CORE_QDEV_PROP_INTERNAL_H -#define HW_CORE_QDEV_PROP_INTERNAL_H +#ifndef QOM_STATIC_PROPERTY_INTERNAL_H +#define QOM_STATIC_PROPERTY_INTERNAL_H =20 void object_propinfo_get_enum(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp); diff --git a/include/qom/static-property.h b/include/qom/static-property.h new file mode 100644 index 0000000000..125ff06327 --- /dev/null +++ b/include/qom/static-property.h @@ -0,0 +1,79 @@ +/* + * QOM static property API + */ +#ifndef QOM_STATIC_PROPERTY_H +#define QOM_STATIC_PROPERTY_H + +#include "qom/object.h" +#include "qapi/util.h" + +/** + * Property: + * @set_default: true if the default value should be set from @defval, + * in which case @info->set_default_value must not be NULL + * (if false then no default value is set by the property system + * and the field retains whatever value it was given by instance_init). + * @defval: default value for the property. This is used only if @set_defa= ult + * is true. + */ +struct Property { + const char *name; + const PropertyInfo *info; + ptrdiff_t offset; + uint8_t bitnr; + bool set_default; + union { + int64_t i; + uint64_t u; + } defval; + int arrayoffset; + const PropertyInfo *arrayinfo; + int arrayfieldsize; + const char *link_type; +}; + +struct PropertyInfo { + const char *name; + const char *description; + const QEnumLookup *enum_table; + int (*print)(Object *obj, Property *prop, char *dest, size_t len); + void (*set_default_value)(ObjectProperty *op, const Property *prop); + ObjectProperty *(*create)(ObjectClass *oc, Property *prop); + ObjectPropertyAccessor *get; + ObjectPropertyAccessor *set; + ObjectPropertyRelease *release; +}; + +/** + * object_class_property_add_static: Add a static property to object class + * @oc: object class + * @prop: property definition + * @allow_set: optional check function + * + * Add a property to an object class based on the property definition + * at @prop. + * + * If @allow_set is NULL, the property will always be allowed to be set. + * + * The property definition at @prop should be defined using the + * ``DEFINE_PROP`` family of macros. *@prop must exist for the + * life time of @oc. + */ +ObjectProperty * +object_class_property_add_static(ObjectClass *oc, Property *prop, + ObjectPropertyAllowSet allow_set); + +/** + * object_class_add_static_props: Add multiple static properties to object= class + * @oc: object class + * @props: property definition array, terminated by DEFINED_PROP_END_OF_LI= ST() + * @allow_set: optional check function + * + * Add properties from @props using object_class_property_add_static() + */ +void object_class_add_static_props(ObjectClass *oc, Property *props, + ObjectPropertyAllowSet allow_set); + +void *object_static_prop_ptr(Object *obj, Property *prop); + +#endif diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-sys= tem.c index 8cfa9a3d20..232ff955fa 100644 --- a/hw/core/qdev-properties-system.c +++ b/hw/core/qdev-properties-system.c @@ -23,7 +23,7 @@ #include "qemu/cutils.h" #include "qemu/units.h" #include "qemu/error-report.h" -#include "qdev-prop-internal.h" +#include "qom/static-property-internal.h" =20 #include "audio/audio.h" #include "chardev/char-fe.h" diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 0b53e5ba63..1b27ba7236 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -9,7 +9,7 @@ #include "qemu/uuid.h" #include "qemu/units.h" #include "qemu/cutils.h" -#include "qdev-prop-internal.h" +#include "qom/static-property-internal.h" =20 void qdev_prop_set_after_realize(DeviceState *dev, const char *name, Error **errp) @@ -51,48 +51,6 @@ void qdev_prop_allow_set_link_before_realize(const Objec= t *obj, } } =20 -void *object_static_prop_ptr(Object *obj, Property *prop) -{ - void *ptr =3D obj; - ptr +=3D prop->offset; - return ptr; -} - -static void static_prop_get(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - Property *prop =3D opaque; - return prop->info->get(obj, v, name, opaque, errp); -} - -/** - * static_prop_getter: Return getter function to be used for property - * - * Return value can be NULL if @info has no getter function. - */ -static ObjectPropertyAccessor *static_prop_getter(const PropertyInfo *info) -{ - return info->get ? static_prop_get : NULL; -} - -static void static_prop_set(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - Property *prop =3D opaque; - - return prop->info->set(obj, v, name, opaque, errp); -} - -/** - * static_prop_setter: Return setter function to be used for property - * - * Return value can be NULL if @info has not setter function. - */ -static ObjectPropertyAccessor *static_prop_setter(const PropertyInfo *info) -{ - return info->set ? static_prop_set : NULL; -} - void object_propinfo_get_enum(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { @@ -907,72 +865,6 @@ const PropertyInfo qdev_prop_link =3D { .create =3D create_link_property, }; =20 -ObjectProperty * -object_property_add_static(Object *obj, Property *prop, - ObjectPropertyAllowSet allow_set) -{ - ObjectProperty *op; - - assert(!prop->info->create); - - op =3D object_property_add(obj, prop->name, prop->info->name, - static_prop_getter(prop->info), - static_prop_setter(prop->info), - prop->info->release, - prop); - - object_property_set_description(obj, prop->name, - prop->info->description); - - if (prop->set_default) { - prop->info->set_default_value(op, prop); - if (op->init) { - op->init(obj, op); - } - } - - op->allow_set =3D allow_set; - return op; -} - -ObjectProperty * -object_class_property_add_static(ObjectClass *oc, Property *prop, - ObjectPropertyAllowSet allow_set) -{ - ObjectProperty *op; - - if (prop->info->create) { - op =3D prop->info->create(oc, prop); - } else { - op =3D object_class_property_add(oc, - prop->name, prop->info->name, - static_prop_getter(prop->info), - static_prop_setter(prop->info), - prop->info->release, - prop); - } - if (prop->set_default) { - prop->info->set_default_value(op, prop); - } - if (prop->info->description) { - object_class_property_set_description(oc, prop->name, - prop->info->description); - } - - op->allow_set =3D allow_set; - return op; -} - -void object_class_add_static_props(ObjectClass *oc, Property *props, - ObjectPropertyAllowSet allow_set) -{ - Property *prop; - - for (prop =3D props; prop && prop->name; prop++) { - object_class_property_add_static(oc, prop, allow_set); - } -} - void qdev_property_add_static(DeviceState *dev, Property *prop) { object_property_add_static(OBJECT(dev), prop, qdev_prop_allow_set); diff --git a/qom/static-property.c b/qom/static-property.c new file mode 100644 index 0000000000..a9e0b8a48b --- /dev/null +++ b/qom/static-property.c @@ -0,0 +1,114 @@ +/* + * QOM static property API implementation + */ +#include "qemu/osdep.h" +#include "qom/static-property.h" +#include "qom/static-property-internal.h" + +void *object_static_prop_ptr(Object *obj, Property *prop) +{ + void *ptr =3D obj; + ptr +=3D prop->offset; + return ptr; +} + +static void static_prop_get(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + Property *prop =3D opaque; + return prop->info->get(obj, v, name, opaque, errp); +} + +/** + * static_prop_getter: Return getter function to be used for property + * + * Return value can be NULL if @info has no getter function. + */ +static ObjectPropertyAccessor *static_prop_getter(const PropertyInfo *info) +{ + return info->get ? static_prop_get : NULL; +} + +static void static_prop_set(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + Property *prop =3D opaque; + + return prop->info->set(obj, v, name, opaque, errp); +} + +/** + * static_prop_setter: Return setter function to be used for property + * + * Return value can be NULL if @info has not setter function. + */ +static ObjectPropertyAccessor *static_prop_setter(const PropertyInfo *info) +{ + return info->set ? static_prop_set : NULL; +} + +ObjectProperty * +object_property_add_static(Object *obj, Property *prop, + ObjectPropertyAllowSet allow_set) +{ + ObjectProperty *op; + + assert(!prop->info->create); + + op =3D object_property_add(obj, prop->name, prop->info->name, + static_prop_getter(prop->info), + static_prop_setter(prop->info), + prop->info->release, + prop); + + object_property_set_description(obj, prop->name, + prop->info->description); + + if (prop->set_default) { + prop->info->set_default_value(op, prop); + if (op->init) { + op->init(obj, op); + } + } + + op->allow_set =3D allow_set; + return op; +} + +ObjectProperty * +object_class_property_add_static(ObjectClass *oc, Property *prop, + ObjectPropertyAllowSet allow_set) +{ + ObjectProperty *op; + + if (prop->info->create) { + op =3D prop->info->create(oc, prop); + } else { + op =3D object_class_property_add(oc, + prop->name, prop->info->name, + static_prop_getter(prop->info), + static_prop_setter(prop->info), + prop->info->release, + prop); + } + if (prop->set_default) { + prop->info->set_default_value(op, prop); + } + if (prop->info->description) { + object_class_property_set_description(oc, prop->name, + prop->info->description); + } + + op->allow_set =3D allow_set; + return op; +} + +void object_class_add_static_props(ObjectClass *oc, Property *props, + ObjectPropertyAllowSet allow_set) +{ + Property *prop; + + for (prop =3D props; prop && prop->name; prop++) { + object_class_property_add_static(oc, prop, allow_set); + } +} diff --git a/qom/meson.build b/qom/meson.build index 062a3789d8..aaebae66b4 100644 --- a/qom/meson.build +++ b/qom/meson.build @@ -4,6 +4,7 @@ qom_ss.add(files( 'object.c', 'object_interfaces.c', 'qom-qobject.c', + 'static-property.c', )) =20 qmp_ss.add(files('qom-qmp-cmds.c')) --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604010264; cv=none; d=zohomail.com; s=zohoarc; b=bH7dFMddMqIOn/YvFkY01bMz16ZByifnV1b3Jv3e2JcmKB+Pce+9n7wRtnbmakqtlAowX4vktThfcFM9D7E3b+6bbmEeD+SWhjQpB/odth4dTjaRrqDEWx73qfVWtv9PwC4owOrcl6F4894yLrd7UxBB4GSxm4YKE5AkKIklxxI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604010264; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Obm/UiHjwrOZvMKR1ByzYIEDJy3ZZONdnzSp2EMhhU8=; b=c+JepRsLS/MCfhhkp9axZuTgkjJ86Jgmf/iZNrLpXrXfi8Yu8bFTkLsW+ZCsKGndrEiTUe+U6iCbqHr0R/RBzqw+ZFlAWpybymMteGYGXGQhvnfgIFHcfD/JspkbjD36EHlKYIIXr2lo4tV2MhdoWN4ZCjWnqFlJlDOladOTf5M= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604010264182747.4073209538625; Thu, 29 Oct 2020 15:24:24 -0700 (PDT) Received: from localhost ([::1]:37156 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYGLH-0006fe-4T for importer@patchew.org; Thu, 29 Oct 2020 18:24:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42916) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG1g-0003vu-Kq for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:04:09 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:50446) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG1Z-0006ez-0P for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:04:08 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-475-9yYUPXveN8OwXdy0UFyMSQ-1; Thu, 29 Oct 2020 18:03:54 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 7EDEA84BA67; Thu, 29 Oct 2020 22:03:53 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3F0041002C01; Thu, 29 Oct 2020 22:03:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604009036; 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=Obm/UiHjwrOZvMKR1ByzYIEDJy3ZZONdnzSp2EMhhU8=; b=Yz3uYooXwSBW69vnQzFXe+EoIGMKljIS/b8+F08yICFPMXEeygOSC41bfvbD2tne6gAYWh btgPcQDhmsTqlMJDF/mV+1Eoyk6mWDRGA95FAbr5Qc+eh266xxLlOdMtq0916zC8SsKDO4 ZBkbnKunyxXiNtxgGKVZS77gw7QP/X8= X-MC-Unique: 9yYUPXveN8OwXdy0UFyMSQ-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 29/36] qdev: Move qdev_prop_tpm declaration to tpm_prop.h Date: Thu, 29 Oct 2020 18:02:39 -0400 Message-Id: <20201029220246.472693-30-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=216.205.24.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 00:47:54 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Daniel P. Berrange" , Stefan Berger , John Snow , Markus Armbruster , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Move the variable declaration close to the macro that uses it. Signed-off-by: Eduardo Habkost Reviewed-by: Marc-Andr=C3=A9 Lureau Reviewed-by:=C2=A0 Stefan Berger --- Cc: Stefan Berger Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/tpm/tpm_prop.h | 2 ++ include/hw/qdev-properties.h | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/tpm/tpm_prop.h b/hw/tpm/tpm_prop.h index 85e1ae5718..871af584b7 100644 --- a/hw/tpm/tpm_prop.h +++ b/hw/tpm/tpm_prop.h @@ -25,6 +25,8 @@ #include "sysemu/tpm_backend.h" #include "hw/qdev-properties.h" =20 +extern const PropertyInfo qdev_prop_tpm; + #define DEFINE_PROP_TPMBE(_n, _s, _f) \ DEFINE_PROP(_n, _s, _f, qdev_prop_tpm, TPMBackend *) =20 diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h index e1ef466790..2b00a1bcf6 100644 --- a/include/hw/qdev-properties.h +++ b/include/hw/qdev-properties.h @@ -18,7 +18,6 @@ extern const PropertyInfo qdev_prop_uint64; extern const PropertyInfo qdev_prop_int64; extern const PropertyInfo qdev_prop_size; extern const PropertyInfo qdev_prop_string; -extern const PropertyInfo qdev_prop_tpm; extern const PropertyInfo qdev_prop_on_off_auto; extern const PropertyInfo qdev_prop_size32; extern const PropertyInfo qdev_prop_uuid; --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604010051; cv=none; d=zohomail.com; s=zohoarc; b=mXJAyorKeGIqWOWBCy+9VEEhpuTSdIq6A0/8fXAuzVXJYNgP4VxPGXEa+1fPnjj2OdlTceS+i0mEugtAKJEKTdd6xh7u7tMXEpUi8R/LMqmL9QeAiwl/7dmMFe17NYori4KrtvQUFITyR2oPnjImdXvBqvlJP87WBNSndPcijoM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604010051; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=KbWYmlGQf+3OJtXCwCrU9BkTRivKPhSbWwuHbI4KKRc=; b=OvB2ieW38LV81UII2ifdRqCUd/IWDJwl4YbszXx2Y3Mzk+IXSM9ROnczTEyovOxlmH9BpFTUZJ4ypInD24YxUAk5op+2fSZUmLZNFtinnq1usKGrn0iQEaT+KFdYhT/xYtwRF2a6POQK88J0/ox5hsVxVFK1rgyo/woBdjlaZMc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604010051789411.8577125433234; Thu, 29 Oct 2020 15:20:51 -0700 (PDT) Received: from localhost ([::1]:54060 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYGHq-0001t6-GX for importer@patchew.org; Thu, 29 Oct 2020 18:20:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42952) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG1i-0003wm-63 for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:04:11 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:50242) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG1b-0006fB-Qp for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:04:09 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-281-Ks83TpcWPIOK01FytAkbKQ-1; Thu, 29 Oct 2020 18:03:56 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 368CF1842161; Thu, 29 Oct 2020 22:03:55 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8F0705C1C4; Thu, 29 Oct 2020 22:03:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604009038; 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=KbWYmlGQf+3OJtXCwCrU9BkTRivKPhSbWwuHbI4KKRc=; b=KAsBBPtHDbAdWo9NwXKC+VevJauWSQeaMTUVgvOvLtRx+//jthuTot8fikah5G1b/8vSXy erGS0WjEvG016u2fQZE4QcNmwxeY6qkmz7WfJ+b7xtBG6cEjtuWj9IMVfCW3+Lw0i/voZE oD4p4bhoQ3QV3nhv3xVkQxJcNF+9YGI= X-MC-Unique: Ks83TpcWPIOK01FytAkbKQ-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 30/36] qdev: Rename qdev_prop_* to prop_info_* Date: Thu, 29 Oct 2020 18:02:40 -0400 Message-Id: <20201029220246.472693-31-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=216.205.24.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 00:47:54 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Dmitry Fleytman , "Daniel P. Berrange" , Yoshinori Sato , John Snow , Jason Wang , Mark Cave-Ayland , Markus Armbruster , qemu-arm@nongnu.org, Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Artyom Tarasenko Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) The basic property types in qdev-properties.c are not going to be qdev-specific anymore. Rename the variables to prop_info_*. Signed-off-by: Eduardo Habkost Reviewed-by: Marc-Andr=C3=A9 Lureau --- Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: Peter Maydell Cc: Yoshinori Sato Cc: Dmitry Fleytman Cc: Jason Wang Cc: Mark Cave-Ayland Cc: Artyom Tarasenko Cc: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org --- include/hw/qdev-properties.h | 68 ++++++++++++++++++------------------ hw/core/qdev-properties.c | 38 ++++++++++---------- hw/intc/arm_gicv3_common.c | 2 +- hw/intc/rx_icu.c | 4 +-- hw/misc/arm_sysctl.c | 4 +-- hw/net/e1000e.c | 6 ++-- target/arm/cpu.c | 2 +- target/sparc/cpu.c | 2 +- 8 files changed, 63 insertions(+), 63 deletions(-) diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h index 2b00a1bcf6..7a08946448 100644 --- a/include/hw/qdev-properties.h +++ b/include/hw/qdev-properties.h @@ -6,23 +6,23 @@ =20 /*** qdev-properties.c ***/ =20 -extern const PropertyInfo qdev_prop_bit; -extern const PropertyInfo qdev_prop_bit64; -extern const PropertyInfo qdev_prop_bool; -extern const PropertyInfo qdev_prop_enum; -extern const PropertyInfo qdev_prop_uint8; -extern const PropertyInfo qdev_prop_uint16; -extern const PropertyInfo qdev_prop_uint32; -extern const PropertyInfo qdev_prop_int32; -extern const PropertyInfo qdev_prop_uint64; -extern const PropertyInfo qdev_prop_int64; -extern const PropertyInfo qdev_prop_size; -extern const PropertyInfo qdev_prop_string; -extern const PropertyInfo qdev_prop_on_off_auto; -extern const PropertyInfo qdev_prop_size32; -extern const PropertyInfo qdev_prop_uuid; -extern const PropertyInfo qdev_prop_arraylen; -extern const PropertyInfo qdev_prop_link; +extern const PropertyInfo prop_info_bit; +extern const PropertyInfo prop_info_bit64; +extern const PropertyInfo prop_info_bool; +extern const PropertyInfo prop_info_enum; +extern const PropertyInfo prop_info_uint8; +extern const PropertyInfo prop_info_uint16; +extern const PropertyInfo prop_info_uint32; +extern const PropertyInfo prop_info_int32; +extern const PropertyInfo prop_info_uint64; +extern const PropertyInfo prop_info_int64; +extern const PropertyInfo prop_info_size; +extern const PropertyInfo prop_info_string; +extern const PropertyInfo prop_info_on_off_auto; +extern const PropertyInfo prop_info_size32; +extern const PropertyInfo prop_info_uuid; +extern const PropertyInfo prop_info_arraylen; +extern const PropertyInfo prop_info_link; =20 #define DEFINE_PROP(_name, _state, _field, _prop, _type, ...) { \ .name =3D (_name), \ @@ -41,7 +41,7 @@ extern const PropertyInfo qdev_prop_link; DEFINE_PROP(_name, _state, _field, _prop, _type) =20 #define DEFINE_PROP_BIT(_name, _state, _field, _bit, _defval) \ - DEFINE_PROP(_name, _state, _field, qdev_prop_bit, uint32_t, \ + DEFINE_PROP(_name, _state, _field, prop_info_bit, uint32_t, \ .bitnr =3D (_bit), \ .set_default =3D true, \ .defval.u =3D (bool)_defval) @@ -55,13 +55,13 @@ extern const PropertyInfo qdev_prop_link; DEFINE_PROP(_name, _state, _field, _prop, _type) =20 #define DEFINE_PROP_BIT64(_name, _state, _field, _bit, _defval) \ - DEFINE_PROP(_name, _state, _field, qdev_prop_bit64, uint64_t, \ + DEFINE_PROP(_name, _state, _field, prop_info_bit64, uint64_t, \ .bitnr =3D (_bit), \ .set_default =3D true, \ .defval.u =3D (bool)_defval) =20 #define DEFINE_PROP_BOOL(_name, _state, _field, _defval) \ - DEFINE_PROP(_name, _state, _field, qdev_prop_bool, bool, \ + DEFINE_PROP(_name, _state, _field, prop_info_bool, bool, \ .set_default =3D true, \ .defval.u =3D (bool)_defval) =20 @@ -94,7 +94,7 @@ extern const PropertyInfo qdev_prop_link; #define DEFINE_PROP_ARRAY(_name, _state, _field, \ _arrayfield, _arrayprop, _arraytype) \ DEFINE_PROP((PROP_ARRAY_LEN_PREFIX _name), \ - _state, _field, qdev_prop_arraylen, uint32_t, \ + _state, _field, prop_info_arraylen, uint32_t, \ .set_default =3D true, \ .defval.u =3D 0, \ .arrayinfo =3D &(_arrayprop), \ @@ -102,34 +102,34 @@ extern const PropertyInfo qdev_prop_link; .arrayoffset =3D offsetof(_state, _arrayfield)) =20 #define DEFINE_PROP_LINK(_name, _state, _field, _type, _ptr_type) \ - DEFINE_PROP(_name, _state, _field, qdev_prop_link, _ptr_type, \ + DEFINE_PROP(_name, _state, _field, prop_info_link, _ptr_type, \ .link_type =3D _type) =20 #define DEFINE_PROP_UINT8(_n, _s, _f, _d) \ - DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, qdev_prop_uint8, uint8_t) + DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, prop_info_uint8, uint8_t) #define DEFINE_PROP_UINT16(_n, _s, _f, _d) \ - DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, qdev_prop_uint16, uint16_t) + DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, prop_info_uint16, uint16_t) #define DEFINE_PROP_UINT32(_n, _s, _f, _d) \ - DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, qdev_prop_uint32, uint32_t) + DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, prop_info_uint32, uint32_t) #define DEFINE_PROP_INT32(_n, _s, _f, _d) \ - DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_int32, int32_t) + DEFINE_PROP_SIGNED(_n, _s, _f, _d, prop_info_int32, int32_t) #define DEFINE_PROP_UINT64(_n, _s, _f, _d) \ - DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, qdev_prop_uint64, uint64_t) + DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, prop_info_uint64, uint64_t) #define DEFINE_PROP_INT64(_n, _s, _f, _d) \ - DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_int64, int64_t) + DEFINE_PROP_SIGNED(_n, _s, _f, _d, prop_info_int64, int64_t) #define DEFINE_PROP_SIZE(_n, _s, _f, _d) \ - DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, qdev_prop_size, uint64_t) + DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, prop_info_size, uint64_t) #define DEFINE_PROP_STRING(_n, _s, _f) \ - DEFINE_PROP(_n, _s, _f, qdev_prop_string, char*) + DEFINE_PROP(_n, _s, _f, prop_info_string, char*) #define DEFINE_PROP_ON_OFF_AUTO(_n, _s, _f, _d) \ - DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_on_off_auto, OnOffAuto) + DEFINE_PROP_SIGNED(_n, _s, _f, _d, prop_info_on_off_auto, OnOffAuto) #define DEFINE_PROP_SIZE32(_n, _s, _f, _d) \ - DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, qdev_prop_size32, uint32_t) + DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, prop_info_size32, uint32_t) #define DEFINE_PROP_UUID(_name, _state, _field) \ - DEFINE_PROP(_name, _state, _field, qdev_prop_uuid, QemuUUID, \ + DEFINE_PROP(_name, _state, _field, prop_info_uuid, QemuUUID, \ .set_default =3D true) #define DEFINE_PROP_UUID_NODEFAULT(_name, _state, _field) \ - DEFINE_PROP(_name, _state, _field, qdev_prop_uuid, QemuUUID) + DEFINE_PROP(_name, _state, _field, prop_info_uuid, QemuUUID) =20 #define DEFINE_PROP_END_OF_LIST() \ {} diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 1b27ba7236..59d65a7362 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -76,7 +76,7 @@ void object_propinfo_set_default_value_enum(ObjectPropert= y *op, qapi_enum_lookup(prop->info->enum_table, prop->defval.i)); } =20 -const PropertyInfo qdev_prop_enum =3D { +const PropertyInfo prop_info_enum =3D { .name =3D "enum", .get =3D object_propinfo_get_enum, .set =3D object_propinfo_set_enum, @@ -87,7 +87,7 @@ const PropertyInfo qdev_prop_enum =3D { =20 static uint32_t qdev_get_prop_mask(Property *prop) { - assert(prop->info =3D=3D &qdev_prop_bit); + assert(prop->info =3D=3D &prop_info_bit); return 0x1 << prop->bitnr; } =20 @@ -129,7 +129,7 @@ static void set_default_value_bool(ObjectProperty *op, = const Property *prop) object_property_set_default_bool(op, prop->defval.u); } =20 -const PropertyInfo qdev_prop_bit =3D { +const PropertyInfo prop_info_bit =3D { .name =3D "bool", .description =3D "on/off", .get =3D prop_get_bit, @@ -141,7 +141,7 @@ const PropertyInfo qdev_prop_bit =3D { =20 static uint64_t qdev_get_prop_mask64(Property *prop) { - assert(prop->info =3D=3D &qdev_prop_bit64); + assert(prop->info =3D=3D &prop_info_bit64); return 0x1ull << prop->bitnr; } =20 @@ -178,7 +178,7 @@ static void prop_set_bit64(Object *obj, Visitor *v, con= st char *name, bit64_prop_set(obj, prop, value); } =20 -const PropertyInfo qdev_prop_bit64 =3D { +const PropertyInfo prop_info_bit64 =3D { .name =3D "bool", .description =3D "on/off", .get =3D prop_get_bit64, @@ -206,7 +206,7 @@ static void set_bool(Object *obj, Visitor *v, const cha= r *name, void *opaque, visit_type_bool(v, name, ptr, errp); } =20 -const PropertyInfo qdev_prop_bool =3D { +const PropertyInfo prop_info_bool =3D { .name =3D "bool", .get =3D get_bool, .set =3D set_bool, @@ -245,7 +245,7 @@ void object_propinfo_set_default_value_uint(ObjectPrope= rty *op, object_property_set_default_uint(op, prop->defval.u); } =20 -const PropertyInfo qdev_prop_uint8 =3D { +const PropertyInfo prop_info_uint8 =3D { .name =3D "uint8", .get =3D get_uint8, .set =3D set_uint8, @@ -272,7 +272,7 @@ static void set_uint16(Object *obj, Visitor *v, const c= har *name, visit_type_uint16(v, name, ptr, errp); } =20 -const PropertyInfo qdev_prop_uint16 =3D { +const PropertyInfo prop_info_uint16 =3D { .name =3D "uint16", .get =3D get_uint16, .set =3D set_uint16, @@ -317,14 +317,14 @@ static void set_int32(Object *obj, Visitor *v, const = char *name, void *opaque, visit_type_int32(v, name, ptr, errp); } =20 -const PropertyInfo qdev_prop_uint32 =3D { +const PropertyInfo prop_info_uint32 =3D { .name =3D "uint32", .get =3D get_uint32, .set =3D set_uint32, .set_default_value =3D object_propinfo_set_default_value_uint, }; =20 -const PropertyInfo qdev_prop_int32 =3D { +const PropertyInfo prop_info_int32 =3D { .name =3D "int32", .get =3D object_propinfo_get_int32, .set =3D set_int32, @@ -369,14 +369,14 @@ static void set_int64(Object *obj, Visitor *v, const = char *name, visit_type_int64(v, name, ptr, errp); } =20 -const PropertyInfo qdev_prop_uint64 =3D { +const PropertyInfo prop_info_uint64 =3D { .name =3D "uint64", .get =3D get_uint64, .set =3D set_uint64, .set_default_value =3D object_propinfo_set_default_value_uint, }; =20 -const PropertyInfo qdev_prop_int64 =3D { +const PropertyInfo prop_info_int64 =3D { .name =3D "int64", .get =3D get_int64, .set =3D set_int64, @@ -419,7 +419,7 @@ static void set_string(Object *obj, Visitor *v, const c= har *name, *ptr =3D str; } =20 -const PropertyInfo qdev_prop_string =3D { +const PropertyInfo prop_info_string =3D { .name =3D "str", .release =3D release_string, .get =3D get_string, @@ -428,7 +428,7 @@ const PropertyInfo qdev_prop_string =3D { =20 /* --- on/off/auto --- */ =20 -const PropertyInfo qdev_prop_on_off_auto =3D { +const PropertyInfo prop_info_on_off_auto =3D { .name =3D "OnOffAuto", .description =3D "on/off/auto", .enum_table =3D &OnOffAuto_lookup, @@ -471,7 +471,7 @@ static void set_size32(Object *obj, Visitor *v, const c= har *name, void *opaque, *ptr =3D value; } =20 -const PropertyInfo qdev_prop_size32 =3D { +const PropertyInfo prop_info_size32 =3D { .name =3D "size", .get =3D object_propinfo_get_size32, .set =3D set_size32, @@ -519,7 +519,7 @@ static void set_default_uuid_auto(ObjectProperty *op, c= onst Property *prop) object_property_set_default_str(op, UUID_VALUE_AUTO); } =20 -const PropertyInfo qdev_prop_uuid =3D { +const PropertyInfo prop_info_uuid =3D { .name =3D "str", .description =3D "UUID (aka GUID) or \"" UUID_VALUE_AUTO "\" for random value (default)", @@ -640,7 +640,7 @@ static void set_prop_arraylen(Object *obj, Visitor *v, = const char *name, } } =20 -const PropertyInfo qdev_prop_arraylen =3D { +const PropertyInfo prop_info_arraylen =3D { .name =3D "uint32", .get =3D get_uint32, .set =3D set_prop_arraylen, @@ -839,7 +839,7 @@ static void set_size(Object *obj, Visitor *v, const cha= r *name, void *opaque, visit_type_size(v, name, ptr, errp); } =20 -const PropertyInfo qdev_prop_size =3D { +const PropertyInfo prop_info_size =3D { .name =3D "size", .get =3D get_size, .set =3D set_size, @@ -860,7 +860,7 @@ static ObjectProperty *create_link_property(ObjectClass= *oc, Property *prop) OBJ_PROP_LINK_STRONG); } =20 -const PropertyInfo qdev_prop_link =3D { +const PropertyInfo prop_info_link =3D { .name =3D "link", .create =3D create_link_property, }; diff --git a/hw/intc/arm_gicv3_common.c b/hw/intc/arm_gicv3_common.c index 58ef65f589..6d06b4d4c5 100644 --- a/hw/intc/arm_gicv3_common.c +++ b/hw/intc/arm_gicv3_common.c @@ -496,7 +496,7 @@ static Property arm_gicv3_common_properties[] =3D { DEFINE_PROP_UINT32("revision", GICv3State, revision, 3), DEFINE_PROP_BOOL("has-security-extensions", GICv3State, security_extn,= 0), DEFINE_PROP_ARRAY("redist-region-count", GICv3State, nb_redist_regions, - redist_region_count, qdev_prop_uint32, uint32_t), + redist_region_count, prop_info_uint32, uint32_t), DEFINE_PROP_END_OF_LIST(), }; =20 diff --git a/hw/intc/rx_icu.c b/hw/intc/rx_icu.c index 94e17a9dea..823160d9a8 100644 --- a/hw/intc/rx_icu.c +++ b/hw/intc/rx_icu.c @@ -365,9 +365,9 @@ static const VMStateDescription vmstate_rxicu =3D { =20 static Property rxicu_properties[] =3D { DEFINE_PROP_ARRAY("ipr-map", RXICUState, nr_irqs, map, - qdev_prop_uint8, uint8_t), + prop_info_uint8, uint8_t), DEFINE_PROP_ARRAY("trigger-level", RXICUState, nr_sense, init_sense, - qdev_prop_uint8, uint8_t), + prop_info_uint8, uint8_t), DEFINE_PROP_END_OF_LIST(), }; =20 diff --git a/hw/misc/arm_sysctl.c b/hw/misc/arm_sysctl.c index 42d4693854..634f3d916f 100644 --- a/hw/misc/arm_sysctl.c +++ b/hw/misc/arm_sysctl.c @@ -628,10 +628,10 @@ static Property arm_sysctl_properties[] =3D { DEFINE_PROP_UINT32("proc_id", arm_sysctl_state, proc_id, 0), /* Daughterboard power supply voltages (as reported via SYS_CFG) */ DEFINE_PROP_ARRAY("db-voltage", arm_sysctl_state, db_num_vsensors, - db_voltage, qdev_prop_uint32, uint32_t), + db_voltage, prop_info_uint32, uint32_t), /* Daughterboard clock reset values (as reported via SYS_CFG) */ DEFINE_PROP_ARRAY("db-clock", arm_sysctl_state, db_num_clocks, - db_clock_reset, qdev_prop_uint32, uint32_t), + db_clock_reset, prop_info_uint32, uint32_t), DEFINE_PROP_END_OF_LIST(), }; =20 diff --git a/hw/net/e1000e.c b/hw/net/e1000e.c index b6f1ae3c8f..7928939ae2 100644 --- a/hw/net/e1000e.c +++ b/hw/net/e1000e.c @@ -686,15 +686,15 @@ static void e1000e_class_init(ObjectClass *class, voi= d *data) dc->reset =3D e1000e_qdev_reset; dc->vmsd =3D &e1000e_vmstate; =20 - e1000e_prop_disable_vnet =3D qdev_prop_uint8; + e1000e_prop_disable_vnet =3D prop_info_uint8; e1000e_prop_disable_vnet.description =3D "Do not use virtio headers, " "perform SW offloads emulation " "instead"; =20 - e1000e_prop_subsys_ven =3D qdev_prop_uint16; + e1000e_prop_subsys_ven =3D prop_info_uint16; e1000e_prop_subsys_ven.description =3D "PCI device Subsystem Vendor ID= "; =20 - e1000e_prop_subsys =3D qdev_prop_uint16; + e1000e_prop_subsys =3D prop_info_uint16; e1000e_prop_subsys.description =3D "PCI device Subsystem ID"; =20 device_class_set_props(dc, e1000e_properties); diff --git a/target/arm/cpu.c b/target/arm/cpu.c index 07492e9f9a..cef92879b0 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -1108,7 +1108,7 @@ static Property arm_cpu_has_mpu_property =3D static Property arm_cpu_pmsav7_dregion_property =3D DEFINE_PROP_UNSIGNED_NODEFAULT("pmsav7-dregion", ARMCPU, pmsav7_dregion, - qdev_prop_uint32, uint32_t); + prop_info_uint32, uint32_t); =20 static bool arm_get_pmu(Object *obj, Error **errp) { diff --git a/target/sparc/cpu.c b/target/sparc/cpu.c index cf21efd85f..a03ec9b0e8 100644 --- a/target/sparc/cpu.c +++ b/target/sparc/cpu.c @@ -839,7 +839,7 @@ static Property sparc_cpu_properties[] =3D { DEFINE_PROP_BIT("cmt", SPARCCPU, env.def.features, 12, false), DEFINE_PROP_BIT("gl", SPARCCPU, env.def.features, 13, false), DEFINE_PROP_UNSIGNED("iu-version", SPARCCPU, env.def.iu_version, 0, - qdev_prop_uint64, target_ulong), + prop_info_uint64, target_ulong), DEFINE_PROP_UINT32("fpu-version", SPARCCPU, env.def.fpu_version, 0), DEFINE_PROP_UINT32("mmu-version", SPARCCPU, env.def.mmu_version, 0), { .name =3D "nwindows", .info =3D &qdev_prop_nwindows }, --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604010162; cv=none; d=zohomail.com; s=zohoarc; b=n6ct544BIDlA0ZaqQhw9E2T0Jp676T/ssT/9tymHLCu86wke6+jF+6rd5P8v1UhzR9MEjVyJOf9MMOidTWFFlTohX7k5Ei3+GOWBCn7L+K6Gxwxt+WzXGRdkxK71UzMR6PrjHXtnBPdFMi0l5ZAYdIk3Xw1r8tMJXG8jyglX0Fg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604010162; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ZFtD3+OmwIAFSHHbOxRkFCWU6QWuhZ/yqnaS1VJtKSY=; b=mQyg70DydJo+3L/nDFWqhzau8NFdrEMDPXtdc6Uj3l1uc8lSvmB9RbveryBesUExTUAq4CSj+2C1jZqZspsG0EzrPZ9tOgF+3KIMPIAYj4FJ/mJNMvJqYfafcyzQV4WCUfYi6O7M6of6uL6egJIFL9aDQfmo1Ud3peTLqxHkYnA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604010162356441.86375042281077; Thu, 29 Oct 2020 15:22:42 -0700 (PDT) Received: from localhost ([::1]:58734 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYGJd-0003wV-6P for importer@patchew.org; Thu, 29 Oct 2020 18:22:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42876) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG1e-0003uX-8V for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:04:06 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:55680) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG1b-0006fK-OP for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:04:05 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-231-OrLWTSJwPCa6qmYrmdTRPQ-1; Thu, 29 Oct 2020 18:03:57 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 7FD501018F78 for ; Thu, 29 Oct 2020 22:03:56 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id 478335D9D3; Thu, 29 Oct 2020 22:03:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604009039; 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=ZFtD3+OmwIAFSHHbOxRkFCWU6QWuhZ/yqnaS1VJtKSY=; b=ixESx55mgvz13htSkf8+sii8qEqD0ewnD8C/uRyin7ksCkj+ZHwmM0PzqA2gNMMJisfJV+ 0IBFNOeGsI6vsU/90HME4HcWe9iqtXTjmi6Zxa9jfHS1KNNcwbBKqBgxiLeOylYc3rC3oz uaSuy8HpXBhw4/JVNXWXD1DMbBUsSTE= X-MC-Unique: OrLWTSJwPCa6qmYrmdTRPQ-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 31/36] qdev: Stop using error_set_from_qdev_prop_error() for UUID property Date: Thu, 29 Oct 2020 18:02:41 -0400 Message-Id: <20201029220246.472693-32-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=216.205.24.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 00:47:54 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Daniel P. Berrange" , John Snow , Markus Armbruster , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Just setting a reasonable error string using error_setg() is simpler and makes error messages clearer. Before: $ qemu-system-x86_64 -device vmgenid,guid=3Dx qemu-system-x86_64: -device vmgenid,guid=3Dx: Property 'vmgenid.guid' doe= sn't take value 'x' After: $ qemu-system-x86_64 -device vmgenid,guid=3Dx qemu-system-x86_64: -device vmgenid,guid=3Dx: invalid UUID: 'x' Signed-off-by: Eduardo Habkost Reviewed-by: Marc-Andr=C3=A9 Lureau --- Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- hw/core/qdev-properties.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 59d65a7362..5b9907e8ba 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -509,7 +509,7 @@ static void set_uuid(Object *obj, Visitor *v, const cha= r *name, void *opaque, if (!strcmp(str, UUID_VALUE_AUTO)) { qemu_uuid_generate(uuid); } else if (qemu_uuid_parse(str, uuid) < 0) { - error_set_from_qdev_prop_error(errp, EINVAL, obj, prop, str); + error_setg(errp, "invalid UUID: '%s'", str); } g_free(str); } --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604010469; cv=none; d=zohomail.com; s=zohoarc; b=MpK0T49ylSiqEyMPd7Kf1ykk0s7IFhO1DDD/GRhWp5DIF3IveW7UBJBdUlgBlfT6SElsCxk8VibWDVXDabGWKI1LJIQk430X6p3YiPkb/0EySRTkYLWELfqivelA86BhDSrCBkr/2dnusIyv+ia0ir6B017pQ4ESE3a2feAjJos= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604010469; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=7IMJp8wu1DOWBwwx/gtg4UHBliHUY0+W5uz2+SzU98U=; b=mmjzYnvXOEQv3aJoBCoemtxJ7exNMwev7zKAwSqH8ulGlfL82RpbOChZs6gHzmXOd0RGcwSFed5fsvijbY4OV5FYTzCMYJEC2iGDU03FZ742s6YPA5x3a8u4enHK1I2xpMi/1hW+y7pxplBpGB9uChQce/bismMYyE14t/ZiDO4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604010469420758.4376936902779; Thu, 29 Oct 2020 15:27:49 -0700 (PDT) Received: from localhost ([::1]:46312 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYGOa-00026j-78 for importer@patchew.org; Thu, 29 Oct 2020 18:27:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42980) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG1l-0003xP-TW for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:04:17 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:45650) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG1b-0006fT-Oy for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:04:11 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-22-8F8K1WzAObG_0h-HvQPlTA-1; Thu, 29 Oct 2020 18:03:59 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 4AA5610E2184 for ; Thu, 29 Oct 2020 22:03:58 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id 96F4C1975F; Thu, 29 Oct 2020 22:03:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604009041; 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=7IMJp8wu1DOWBwwx/gtg4UHBliHUY0+W5uz2+SzU98U=; b=SqPbK8L5Em35w3vfLvDc3xJZKRsmln31qkMKatcVGOKMJqFwQlrpupw/kgUst9P9T9cKNP CU+xF1Cw7Sh/jV/Hb+TyNoA+SRA7OSCWjrYrfWCTdJWmg5dxzE4R+74jAWXncWVXpTKuLm mI4Yl2ODkn1yyW1BzF7y9D6bX+zQh64= X-MC-Unique: 8F8K1WzAObG_0h-HvQPlTA-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 32/36] qdev: Move base property types to qom/property-types.c Date: Thu, 29 Oct 2020 18:02:42 -0400 Message-Id: <20201029220246.472693-33-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=63.128.21.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 01:47:28 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Daniel P. Berrange" , John Snow , Markus Armbruster , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Move all property types from qdev-properties.c to qom/property-types.c. Signed-off-by: Eduardo Habkost Reviewed-by: Marc-Andr=C3=A9 Lureau --- Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- include/hw/qdev-properties.h | 130 ------- include/qom/static-property.h | 128 +++++++ hw/core/qdev-properties.c | 642 --------------------------------- qom/property-types.c | 649 ++++++++++++++++++++++++++++++++++ qom/meson.build | 1 + 5 files changed, 778 insertions(+), 772 deletions(-) create mode 100644 qom/property-types.c diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h index 7a08946448..a4ac1e6972 100644 --- a/include/hw/qdev-properties.h +++ b/include/hw/qdev-properties.h @@ -4,136 +4,6 @@ #include "hw/qdev-core.h" #include "qom/static-property.h" =20 -/*** qdev-properties.c ***/ - -extern const PropertyInfo prop_info_bit; -extern const PropertyInfo prop_info_bit64; -extern const PropertyInfo prop_info_bool; -extern const PropertyInfo prop_info_enum; -extern const PropertyInfo prop_info_uint8; -extern const PropertyInfo prop_info_uint16; -extern const PropertyInfo prop_info_uint32; -extern const PropertyInfo prop_info_int32; -extern const PropertyInfo prop_info_uint64; -extern const PropertyInfo prop_info_int64; -extern const PropertyInfo prop_info_size; -extern const PropertyInfo prop_info_string; -extern const PropertyInfo prop_info_on_off_auto; -extern const PropertyInfo prop_info_size32; -extern const PropertyInfo prop_info_uuid; -extern const PropertyInfo prop_info_arraylen; -extern const PropertyInfo prop_info_link; - -#define DEFINE_PROP(_name, _state, _field, _prop, _type, ...) { \ - .name =3D (_name), \ - .info =3D &(_prop), \ - .offset =3D offsetof(_state, _field) \ - + type_check(_type, typeof_field(_state, _field)), \ - __VA_ARGS__ \ - } - -#define DEFINE_PROP_SIGNED(_name, _state, _field, _defval, _prop, _type) \ - DEFINE_PROP(_name, _state, _field, _prop, _type, \ - .set_default =3D true, = \ - .defval.i =3D (_type)_defval) - -#define DEFINE_PROP_SIGNED_NODEFAULT(_name, _state, _field, _prop, _type) \ - DEFINE_PROP(_name, _state, _field, _prop, _type) - -#define DEFINE_PROP_BIT(_name, _state, _field, _bit, _defval) \ - DEFINE_PROP(_name, _state, _field, prop_info_bit, uint32_t, \ - .bitnr =3D (_bit), \ - .set_default =3D true, \ - .defval.u =3D (bool)_defval) - -#define DEFINE_PROP_UNSIGNED(_name, _state, _field, _defval, _prop, _type)= \ - DEFINE_PROP(_name, _state, _field, _prop, _type, = \ - .set_default =3D true, = \ - .defval.u =3D (_type)_defval) - -#define DEFINE_PROP_UNSIGNED_NODEFAULT(_name, _state, _field, _prop, _type= ) \ - DEFINE_PROP(_name, _state, _field, _prop, _type) - -#define DEFINE_PROP_BIT64(_name, _state, _field, _bit, _defval) \ - DEFINE_PROP(_name, _state, _field, prop_info_bit64, uint64_t, \ - .bitnr =3D (_bit), \ - .set_default =3D true, \ - .defval.u =3D (bool)_defval) - -#define DEFINE_PROP_BOOL(_name, _state, _field, _defval) \ - DEFINE_PROP(_name, _state, _field, prop_info_bool, bool, \ - .set_default =3D true, \ - .defval.u =3D (bool)_defval) - -#define PROP_ARRAY_LEN_PREFIX "len-" - -/** - * DEFINE_PROP_ARRAY: - * @_name: name of the array - * @_state: name of the device state structure type - * @_field: uint32_t field in @_state to hold the array length - * @_arrayfield: field in @_state (of type '@_arraytype *') which - * will point to the array - * @_arrayprop: PropertyInfo defining what property the array elements have - * @_arraytype: C type of the array elements - * - * Define device properties for a variable-length array _name. A - * static property "len-arrayname" is defined. When the device creator - * sets this property to the desired length of array, further dynamic - * properties "arrayname[0]", "arrayname[1]", ... are defined so the - * device creator can set the array element values. Setting the - * "len-arrayname" property more than once is an error. - * - * When the array length is set, the @_field member of the device - * struct is set to the array length, and @_arrayfield is set to point - * to (zero-initialised) memory allocated for the array. For a zero - * length array, @_field will be set to 0 and @_arrayfield to NULL. - * It is the responsibility of the device deinit code to free the - * @_arrayfield memory. - */ -#define DEFINE_PROP_ARRAY(_name, _state, _field, \ - _arrayfield, _arrayprop, _arraytype) \ - DEFINE_PROP((PROP_ARRAY_LEN_PREFIX _name), \ - _state, _field, prop_info_arraylen, uint32_t, \ - .set_default =3D true, \ - .defval.u =3D 0, \ - .arrayinfo =3D &(_arrayprop), \ - .arrayfieldsize =3D sizeof(_arraytype), \ - .arrayoffset =3D offsetof(_state, _arrayfield)) - -#define DEFINE_PROP_LINK(_name, _state, _field, _type, _ptr_type) \ - DEFINE_PROP(_name, _state, _field, prop_info_link, _ptr_type, \ - .link_type =3D _type) - -#define DEFINE_PROP_UINT8(_n, _s, _f, _d) \ - DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, prop_info_uint8, uint8_t) -#define DEFINE_PROP_UINT16(_n, _s, _f, _d) \ - DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, prop_info_uint16, uint16_t) -#define DEFINE_PROP_UINT32(_n, _s, _f, _d) \ - DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, prop_info_uint32, uint32_t) -#define DEFINE_PROP_INT32(_n, _s, _f, _d) \ - DEFINE_PROP_SIGNED(_n, _s, _f, _d, prop_info_int32, int32_t) -#define DEFINE_PROP_UINT64(_n, _s, _f, _d) \ - DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, prop_info_uint64, uint64_t) -#define DEFINE_PROP_INT64(_n, _s, _f, _d) \ - DEFINE_PROP_SIGNED(_n, _s, _f, _d, prop_info_int64, int64_t) -#define DEFINE_PROP_SIZE(_n, _s, _f, _d) \ - DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, prop_info_size, uint64_t) -#define DEFINE_PROP_STRING(_n, _s, _f) \ - DEFINE_PROP(_n, _s, _f, prop_info_string, char*) -#define DEFINE_PROP_ON_OFF_AUTO(_n, _s, _f, _d) \ - DEFINE_PROP_SIGNED(_n, _s, _f, _d, prop_info_on_off_auto, OnOffAuto) -#define DEFINE_PROP_SIZE32(_n, _s, _f, _d) \ - DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, prop_info_size32, uint32_t) -#define DEFINE_PROP_UUID(_name, _state, _field) \ - DEFINE_PROP(_name, _state, _field, prop_info_uuid, QemuUUID, \ - .set_default =3D true) -#define DEFINE_PROP_UUID_NODEFAULT(_name, _state, _field) \ - DEFINE_PROP(_name, _state, _field, prop_info_uuid, QemuUUID) - -#define DEFINE_PROP_END_OF_LIST() \ - {} - /* * Set properties between creation and realization. * diff --git a/include/qom/static-property.h b/include/qom/static-property.h index 125ff06327..779918c947 100644 --- a/include/qom/static-property.h +++ b/include/qom/static-property.h @@ -76,4 +76,132 @@ void object_class_add_static_props(ObjectClass *oc, Pro= perty *props, =20 void *object_static_prop_ptr(Object *obj, Property *prop); =20 +extern const PropertyInfo prop_info_bit; +extern const PropertyInfo prop_info_bit64; +extern const PropertyInfo prop_info_bool; +extern const PropertyInfo prop_info_enum; +extern const PropertyInfo prop_info_uint8; +extern const PropertyInfo prop_info_uint16; +extern const PropertyInfo prop_info_uint32; +extern const PropertyInfo prop_info_int32; +extern const PropertyInfo prop_info_uint64; +extern const PropertyInfo prop_info_int64; +extern const PropertyInfo prop_info_size; +extern const PropertyInfo prop_info_string; +extern const PropertyInfo prop_info_on_off_auto; +extern const PropertyInfo prop_info_size32; +extern const PropertyInfo prop_info_uuid; +extern const PropertyInfo prop_info_arraylen; +extern const PropertyInfo prop_info_link; + +#define DEFINE_PROP(_name, _state, _field, _prop, _type, ...) { \ + .name =3D (_name), \ + .info =3D &(_prop), \ + .offset =3D offsetof(_state, _field) \ + + type_check(_type, typeof_field(_state, _field)), \ + __VA_ARGS__ \ + } + +#define DEFINE_PROP_SIGNED(_name, _state, _field, _defval, _prop, _type) \ + DEFINE_PROP(_name, _state, _field, _prop, _type, \ + .set_default =3D true, = \ + .defval.i =3D (_type)_defval) + +#define DEFINE_PROP_SIGNED_NODEFAULT(_name, _state, _field, _prop, _type) \ + DEFINE_PROP(_name, _state, _field, _prop, _type) + +#define DEFINE_PROP_BIT(_name, _state, _field, _bit, _defval) \ + DEFINE_PROP(_name, _state, _field, prop_info_bit, uint32_t, \ + .bitnr =3D (_bit), \ + .set_default =3D true, \ + .defval.u =3D (bool)_defval) + +#define DEFINE_PROP_UNSIGNED(_name, _state, _field, _defval, _prop, _type)= \ + DEFINE_PROP(_name, _state, _field, _prop, _type, = \ + .set_default =3D true, = \ + .defval.u =3D (_type)_defval) + +#define DEFINE_PROP_UNSIGNED_NODEFAULT(_name, _state, _field, _prop, _type= ) \ + DEFINE_PROP(_name, _state, _field, _prop, _type) + +#define DEFINE_PROP_BIT64(_name, _state, _field, _bit, _defval) \ + DEFINE_PROP(_name, _state, _field, prop_info_bit64, uint64_t, \ + .bitnr =3D (_bit), \ + .set_default =3D true, \ + .defval.u =3D (bool)_defval) + +#define DEFINE_PROP_BOOL(_name, _state, _field, _defval) \ + DEFINE_PROP(_name, _state, _field, prop_info_bool, bool, \ + .set_default =3D true, \ + .defval.u =3D (bool)_defval) + +#define PROP_ARRAY_LEN_PREFIX "len-" + +/** + * DEFINE_PROP_ARRAY: + * @_name: name of the array + * @_state: name of the device state structure type + * @_field: uint32_t field in @_state to hold the array length + * @_arrayfield: field in @_state (of type '@_arraytype *') which + * will point to the array + * @_arrayprop: PropertyInfo defining what property the array elements have + * @_arraytype: C type of the array elements + * + * Define device properties for a variable-length array _name. A + * static property "len-arrayname" is defined. When the device creator + * sets this property to the desired length of array, further dynamic + * properties "arrayname[0]", "arrayname[1]", ... are defined so the + * device creator can set the array element values. Setting the + * "len-arrayname" property more than once is an error. + * + * When the array length is set, the @_field member of the device + * struct is set to the array length, and @_arrayfield is set to point + * to (zero-initialised) memory allocated for the array. For a zero + * length array, @_field will be set to 0 and @_arrayfield to NULL. + * It is the responsibility of the device deinit code to free the + * @_arrayfield memory. + */ +#define DEFINE_PROP_ARRAY(_name, _state, _field, \ + _arrayfield, _arrayprop, _arraytype) \ + DEFINE_PROP((PROP_ARRAY_LEN_PREFIX _name), \ + _state, _field, prop_info_arraylen, uint32_t, \ + .set_default =3D true, \ + .defval.u =3D 0, \ + .arrayinfo =3D &(_arrayprop), \ + .arrayfieldsize =3D sizeof(_arraytype), \ + .arrayoffset =3D offsetof(_state, _arrayfield)) + +#define DEFINE_PROP_LINK(_name, _state, _field, _type, _ptr_type) \ + DEFINE_PROP(_name, _state, _field, prop_info_link, _ptr_type, \ + .link_type =3D _type) + +#define DEFINE_PROP_UINT8(_n, _s, _f, _d) \ + DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, prop_info_uint8, uint8_t) +#define DEFINE_PROP_UINT16(_n, _s, _f, _d) \ + DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, prop_info_uint16, uint16_t) +#define DEFINE_PROP_UINT32(_n, _s, _f, _d) \ + DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, prop_info_uint32, uint32_t) +#define DEFINE_PROP_INT32(_n, _s, _f, _d) \ + DEFINE_PROP_SIGNED(_n, _s, _f, _d, prop_info_int32, int32_t) +#define DEFINE_PROP_UINT64(_n, _s, _f, _d) \ + DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, prop_info_uint64, uint64_t) +#define DEFINE_PROP_INT64(_n, _s, _f, _d) \ + DEFINE_PROP_SIGNED(_n, _s, _f, _d, prop_info_int64, int64_t) +#define DEFINE_PROP_SIZE(_n, _s, _f, _d) \ + DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, prop_info_size, uint64_t) +#define DEFINE_PROP_STRING(_n, _s, _f) \ + DEFINE_PROP(_n, _s, _f, prop_info_string, char*) +#define DEFINE_PROP_ON_OFF_AUTO(_n, _s, _f, _d) \ + DEFINE_PROP_SIGNED(_n, _s, _f, _d, prop_info_on_off_auto, OnOffAuto) +#define DEFINE_PROP_SIZE32(_n, _s, _f, _d) \ + DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, prop_info_size32, uint32_t) +#define DEFINE_PROP_UUID(_name, _state, _field) \ + DEFINE_PROP(_name, _state, _field, prop_info_uuid, QemuUUID, \ + .set_default =3D true) +#define DEFINE_PROP_UUID_NODEFAULT(_name, _state, _field) \ + DEFINE_PROP(_name, _state, _field, prop_info_uuid, QemuUUID) + +#define DEFINE_PROP_END_OF_LIST() \ + {} + #endif diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 5b9907e8ba..c03842e89a 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -51,602 +51,6 @@ void qdev_prop_allow_set_link_before_realize(const Obje= ct *obj, } } =20 -void object_propinfo_get_enum(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - Property *prop =3D opaque; - int *ptr =3D object_static_prop_ptr(obj, prop); - - visit_type_enum(v, prop->name, ptr, prop->info->enum_table, errp); -} - -void object_propinfo_set_enum(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - Property *prop =3D opaque; - int *ptr =3D object_static_prop_ptr(obj, prop); - - visit_type_enum(v, prop->name, ptr, prop->info->enum_table, errp); -} - -void object_propinfo_set_default_value_enum(ObjectProperty *op, - const Property *prop) -{ - object_property_set_default_str(op, - qapi_enum_lookup(prop->info->enum_table, prop->defval.i)); -} - -const PropertyInfo prop_info_enum =3D { - .name =3D "enum", - .get =3D object_propinfo_get_enum, - .set =3D object_propinfo_set_enum, - .set_default_value =3D object_propinfo_set_default_value_enum, -}; - -/* Bit */ - -static uint32_t qdev_get_prop_mask(Property *prop) -{ - assert(prop->info =3D=3D &prop_info_bit); - return 0x1 << prop->bitnr; -} - -static void bit_prop_set(Object *obj, Property *props, bool val) -{ - uint32_t *p =3D object_static_prop_ptr(obj, props); - uint32_t mask =3D qdev_get_prop_mask(props); - if (val) { - *p |=3D mask; - } else { - *p &=3D ~mask; - } -} - -static void prop_get_bit(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - Property *prop =3D opaque; - uint32_t *p =3D object_static_prop_ptr(obj, prop); - bool value =3D (*p & qdev_get_prop_mask(prop)) !=3D 0; - - visit_type_bool(v, name, &value, errp); -} - -static void prop_set_bit(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - Property *prop =3D opaque; - bool value; - - if (!visit_type_bool(v, name, &value, errp)) { - return; - } - bit_prop_set(obj, prop, value); -} - -static void set_default_value_bool(ObjectProperty *op, const Property *pro= p) -{ - object_property_set_default_bool(op, prop->defval.u); -} - -const PropertyInfo prop_info_bit =3D { - .name =3D "bool", - .description =3D "on/off", - .get =3D prop_get_bit, - .set =3D prop_set_bit, - .set_default_value =3D set_default_value_bool, -}; - -/* Bit64 */ - -static uint64_t qdev_get_prop_mask64(Property *prop) -{ - assert(prop->info =3D=3D &prop_info_bit64); - return 0x1ull << prop->bitnr; -} - -static void bit64_prop_set(Object *obj, Property *props, bool val) -{ - uint64_t *p =3D object_static_prop_ptr(obj, props); - uint64_t mask =3D qdev_get_prop_mask64(props); - if (val) { - *p |=3D mask; - } else { - *p &=3D ~mask; - } -} - -static void prop_get_bit64(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - Property *prop =3D opaque; - uint64_t *p =3D object_static_prop_ptr(obj, prop); - bool value =3D (*p & qdev_get_prop_mask64(prop)) !=3D 0; - - visit_type_bool(v, name, &value, errp); -} - -static void prop_set_bit64(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - Property *prop =3D opaque; - bool value; - - if (!visit_type_bool(v, name, &value, errp)) { - return; - } - bit64_prop_set(obj, prop, value); -} - -const PropertyInfo prop_info_bit64 =3D { - .name =3D "bool", - .description =3D "on/off", - .get =3D prop_get_bit64, - .set =3D prop_set_bit64, - .set_default_value =3D set_default_value_bool, -}; - -/* --- bool --- */ - -static void get_bool(Object *obj, Visitor *v, const char *name, void *opaq= ue, - Error **errp) -{ - Property *prop =3D opaque; - bool *ptr =3D object_static_prop_ptr(obj, prop); - - visit_type_bool(v, name, ptr, errp); -} - -static void set_bool(Object *obj, Visitor *v, const char *name, void *opaq= ue, - Error **errp) -{ - Property *prop =3D opaque; - bool *ptr =3D object_static_prop_ptr(obj, prop); - - visit_type_bool(v, name, ptr, errp); -} - -const PropertyInfo prop_info_bool =3D { - .name =3D "bool", - .get =3D get_bool, - .set =3D set_bool, - .set_default_value =3D set_default_value_bool, -}; - -/* --- 8bit integer --- */ - -static void get_uint8(Object *obj, Visitor *v, const char *name, void *opa= que, - Error **errp) -{ - Property *prop =3D opaque; - uint8_t *ptr =3D object_static_prop_ptr(obj, prop); - - visit_type_uint8(v, name, ptr, errp); -} - -static void set_uint8(Object *obj, Visitor *v, const char *name, void *opa= que, - Error **errp) -{ - Property *prop =3D opaque; - uint8_t *ptr =3D object_static_prop_ptr(obj, prop); - - visit_type_uint8(v, name, ptr, errp); -} - -void object_propinfo_set_default_value_int(ObjectProperty *op, - const Property *prop) -{ - object_property_set_default_int(op, prop->defval.i); -} - -void object_propinfo_set_default_value_uint(ObjectProperty *op, - const Property *prop) -{ - object_property_set_default_uint(op, prop->defval.u); -} - -const PropertyInfo prop_info_uint8 =3D { - .name =3D "uint8", - .get =3D get_uint8, - .set =3D set_uint8, - .set_default_value =3D object_propinfo_set_default_value_uint, -}; - -/* --- 16bit integer --- */ - -static void get_uint16(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - Property *prop =3D opaque; - uint16_t *ptr =3D object_static_prop_ptr(obj, prop); - - visit_type_uint16(v, name, ptr, errp); -} - -static void set_uint16(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - Property *prop =3D opaque; - uint16_t *ptr =3D object_static_prop_ptr(obj, prop); - - visit_type_uint16(v, name, ptr, errp); -} - -const PropertyInfo prop_info_uint16 =3D { - .name =3D "uint16", - .get =3D get_uint16, - .set =3D set_uint16, - .set_default_value =3D object_propinfo_set_default_value_uint, -}; - -/* --- 32bit integer --- */ - -static void get_uint32(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - Property *prop =3D opaque; - uint32_t *ptr =3D object_static_prop_ptr(obj, prop); - - visit_type_uint32(v, name, ptr, errp); -} - -static void set_uint32(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - Property *prop =3D opaque; - uint32_t *ptr =3D object_static_prop_ptr(obj, prop); - - visit_type_uint32(v, name, ptr, errp); -} - -void object_propinfo_get_int32(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - Property *prop =3D opaque; - int32_t *ptr =3D object_static_prop_ptr(obj, prop); - - visit_type_int32(v, name, ptr, errp); -} - -static void set_int32(Object *obj, Visitor *v, const char *name, void *opa= que, - Error **errp) -{ - Property *prop =3D opaque; - int32_t *ptr =3D object_static_prop_ptr(obj, prop); - - visit_type_int32(v, name, ptr, errp); -} - -const PropertyInfo prop_info_uint32 =3D { - .name =3D "uint32", - .get =3D get_uint32, - .set =3D set_uint32, - .set_default_value =3D object_propinfo_set_default_value_uint, -}; - -const PropertyInfo prop_info_int32 =3D { - .name =3D "int32", - .get =3D object_propinfo_get_int32, - .set =3D set_int32, - .set_default_value =3D object_propinfo_set_default_value_int, -}; - -/* --- 64bit integer --- */ - -static void get_uint64(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - Property *prop =3D opaque; - uint64_t *ptr =3D object_static_prop_ptr(obj, prop); - - visit_type_uint64(v, name, ptr, errp); -} - -static void set_uint64(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - Property *prop =3D opaque; - uint64_t *ptr =3D object_static_prop_ptr(obj, prop); - - visit_type_uint64(v, name, ptr, errp); -} - -static void get_int64(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - Property *prop =3D opaque; - int64_t *ptr =3D object_static_prop_ptr(obj, prop); - - visit_type_int64(v, name, ptr, errp); -} - -static void set_int64(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - Property *prop =3D opaque; - int64_t *ptr =3D object_static_prop_ptr(obj, prop); - - visit_type_int64(v, name, ptr, errp); -} - -const PropertyInfo prop_info_uint64 =3D { - .name =3D "uint64", - .get =3D get_uint64, - .set =3D set_uint64, - .set_default_value =3D object_propinfo_set_default_value_uint, -}; - -const PropertyInfo prop_info_int64 =3D { - .name =3D "int64", - .get =3D get_int64, - .set =3D set_int64, - .set_default_value =3D object_propinfo_set_default_value_int, -}; - -/* --- string --- */ - -static void release_string(Object *obj, const char *name, void *opaque) -{ - Property *prop =3D opaque; - g_free(*(char **)object_static_prop_ptr(obj, prop)); -} - -static void get_string(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - Property *prop =3D opaque; - char **ptr =3D object_static_prop_ptr(obj, prop); - - if (!*ptr) { - char *str =3D (char *)""; - visit_type_str(v, name, &str, errp); - } else { - visit_type_str(v, name, ptr, errp); - } -} - -static void set_string(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - Property *prop =3D opaque; - char **ptr =3D object_static_prop_ptr(obj, prop); - char *str; - - if (!visit_type_str(v, name, &str, errp)) { - return; - } - g_free(*ptr); - *ptr =3D str; -} - -const PropertyInfo prop_info_string =3D { - .name =3D "str", - .release =3D release_string, - .get =3D get_string, - .set =3D set_string, -}; - -/* --- on/off/auto --- */ - -const PropertyInfo prop_info_on_off_auto =3D { - .name =3D "OnOffAuto", - .description =3D "on/off/auto", - .enum_table =3D &OnOffAuto_lookup, - .get =3D object_propinfo_get_enum, - .set =3D object_propinfo_set_enum, - .set_default_value =3D object_propinfo_set_default_value_enum, -}; - -/* --- 32bit unsigned int 'size' type --- */ - -void object_propinfo_get_size32(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - Property *prop =3D opaque; - uint32_t *ptr =3D object_static_prop_ptr(obj, prop); - uint64_t value =3D *ptr; - - visit_type_size(v, name, &value, errp); -} - -static void set_size32(Object *obj, Visitor *v, const char *name, void *op= aque, - Error **errp) -{ - Property *prop =3D opaque; - uint32_t *ptr =3D object_static_prop_ptr(obj, prop); - uint64_t value; - - if (!visit_type_size(v, name, &value, errp)) { - return; - } - - if (value > UINT32_MAX) { - error_setg(errp, - "Property %s.%s doesn't take value %" PRIu64 - " (maximum: %u)", - object_get_typename(obj), name, value, UINT32_MAX); - return; - } - - *ptr =3D value; -} - -const PropertyInfo prop_info_size32 =3D { - .name =3D "size", - .get =3D object_propinfo_get_size32, - .set =3D set_size32, - .set_default_value =3D object_propinfo_set_default_value_uint, -}; - -/* --- UUID --- */ - -static void get_uuid(Object *obj, Visitor *v, const char *name, void *opaq= ue, - Error **errp) -{ - Property *prop =3D opaque; - QemuUUID *uuid =3D object_static_prop_ptr(obj, prop); - char buffer[UUID_FMT_LEN + 1]; - char *p =3D buffer; - - qemu_uuid_unparse(uuid, buffer); - - visit_type_str(v, name, &p, errp); -} - -#define UUID_VALUE_AUTO "auto" - -static void set_uuid(Object *obj, Visitor *v, const char *name, void *opaq= ue, - Error **errp) -{ - Property *prop =3D opaque; - QemuUUID *uuid =3D object_static_prop_ptr(obj, prop); - char *str; - - if (!visit_type_str(v, name, &str, errp)) { - return; - } - - if (!strcmp(str, UUID_VALUE_AUTO)) { - qemu_uuid_generate(uuid); - } else if (qemu_uuid_parse(str, uuid) < 0) { - error_setg(errp, "invalid UUID: '%s'", str); - } - g_free(str); -} - -static void set_default_uuid_auto(ObjectProperty *op, const Property *prop) -{ - object_property_set_default_str(op, UUID_VALUE_AUTO); -} - -const PropertyInfo prop_info_uuid =3D { - .name =3D "str", - .description =3D "UUID (aka GUID) or \"" UUID_VALUE_AUTO - "\" for random value (default)", - .get =3D get_uuid, - .set =3D set_uuid, - .set_default_value =3D set_default_uuid_auto, -}; - -/* --- support for array properties --- */ - -/* Used as an opaque for the object properties we add for each - * array element. Note that the struct Property must be first - * in the struct so that a pointer to this works as the opaque - * for the underlying element's property hooks as well as for - * our own release callback. - */ -typedef struct { - struct Property prop; - char *propname; - ObjectPropertyRelease *release; -} ArrayElementProperty; - -/** - * Create ArrayElementProperty based on array length property - * @array_len_prop (which was previously defined using DEFINE_PROP_ARRAY()= ). - */ -static ArrayElementProperty *array_element_new(Object *obj, - Property *array_len_prop, - const char *arrayname, - int index, - void *eltptr) -{ - char *propname =3D g_strdup_printf("%s[%d]", arrayname, index); - ArrayElementProperty *arrayprop =3D g_new0(ArrayElementProperty, 1); - arrayprop->propname =3D propname; - arrayprop->prop.info =3D array_len_prop->arrayinfo; - arrayprop->prop.name =3D propname; - /* This ugly piece of pointer arithmetic sets up the offset so - * that when the underlying get/set hooks call qdev_get_prop_ptr - * they get the right answer despite the array element not actually - * being inside the device struct. - */ - arrayprop->prop.offset =3D eltptr - (void *)obj; - assert(object_static_prop_ptr(obj, &arrayprop->prop) =3D=3D eltptr); - return arrayprop; -} - -/* object property release callback for array element properties: - * we call the underlying element's property release hook, and - * then free the memory we allocated when we added the property. - */ -static void array_element_release(Object *obj, const char *name, void *opa= que) -{ - ArrayElementProperty *p =3D opaque; - if (p->release) { - p->release(obj, name, opaque); - } - g_free(p->propname); - g_free(p); -} - -static void object_property_add_array_element(Object *obj, - Property *array_len_prop, - ArrayElementProperty *prop) -{ - ObjectProperty *array_op =3D object_property_find(obj, array_len_prop-= >name); - ObjectProperty *op =3D object_property_add_static(obj, &prop->prop, - array_op->allow_set); - - assert((void *)prop =3D=3D (void *)&prop->prop); - prop->release =3D op->release; - /* array_element_release() will call the original release function */ - op->release =3D array_element_release; -} - -static void set_prop_arraylen(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - /* Setter for the property which defines the length of a - * variable-sized property array. As well as actually setting the - * array-length field in the device struct, we have to create the - * array itself and dynamically add the corresponding properties. - */ - Property *prop =3D opaque; - uint32_t *alenptr =3D object_static_prop_ptr(obj, prop); - void **arrayptr =3D (void *)obj + prop->arrayoffset; - void *eltptr; - const char *arrayname; - int i; - - if (*alenptr) { - error_setg(errp, "array size property %s may not be set more than = once", - name); - return; - } - if (!visit_type_uint32(v, name, alenptr, errp)) { - return; - } - if (!*alenptr) { - return; - } - - /* DEFINE_PROP_ARRAY guarantees that name should start with this prefi= x; - * strip it off so we can get the name of the array itself. - */ - assert(strncmp(name, PROP_ARRAY_LEN_PREFIX, - strlen(PROP_ARRAY_LEN_PREFIX)) =3D=3D 0); - arrayname =3D name + strlen(PROP_ARRAY_LEN_PREFIX); - - /* Note that it is the responsibility of the individual device's deinit - * to free the array proper. - */ - *arrayptr =3D eltptr =3D g_malloc0(*alenptr * prop->arrayfieldsize); - for (i =3D 0; i < *alenptr; i++, eltptr +=3D prop->arrayfieldsize) { - ArrayElementProperty *elt_prop =3D array_element_new(obj, prop, ar= rayname, - i, eltptr); - object_property_add_array_element(obj, prop, elt_prop); - } -} - -const PropertyInfo prop_info_arraylen =3D { - .name =3D "uint32", - .get =3D get_uint32, - .set =3D set_prop_arraylen, - .set_default_value =3D object_propinfo_set_default_value_uint, -}; - /* --- public helpers --- */ =20 static Property *qdev_prop_walk(Property *props, const char *name) @@ -819,52 +223,6 @@ void qdev_prop_set_globals(DeviceState *dev) dev->hotplugged ? NULL : &error_fatal); } =20 -/* --- 64bit unsigned int 'size' type --- */ - -static void get_size(Object *obj, Visitor *v, const char *name, void *opaq= ue, - Error **errp) -{ - Property *prop =3D opaque; - uint64_t *ptr =3D object_static_prop_ptr(obj, prop); - - visit_type_size(v, name, ptr, errp); -} - -static void set_size(Object *obj, Visitor *v, const char *name, void *opaq= ue, - Error **errp) -{ - Property *prop =3D opaque; - uint64_t *ptr =3D object_static_prop_ptr(obj, prop); - - visit_type_size(v, name, ptr, errp); -} - -const PropertyInfo prop_info_size =3D { - .name =3D "size", - .get =3D get_size, - .set =3D set_size, - .set_default_value =3D object_propinfo_set_default_value_uint, -}; - -/* --- object link property --- */ - -static ObjectProperty *create_link_property(ObjectClass *oc, Property *pro= p) -{ - /* - * NOTE: object_property_allow_set_link is unconditional, but - * ObjectProperty.allow_set may be set for the property too. - */ - return object_class_property_add_link(oc, prop->name, prop->link_type, - prop->offset, - object_property_allow_set_link, - OBJ_PROP_LINK_STRONG); -} - -const PropertyInfo prop_info_link =3D { - .name =3D "link", - .create =3D create_link_property, -}; - void qdev_property_add_static(DeviceState *dev, Property *prop) { object_property_add_static(OBJECT(dev), prop, qdev_prop_allow_set); diff --git a/qom/property-types.c b/qom/property-types.c new file mode 100644 index 0000000000..55d8759f06 --- /dev/null +++ b/qom/property-types.c @@ -0,0 +1,649 @@ +#include "qemu/osdep.h" +#include "qom/static-property.h" +#include "qom/static-property-internal.h" +#include "qapi/qapi-types-common.h" +#include "qapi/visitor.h" +#include "qapi/error.h" +#include "qemu/uuid.h" + +void object_propinfo_get_enum(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + Property *prop =3D opaque; + int *ptr =3D object_static_prop_ptr(obj, prop); + + visit_type_enum(v, prop->name, ptr, prop->info->enum_table, errp); +} + +void object_propinfo_set_enum(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + Property *prop =3D opaque; + int *ptr =3D object_static_prop_ptr(obj, prop); + + visit_type_enum(v, prop->name, ptr, prop->info->enum_table, errp); +} + +void object_propinfo_set_default_value_enum(ObjectProperty *op, + const Property *prop) +{ + object_property_set_default_str(op, + qapi_enum_lookup(prop->info->enum_table, prop->defval.i)); +} + +const PropertyInfo prop_info_enum =3D { + .name =3D "enum", + .get =3D object_propinfo_get_enum, + .set =3D object_propinfo_set_enum, + .set_default_value =3D object_propinfo_set_default_value_enum, +}; + +/* Bit */ + +static uint32_t qdev_get_prop_mask(Property *prop) +{ + assert(prop->info =3D=3D &prop_info_bit); + return 0x1 << prop->bitnr; +} + +static void bit_prop_set(Object *obj, Property *props, bool val) +{ + uint32_t *p =3D object_static_prop_ptr(obj, props); + uint32_t mask =3D qdev_get_prop_mask(props); + if (val) { + *p |=3D mask; + } else { + *p &=3D ~mask; + } +} + +static void prop_get_bit(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + Property *prop =3D opaque; + uint32_t *p =3D object_static_prop_ptr(obj, prop); + bool value =3D (*p & qdev_get_prop_mask(prop)) !=3D 0; + + visit_type_bool(v, name, &value, errp); +} + +static void prop_set_bit(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + Property *prop =3D opaque; + bool value; + + if (!visit_type_bool(v, name, &value, errp)) { + return; + } + bit_prop_set(obj, prop, value); +} + +static void set_default_value_bool(ObjectProperty *op, const Property *pro= p) +{ + object_property_set_default_bool(op, prop->defval.u); +} + +const PropertyInfo prop_info_bit =3D { + .name =3D "bool", + .description =3D "on/off", + .get =3D prop_get_bit, + .set =3D prop_set_bit, + .set_default_value =3D set_default_value_bool, +}; + +/* Bit64 */ + +static uint64_t qdev_get_prop_mask64(Property *prop) +{ + assert(prop->info =3D=3D &prop_info_bit64); + return 0x1ull << prop->bitnr; +} + +static void bit64_prop_set(Object *obj, Property *props, bool val) +{ + uint64_t *p =3D object_static_prop_ptr(obj, props); + uint64_t mask =3D qdev_get_prop_mask64(props); + if (val) { + *p |=3D mask; + } else { + *p &=3D ~mask; + } +} + +static void prop_get_bit64(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + Property *prop =3D opaque; + uint64_t *p =3D object_static_prop_ptr(obj, prop); + bool value =3D (*p & qdev_get_prop_mask64(prop)) !=3D 0; + + visit_type_bool(v, name, &value, errp); +} + +static void prop_set_bit64(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + Property *prop =3D opaque; + bool value; + + if (!visit_type_bool(v, name, &value, errp)) { + return; + } + bit64_prop_set(obj, prop, value); +} + +const PropertyInfo prop_info_bit64 =3D { + .name =3D "bool", + .description =3D "on/off", + .get =3D prop_get_bit64, + .set =3D prop_set_bit64, + .set_default_value =3D set_default_value_bool, +}; + +/* --- bool --- */ + +static void get_bool(Object *obj, Visitor *v, const char *name, void *opaq= ue, + Error **errp) +{ + Property *prop =3D opaque; + bool *ptr =3D object_static_prop_ptr(obj, prop); + + visit_type_bool(v, name, ptr, errp); +} + +static void set_bool(Object *obj, Visitor *v, const char *name, void *opaq= ue, + Error **errp) +{ + Property *prop =3D opaque; + bool *ptr =3D object_static_prop_ptr(obj, prop); + + visit_type_bool(v, name, ptr, errp); +} + +const PropertyInfo prop_info_bool =3D { + .name =3D "bool", + .get =3D get_bool, + .set =3D set_bool, + .set_default_value =3D set_default_value_bool, +}; + +/* --- 8bit integer --- */ + +static void get_uint8(Object *obj, Visitor *v, const char *name, void *opa= que, + Error **errp) +{ + Property *prop =3D opaque; + uint8_t *ptr =3D object_static_prop_ptr(obj, prop); + + visit_type_uint8(v, name, ptr, errp); +} + +static void set_uint8(Object *obj, Visitor *v, const char *name, void *opa= que, + Error **errp) +{ + Property *prop =3D opaque; + uint8_t *ptr =3D object_static_prop_ptr(obj, prop); + + visit_type_uint8(v, name, ptr, errp); +} + +void object_propinfo_set_default_value_int(ObjectProperty *op, + const Property *prop) +{ + object_property_set_default_int(op, prop->defval.i); +} + +void object_propinfo_set_default_value_uint(ObjectProperty *op, + const Property *prop) +{ + object_property_set_default_uint(op, prop->defval.u); +} + +const PropertyInfo prop_info_uint8 =3D { + .name =3D "uint8", + .get =3D get_uint8, + .set =3D set_uint8, + .set_default_value =3D object_propinfo_set_default_value_uint, +}; + +/* --- 16bit integer --- */ + +static void get_uint16(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + Property *prop =3D opaque; + uint16_t *ptr =3D object_static_prop_ptr(obj, prop); + + visit_type_uint16(v, name, ptr, errp); +} + +static void set_uint16(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + Property *prop =3D opaque; + uint16_t *ptr =3D object_static_prop_ptr(obj, prop); + + visit_type_uint16(v, name, ptr, errp); +} + +const PropertyInfo prop_info_uint16 =3D { + .name =3D "uint16", + .get =3D get_uint16, + .set =3D set_uint16, + .set_default_value =3D object_propinfo_set_default_value_uint, +}; + +/* --- 32bit integer --- */ + +static void get_uint32(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + Property *prop =3D opaque; + uint32_t *ptr =3D object_static_prop_ptr(obj, prop); + + visit_type_uint32(v, name, ptr, errp); +} + +static void set_uint32(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + Property *prop =3D opaque; + uint32_t *ptr =3D object_static_prop_ptr(obj, prop); + + visit_type_uint32(v, name, ptr, errp); +} + +void object_propinfo_get_int32(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + Property *prop =3D opaque; + int32_t *ptr =3D object_static_prop_ptr(obj, prop); + + visit_type_int32(v, name, ptr, errp); +} + +static void set_int32(Object *obj, Visitor *v, const char *name, void *opa= que, + Error **errp) +{ + Property *prop =3D opaque; + int32_t *ptr =3D object_static_prop_ptr(obj, prop); + + visit_type_int32(v, name, ptr, errp); +} + +const PropertyInfo prop_info_uint32 =3D { + .name =3D "uint32", + .get =3D get_uint32, + .set =3D set_uint32, + .set_default_value =3D object_propinfo_set_default_value_uint, +}; + +const PropertyInfo prop_info_int32 =3D { + .name =3D "int32", + .get =3D object_propinfo_get_int32, + .set =3D set_int32, + .set_default_value =3D object_propinfo_set_default_value_int, +}; + +/* --- 64bit integer --- */ + +static void get_uint64(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + Property *prop =3D opaque; + uint64_t *ptr =3D object_static_prop_ptr(obj, prop); + + visit_type_uint64(v, name, ptr, errp); +} + +static void set_uint64(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + Property *prop =3D opaque; + uint64_t *ptr =3D object_static_prop_ptr(obj, prop); + + visit_type_uint64(v, name, ptr, errp); +} + +static void get_int64(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + Property *prop =3D opaque; + int64_t *ptr =3D object_static_prop_ptr(obj, prop); + + visit_type_int64(v, name, ptr, errp); +} + +static void set_int64(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + Property *prop =3D opaque; + int64_t *ptr =3D object_static_prop_ptr(obj, prop); + + visit_type_int64(v, name, ptr, errp); +} + +const PropertyInfo prop_info_uint64 =3D { + .name =3D "uint64", + .get =3D get_uint64, + .set =3D set_uint64, + .set_default_value =3D object_propinfo_set_default_value_uint, +}; + +const PropertyInfo prop_info_int64 =3D { + .name =3D "int64", + .get =3D get_int64, + .set =3D set_int64, + .set_default_value =3D object_propinfo_set_default_value_int, +}; + +/* --- string --- */ + +static void release_string(Object *obj, const char *name, void *opaque) +{ + Property *prop =3D opaque; + g_free(*(char **)object_static_prop_ptr(obj, prop)); +} + +static void get_string(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + Property *prop =3D opaque; + char **ptr =3D object_static_prop_ptr(obj, prop); + + if (!*ptr) { + char *str =3D (char *)""; + visit_type_str(v, name, &str, errp); + } else { + visit_type_str(v, name, ptr, errp); + } +} + +static void set_string(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + Property *prop =3D opaque; + char **ptr =3D object_static_prop_ptr(obj, prop); + char *str; + + if (!visit_type_str(v, name, &str, errp)) { + return; + } + g_free(*ptr); + *ptr =3D str; +} + +const PropertyInfo prop_info_string =3D { + .name =3D "str", + .release =3D release_string, + .get =3D get_string, + .set =3D set_string, +}; + +/* --- on/off/auto --- */ + +const PropertyInfo prop_info_on_off_auto =3D { + .name =3D "OnOffAuto", + .description =3D "on/off/auto", + .enum_table =3D &OnOffAuto_lookup, + .get =3D object_propinfo_get_enum, + .set =3D object_propinfo_set_enum, + .set_default_value =3D object_propinfo_set_default_value_enum, +}; + +/* --- 32bit unsigned int 'size' type --- */ + +void object_propinfo_get_size32(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + Property *prop =3D opaque; + uint32_t *ptr =3D object_static_prop_ptr(obj, prop); + uint64_t value =3D *ptr; + + visit_type_size(v, name, &value, errp); +} + +static void set_size32(Object *obj, Visitor *v, const char *name, void *op= aque, + Error **errp) +{ + Property *prop =3D opaque; + uint32_t *ptr =3D object_static_prop_ptr(obj, prop); + uint64_t value; + + if (!visit_type_size(v, name, &value, errp)) { + return; + } + + if (value > UINT32_MAX) { + error_setg(errp, + "Property %s.%s doesn't take value %" PRIu64 + " (maximum: %u)", + object_get_typename(obj), name, value, UINT32_MAX); + return; + } + + *ptr =3D value; +} + +const PropertyInfo prop_info_size32 =3D { + .name =3D "size", + .get =3D object_propinfo_get_size32, + .set =3D set_size32, + .set_default_value =3D object_propinfo_set_default_value_uint, +}; + +/* --- UUID --- */ + +static void get_uuid(Object *obj, Visitor *v, const char *name, void *opaq= ue, + Error **errp) +{ + Property *prop =3D opaque; + QemuUUID *uuid =3D object_static_prop_ptr(obj, prop); + char buffer[UUID_FMT_LEN + 1]; + char *p =3D buffer; + + qemu_uuid_unparse(uuid, buffer); + + visit_type_str(v, name, &p, errp); +} + +#define UUID_VALUE_AUTO "auto" + +static void set_uuid(Object *obj, Visitor *v, const char *name, void *opaq= ue, + Error **errp) +{ + Property *prop =3D opaque; + QemuUUID *uuid =3D object_static_prop_ptr(obj, prop); + char *str; + + if (!visit_type_str(v, name, &str, errp)) { + return; + } + + if (!strcmp(str, UUID_VALUE_AUTO)) { + qemu_uuid_generate(uuid); + } else if (qemu_uuid_parse(str, uuid) < 0) { + error_setg(errp, "invalid UUID: '%s'", str); + } + g_free(str); +} + +static void set_default_uuid_auto(ObjectProperty *op, const Property *prop) +{ + object_property_set_default_str(op, UUID_VALUE_AUTO); +} + +const PropertyInfo prop_info_uuid =3D { + .name =3D "str", + .description =3D "UUID (aka GUID) or \"" UUID_VALUE_AUTO + "\" for random value (default)", + .get =3D get_uuid, + .set =3D set_uuid, + .set_default_value =3D set_default_uuid_auto, +}; + +/* --- support for array properties --- */ + +/* Used as an opaque for the object properties we add for each + * array element. Note that the struct Property must be first + * in the struct so that a pointer to this works as the opaque + * for the underlying element's property hooks as well as for + * our own release callback. + */ +typedef struct { + struct Property prop; + char *propname; + ObjectPropertyRelease *release; +} ArrayElementProperty; + +/** + * Create ArrayElementProperty based on array length property + * @array_len_prop (which was previously defined using DEFINE_PROP_ARRAY()= ). + */ +static ArrayElementProperty *array_element_new(Object *obj, + Property *array_len_prop, + const char *arrayname, + int index, + void *eltptr) +{ + char *propname =3D g_strdup_printf("%s[%d]", arrayname, index); + ArrayElementProperty *arrayprop =3D g_new0(ArrayElementProperty, 1); + arrayprop->propname =3D propname; + arrayprop->prop.info =3D array_len_prop->arrayinfo; + arrayprop->prop.name =3D propname; + /* This ugly piece of pointer arithmetic sets up the offset so + * that when the underlying get/set hooks call qdev_get_prop_ptr + * they get the right answer despite the array element not actually + * being inside the device struct. + */ + arrayprop->prop.offset =3D eltptr - (void *)obj; + assert(object_static_prop_ptr(obj, &arrayprop->prop) =3D=3D eltptr); + return arrayprop; +} + +/* object property release callback for array element properties: + * we call the underlying element's property release hook, and + * then free the memory we allocated when we added the property. + */ +static void array_element_release(Object *obj, const char *name, void *opa= que) +{ + ArrayElementProperty *p =3D opaque; + if (p->release) { + p->release(obj, name, opaque); + } + g_free(p->propname); + g_free(p); +} + +static void object_property_add_array_element(Object *obj, + Property *array_len_prop, + ArrayElementProperty *prop) +{ + ObjectProperty *array_op =3D object_property_find(obj, array_len_prop-= >name); + ObjectProperty *op =3D object_property_add_static(obj, &prop->prop, + array_op->allow_set); + + assert((void *)prop =3D=3D (void *)&prop->prop); + prop->release =3D op->release; + /* array_element_release() will call the original release function */ + op->release =3D array_element_release; +} + +static void set_prop_arraylen(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + /* Setter for the property which defines the length of a + * variable-sized property array. As well as actually setting the + * array-length field in the device struct, we have to create the + * array itself and dynamically add the corresponding properties. + */ + Property *prop =3D opaque; + uint32_t *alenptr =3D object_static_prop_ptr(obj, prop); + void **arrayptr =3D (void *)obj + prop->arrayoffset; + void *eltptr; + const char *arrayname; + int i; + + if (*alenptr) { + error_setg(errp, "array size property %s may not be set more than = once", + name); + return; + } + if (!visit_type_uint32(v, name, alenptr, errp)) { + return; + } + if (!*alenptr) { + return; + } + + /* DEFINE_PROP_ARRAY guarantees that name should start with this prefi= x; + * strip it off so we can get the name of the array itself. + */ + assert(strncmp(name, PROP_ARRAY_LEN_PREFIX, + strlen(PROP_ARRAY_LEN_PREFIX)) =3D=3D 0); + arrayname =3D name + strlen(PROP_ARRAY_LEN_PREFIX); + + /* Note that it is the responsibility of the individual device's deinit + * to free the array proper. + */ + *arrayptr =3D eltptr =3D g_malloc0(*alenptr * prop->arrayfieldsize); + for (i =3D 0; i < *alenptr; i++, eltptr +=3D prop->arrayfieldsize) { + ArrayElementProperty *elt_prop =3D array_element_new(obj, prop, ar= rayname, + i, eltptr); + object_property_add_array_element(obj, prop, elt_prop); + } +} + +const PropertyInfo prop_info_arraylen =3D { + .name =3D "uint32", + .get =3D get_uint32, + .set =3D set_prop_arraylen, + .set_default_value =3D object_propinfo_set_default_value_uint, +}; + +/* --- 64bit unsigned int 'size' type --- */ + +static void get_size(Object *obj, Visitor *v, const char *name, void *opaq= ue, + Error **errp) +{ + Property *prop =3D opaque; + uint64_t *ptr =3D object_static_prop_ptr(obj, prop); + + visit_type_size(v, name, ptr, errp); +} + +static void set_size(Object *obj, Visitor *v, const char *name, void *opaq= ue, + Error **errp) +{ + Property *prop =3D opaque; + uint64_t *ptr =3D object_static_prop_ptr(obj, prop); + + visit_type_size(v, name, ptr, errp); +} + +const PropertyInfo prop_info_size =3D { + .name =3D "size", + .get =3D get_size, + .set =3D set_size, + .set_default_value =3D object_propinfo_set_default_value_uint, +}; + +/* --- object link property --- */ + +static ObjectProperty *create_link_property(ObjectClass *oc, Property *pro= p) +{ + /* + * NOTE: object_property_allow_set_link is unconditional, but + * ObjectProperty.allow_set may be set for the property too. + */ + return object_class_property_add_link(oc, prop->name, prop->link_type, + prop->offset, + object_property_allow_set_link, + OBJ_PROP_LINK_STRONG); +} + +const PropertyInfo prop_info_link =3D { + .name =3D "link", + .create =3D create_link_property, +}; diff --git a/qom/meson.build b/qom/meson.build index aaebae66b4..8f746e4a0a 100644 --- a/qom/meson.build +++ b/qom/meson.build @@ -5,6 +5,7 @@ qom_ss.add(files( 'object_interfaces.c', 'qom-qobject.c', 'static-property.c', + 'property-types.c', )) =20 qmp_ss.add(files('qom-qmp-cmds.c')) --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604010530; cv=none; d=zohomail.com; s=zohoarc; b=mnmpqeI4dWOD4zlK3qc/THRgJ3KFVzXS8IyeraZDyP3Ow8PZSvGZXiQs+23myqV1gPzSvLa5h0sa4kljAJ4MP5tMV/PphLUFkmCE18iLKt7HDcddYKoF6nxLjcwDkEMKsP17SZCMApRLHsel/PuoBKmJ9COBijCXJmbeaFBuqNY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604010530; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=TY3hhWOxXf4gzliy28PYdxe6IxkZamp50gu0DtVbhdQ=; b=Dwc6xIGWvW9uBg5kXERLVrcArooi3f4av9VLm++gfQJnmHjlEb57rB9xkeOdU6G3aIW7XdlM3aopBWSbLKsDHAUAMzhJ2HvkjnOjCt3OI8aA8WQv6kogKqzqL7xf1QdlK3f4YihpM4Se5JHtc/ozdcD7TP7o+nR1hmNOlYtOUUk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604010530609466.3976066041455; Thu, 29 Oct 2020 15:28:50 -0700 (PDT) Received: from localhost ([::1]:48548 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYGPZ-00030r-Hx for importer@patchew.org; Thu, 29 Oct 2020 18:28:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42942) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG1h-0003we-TQ for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:04:11 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:27882) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG1b-0006fX-SS for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:04:09 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-144-qv9bIFjzNU-6VbrIZ6JsfQ-1; Thu, 29 Oct 2020 18:04:00 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id A4DE09CC02 for ; Thu, 29 Oct 2020 22:03:59 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id 70BC86EF68; Thu, 29 Oct 2020 22:03:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604009042; 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=TY3hhWOxXf4gzliy28PYdxe6IxkZamp50gu0DtVbhdQ=; b=GVTOMFMQMYJOcygmwYj2S2oQxGDHBxMmhEbE7GKXh6QfN/k2Mx6U1qu+FEZqS508Y/XQ08 LLpyk15MndsPtztZVsDosYrzxAgi9q4ErkfHjRcIUPRFMUIT8uDIVxVNgcmu7EMVRpYt11 gTdrmm7J4wN0eyX4Dv8Gb5sQj1WJGwc= X-MC-Unique: qv9bIFjzNU-6VbrIZ6JsfQ-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 33/36] tests: Use static properties at check-qom-proplist test case Date: Thu, 29 Oct 2020 18:02:43 -0400 Message-Id: <20201029220246.472693-34-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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=63.128.21.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 01:47:28 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Daniel P. Berrange" , John Snow , Markus Armbruster , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Use static properties for the bool and string properties used at check-qom-proplist. Signed-off-by: Eduardo Habkost Reviewed-by: Marc-Andr=C3=A9 Lureau --- Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- tests/check-qom-proplist.c | 61 +++++--------------------------------- 1 file changed, 8 insertions(+), 53 deletions(-) diff --git a/tests/check-qom-proplist.c b/tests/check-qom-proplist.c index 1b76581980..94ad6631c0 100644 --- a/tests/check-qom-proplist.c +++ b/tests/check-qom-proplist.c @@ -26,6 +26,8 @@ #include "qemu/option.h" #include "qemu/config-file.h" #include "qom/object_interfaces.h" +#include "qom/static-property.h" +#include "qom/static-property-internal.h" =20 =20 #define TYPE_DUMMY "qemu-dummy" @@ -68,24 +70,6 @@ struct DummyObjectClass { }; =20 =20 -static void dummy_set_bv(Object *obj, - bool value, - Error **errp) -{ - DummyObject *dobj =3D DUMMY_OBJECT(obj); - - dobj->bv =3D value; -} - -static bool dummy_get_bv(Object *obj, - Error **errp) -{ - DummyObject *dobj =3D DUMMY_OBJECT(obj); - - return dobj->bv; -} - - static void dummy_set_av(Object *obj, int value, Error **errp) @@ -103,39 +87,20 @@ static int dummy_get_av(Object *obj, return dobj->av; } =20 +static Property bv_prop =3D + DEFINE_PROP_BOOL("bv", DummyObject, bv, false); =20 -static void dummy_set_sv(Object *obj, - const char *value, - Error **errp) -{ - DummyObject *dobj =3D DUMMY_OBJECT(obj); - - g_free(dobj->sv); - dobj->sv =3D g_strdup(value); -} - -static char *dummy_get_sv(Object *obj, - Error **errp) -{ - DummyObject *dobj =3D DUMMY_OBJECT(obj); - - return g_strdup(dobj->sv); -} - +static Property sv_prop =3D + DEFINE_PROP_STRING("sv", DummyObject, sv); =20 static void dummy_init(Object *obj) { - object_property_add_bool(obj, "bv", - dummy_get_bv, - dummy_set_bv); + object_property_add_static(obj, &bv_prop, NULL); } =20 - static void dummy_class_init(ObjectClass *cls, void *data) { - object_class_property_add_str(cls, "sv", - dummy_get_sv, - dummy_set_sv); + object_class_property_add_static(cls, &sv_prop, NULL); object_class_property_add_enum(cls, "av", "DummyAnimal", &dummy_animal_map, @@ -143,21 +108,11 @@ static void dummy_class_init(ObjectClass *cls, void *= data) dummy_set_av); } =20 - -static void dummy_finalize(Object *obj) -{ - DummyObject *dobj =3D DUMMY_OBJECT(obj); - - g_free(dobj->sv); -} - - static const TypeInfo dummy_info =3D { .name =3D TYPE_DUMMY, .parent =3D TYPE_OBJECT, .instance_size =3D sizeof(DummyObject), .instance_init =3D dummy_init, - .instance_finalize =3D dummy_finalize, .class_size =3D sizeof(DummyObjectClass), .class_init =3D dummy_class_init, .interfaces =3D (InterfaceInfo[]) { --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604010357; cv=none; d=zohomail.com; s=zohoarc; b=FlBuIsGHJx/urMnYbc2jHY2VLkWlS6E5ZFceRoB/fy3WeH1r+TNKOAtZ4F4auT8SXv/7S+zTHF/gWf+GPt2KqFcRhwn5XDTfbf8Wv0sovi2AnWt2uagdTB80AyZrNJ1BYy3vfynvT0gsNhVO6pbdgmZuGZk8l6i7sGqbTWeEofA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604010357; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=lLBh8AHI5w5zORkGrS1PT6VyJYohW+X+eV7Twa8JhNg=; b=aKx60syqA6iXgxYRiUPYUq7Q/upmOZGile2PygmT5suSaIEsUBATj4Pek2569qGp6SLyPTZLkY9Zr33aI+Uj1A0uHvCRLhmYjGclTWkRtqoLh6smGjmLtHa9EXOxXdx/I6FCMLdKTPShLSmQYR42AT4JVhhAedMDZ1KIPZXYMwM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604010357022505.96200773801536; Thu, 29 Oct 2020 15:25:57 -0700 (PDT) Received: from localhost ([::1]:41568 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYGMl-000086-T5 for importer@patchew.org; Thu, 29 Oct 2020 18:25:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42946) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG1h-0003wj-VP for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:04:11 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:48118) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG1d-0006fo-Jv for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:04:09 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-54-e9vWb2IFMAaFYFaHdzI1Jg-1; Thu, 29 Oct 2020 18:04:01 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id DCAED10E2184 for ; Thu, 29 Oct 2020 22:04:00 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9CFC355780; Thu, 29 Oct 2020 22:04:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604009043; 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=lLBh8AHI5w5zORkGrS1PT6VyJYohW+X+eV7Twa8JhNg=; b=OHi6PUU4bPzggN6FqaggN1PQjmzAOqql5kqZdk6YnyWM3B3Gq39Qzycuo5L1tQWPB1QUca 4usRdORn0XZa7Ua05MQlHXXWOxhJtXTInflTLiRPqDduNqqr1CvMnVeW14iHINQGUj9jiY 5gtnJ8kxKwtUcn+eLvGoOAS/sdrwbnw= X-MC-Unique: e9vWb2IFMAaFYFaHdzI1Jg-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 34/36] machine: Use DEFINE_PROP_STRING for string properties Date: Thu, 29 Oct 2020 18:02:44 -0400 Message-Id: <20201029220246.472693-35-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable 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=63.128.21.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 01:47:28 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Daniel P. Berrange" , John Snow , Markus Armbruster , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Eduardo Habkost --- hw/core/machine.c | 166 ++++++---------------------------------------- 1 file changed, 19 insertions(+), 147 deletions(-) diff --git a/hw/core/machine.c b/hw/core/machine.c index c5e0e79e6d..97e102911a 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -27,6 +27,7 @@ #include "hw/pci/pci.h" #include "hw/mem/nvdimm.h" #include "migration/vmstate.h" +#include "qom/static-property.h" =20 GlobalProperty hw_compat_5_1[] =3D { { "vhost-scsi", "num_queues", "1"}, @@ -211,81 +212,6 @@ GlobalProperty hw_compat_2_1[] =3D { }; const size_t hw_compat_2_1_len =3D G_N_ELEMENTS(hw_compat_2_1); =20 -static char *machine_get_kernel(Object *obj, Error **errp) -{ - MachineState *ms =3D MACHINE(obj); - - return g_strdup(ms->kernel_filename); -} - -static void machine_set_kernel(Object *obj, const char *value, Error **err= p) -{ - MachineState *ms =3D MACHINE(obj); - - g_free(ms->kernel_filename); - ms->kernel_filename =3D g_strdup(value); -} - -static char *machine_get_initrd(Object *obj, Error **errp) -{ - MachineState *ms =3D MACHINE(obj); - - return g_strdup(ms->initrd_filename); -} - -static void machine_set_initrd(Object *obj, const char *value, Error **err= p) -{ - MachineState *ms =3D MACHINE(obj); - - g_free(ms->initrd_filename); - ms->initrd_filename =3D g_strdup(value); -} - -static char *machine_get_append(Object *obj, Error **errp) -{ - MachineState *ms =3D MACHINE(obj); - - return g_strdup(ms->kernel_cmdline); -} - -static void machine_set_append(Object *obj, const char *value, Error **err= p) -{ - MachineState *ms =3D MACHINE(obj); - - g_free(ms->kernel_cmdline); - ms->kernel_cmdline =3D g_strdup(value); -} - -static char *machine_get_dtb(Object *obj, Error **errp) -{ - MachineState *ms =3D MACHINE(obj); - - return g_strdup(ms->dtb); -} - -static void machine_set_dtb(Object *obj, const char *value, Error **errp) -{ - MachineState *ms =3D MACHINE(obj); - - g_free(ms->dtb); - ms->dtb =3D g_strdup(value); -} - -static char *machine_get_dumpdtb(Object *obj, Error **errp) -{ - MachineState *ms =3D MACHINE(obj); - - return g_strdup(ms->dumpdtb); -} - -static void machine_set_dumpdtb(Object *obj, const char *value, Error **er= rp) -{ - MachineState *ms =3D MACHINE(obj); - - g_free(ms->dumpdtb); - ms->dumpdtb =3D g_strdup(value); -} - static void machine_get_phandle_start(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) @@ -310,21 +236,6 @@ static void machine_set_phandle_start(Object *obj, Vis= itor *v, ms->phandle_start =3D value; } =20 -static char *machine_get_dt_compatible(Object *obj, Error **errp) -{ - MachineState *ms =3D MACHINE(obj); - - return g_strdup(ms->dt_compatible); -} - -static void machine_set_dt_compatible(Object *obj, const char *value, Erro= r **errp) -{ - MachineState *ms =3D MACHINE(obj); - - g_free(ms->dt_compatible); - ms->dt_compatible =3D g_strdup(value); -} - static bool machine_get_dump_guest_core(Object *obj, Error **errp) { MachineState *ms =3D MACHINE(obj); @@ -353,6 +264,18 @@ static void machine_set_mem_merge(Object *obj, bool va= lue, Error **errp) ms->mem_merge =3D value; } =20 +static Property machine_props[] =3D { + DEFINE_PROP_STRING("kernel", MachineState, kernel_filename), + DEFINE_PROP_STRING("initrd", MachineState, initrd_filename), + DEFINE_PROP_STRING("append", MachineState, kernel_cmdline), + DEFINE_PROP_STRING("dtb", MachineState, dtb), + DEFINE_PROP_STRING("dumpdtb", MachineState, dumpdtb), + DEFINE_PROP_STRING("dt-compatible", MachineState, dt_compatible), + DEFINE_PROP_STRING("firmware", MachineState, firmware), + DEFINE_PROP_STRING("memory-backend", MachineState, ram_memdev_id), + DEFINE_PROP_END_OF_LIST(), +}; + static bool machine_get_usb(Object *obj, Error **errp) { MachineState *ms =3D MACHINE(obj); @@ -382,21 +305,6 @@ static void machine_set_graphics(Object *obj, bool val= ue, Error **errp) ms->enable_graphics =3D value; } =20 -static char *machine_get_firmware(Object *obj, Error **errp) -{ - MachineState *ms =3D MACHINE(obj); - - return g_strdup(ms->firmware); -} - -static void machine_set_firmware(Object *obj, const char *value, Error **e= rrp) -{ - MachineState *ms =3D MACHINE(obj); - - g_free(ms->firmware); - ms->firmware =3D g_strdup(value); -} - static void machine_set_suppress_vmdesc(Object *obj, bool value, Error **e= rrp) { MachineState *ms =3D MACHINE(obj); @@ -519,21 +427,6 @@ static void validate_sysbus_device(SysBusDevice *sbdev= , void *opaque) } } =20 -static char *machine_get_memdev(Object *obj, Error **errp) -{ - MachineState *ms =3D MACHINE(obj); - - return g_strdup(ms->ram_memdev_id); -} - -static void machine_set_memdev(Object *obj, const char *value, Error **err= p) -{ - MachineState *ms =3D MACHINE(obj); - - g_free(ms->ram_memdev_id); - ms->ram_memdev_id =3D g_strdup(value); -} - =20 static void machine_init_notify(Notifier *notifier, void *data) { @@ -773,28 +666,20 @@ static void machine_class_init(ObjectClass *oc, void = *data) */ mc->numa_mem_align_shift =3D 23; =20 - object_class_property_add_str(oc, "kernel", - machine_get_kernel, machine_set_kernel); + /* + * TODO: provide a allow_set callback and prevent properties + * from being set after machine was already initialized + */ + object_class_add_static_props(oc, machine_props, NULL); + object_class_property_set_description(oc, "kernel", "Linux kernel image file"); - - object_class_property_add_str(oc, "initrd", - machine_get_initrd, machine_set_initrd); object_class_property_set_description(oc, "initrd", "Linux initial ramdisk file"); - - object_class_property_add_str(oc, "append", - machine_get_append, machine_set_append); object_class_property_set_description(oc, "append", "Linux kernel command line"); - - object_class_property_add_str(oc, "dtb", - machine_get_dtb, machine_set_dtb); object_class_property_set_description(oc, "dtb", "Linux kernel device tree file"); - - object_class_property_add_str(oc, "dumpdtb", - machine_get_dumpdtb, machine_set_dumpdtb); object_class_property_set_description(oc, "dumpdtb", "Dump current dtb to a file and quit"); =20 @@ -804,8 +689,6 @@ static void machine_class_init(ObjectClass *oc, void *d= ata) object_class_property_set_description(oc, "phandle-start", "The first phandle ID we may generate dynamically"); =20 - object_class_property_add_str(oc, "dt-compatible", - machine_get_dt_compatible, machine_set_dt_compatible); object_class_property_set_description(oc, "dt-compatible", "Overrides the \"compatible\" property of the dt root node"); =20 @@ -829,8 +712,6 @@ static void machine_class_init(ObjectClass *oc, void *d= ata) object_class_property_set_description(oc, "graphics", "Set on/off to enable/disable graphics emulation"); =20 - object_class_property_add_str(oc, "firmware", - machine_get_firmware, machine_set_firmware); object_class_property_set_description(oc, "firmware", "Firmware image"); =20 @@ -844,8 +725,6 @@ static void machine_class_init(ObjectClass *oc, void *d= ata) object_class_property_set_description(oc, "memory-encryption", "Set memory encryption object to use"); =20 - object_class_property_add_str(oc, "memory-backend", - machine_get_memdev, machine_set_memdev); object_class_property_set_description(oc, "memory-backend", "Set RAM backend" "Valid value is ID of hostmem ba= sed backend"); @@ -920,13 +799,6 @@ static void machine_finalize(Object *obj) { MachineState *ms =3D MACHINE(obj); =20 - g_free(ms->kernel_filename); - g_free(ms->initrd_filename); - g_free(ms->kernel_cmdline); - g_free(ms->dtb); - g_free(ms->dumpdtb); - g_free(ms->dt_compatible); - g_free(ms->firmware); g_free(ms->device_memory); g_free(ms->nvdimms_state); g_free(ms->numa_state); --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604010238; cv=none; d=zohomail.com; s=zohoarc; b=AY8OK5WwMZefhe1NSPKRHtQckXG9RoGPu9awtrQy/ULrPv6fSvlxykS0ijJ7jHdzzoHaTfsM3xP/+QfcCEl/0lVBwMoAGMgBg7AT9RtwVPJ9jFuhFLxzPLhPlUnhZ9kL4d0ci1onHLN82fpBEbYbGiQunXtnR+c+z+8t7YHyXLg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604010238; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=WaGICVKFJXVkLncju1zY88FyPaqJBQvQuxC4WR7cjZU=; b=NBrqSPiMXlrcatYdKQu9AHq5ErqpezpvJ5sY+Lo6UXzzcrY3I4wXNOnlHw5m6xWciWLNgRtvTcsjl9cguEfusiVwf73QtUstgQ6hjVyBlwzI3jsirne7k7ctPiNdClipzVS8uMRnsGKLSK71sNo+gVBMjN7EDulKFK00ZAHLnSA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604010238085679.8923353327704; Thu, 29 Oct 2020 15:23:58 -0700 (PDT) Received: from localhost ([::1]:34902 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYGKq-0005lQ-QR for importer@patchew.org; Thu, 29 Oct 2020 18:23:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42982) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG1n-0003xR-FL for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:04:19 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:20733) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG1d-0006g0-VP for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:04:13 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-511-iSgGScHrNdaOptsD6ZFhyA-1; Thu, 29 Oct 2020 18:04:03 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 3C8D49CC01 for ; Thu, 29 Oct 2020 22:04:02 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id DF53260C17; Thu, 29 Oct 2020 22:04:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604009045; 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=WaGICVKFJXVkLncju1zY88FyPaqJBQvQuxC4WR7cjZU=; b=AWrE54+s1PNjAn3i6g1fSQDRBu5JEv/RBsoYliPZLX5wRiCTic8z85qoqP52rXMuDG7M07 OhnDJ789EaaqjE362b6eReUNdE08ojzivgixHIiI4DotgDUTGTsJpcHbs1KfkWVFIBlXFp b1aHVduvY1ViaLu24YEp2uLLnx0CM0o= X-MC-Unique: iSgGScHrNdaOptsD6ZFhyA-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 35/36] machine: Use DEFINE_PROP_BOOL for boolean properties Date: Thu, 29 Oct 2020 18:02:45 -0400 Message-Id: <20201029220246.472693-36-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable 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=216.205.24.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 00:47:54 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Daniel P. Berrange" , John Snow , Markus Armbruster , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Unfortunately, the "usb" property is not trivial because it actually represents a pair of booleans. It probably should be replaced by a OnOffAuto property instead. Signed-off-by: Eduardo Habkost --- hw/core/machine.c | 77 +++-------------------------------------------- 1 file changed, 5 insertions(+), 72 deletions(-) diff --git a/hw/core/machine.c b/hw/core/machine.c index 97e102911a..e62097526a 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -236,34 +236,6 @@ static void machine_set_phandle_start(Object *obj, Vis= itor *v, ms->phandle_start =3D value; } =20 -static bool machine_get_dump_guest_core(Object *obj, Error **errp) -{ - MachineState *ms =3D MACHINE(obj); - - return ms->dump_guest_core; -} - -static void machine_set_dump_guest_core(Object *obj, bool value, Error **e= rrp) -{ - MachineState *ms =3D MACHINE(obj); - - ms->dump_guest_core =3D value; -} - -static bool machine_get_mem_merge(Object *obj, Error **errp) -{ - MachineState *ms =3D MACHINE(obj); - - return ms->mem_merge; -} - -static void machine_set_mem_merge(Object *obj, bool value, Error **errp) -{ - MachineState *ms =3D MACHINE(obj); - - ms->mem_merge =3D value; -} - static Property machine_props[] =3D { DEFINE_PROP_STRING("kernel", MachineState, kernel_filename), DEFINE_PROP_STRING("initrd", MachineState, initrd_filename), @@ -273,6 +245,10 @@ static Property machine_props[] =3D { DEFINE_PROP_STRING("dt-compatible", MachineState, dt_compatible), DEFINE_PROP_STRING("firmware", MachineState, firmware), DEFINE_PROP_STRING("memory-backend", MachineState, ram_memdev_id), + DEFINE_PROP_BOOL("dump-guest-core", MachineState, dump_guest_core, tru= e), + DEFINE_PROP_BOOL("mem-merge", MachineState, mem_merge, true), + DEFINE_PROP_BOOL("graphics", MachineState, enable_graphics, true), + DEFINE_PROP_BOOL("suppress-vmdesc", MachineState, suppress_vmdesc, fal= se), DEFINE_PROP_END_OF_LIST(), }; =20 @@ -291,34 +267,6 @@ static void machine_set_usb(Object *obj, bool value, E= rror **errp) ms->usb_disabled =3D !value; } =20 -static bool machine_get_graphics(Object *obj, Error **errp) -{ - MachineState *ms =3D MACHINE(obj); - - return ms->enable_graphics; -} - -static void machine_set_graphics(Object *obj, bool value, Error **errp) -{ - MachineState *ms =3D MACHINE(obj); - - ms->enable_graphics =3D value; -} - -static void machine_set_suppress_vmdesc(Object *obj, bool value, Error **e= rrp) -{ - MachineState *ms =3D MACHINE(obj); - - ms->suppress_vmdesc =3D value; -} - -static bool machine_get_suppress_vmdesc(Object *obj, Error **errp) -{ - MachineState *ms =3D MACHINE(obj); - - return ms->suppress_vmdesc; -} - static char *machine_get_memory_encryption(Object *obj, Error **errp) { MachineState *ms =3D MACHINE(obj); @@ -339,7 +287,7 @@ static void machine_set_memory_encryption(Object *obj, = const char *value, * so there's no point in it trying to merge areas. */ if (value) { - machine_set_mem_merge(obj, false, errp); + ms->mem_merge =3D false; } } =20 @@ -692,13 +640,8 @@ static void machine_class_init(ObjectClass *oc, void *= data) object_class_property_set_description(oc, "dt-compatible", "Overrides the \"compatible\" property of the dt root node"); =20 - object_class_property_add_bool(oc, "dump-guest-core", - machine_get_dump_guest_core, machine_set_dump_guest_core); object_class_property_set_description(oc, "dump-guest-core", "Include guest memory in a core dump"); - - object_class_property_add_bool(oc, "mem-merge", - machine_get_mem_merge, machine_set_mem_merge); object_class_property_set_description(oc, "mem-merge", "Enable/disable memory merge support"); =20 @@ -707,16 +650,10 @@ static void machine_class_init(ObjectClass *oc, void = *data) object_class_property_set_description(oc, "usb", "Set on/off to enable/disable usb"); =20 - object_class_property_add_bool(oc, "graphics", - machine_get_graphics, machine_set_graphics); object_class_property_set_description(oc, "graphics", "Set on/off to enable/disable graphics emulation"); - object_class_property_set_description(oc, "firmware", "Firmware image"); - - object_class_property_add_bool(oc, "suppress-vmdesc", - machine_get_suppress_vmdesc, machine_set_suppress_vmdesc); object_class_property_set_description(oc, "suppress-vmdesc", "Set on to disable self-describing migration"); =20 @@ -751,10 +688,6 @@ static void machine_initfn(Object *obj) MachineState *ms =3D MACHINE(obj); MachineClass *mc =3D MACHINE_GET_CLASS(obj); =20 - ms->dump_guest_core =3D true; - ms->mem_merge =3D true; - ms->enable_graphics =3D true; - if (mc->nvdimm_supported) { Object *obj =3D OBJECT(ms); =20 --=20 2.28.0 From nobody Sat May 18 03:36:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604010629; cv=none; d=zohomail.com; s=zohoarc; b=CiZANnCa8Krasl7aTFq/4M0NbS68o4NiaHvD8pGIOJlw8F0iWQNSvQhAFq5QwMokiuq/djAEwJOsG8fdzqD/kIbeLRKhwkR5yO0zar1kleMyKNWPR4cZUiB6F573Kk0W6wT1GK2ul297+VF3u0vTdkOlR6fJnzbP5bORjy9wR6A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604010629; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=oEYbP5Fufv/2Pc0hBcb52f+uJ8RaCQiISEAH9HcQPW4=; b=jJfffJlQ8rN4e2BhWFAyzXXKo8+wzId/CgTzmIKto4W7BdNiupDh07g9U4NgNInittxexPVdxmt2s1soGepgBV3/zoUl7Cp/ORlirjVD4b9Dhl3YfGlUUyDvgR6KazxCH+8BzcyUmyRPT0+/vWg+aBAyqedHSAGAGj62FGoEnpg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604010629750859.3761588237157; Thu, 29 Oct 2020 15:30:29 -0700 (PDT) Received: from localhost ([::1]:51126 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYGRA-00048L-7i for importer@patchew.org; Thu, 29 Oct 2020 18:30:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43002) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYG1x-0003yQ-61 for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:04:25 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:24640) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kYG1f-0006gE-6Z for qemu-devel@nongnu.org; Thu, 29 Oct 2020 18:04:17 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-171-7n55JuXOMGacp3gh8NUOdQ-1; Thu, 29 Oct 2020 18:04:04 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 51BF085C706 for ; Thu, 29 Oct 2020 22:04:03 +0000 (UTC) Received: from localhost (ovpn-114-68.rdu2.redhat.com [10.10.114.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id 123E26EF68; Thu, 29 Oct 2020 22:04:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604009046; 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=oEYbP5Fufv/2Pc0hBcb52f+uJ8RaCQiISEAH9HcQPW4=; b=JEVWJE9+fgRjAdlNZrBruOGap6+vwlOnxLolgvebnAKYj0aHxZiRsXlrrWBN1hQL7UJVoK WF+H9BOGpGwAH1D39434BUxJlH6ZpBFbqASk975uoIbjTcidvIN8m7cVFQJHchp0LX7ah7 4ZymazMvJCYS0s7VED/dNJkxbzovK38= X-MC-Unique: 7n55JuXOMGacp3gh8NUOdQ-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 36/36] qom: Include static property API reference in documentation Date: Thu, 29 Oct 2020 18:02:46 -0400 Message-Id: <20201029220246.472693-37-ehabkost@redhat.com> In-Reply-To: <20201029220246.472693-1-ehabkost@redhat.com> References: <20201029220246.472693-1-ehabkost@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ehabkost@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable 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=216.205.24.124; envelope-from=ehabkost@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 00:47:54 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Daniel P. Berrange" , John Snow , Markus Armbruster , Igor Mammedov , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Add new doc comments and reformat the existing ones, and include the static-properties.h API reference in docs/devel/qom.rst. Signed-off-by: Eduardo Habkost --- docs/devel/qom.rst | 6 ++ include/qom/static-property.h | 154 ++++++++++++++++++++++++++++++++-- 2 files changed, 151 insertions(+), 9 deletions(-) diff --git a/docs/devel/qom.rst b/docs/devel/qom.rst index 42d0dc4f4d..0989b4e690 100644 --- a/docs/devel/qom.rst +++ b/docs/devel/qom.rst @@ -379,3 +379,9 @@ API Reference ------------- =20 .. kernel-doc:: include/qom/object.h + + +Static Property API Reference +----------------------------- + +.. kernel-doc:: include/qom/static-property.h diff --git a/include/qom/static-property.h b/include/qom/static-property.h index 779918c947..8339700818 100644 --- a/include/qom/static-property.h +++ b/include/qom/static-property.h @@ -8,20 +8,31 @@ #include "qapi/util.h" =20 /** - * Property: - * @set_default: true if the default value should be set from @defval, - * in which case @info->set_default_value must not be NULL - * (if false then no default value is set by the property system - * and the field retains whatever value it was given by instance_init). - * @defval: default value for the property. This is used only if @set_defa= ult - * is true. + * struct Property: Definition of a static Property + * + * #Property structs should be always initialized using the + * ``DEFINE_PROP`` family of macros. */ struct Property { + /* private: */ const char *name; const PropertyInfo *info; ptrdiff_t offset; uint8_t bitnr; + /** + * @set_default: true if the default value should be set + * from @defval, in which case + * @info->set_default_value must not be NULL + * (if false then no default value is set by + * the property system and the field retains + * whatever value it was given by + * instance_init). + */ bool set_default; + /** + * @defval: default value for the property. This is used only + * if @set_default is true. + */ union { int64_t i; uint64_t u; @@ -110,6 +121,14 @@ extern const PropertyInfo prop_info_link; #define DEFINE_PROP_SIGNED_NODEFAULT(_name, _state, _field, _prop, _type) \ DEFINE_PROP(_name, _state, _field, _prop, _type) =20 +/** + * DEFINE_PROP_BIT: Define bit property in uint32_t field + * @_name: name of the property + * @_state: name of the object state structure type + * @_field: name of ``uint32_t`` field in @_state + * @_bit: bit offset in @_field + * @_defval: default value for bit + */ #define DEFINE_PROP_BIT(_name, _state, _field, _bit, _defval) \ DEFINE_PROP(_name, _state, _field, prop_info_bit, uint32_t, \ .bitnr =3D (_bit), \ @@ -124,12 +143,27 @@ extern const PropertyInfo prop_info_link; #define DEFINE_PROP_UNSIGNED_NODEFAULT(_name, _state, _field, _prop, _type= ) \ DEFINE_PROP(_name, _state, _field, _prop, _type) =20 +/** + * DEFINE_PROP_BIT64: Define bit property in uint64_t field + * @_name: name of the property + * @_state: name of the object state structure type + * @_field: name of ``uint64_t`` field in @_state + * @_bit: bit offset in @_field + * @_defval: default value for bit + */ #define DEFINE_PROP_BIT64(_name, _state, _field, _bit, _defval) \ DEFINE_PROP(_name, _state, _field, prop_info_bit64, uint64_t, \ .bitnr =3D (_bit), \ .set_default =3D true, \ .defval.u =3D (bool)_defval) =20 +/** + * DEFINE_PROP_BOOL: + * @_name: name of the property + * @_state: name of the object state structure type + * @_field: name of ``bool`` field in @_state + * @_defval: default value of property + */ #define DEFINE_PROP_BOOL(_name, _state, _field, _defval) \ DEFINE_PROP(_name, _state, _field, prop_info_bool, bool, \ .set_default =3D true, \ @@ -142,9 +176,10 @@ extern const PropertyInfo prop_info_link; * @_name: name of the array * @_state: name of the device state structure type * @_field: uint32_t field in @_state to hold the array length - * @_arrayfield: field in @_state (of type '@_arraytype *') which + * @_arrayfield: field in @_state (of type ``_arraytype *``) which * will point to the array - * @_arrayprop: PropertyInfo defining what property the array elements have + * @_arrayprop: #PropertyInfo variable defining property type of + * array elements * @_arraytype: C type of the array elements * * Define device properties for a variable-length array _name. A @@ -171,36 +206,137 @@ extern const PropertyInfo prop_info_link; .arrayfieldsize =3D sizeof(_arraytype), \ .arrayoffset =3D offsetof(_state, _arrayfield)) =20 +/** + * DEFINE_PROP_LINK: Define object link property + * @_name: name of the property + * @_state: name of the object state structure type + * @_field: name of field in @_state holding the property value + * @_type: QOM type name of link target + * @_ptr_type: Type of field @_field in struct @_state + */ #define DEFINE_PROP_LINK(_name, _state, _field, _type, _ptr_type) \ DEFINE_PROP(_name, _state, _field, prop_info_link, _ptr_type, \ .link_type =3D _type) =20 +/** + * DEFINE_PROP_UINT8: Define uint8 property + * @_n: name of the property + * @_s: name of the object state structure type + * @_f: name of ``uint8_t`` field in @_s + * @_d: default value of property + */ #define DEFINE_PROP_UINT8(_n, _s, _f, _d) \ DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, prop_info_uint8, uint8_t) +/** + * DEFINE_PROP_UINT16: Define uint16 property + * @_n: name of the property + * @_s: name of the object state structure type + * @_f: name of ``uint16_t`` field in @_s + * @_d: default value of property + */ #define DEFINE_PROP_UINT16(_n, _s, _f, _d) \ DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, prop_info_uint16, uint16_t) +/** + * DEFINE_PROP_UINT32: Define uint32 property + * @_n: name of the property + * @_s: name of the object state structure type + * @_f: name of ``uint32_t`` field in @_s + * @_d: default value of property + */ #define DEFINE_PROP_UINT32(_n, _s, _f, _d) \ DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, prop_info_uint32, uint32_t) +/** + * DEFINE_PROP_INT32: Define int32 property + * @_n: name of the property + * @_s: name of the object state structure type + * @_f: name of ``int32_t`` field in @_s + * @_d: default value of property + */ #define DEFINE_PROP_INT32(_n, _s, _f, _d) \ DEFINE_PROP_SIGNED(_n, _s, _f, _d, prop_info_int32, int32_t) +/** + * DEFINE_PROP_UINT64: Define uint64 property + * @_n: name of the property + * @_s: name of the object state structure type + * @_f: name of ``uint64_t`` field in @_s + * @_d: default value of property + */ #define DEFINE_PROP_UINT64(_n, _s, _f, _d) \ DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, prop_info_uint64, uint64_t) +/** + * DEFINE_PROP_INT64: Define int64 property + * @_n: name of the property + * @_s: name of the object state structure type + * @_f: name of ``int64_t`` field in @_s + * @_d: default value of property + */ #define DEFINE_PROP_INT64(_n, _s, _f, _d) \ DEFINE_PROP_SIGNED(_n, _s, _f, _d, prop_info_int64, int64_t) +/** + * DEFINE_PROP_SIZE: Define uint64 property + * @_n: name of the property + * @_s: name of the object state structure type + * @_f: name of ``uint64_t`` field in @_s + * @_d: default value of property + */ #define DEFINE_PROP_SIZE(_n, _s, _f, _d) \ DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, prop_info_size, uint64_t) +/** + * DEFINE_PROP_STRING: + * @_n: name of the property + * @_s: name of the object state structure type + * @_f: name of ``char *`` field in @_state + */ #define DEFINE_PROP_STRING(_n, _s, _f) \ DEFINE_PROP(_n, _s, _f, prop_info_string, char*) +/** + * DEFINE_PROP_ON_OFF_AUTO: Define OnOffAuto property + * @_n: name of the property + * @_s: name of the object state structure type + * @_f: name of ``OnOffAuto`` field in @_s + * @_d: default value of property + */ #define DEFINE_PROP_ON_OFF_AUTO(_n, _s, _f, _d) \ DEFINE_PROP_SIGNED(_n, _s, _f, _d, prop_info_on_off_auto, OnOffAuto) +/** + * DEFINE_PROP_SIZE32: Define uint32 property + * @_n: name of the property + * @_s: name of the object state structure type + * @_f: name of ``uint32_t`` field in @_s + * @_d: default value of property + */ #define DEFINE_PROP_SIZE32(_n, _s, _f, _d) \ DEFINE_PROP_UNSIGNED(_n, _s, _f, _d, prop_info_size32, uint32_t) +/** + * DEFINE_PROP_UUID: Define UUID property + * @_name: name of the property + * @_state: name of the object state structure type + * @_field: name of field in @_state holding the property value + * + * The @_f field in struct @_s must be of type ``QemuUUID``. + * The default value of the property will be "auto". + */ #define DEFINE_PROP_UUID(_name, _state, _field) \ DEFINE_PROP(_name, _state, _field, prop_info_uuid, QemuUUID, \ .set_default =3D true) +/** + * DEFINE_PROP_UUID_NODEFAULT: Define UUID property with no default + * @_name: name of the property + * @_state: name of the object state structure type + * @_field: name of field in @_state holding the property value + * + * The @_f field in struct @_s must be of type ``QemuUUID``. + * No default value will be set for the property. + */ #define DEFINE_PROP_UUID_NODEFAULT(_name, _state, _field) \ DEFINE_PROP(_name, _state, _field, prop_info_uuid, QemuUUID) =20 +/** + * DEFINE_PROP_END_OF_LIST: Mark end of property array + * + * This must be the last entry in #Property arrays when calling + * object_class_add_static_props(). + */ #define DEFINE_PROP_END_OF_LIST() \ {} =20 --=20 2.28.0