From nobody Sun Nov 16 23:03:59 2025 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=1602259958; cv=none; d=zohomail.com; s=zohoarc; b=Gef6uLavVDClN4A7blA4dnz3JG2vVqrcQM2KG7vx4s0X0zTr+BrMyCfYpUQPQ4jwS4dOsI2fx++sWOHcw3rWiOoecRBSi5zKXRDEm3OWTFgUHdSRD9LEvjvBEsewRtqjU7npBJcwM7o8axNY73se8n9roBodahaMqr42uvxzsIc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602259958; 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=4X/fvZ/kZi/UkfY7ztpZ4N45ePgMV+T6iAaFy/ZC2/A=; b=BwXd043Mq/oMminngorGJnHfZ8UhGm108JzBWhrPZAnoDfSMhvePQeywCp9XKODDnZKVuUj/KJgCOmDr87Dtn7z6XBTM8lqCQwF6vhzolS+TKWaT6HQfFbtDZuqLBtaFcj12F2lEm8yNal53RtWyKPLtJZKkhb7PRgZEnGkPd68= 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 1602259958981812.9241269208917; Fri, 9 Oct 2020 09:12:38 -0700 (PDT) Received: from localhost ([::1]:46588 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kQv0X-0007UA-Hw for importer@patchew.org; Fri, 09 Oct 2020 12:12:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58958) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kQupt-0003go-8O for qemu-devel@nongnu.org; Fri, 09 Oct 2020 12:01:38 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:24082) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kQupp-000171-W9 for qemu-devel@nongnu.org; Fri, 09 Oct 2020 12:01:36 -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-286-ATYSDo_-MtaGmm9dTltc7A-1; Fri, 09 Oct 2020 12:01:31 -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 8418818A8233 for ; Fri, 9 Oct 2020 16:01:30 +0000 (UTC) Received: from localhost (ovpn-119-102.rdu2.redhat.com [10.10.119.102]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4982F5C1C7; Fri, 9 Oct 2020 16:01:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1602259293; 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=4X/fvZ/kZi/UkfY7ztpZ4N45ePgMV+T6iAaFy/ZC2/A=; b=GrofQy1rMjICp3oFviIcjirhDlWiPrVWEzSXTuDnQfZylH6PemH/hhZx0qyl7dkPx3sy0f zkqCPgxtvz4lZBtt2qAYkmhoa5qgxTQWkcvVIJKciACd7bzrhOHVhTSE2aVNkc68+vnU/b /l7J+5bksZl6oGgIw/8gyrWAviNdbj0= X-MC-Unique: ATYSDo_-MtaGmm9dTltc7A-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 01/12] qom: Helpers for pointer properties Date: Fri, 9 Oct 2020 12:01:11 -0400 Message-Id: <20201009160122.1662082-2-ehabkost@redhat.com> In-Reply-To: <20201009160122.1662082-1-ehabkost@redhat.com> References: <20201009160122.1662082-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=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/09 02:34:40 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: Kevin Wolf , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Markus Armbruster , Paolo Bonzini , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , John Snow Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Reduce some code duplication and make future refactoring easier, by adding object_property_add_uint_ptr() and object_class_property_add_uint_ptr() helpers. Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- qom/object.c | 168 ++++++++++++++++++++------------------------------- 1 file changed, 64 insertions(+), 104 deletions(-) diff --git a/qom/object.c b/qom/object.c index 1065355233..313d2f9834 100644 --- a/qom/object.c +++ b/qom/object.c @@ -2529,24 +2529,44 @@ static void property_set_uint64_ptr(Object *obj, Vi= sitor *v, const char *name, *field =3D value; } =20 +static ObjectProperty * +object_property_add_uint_ptr(Object *obj, const char *name, + const char *type, + ObjectPropertyAccessor getter, + ObjectPropertyAccessor setter, + ObjectPropertyFlags flags, + void *ptr) +{ + return object_property_add(obj, name, type, + (flags & OBJ_PROP_FLAG_READ) ? getter : NUL= L, + (flags & OBJ_PROP_FLAG_WRITE) ? setter : NU= LL, + NULL, ptr); +} + +static ObjectProperty * +object_class_property_add_uint_ptr(ObjectClass *oc, const char *name, + const char *type, + ObjectPropertyAccessor getter, + ObjectPropertyAccessor setter, + ObjectPropertyFlags flags, + void *ptr) +{ + return object_class_property_add(oc, name, type, + (flags & OBJ_PROP_FLAG_READ) ? getter= : NULL, + (flags & OBJ_PROP_FLAG_WRITE) ? sette= r : NULL, + NULL, ptr); +} + ObjectProperty * object_property_add_uint8_ptr(Object *obj, const char *name, const uint8_t *v, ObjectPropertyFlags flags) { - ObjectPropertyAccessor *getter =3D NULL; - ObjectPropertyAccessor *setter =3D NULL; - - if ((flags & OBJ_PROP_FLAG_READ) =3D=3D OBJ_PROP_FLAG_READ) { - getter =3D property_get_uint8_ptr; - } - - if ((flags & OBJ_PROP_FLAG_WRITE) =3D=3D OBJ_PROP_FLAG_WRITE) { - setter =3D property_set_uint8_ptr; - } - - return object_property_add(obj, name, "uint8", - getter, setter, NULL, (void *)v); + return object_property_add_uint_ptr(obj, name, "uint8", + property_get_uint8_ptr, + property_set_uint8_ptr, + flags, + (void *)v); } =20 ObjectProperty * @@ -2554,19 +2574,10 @@ object_class_property_add_uint8_ptr(ObjectClass *kl= ass, const char *name, const uint8_t *v, ObjectPropertyFlags flags) { - ObjectPropertyAccessor *getter =3D NULL; - ObjectPropertyAccessor *setter =3D NULL; - - if ((flags & OBJ_PROP_FLAG_READ) =3D=3D OBJ_PROP_FLAG_READ) { - getter =3D property_get_uint8_ptr; - } - - if ((flags & OBJ_PROP_FLAG_WRITE) =3D=3D OBJ_PROP_FLAG_WRITE) { - setter =3D property_set_uint8_ptr; - } - - return object_class_property_add(klass, name, "uint8", - getter, setter, NULL, (void *)v); + return object_class_property_add_uint_ptr(klass, name, "uint8", + property_get_uint8_ptr, + property_set_uint8_ptr, + flags, (void *)v); } =20 ObjectProperty * @@ -2574,19 +2585,11 @@ object_property_add_uint16_ptr(Object *obj, const c= har *name, const uint16_t *v, ObjectPropertyFlags flags) { - ObjectPropertyAccessor *getter =3D NULL; - ObjectPropertyAccessor *setter =3D NULL; - - if ((flags & OBJ_PROP_FLAG_READ) =3D=3D OBJ_PROP_FLAG_READ) { - getter =3D property_get_uint16_ptr; - } - - if ((flags & OBJ_PROP_FLAG_WRITE) =3D=3D OBJ_PROP_FLAG_WRITE) { - setter =3D property_set_uint16_ptr; - } - - return object_property_add(obj, name, "uint16", - getter, setter, NULL, (void *)v); + return object_property_add_uint_ptr(obj, name, "uint16", + property_get_uint16_ptr, + property_set_uint16_ptr, + flags, + (void *)v); } =20 ObjectProperty * @@ -2594,19 +2597,10 @@ object_class_property_add_uint16_ptr(ObjectClass *k= lass, const char *name, const uint16_t *v, ObjectPropertyFlags flags) { - ObjectPropertyAccessor *getter =3D NULL; - ObjectPropertyAccessor *setter =3D NULL; - - if ((flags & OBJ_PROP_FLAG_READ) =3D=3D OBJ_PROP_FLAG_READ) { - getter =3D property_get_uint16_ptr; - } - - if ((flags & OBJ_PROP_FLAG_WRITE) =3D=3D OBJ_PROP_FLAG_WRITE) { - setter =3D property_set_uint16_ptr; - } - - return object_class_property_add(klass, name, "uint16", - getter, setter, NULL, (void *)v); + return object_class_property_add_uint_ptr(klass, name, "uint16", + property_get_uint16_ptr, + property_set_uint16_ptr, + flags, (void *)v); } =20 ObjectProperty * @@ -2614,19 +2608,11 @@ object_property_add_uint32_ptr(Object *obj, const c= har *name, const uint32_t *v, ObjectPropertyFlags flags) { - ObjectPropertyAccessor *getter =3D NULL; - ObjectPropertyAccessor *setter =3D NULL; - - if ((flags & OBJ_PROP_FLAG_READ) =3D=3D OBJ_PROP_FLAG_READ) { - getter =3D property_get_uint32_ptr; - } - - if ((flags & OBJ_PROP_FLAG_WRITE) =3D=3D OBJ_PROP_FLAG_WRITE) { - setter =3D property_set_uint32_ptr; - } - - return object_property_add(obj, name, "uint32", - getter, setter, NULL, (void *)v); + return object_property_add_uint_ptr(obj, name, "uint32", + property_get_uint32_ptr, + property_set_uint32_ptr, + flags, + (void *)v); } =20 ObjectProperty * @@ -2634,19 +2620,10 @@ object_class_property_add_uint32_ptr(ObjectClass *k= lass, const char *name, const uint32_t *v, ObjectPropertyFlags flags) { - ObjectPropertyAccessor *getter =3D NULL; - ObjectPropertyAccessor *setter =3D NULL; - - if ((flags & OBJ_PROP_FLAG_READ) =3D=3D OBJ_PROP_FLAG_READ) { - getter =3D property_get_uint32_ptr; - } - - if ((flags & OBJ_PROP_FLAG_WRITE) =3D=3D OBJ_PROP_FLAG_WRITE) { - setter =3D property_set_uint32_ptr; - } - - return object_class_property_add(klass, name, "uint32", - getter, setter, NULL, (void *)v); + return object_class_property_add_uint_ptr(klass, name, "uint32", + property_get_uint32_ptr, + property_set_uint32_ptr, + flags, (void *)v); } =20 ObjectProperty * @@ -2654,19 +2631,11 @@ object_property_add_uint64_ptr(Object *obj, const c= har *name, const uint64_t *v, ObjectPropertyFlags flags) { - ObjectPropertyAccessor *getter =3D NULL; - ObjectPropertyAccessor *setter =3D NULL; - - if ((flags & OBJ_PROP_FLAG_READ) =3D=3D OBJ_PROP_FLAG_READ) { - getter =3D property_get_uint64_ptr; - } - - if ((flags & OBJ_PROP_FLAG_WRITE) =3D=3D OBJ_PROP_FLAG_WRITE) { - setter =3D property_set_uint64_ptr; - } - - return object_property_add(obj, name, "uint64", - getter, setter, NULL, (void *)v); + return object_property_add_uint_ptr(obj, name, "uint64", + property_get_uint64_ptr, + property_set_uint64_ptr, + flags, + (void *)v); } =20 ObjectProperty * @@ -2674,19 +2643,10 @@ object_class_property_add_uint64_ptr(ObjectClass *k= lass, const char *name, const uint64_t *v, ObjectPropertyFlags flags) { - ObjectPropertyAccessor *getter =3D NULL; - ObjectPropertyAccessor *setter =3D NULL; - - if ((flags & OBJ_PROP_FLAG_READ) =3D=3D OBJ_PROP_FLAG_READ) { - getter =3D property_get_uint64_ptr; - } - - if ((flags & OBJ_PROP_FLAG_WRITE) =3D=3D OBJ_PROP_FLAG_WRITE) { - setter =3D property_set_uint64_ptr; - } - - return object_class_property_add(klass, name, "uint64", - getter, setter, NULL, (void *)v); + return object_class_property_add_uint_ptr(klass, name, "uint64", + property_get_uint64_ptr, + property_set_uint64_ptr, + flags, (void *)v); } =20 typedef struct { --=20 2.26.2 From nobody Sun Nov 16 23:03:59 2025 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=1602260002; cv=none; d=zohomail.com; s=zohoarc; b=QaVc0Sv/IHJHPJo2Vc64sEN61GXKrkM1jM1XOvMAhfM7CXEoehoZ4wKueO+BCvueeYm/vBVuwkFmqjOIBwFVBwE6ko7Md10fMmci4TPrLXS0jT3x2eD0d6tTifgE3Ch4CKjF4G9kTqJYotYVs8v/f9pCZ1YP4CXR5gDSKrQZMDs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602260002; 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=j8o0cMvoB1NfkCAmxv1Vhgzlg9+OlUbpZQtUOLLhGZY=; b=Sv3OhGCcWOurDxJ8uCZLHL7wreEbkaeQl+kksFZlE1XDby+eBLurxnr1Ix2nWapQaWAmxsubSCaaZ7qz+ACVFJaYVEjWIPrhpjzsGIRk3MkGghKPT1D4rUJh2H0AzxbppINAwg8gSNTJ9KPQVNH9IENjfMFlCuFrW71/EorzwQ0= 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 16022600028741.6275347356529437; Fri, 9 Oct 2020 09:13:22 -0700 (PDT) Received: from localhost ([::1]:48408 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kQv1D-0008EF-JU for importer@patchew.org; Fri, 09 Oct 2020 12:13:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58988) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kQupx-0003ig-39 for qemu-devel@nongnu.org; Fri, 09 Oct 2020 12:01:41 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:38788) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kQupu-00018S-R7 for qemu-devel@nongnu.org; Fri, 09 Oct 2020 12:01:40 -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-132-n1mRpz7cOqmYpS_feHFrNg-1; Fri, 09 Oct 2020 12:01:36 -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 40836803F6A for ; Fri, 9 Oct 2020 16:01:35 +0000 (UTC) Received: from localhost (ovpn-119-102.rdu2.redhat.com [10.10.119.102]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8575D55771; Fri, 9 Oct 2020 16:01:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1602259297; 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=j8o0cMvoB1NfkCAmxv1Vhgzlg9+OlUbpZQtUOLLhGZY=; b=dDlJTjKbA0Nx7xFDDOHUhCk9qJedwioSoSoIwOkbdts0mn1Z5UCg1q+udx3b8k77wHehES 1c1BlFC9p9GEUFktvT8WwBIc1ef+H1Cs9g060RueZcIc07wvXRNEKfRbfHMJUVaku9J9xl Jw1tbg7XVeNeefFsDp/+lXGSXMUOZeM= X-MC-Unique: n1mRpz7cOqmYpS_feHFrNg-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 02/12] qom: Introduce PointerProperty struct Date: Fri, 9 Oct 2020 12:01:12 -0400 Message-Id: <20201009160122.1662082-3-ehabkost@redhat.com> In-Reply-To: <20201009160122.1662082-1-ehabkost@redhat.com> References: <20201009160122.1662082-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=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/09 02:34:40 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: Kevin Wolf , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Markus Armbruster , Paolo Bonzini , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , John Snow Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) PointerProperty will hold additional info about pointer properties. It will allow us to implement more complex logic in pointer property getters and setters. Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- qom/object.c | 46 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 36 insertions(+), 10 deletions(-) diff --git a/qom/object.c b/qom/object.c index 313d2f9834..17692ed5c3 100644 --- a/qom/object.c +++ b/qom/object.c @@ -2449,17 +2449,30 @@ static char *object_get_type(Object *obj, Error **e= rrp) return g_strdup(object_get_typename(obj)); } =20 +typedef struct { + /* Pointer to property value */ + void *ptr; +} PointerProperty; + +static void *pointer_property_get_ptr(Object *obj, PointerProperty *prop) +{ + return prop->ptr; +} + static void property_get_uint8_ptr(Object *obj, Visitor *v, const char *na= me, void *opaque, Error **errp) { - uint8_t value =3D *(uint8_t *)opaque; + PointerProperty *prop =3D opaque; + uint8_t *field =3D pointer_property_get_ptr(obj, prop); + uint8_t value =3D *field; visit_type_uint8(v, name, &value, errp); } =20 static void property_set_uint8_ptr(Object *obj, Visitor *v, const char *na= me, void *opaque, Error **errp) { - uint8_t *field =3D opaque; + PointerProperty *prop =3D opaque; + uint8_t *field =3D pointer_property_get_ptr(obj, prop); uint8_t value; =20 if (!visit_type_uint8(v, name, &value, errp)) { @@ -2472,14 +2485,17 @@ static void property_set_uint8_ptr(Object *obj, Vis= itor *v, const char *name, static void property_get_uint16_ptr(Object *obj, Visitor *v, const char *n= ame, void *opaque, Error **errp) { - uint16_t value =3D *(uint16_t *)opaque; + PointerProperty *prop =3D opaque; + uint16_t *field =3D pointer_property_get_ptr(obj, prop); + uint16_t value =3D *field; visit_type_uint16(v, name, &value, errp); } =20 static void property_set_uint16_ptr(Object *obj, Visitor *v, const char *n= ame, void *opaque, Error **errp) { - uint16_t *field =3D opaque; + PointerProperty *prop =3D opaque; + uint16_t *field =3D pointer_property_get_ptr(obj, prop); uint16_t value; =20 if (!visit_type_uint16(v, name, &value, errp)) { @@ -2492,14 +2508,17 @@ static void property_set_uint16_ptr(Object *obj, Vi= sitor *v, const char *name, static void property_get_uint32_ptr(Object *obj, Visitor *v, const char *n= ame, void *opaque, Error **errp) { - uint32_t value =3D *(uint32_t *)opaque; + PointerProperty *prop =3D opaque; + uint32_t *field =3D pointer_property_get_ptr(obj, prop); + uint32_t value =3D *field; visit_type_uint32(v, name, &value, errp); } =20 static void property_set_uint32_ptr(Object *obj, Visitor *v, const char *n= ame, void *opaque, Error **errp) { - uint32_t *field =3D opaque; + PointerProperty *prop =3D opaque; + uint32_t *field =3D pointer_property_get_ptr(obj, prop); uint32_t value; =20 if (!visit_type_uint32(v, name, &value, errp)) { @@ -2512,14 +2531,17 @@ static void property_set_uint32_ptr(Object *obj, Vi= sitor *v, const char *name, static void property_get_uint64_ptr(Object *obj, Visitor *v, const char *n= ame, void *opaque, Error **errp) { - uint64_t value =3D *(uint64_t *)opaque; + PointerProperty *prop =3D opaque; + uint64_t *field =3D pointer_property_get_ptr(obj, prop); + uint64_t value =3D *field; visit_type_uint64(v, name, &value, errp); } =20 static void property_set_uint64_ptr(Object *obj, Visitor *v, const char *n= ame, void *opaque, Error **errp) { - uint64_t *field =3D opaque; + PointerProperty *prop =3D opaque; + uint64_t *field =3D pointer_property_get_ptr(obj, prop); uint64_t value; =20 if (!visit_type_uint64(v, name, &value, errp)) { @@ -2537,10 +2559,12 @@ object_property_add_uint_ptr(Object *obj, const cha= r *name, ObjectPropertyFlags flags, void *ptr) { + PointerProperty *prop =3D g_new0(PointerProperty, 1); + prop->ptr =3D ptr; return object_property_add(obj, name, type, (flags & OBJ_PROP_FLAG_READ) ? getter : NUL= L, (flags & OBJ_PROP_FLAG_WRITE) ? setter : NU= LL, - NULL, ptr); + NULL, (void *)prop); } =20 static ObjectProperty * @@ -2551,10 +2575,12 @@ object_class_property_add_uint_ptr(ObjectClass *oc,= const char *name, ObjectPropertyFlags flags, void *ptr) { + PointerProperty *prop =3D g_new0(PointerProperty, 1); + prop->ptr =3D ptr; return object_class_property_add(oc, name, type, (flags & OBJ_PROP_FLAG_READ) ? getter= : NULL, (flags & OBJ_PROP_FLAG_WRITE) ? sette= r : NULL, - NULL, ptr); + NULL, (void *)prop); } =20 ObjectProperty * --=20 2.26.2 From nobody Sun Nov 16 23:03:59 2025 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=1602260191; cv=none; d=zohomail.com; s=zohoarc; b=XU8ogXokW9NdY4c37u565VcM8XFbJU66Ufgd9NcGXW+nTHrTeowg+50AvA7I5BxxYPQ+x8NYeddBFy3mCwlLCrOeNUQtd9I+XG4os6yf/y33eAoxFz7z/T/QEJFval/dpXUpELvRnrdsZVMOGcYe7X9bg5CB+Z2I+3bYkcvtMTU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602260191; 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=+D4Qlu6faHWzWrvhTA7LnAXy7RbcEPbMekSs3yKkXRI=; b=aJmNDrUj4NibikGfk2OSp5Av6HBGE65Iz5nTEPr4FVugSLeuoTmnNPZo9/Iq/uVkcq9JN9H1AZyOH3ZlM40sja0rumZuDjkK50cMnTEclHc/aIdxrA0yGImeOz+SBaEa6hW/r/pu1hIK7BUrYdSmnHchf5zG6fPtAPTdasipwoU= 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 1602260191295151.30745053771125; Fri, 9 Oct 2020 09:16:31 -0700 (PDT) Received: from localhost ([::1]:56780 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kQv4H-0003Ju-No for importer@patchew.org; Fri, 09 Oct 2020 12:16:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59022) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kQupz-0003jz-0i for qemu-devel@nongnu.org; Fri, 09 Oct 2020 12:01:44 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:60883) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kQupw-00018W-5e for qemu-devel@nongnu.org; Fri, 09 Oct 2020 12:01:42 -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-200-AwNJIaxkOXa0qXn5HTcZUg-1; Fri, 09 Oct 2020 12:01:37 -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 89B00879519 for ; Fri, 9 Oct 2020 16:01:36 +0000 (UTC) Received: from localhost (ovpn-119-102.rdu2.redhat.com [10.10.119.102]) by smtp.corp.redhat.com (Postfix) with ESMTP id 43A3A6266E; Fri, 9 Oct 2020 16:01:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1602259299; 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=+D4Qlu6faHWzWrvhTA7LnAXy7RbcEPbMekSs3yKkXRI=; b=YeHUtGBumwAtdIcgcvm+6vq4uSfAaHBETjF8R9QDhUXNBNxQH8UybzUobHmvb0fJkoungv TUHLSzKKyT1W5bn5OzCPghvIwXuV7MzD+4cLcGY0mjxl1kqMZ0CxwRJYLk4Odyw1V31Kej evDk8KlPMJLV5IbyfnpZX2575k2FR/Y= X-MC-Unique: AwNJIaxkOXa0qXn5HTcZUg-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 03/12] qom: Make object_class_property_add_uint*_ptr() get offset Date: Fri, 9 Oct 2020 12:01:13 -0400 Message-Id: <20201009160122.1662082-4-ehabkost@redhat.com> In-Reply-To: <20201009160122.1662082-1-ehabkost@redhat.com> References: <20201009160122.1662082-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=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/09 02:34:40 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: Kevin Wolf , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Markus Armbruster , Paolo Bonzini , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , John Snow Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) The existing object_class_property_add_uint*_ptr() functions are not very useful, because they need a pointer to the property value, which can't really be provided before the object is created. Replace the pointer parameter in those functions with a `ptrdiff_t offset` parameter. Include a uint8 class property in check-qom-proplist unit tests, to ensure the feature is working. Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- include/qom/object.h | 8 ++++---- qom/object.c | 36 +++++++++++++++++++++++------------- tests/check-qom-proplist.c | 10 ++++++++-- 3 files changed, 35 insertions(+), 19 deletions(-) diff --git a/include/qom/object.h b/include/qom/object.h index d378f13a11..1634294e4f 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -1747,7 +1747,7 @@ ObjectProperty *object_property_add_uint8_ptr(Object = *obj, const char *name, =20 ObjectProperty *object_class_property_add_uint8_ptr(ObjectClass *klass, const char *name, - const uint8_t *v, + ptrdiff_t offset, ObjectPropertyFlags flags); =20 /** @@ -1768,7 +1768,7 @@ ObjectProperty *object_property_add_uint16_ptr(Object= *obj, const char *name, =20 ObjectProperty *object_class_property_add_uint16_ptr(ObjectClass *klass, const char *name, - const uint16_t *v, + ptrdiff_t offset, ObjectPropertyFlags flags); =20 /** @@ -1789,7 +1789,7 @@ ObjectProperty *object_property_add_uint32_ptr(Object= *obj, const char *name, =20 ObjectProperty *object_class_property_add_uint32_ptr(ObjectClass *klass, const char *name, - const uint32_t *v, + ptrdiff_t offset, ObjectPropertyFlags flags); =20 /** @@ -1810,7 +1810,7 @@ ObjectProperty *object_property_add_uint64_ptr(Object= *obj, const char *name, =20 ObjectProperty *object_class_property_add_uint64_ptr(ObjectClass *klass, const char *name, - const uint64_t *v, + ptrdiff_t offset, ObjectPropertyFlags flags); =20 /** diff --git a/qom/object.c b/qom/object.c index 17692ed5c3..bb32f5d3ad 100644 --- a/qom/object.c +++ b/qom/object.c @@ -2450,13 +2450,22 @@ static char *object_get_type(Object *obj, Error **e= rrp) } =20 typedef struct { - /* Pointer to property value */ - void *ptr; + bool is_offset; + union { + /* Pointer to property value. Valid if is_offset=3Dfalse */ + void *ptr; + /* Offset in Object struct. Valid if is_offset=3Dtrue */ + ptrdiff_t offset; + }; } PointerProperty; =20 static void *pointer_property_get_ptr(Object *obj, PointerProperty *prop) { - return prop->ptr; + if (prop->is_offset) { + return (void *)obj + prop->offset; + } else { + return prop->ptr; + } } =20 static void property_get_uint8_ptr(Object *obj, Visitor *v, const char *na= me, @@ -2573,10 +2582,11 @@ object_class_property_add_uint_ptr(ObjectClass *oc,= const char *name, ObjectPropertyAccessor getter, ObjectPropertyAccessor setter, ObjectPropertyFlags flags, - void *ptr) + ptrdiff_t offset) { PointerProperty *prop =3D g_new0(PointerProperty, 1); - prop->ptr =3D ptr; + prop->is_offset =3D true; + prop->offset =3D offset; return object_class_property_add(oc, name, type, (flags & OBJ_PROP_FLAG_READ) ? getter= : NULL, (flags & OBJ_PROP_FLAG_WRITE) ? sette= r : NULL, @@ -2597,13 +2607,13 @@ object_property_add_uint8_ptr(Object *obj, const ch= ar *name, =20 ObjectProperty * object_class_property_add_uint8_ptr(ObjectClass *klass, const char *name, - const uint8_t *v, + ptrdiff_t offset, ObjectPropertyFlags flags) { return object_class_property_add_uint_ptr(klass, name, "uint8", property_get_uint8_ptr, property_set_uint8_ptr, - flags, (void *)v); + flags, offset); } =20 ObjectProperty * @@ -2620,13 +2630,13 @@ object_property_add_uint16_ptr(Object *obj, const c= har *name, =20 ObjectProperty * object_class_property_add_uint16_ptr(ObjectClass *klass, const char *name, - const uint16_t *v, + ptrdiff_t offset, ObjectPropertyFlags flags) { return object_class_property_add_uint_ptr(klass, name, "uint16", property_get_uint16_ptr, property_set_uint16_ptr, - flags, (void *)v); + flags, offset); } =20 ObjectProperty * @@ -2643,13 +2653,13 @@ object_property_add_uint32_ptr(Object *obj, const c= har *name, =20 ObjectProperty * object_class_property_add_uint32_ptr(ObjectClass *klass, const char *name, - const uint32_t *v, + ptrdiff_t offset, ObjectPropertyFlags flags) { return object_class_property_add_uint_ptr(klass, name, "uint32", property_get_uint32_ptr, property_set_uint32_ptr, - flags, (void *)v); + flags, offset); } =20 ObjectProperty * @@ -2666,13 +2676,13 @@ object_property_add_uint64_ptr(Object *obj, const c= har *name, =20 ObjectProperty * object_class_property_add_uint64_ptr(ObjectClass *klass, const char *name, - const uint64_t *v, + ptrdiff_t offset, ObjectPropertyFlags flags) { return object_class_property_add_uint_ptr(klass, name, "uint64", property_get_uint64_ptr, property_set_uint64_ptr, - flags, (void *)v); + flags, offset); } =20 typedef struct { diff --git a/tests/check-qom-proplist.c b/tests/check-qom-proplist.c index 1b76581980..fba30c20b2 100644 --- a/tests/check-qom-proplist.c +++ b/tests/check-qom-proplist.c @@ -61,6 +61,7 @@ struct DummyObject { bool bv; DummyAnimal av; char *sv; + uint8_t u8v; }; =20 struct DummyObjectClass { @@ -141,6 +142,9 @@ static void dummy_class_init(ObjectClass *cls, void *da= ta) &dummy_animal_map, dummy_get_av, dummy_set_av); + object_class_property_add_uint8_ptr(cls, "u8v", + offsetof(DummyObject, u8v), + OBJ_PROP_FLAG_READWRITE); } =20 =20 @@ -385,12 +389,14 @@ static void test_dummy_createlist(void) "bv", "yes", "sv", "Hiss hiss hiss", "av", "platypus", + "u8v", "42", NULL)); =20 g_assert(err =3D=3D NULL); g_assert_cmpstr(dobj->sv, =3D=3D, "Hiss hiss hiss"); g_assert(dobj->bv =3D=3D true); g_assert(dobj->av =3D=3D DUMMY_PLATYPUS); + g_assert_cmpint(dobj->u8v, =3D=3D, 42); =20 g_assert(object_resolve_path_component(parent, "dummy0") =3D=3D OBJECT(dobj)); @@ -531,7 +537,7 @@ static void test_dummy_iterator(void) { const char *expected[] =3D { "type", /* inherited from TYPE_OBJECT */ - "sv", "av", /* class properties */ + "sv", "av", "u8v", /* class properties */ "bv"}; /* instance property */ Object *parent =3D object_get_objects_root(); DummyObject *dobj =3D DUMMY_OBJECT( @@ -552,7 +558,7 @@ static void test_dummy_iterator(void) =20 static void test_dummy_class_iterator(void) { - const char *expected[] =3D { "type", "av", "sv" }; + const char *expected[] =3D { "type", "av", "sv", "u8v" }; ObjectPropertyIterator iter; ObjectClass *klass =3D object_class_by_name(TYPE_DUMMY); =20 --=20 2.26.2 From nobody Sun Nov 16 23:03:59 2025 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=1602259540; cv=none; d=zohomail.com; s=zohoarc; b=njU9RqtWe0LV77O/Jyf6FXumrbrh4ViiS74UCYyjldHvV74/yI6LM1jiAh2UaIWGy2MY9i3AvQLM7XBkCtSBaomm44GgMPk3Coig9+wZoP3gEo+l/NIOAMRVfHgBzQOcwKwCT+Hma4Pj+xINrKFIpap9F17c+ZwVOGeZDj70hoM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602259540; 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=IZtbwbBnXHyx61GM0CmVgiZpiaLakMIl9udCynleo4I=; b=S2PDX+SU732AmtCFSYCwJRyHEvn+4+HspPx+4pJfk7X8jx24kHjGMLPmfv+jSuMs9eTn7qEK4e+fgNKUGQp05ilzL8xw3B6g67eJjo4ekg7h3IbX1VuShw/R1+1VELqeAopA4ZkojtHeOco/lI6FNIlncvn+R5hQoqEK3Dh9O5g= 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 1602259540488526.4874906369098; Fri, 9 Oct 2020 09:05:40 -0700 (PDT) Received: from localhost ([::1]:54180 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kQutm-0006zc-Vb for importer@patchew.org; Fri, 09 Oct 2020 12:05:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59034) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kQuq0-0003ku-MT for qemu-devel@nongnu.org; Fri, 09 Oct 2020 12:01:44 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:40440) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kQupx-00018i-UW for qemu-devel@nongnu.org; Fri, 09 Oct 2020 12:01:44 -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-358-iO6RfbCOOUOBVrQ9XvZ5mw-1; Fri, 09 Oct 2020 12:01:38 -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 9E5B41074643; Fri, 9 Oct 2020 16:01:37 +0000 (UTC) Received: from localhost (ovpn-119-102.rdu2.redhat.com [10.10.119.102]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6069855776; Fri, 9 Oct 2020 16:01:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1602259301; 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=IZtbwbBnXHyx61GM0CmVgiZpiaLakMIl9udCynleo4I=; b=M/3981KXkWp1IqAORCoCmETmdq5aR03IMDjHWW+bB1iKUiaNteNaYbL0FAqSakI76SqQOI Cc9IMiMuNbh3uZczmJf1UbLeHafZ86pnpZKdUnVzi+CHf6wj8qyyrvv5nwkiBKkRyKnHjN 4NL60C71MF+CiCk1Rupbm5W8Nc1Y3K8= X-MC-Unique: iO6RfbCOOUOBVrQ9XvZ5mw-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 04/12] sev: Use class properties Date: Fri, 9 Oct 2020 12:01:14 -0400 Message-Id: <20201009160122.1662082-5-ehabkost@redhat.com> In-Reply-To: <20201009160122.1662082-1-ehabkost@redhat.com> References: <20201009160122.1662082-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/09 02:34:40 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: Kevin Wolf , Markus Armbruster , Paolo Bonzini , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , John Snow , Richard Henderson 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" Instance properties make introspection hard and are not shown by "-object ...,help". Convert them to class properties. Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: Richard Henderson Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- target/i386/sev.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/target/i386/sev.c b/target/i386/sev.c index 93c4d60b82..d1c9247c14 100644 --- a/target/i386/sev.c +++ b/target/i386/sev.c @@ -298,6 +298,19 @@ sev_guest_class_init(ObjectClass *oc, void *data) sev_guest_set_session_file); object_class_property_set_description(oc, "session-file", "guest owners session parameters (encoded with base64)"); + + object_class_property_add_uint32_ptr(oc, "policy", + offsetof(SevGuestState, policy), + OBJ_PROP_FLAG_READWRITE); + object_class_property_add_uint32_ptr(oc, "handle", + offsetof(SevGuestState, handle), + OBJ_PROP_FLAG_READWRITE); + object_class_property_add_uint32_ptr(oc, "cbitpos", + offsetof(SevGuestState, cbitpos), + OBJ_PROP_FLAG_READWRITE); + object_class_property_add_uint32_ptr(oc, "reduced-phys-bits", + offsetof(SevGuestState, reduced_p= hys_bits), + OBJ_PROP_FLAG_READWRITE); } =20 static void @@ -307,15 +320,6 @@ sev_guest_instance_init(Object *obj) =20 sev->sev_device =3D g_strdup(DEFAULT_SEV_DEVICE); sev->policy =3D DEFAULT_GUEST_POLICY; - object_property_add_uint32_ptr(obj, "policy", &sev->policy, - OBJ_PROP_FLAG_READWRITE); - object_property_add_uint32_ptr(obj, "handle", &sev->handle, - OBJ_PROP_FLAG_READWRITE); - object_property_add_uint32_ptr(obj, "cbitpos", &sev->cbitpos, - OBJ_PROP_FLAG_READWRITE); - object_property_add_uint32_ptr(obj, "reduced-phys-bits", - &sev->reduced_phys_bits, - OBJ_PROP_FLAG_READWRITE); } =20 /* sev guest info */ --=20 2.26.2 From nobody Sun Nov 16 23:03:59 2025 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=1602260126; cv=none; d=zohomail.com; s=zohoarc; b=LnLqaKr2B1/lfxeEDX6gTEVFgXsWFm6V9RdwYDm6hJDoCSdnISB0Ee42eQFOAQuXRNq0uztDN/2iFwXanHKB1OvuSTd8M7/0QEsJ055gc8m1mlYgyZQFkFG4ZAA95yB32k3RIrj3+9vL6Q8xyk/TXLgwMndN74e8+hrfsZoXMkw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602260126; 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=slIUVKk0+8beFrLh45o20cBpi9FInCOQBDpM1t0b5mc=; b=oEtoOrA7eum4+aT+iWa8ttddsFRutUuv+6S3fuoXfX3mxI+Vh6jbq1Z5AeYWySn2TrhDYt8kU57jvqKlIYDfazrzD6RYnh0vCPtFiEd4Opy8tKgptlrAKQQYW0jWX9+AEaqxf1BdiHc8BC1lhGPwSK0eV8XyKaaT4nQWbbYZM2g= 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 1602260126486355.7751137043125; Fri, 9 Oct 2020 09:15:26 -0700 (PDT) Received: from localhost ([::1]:55008 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kQv3F-0002Ym-81 for importer@patchew.org; Fri, 09 Oct 2020 12:15:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59054) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kQuq4-0003m7-22 for qemu-devel@nongnu.org; Fri, 09 Oct 2020 12:01:48 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:48920) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kQuq1-000190-5m for qemu-devel@nongnu.org; Fri, 09 Oct 2020 12:01: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-488-xqKz9e7tMqK1I_X1i2Qvug-1; Fri, 09 Oct 2020 12:01:42 -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 7F8B31019631; Fri, 9 Oct 2020 16:01:41 +0000 (UTC) Received: from localhost (ovpn-119-102.rdu2.redhat.com [10.10.119.102]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6AA997664F; Fri, 9 Oct 2020 16:01:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1602259304; 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=slIUVKk0+8beFrLh45o20cBpi9FInCOQBDpM1t0b5mc=; b=N9gjiUA1My0j0nQgRVaWJghslq5syCuk7MSaATK9z+nGXID45nS+bxkEt1MgpcglRAt2UV e/95/B5hLFFGi4lNXnufMCj4w7dd+jj2V0kLWeE6feL434n3iiFX47LYk2hYa7fa60la5/ Wv9IxRUc8olScgU+1R9WLto5Y1qckEA= X-MC-Unique: xqKz9e7tMqK1I_X1i2Qvug-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 05/12] rng: Use class properties Date: Fri, 9 Oct 2020 12:01:15 -0400 Message-Id: <20201009160122.1662082-6-ehabkost@redhat.com> In-Reply-To: <20201009160122.1662082-1-ehabkost@redhat.com> References: <20201009160122.1662082-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-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/09 02:34:40 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: Kevin Wolf , Laurent Vivier , Amit Shah , Markus Armbruster , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , John Snow 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" Instance properties make introspection hard and are not shown by "-object ...,help". Convert them to class properties. Signed-off-by: Eduardo Habkost --- Cc: Laurent Vivier Cc: Amit Shah Cc: qemu-devel@nongnu.org --- backends/rng-egd.c | 10 +++------- backends/rng-random.c | 8 ++++---- backends/rng.c | 6 +++--- 3 files changed, 10 insertions(+), 14 deletions(-) diff --git a/backends/rng-egd.c b/backends/rng-egd.c index 20198ff26e..600eef3f75 100644 --- a/backends/rng-egd.c +++ b/backends/rng-egd.c @@ -135,12 +135,6 @@ static char *rng_egd_get_chardev(Object *obj, Error **= errp) return NULL; } =20 -static void rng_egd_init(Object *obj) -{ - object_property_add_str(obj, "chardev", - rng_egd_get_chardev, rng_egd_set_chardev); -} - static void rng_egd_finalize(Object *obj) { RngEgd *s =3D RNG_EGD(obj); @@ -153,6 +147,9 @@ static void rng_egd_class_init(ObjectClass *klass, void= *data) { RngBackendClass *rbc =3D RNG_BACKEND_CLASS(klass); =20 + object_class_property_add_str(klass, "chardev", + rng_egd_get_chardev, rng_egd_set_chardev= ); + rbc->request_entropy =3D rng_egd_request_entropy; rbc->opened =3D rng_egd_opened; } @@ -162,7 +159,6 @@ static const TypeInfo rng_egd_info =3D { .parent =3D TYPE_RNG_BACKEND, .instance_size =3D sizeof(RngEgd), .class_init =3D rng_egd_class_init, - .instance_init =3D rng_egd_init, .instance_finalize =3D rng_egd_finalize, }; =20 diff --git a/backends/rng-random.c b/backends/rng-random.c index 245b12ab24..27152b8cdb 100644 --- a/backends/rng-random.c +++ b/backends/rng-random.c @@ -108,10 +108,6 @@ static void rng_random_init(Object *obj) { RngRandom *s =3D RNG_RANDOM(obj); =20 - object_property_add_str(obj, "filename", - rng_random_get_filename, - rng_random_set_filename); - s->filename =3D g_strdup("/dev/urandom"); s->fd =3D -1; } @@ -132,6 +128,10 @@ static void rng_random_class_init(ObjectClass *klass, = void *data) { RngBackendClass *rbc =3D RNG_BACKEND_CLASS(klass); =20 + object_class_property_add_str(klass, "filename", + rng_random_get_filename, + rng_random_set_filename); + rbc->request_entropy =3D rng_random_request_entropy; rbc->opened =3D rng_random_opened; } diff --git a/backends/rng.c b/backends/rng.c index 484f04e891..f018c380da 100644 --- a/backends/rng.c +++ b/backends/rng.c @@ -106,9 +106,6 @@ static void rng_backend_init(Object *obj) =20 QSIMPLEQ_INIT(&s->requests); =20 - object_property_add_bool(obj, "opened", - rng_backend_prop_get_opened, - rng_backend_prop_set_opened); } =20 static void rng_backend_finalize(Object *obj) @@ -122,6 +119,9 @@ static void rng_backend_class_init(ObjectClass *oc, voi= d *data) { UserCreatableClass *ucc =3D USER_CREATABLE_CLASS(oc); =20 + object_class_property_add_bool(oc, "opened", + rng_backend_prop_get_opened, + rng_backend_prop_set_opened); ucc->complete =3D rng_backend_complete; } =20 --=20 2.26.2 From nobody Sun Nov 16 23:03:59 2025 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=1602260382; cv=none; d=zohomail.com; s=zohoarc; b=Lwc4t4gC1ZBgh+uLVu2Ubq/q3o9UgP+SyF4owlg9UsCvLcVhMrvJW3fPO4DjQnRzFLzb/v+C3e0ZoMqfPqq4idoHp2/k4xdK5xFpbq3KTpDCmel5uMDfvwv+FgwNIQFJ7/eLOUsdXqZmElQO5ZeVylrGiorsDczja3g54vppezA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602260382; 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=ll32Ld3oaLI3mIkeWOiZjUATzrWwfL5tTQJloVNDuu4=; b=Q934hph0wIR95BCcUXQMBHT4DhgAzhEEfjVNwk6F9LrJ62GGltxtG92H96MVwZ228nXA+vPi2iqiirPN0SJVzi2jzXSazV0d555OT5XLgo+qjci4IVEJuotaNZf8ThwDGfNC6kAo3dkawfs2vvzgNj/ga7udvmazmu1w0r0QV8g= 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 1602260382875375.5098960035946; Fri, 9 Oct 2020 09:19:42 -0700 (PDT) Received: from localhost ([::1]:36682 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kQv7N-00072I-HE for importer@patchew.org; Fri, 09 Oct 2020 12:19:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59078) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kQuq8-0003n2-RP for qemu-devel@nongnu.org; Fri, 09 Oct 2020 12:01:53 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:55194) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kQuq5-00019J-QE for qemu-devel@nongnu.org; Fri, 09 Oct 2020 12:01:51 -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-192-PN1-52c7PTq3oa1YV_cm-g-1; Fri, 09 Oct 2020 12:01:47 -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 AF8AC107AFCC; Fri, 9 Oct 2020 16:01:45 +0000 (UTC) Received: from localhost (ovpn-119-102.rdu2.redhat.com [10.10.119.102]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7F63D5D9F3; Fri, 9 Oct 2020 16:01:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1602259308; 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=ll32Ld3oaLI3mIkeWOiZjUATzrWwfL5tTQJloVNDuu4=; b=cq852Zw42g8Z/2aDAt3s7bFHSxCtIxiP3IaAO8htvpJ+Zbz9cXmQD+Pt9Q8WwAKGN1m0lT BNlhNptA7m2AZQSxsQeQsid/F74ZfGBkSmaaFlsE7K+dX3+G+PSq23y22l0mvMrGy6TNtA 64iFfGUt/oB/CLAle7lKLkqQ8cUvFAg= X-MC-Unique: PN1-52c7PTq3oa1YV_cm-g-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 06/12] can_host: Use class properties Date: Fri, 9 Oct 2020 12:01:16 -0400 Message-Id: <20201009160122.1662082-7-ehabkost@redhat.com> In-Reply-To: <20201009160122.1662082-1-ehabkost@redhat.com> References: <20201009160122.1662082-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=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/09 02:34:40 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: Kevin Wolf , Vikram Garhwal , Jason Wang , Markus Armbruster , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , John Snow , Pavel Pisa 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" Instance properties make introspection hard and are not shown by "-object ...,help". Convert them to class properties. Signed-off-by: Eduardo Habkost Tested-by: Pavel Pisa --- Cc: Pavel Pisa Cc: Vikram Garhwal Cc: Jason Wang Cc: qemu-devel@nongnu.org --- net/can/can_host.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/net/can/can_host.c b/net/can/can_host.c index be4547d913..bec88b9620 100644 --- a/net/can/can_host.c +++ b/net/can/can_host.c @@ -72,21 +72,16 @@ static void can_host_complete(UserCreatable *uc, Error = **errp) can_host_connect(CAN_HOST(uc), errp); } =20 -static void can_host_instance_init(Object *obj) -{ - CanHostState *ch =3D CAN_HOST(obj); - - object_property_add_link(obj, "canbus", TYPE_CAN_BUS, - (Object **)&ch->bus, - object_property_allow_set_link, - OBJ_PROP_LINK_STRONG); -} - static void can_host_class_init(ObjectClass *klass, void *class_data G_GNUC_UNUSED) { UserCreatableClass *uc_klass =3D USER_CREATABLE_CLASS(klass); =20 + object_class_property_add_link(klass, "canbus", TYPE_CAN_BUS, + offsetof(CanHostState, bus), + object_property_allow_set_link, + OBJ_PROP_LINK_STRONG); + klass->unparent =3D can_host_unparent; uc_klass->complete =3D can_host_complete; } @@ -97,7 +92,6 @@ static const TypeInfo can_host_info =3D { .instance_size =3D sizeof(CanHostState), .class_size =3D sizeof(CanHostClass), .abstract =3D true, - .instance_init =3D can_host_instance_init, .class_init =3D can_host_class_init, .interfaces =3D (InterfaceInfo[]) { { TYPE_USER_CREATABLE }, --=20 2.26.2 From nobody Sun Nov 16 23:03:59 2025 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=1602259715; cv=none; d=zohomail.com; s=zohoarc; b=hfMUbfHOhJ1vpugKKqVg46YHa1MxdNxbTDNBAKmI5EwNgWOy5uNXi3rJdSxWGQznvPgw6xV9DAYniZsIG7DyCzqKNGwVtGjWlsRFH2BfEnuA9y3AvMLcL6jiAdPw0zKsqg5lngUwT+++XcGigywKZH575B1mwEevb/0BYBcBhaA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602259715; 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=Ieqbab86Rfeh1OrZIz62JdalD0ysqKb7dWKqPrptghw=; b=g8SXmDnSLa8SB/5uzljMAb6F1vOlz025pMQVZLr3KfA8n3X4zlFJssPhEo7Mr6HRmCZQbN57X2AsT4BfybepLIW+hzso5ggjm0ZCHnR9T7c4ge62khU5ToUoKJ3wzuJDOjywMjez/iz7uLU/YMxrbSZEHnpWMwcxT53ciaItJ4A= 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 16022597154891.072568896581629; Fri, 9 Oct 2020 09:08:35 -0700 (PDT) Received: from localhost ([::1]:34424 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kQuwc-0002Ry-1B for importer@patchew.org; Fri, 09 Oct 2020 12:08:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59098) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kQuqB-0003nZ-Ni for qemu-devel@nongnu.org; Fri, 09 Oct 2020 12:01:57 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:55981) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kQuq9-00019Q-6l for qemu-devel@nongnu.org; Fri, 09 Oct 2020 12:01:55 -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-564-0jqnRlTFM5C_4We3ZfvVkg-1; Fri, 09 Oct 2020 12:01:48 -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 8D35A107464A; Fri, 9 Oct 2020 16:01:47 +0000 (UTC) Received: from localhost (ovpn-119-102.rdu2.redhat.com [10.10.119.102]) by smtp.corp.redhat.com (Postfix) with ESMTP id 234BF5DC17; Fri, 9 Oct 2020 16:01:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1602259310; 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=Ieqbab86Rfeh1OrZIz62JdalD0ysqKb7dWKqPrptghw=; b=X3SiXk97buwWh2dAnDOZQoB6mDFsR3e+/MQLMTRSD7mt5cR8skA+XRQP1TTzzhdYpTKM+u KAmGTEguY1n62oOewqI1MZQusH8BPSqPA+mHSki7NLV7WirpMmsJDFrpWUZ8d9dgmOqJg2 C2gWVlvqfZSrfL+uGqQb/uM0skqWWhk= X-MC-Unique: 0jqnRlTFM5C_4We3ZfvVkg-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 07/12] colo: Use class properties Date: Fri, 9 Oct 2020 12:01:17 -0400 Message-Id: <20201009160122.1662082-8-ehabkost@redhat.com> In-Reply-To: <20201009160122.1662082-1-ehabkost@redhat.com> References: <20201009160122.1662082-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=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/09 02:34:40 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: Kevin Wolf , Li Zhijian , Jason Wang , Markus Armbruster , Zhang Chen , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , John Snow 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" Instance properties make introspection hard and are not shown by "-object ...,help". Convert them to class properties. Signed-off-by: Eduardo Habkost --- Cc: Zhang Chen Cc: Li Zhijian Cc: Jason Wang Cc: qemu-devel@nongnu.org --- net/colo-compare.c | 57 +++++++++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/net/colo-compare.c b/net/colo-compare.c index 3a45d64175..017e82dd8b 100644 --- a/net/colo-compare.c +++ b/net/colo-compare.c @@ -1375,6 +1375,35 @@ static void colo_compare_class_init(ObjectClass *oc,= void *data) { UserCreatableClass *ucc =3D USER_CREATABLE_CLASS(oc); =20 + object_class_property_add_str(oc, "primary_in", + compare_get_pri_indev, compare_set_pri_i= ndev); + object_class_property_add_str(oc, "secondary_in", + compare_get_sec_indev, compare_set_sec_i= ndev); + object_class_property_add_str(oc, "outdev", + compare_get_outdev, compare_set_outdev); + object_class_property_add_link(oc, "iothread", TYPE_IOTHREAD, + offsetof(CompareState, iothread), + object_property_allow_set_link, + OBJ_PROP_LINK_STRONG); + /* This parameter just for Xen COLO */ + object_class_property_add_str(oc, "notify_dev", + compare_get_notify_dev, compare_set_noti= fy_dev); + + object_class_property_add(oc, "compare_timeout", "uint32", + compare_get_timeout, + compare_set_timeout, NULL, NULL); + + object_class_property_add(oc, "expired_scan_cycle", "uint32", + compare_get_expired_scan_cycle, + compare_set_expired_scan_cycle, NULL, NULL); + + object_class_property_add(oc, "max_queue_size", "uint32", + get_max_queue_size, + set_max_queue_size, NULL, NULL); + + object_class_property_add_bool(oc, "vnet_hdr_support", compare_get_vne= t_hdr, + compare_set_vnet_hdr); + ucc->complete =3D colo_compare_complete; } =20 @@ -1382,35 +1411,7 @@ static void colo_compare_init(Object *obj) { CompareState *s =3D COLO_COMPARE(obj); =20 - object_property_add_str(obj, "primary_in", - compare_get_pri_indev, compare_set_pri_indev); - object_property_add_str(obj, "secondary_in", - compare_get_sec_indev, compare_set_sec_indev); - object_property_add_str(obj, "outdev", - compare_get_outdev, compare_set_outdev); - object_property_add_link(obj, "iothread", TYPE_IOTHREAD, - (Object **)&s->iothread, - object_property_allow_set_link, - OBJ_PROP_LINK_STRONG); - /* This parameter just for Xen COLO */ - object_property_add_str(obj, "notify_dev", - compare_get_notify_dev, compare_set_notify_dev= ); - - object_property_add(obj, "compare_timeout", "uint32", - compare_get_timeout, - compare_set_timeout, NULL, NULL); - - object_property_add(obj, "expired_scan_cycle", "uint32", - compare_get_expired_scan_cycle, - compare_set_expired_scan_cycle, NULL, NULL); - - object_property_add(obj, "max_queue_size", "uint32", - get_max_queue_size, - set_max_queue_size, NULL, NULL); - s->vnet_hdr =3D false; - object_property_add_bool(obj, "vnet_hdr_support", compare_get_vnet_hdr, - compare_set_vnet_hdr); } =20 static void colo_compare_finalize(Object *obj) --=20 2.26.2 From nobody Sun Nov 16 23:03:59 2025 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=1602260531; cv=none; d=zohomail.com; s=zohoarc; b=huI1wT6KYC7PgGxhIWMcw131RZqcL6PWMn3lLGhzLFaEydA+ntmekCEa2tEf1HTBfpkTI2UtaVjfck1MKhFiwAK8nCBhWnpv3x4go6nF81Cn4qumvG8qPRAmO/FMkdl+nDOGJiwEDVKVh/3ntAty0UlYZbiM6uvVJF0BG8biObQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602260531; 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=gDUmdghtMAyCegm7L5TJffotsreIuyhWtE7FUPEkJ/8=; b=L91Msaiceh0bP+BpE5RADbSWYdpy7nqA1UnFJpNwgXqOM8L8J4kVd98mClL4CW5yME7m3CUqxxQRcRNk2iTIlVeV0HqvzkpqGUwiV+HIkULpucBsm+IeDS6oI//CK7N6lyfzKy2QaUP8ZVcoh3/4LGbf8WZPNdNc61mFg2QhVbU= 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 1602260531854112.89029151150237; Fri, 9 Oct 2020 09:22:11 -0700 (PDT) Received: from localhost ([::1]:44886 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kQv9m-000250-Hv for importer@patchew.org; Fri, 09 Oct 2020 12:22:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59194) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kQuqQ-0003y2-0p for qemu-devel@nongnu.org; Fri, 09 Oct 2020 12:02:10 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:36285) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kQuqH-0001AP-SO for qemu-devel@nongnu.org; Fri, 09 Oct 2020 12:02: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-262-NaKwDGiLN2S7OzmPNkWy_A-1; Fri, 09 Oct 2020 12:01:52 -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 A0493801F95; Fri, 9 Oct 2020 16:01:51 +0000 (UTC) Received: from localhost (ovpn-119-102.rdu2.redhat.com [10.10.119.102]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9669E38A; Fri, 9 Oct 2020 16:01:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1602259317; 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=gDUmdghtMAyCegm7L5TJffotsreIuyhWtE7FUPEkJ/8=; b=R+EdWXqAse/4wqcYq1bEroqg6xedj23i5wcrTW3/ojaqW0sHVMBO1VOrz4ve/fEV6gmBiQ LjMFpf2Ucz4lV7VX0B6i32xLqi4CRuK8lJZkOeecOgfUv+3fXH7RNkeIW93As1OdovU1ua 953EOZwXuwWUpxmxJFtvB2ixapu0Bno= X-MC-Unique: NaKwDGiLN2S7OzmPNkWy_A-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 08/12] netfilter: Reorder functions Date: Fri, 9 Oct 2020 12:01:18 -0400 Message-Id: <20201009160122.1662082-9-ehabkost@redhat.com> In-Reply-To: <20201009160122.1662082-1-ehabkost@redhat.com> References: <20201009160122.1662082-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/09 02:34:40 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: Kevin Wolf , Li Zhijian , Jason Wang , Markus Armbruster , Zhang Chen , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , John Snow 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" Trivial code reordering in some filter backends, to make the next changes easier to review. Signed-off-by: Eduardo Habkost --- Cc: Jason Wang Cc: Zhang Chen Cc: Li Zhijian Cc: qemu-devel@nongnu.org --- net/filter-buffer.c | 20 ++++++++++---------- net/filter-mirror.c | 36 ++++++++++++++++++------------------ 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/net/filter-buffer.c b/net/filter-buffer.c index d8392be53c..95e384865f 100644 --- a/net/filter-buffer.c +++ b/net/filter-buffer.c @@ -144,16 +144,6 @@ static void filter_buffer_status_changed(NetFilterStat= e *nf, Error **errp) } } =20 -static void filter_buffer_class_init(ObjectClass *oc, void *data) -{ - NetFilterClass *nfc =3D NETFILTER_CLASS(oc); - - nfc->setup =3D filter_buffer_setup; - nfc->cleanup =3D filter_buffer_cleanup; - nfc->receive_iov =3D filter_buffer_receive_iov; - nfc->status_changed =3D filter_buffer_status_changed; -} - static void filter_buffer_get_interval(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) @@ -182,6 +172,16 @@ static void filter_buffer_set_interval(Object *obj, Vi= sitor *v, s->interval =3D value; } =20 +static void filter_buffer_class_init(ObjectClass *oc, void *data) +{ + NetFilterClass *nfc =3D NETFILTER_CLASS(oc); + + nfc->setup =3D filter_buffer_setup; + nfc->cleanup =3D filter_buffer_cleanup; + nfc->receive_iov =3D filter_buffer_receive_iov; + nfc->status_changed =3D filter_buffer_status_changed; +} + static void filter_buffer_init(Object *obj) { object_property_add(obj, "interval", "uint32", diff --git a/net/filter-mirror.c b/net/filter-mirror.c index 088d4dcace..26b783011a 100644 --- a/net/filter-mirror.c +++ b/net/filter-mirror.c @@ -284,24 +284,6 @@ static void filter_redirector_setup(NetFilterState *nf= , Error **errp) } } =20 -static void filter_mirror_class_init(ObjectClass *oc, void *data) -{ - NetFilterClass *nfc =3D NETFILTER_CLASS(oc); - - nfc->setup =3D filter_mirror_setup; - nfc->cleanup =3D filter_mirror_cleanup; - nfc->receive_iov =3D filter_mirror_receive_iov; -} - -static void filter_redirector_class_init(ObjectClass *oc, void *data) -{ - NetFilterClass *nfc =3D NETFILTER_CLASS(oc); - - nfc->setup =3D filter_redirector_setup; - nfc->cleanup =3D filter_redirector_cleanup; - nfc->receive_iov =3D filter_redirector_receive_iov; -} - static char *filter_redirector_get_indev(Object *obj, Error **errp) { MirrorState *s =3D FILTER_REDIRECTOR(obj); @@ -388,6 +370,24 @@ static void filter_redirector_set_vnet_hdr(Object *obj, s->vnet_hdr =3D value; } =20 +static void filter_mirror_class_init(ObjectClass *oc, void *data) +{ + NetFilterClass *nfc =3D NETFILTER_CLASS(oc); + + nfc->setup =3D filter_mirror_setup; + nfc->cleanup =3D filter_mirror_cleanup; + nfc->receive_iov =3D filter_mirror_receive_iov; +} + +static void filter_redirector_class_init(ObjectClass *oc, void *data) +{ + NetFilterClass *nfc =3D NETFILTER_CLASS(oc); + + nfc->setup =3D filter_redirector_setup; + nfc->cleanup =3D filter_redirector_cleanup; + nfc->receive_iov =3D filter_redirector_receive_iov; +} + static void filter_mirror_init(Object *obj) { MirrorState *s =3D FILTER_MIRROR(obj); --=20 2.26.2 From nobody Sun Nov 16 23:03:59 2025 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=1602260365; cv=none; d=zohomail.com; s=zohoarc; b=DEYblUcccSMOMiH1kUc0/f4VuvzKgCuT5zeCp9bROCW13jl9IKQ71gBs6PapMyrPjLiX/aK7AjOo2IRtDxsSuZOwYGroVXQeMMj1TvtlCgrbOai4FoplygzWp5Ec+SOnZSjgq3oIzC0+Yckr8/IQ+2g9AmNpOr7YNzFQ5s20Q2c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602260365; 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=NiK1eGhRYiWBwFt5WcyRbVIOl/6mfFts0JPaOb20ZeA=; b=CuPGzAgsh19w3NYGk1RJz/sAMB90lEUBWHA8gXquEywTa9F12rKU5GYTs2/WDL/WNHzi6yU69wcHhP440BEE/NzJIWsWifvYJ2tt0cMfOplMEHD0bCk2VeKaBjF04LxDTfTl8crtC/UOqKIo0DQe755X7RAJWKYdP01494uUEkI= 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 160226036517348.04485451070593; Fri, 9 Oct 2020 09:19:25 -0700 (PDT) Received: from localhost ([::1]:34862 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kQv75-0006GK-Jn for importer@patchew.org; Fri, 09 Oct 2020 12:19:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59182) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kQuqN-0003uZ-O1 for qemu-devel@nongnu.org; Fri, 09 Oct 2020 12:02:07 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:52161) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kQuqJ-0001AU-Pe for qemu-devel@nongnu.org; Fri, 09 Oct 2020 12:02:07 -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-484-000dvkytMsaQqpl0ocHdJA-1; Fri, 09 Oct 2020 12:01:56 -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 4F6A0803F74; Fri, 9 Oct 2020 16:01:55 +0000 (UTC) Received: from localhost (ovpn-119-102.rdu2.redhat.com [10.10.119.102]) by smtp.corp.redhat.com (Postfix) with ESMTP id 575637EB77; Fri, 9 Oct 2020 16:01:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1602259318; 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=NiK1eGhRYiWBwFt5WcyRbVIOl/6mfFts0JPaOb20ZeA=; b=QIaq0T0wPG/rVgkJhonDL5rlzxwsjv7/5NP7YFbjho8t7UN5so1AsSbfbAMusAfEoeqQ+o SqOeldkh3irtmmUjgWq9HhJhhQIFSCyDklYsBKjCzKU7ilyA/EzL66lTOzVtpId99DGu92 YMmxIUZ60f0Gy5cUKON6HhH+CBRp0d0= X-MC-Unique: 000dvkytMsaQqpl0ocHdJA-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 09/12] netfilter: Use class properties Date: Fri, 9 Oct 2020 12:01:19 -0400 Message-Id: <20201009160122.1662082-10-ehabkost@redhat.com> In-Reply-To: <20201009160122.1662082-1-ehabkost@redhat.com> References: <20201009160122.1662082-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=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/09 02:34:40 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: Kevin Wolf , Li Zhijian , Jason Wang , Markus Armbruster , Zhang Chen , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , John Snow 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" Instance properties make introspection hard and are not shown by "-object ...,help". Convert them to class properties. Signed-off-by: Eduardo Habkost --- Cc: Jason Wang Cc: Zhang Chen Cc: Li Zhijian Cc: qemu-devel@nongnu.org --- net/dump.c | 10 +++++----- net/filter-buffer.c | 12 ++++-------- net/filter-mirror.c | 28 ++++++++++++++-------------- net/filter-rewriter.c | 7 ++++--- net/filter.c | 24 ++++++++++++------------ 5 files changed, 39 insertions(+), 42 deletions(-) diff --git a/net/dump.c b/net/dump.c index 7fd448d2e1..4d538d82a6 100644 --- a/net/dump.c +++ b/net/dump.c @@ -224,11 +224,6 @@ static void filter_dump_instance_init(Object *obj) NetFilterDumpState *nfds =3D FILTER_DUMP(obj); =20 nfds->maxlen =3D 65536; - - object_property_add(obj, "maxlen", "uint32", filter_dump_get_maxlen, - filter_dump_set_maxlen, NULL, NULL); - object_property_add_str(obj, "file", file_dump_get_filename, - file_dump_set_filename); } =20 static void filter_dump_instance_finalize(Object *obj) @@ -242,6 +237,11 @@ static void filter_dump_class_init(ObjectClass *oc, vo= id *data) { NetFilterClass *nfc =3D NETFILTER_CLASS(oc); =20 + object_class_property_add(oc, "maxlen", "uint32", filter_dump_get_maxl= en, + filter_dump_set_maxlen, NULL, NULL); + object_class_property_add_str(oc, "file", file_dump_get_filename, + file_dump_set_filename); + nfc->setup =3D filter_dump_setup; nfc->cleanup =3D filter_dump_cleanup; nfc->receive_iov =3D filter_dump_receive_iov; diff --git a/net/filter-buffer.c b/net/filter-buffer.c index 95e384865f..283dc9cbe6 100644 --- a/net/filter-buffer.c +++ b/net/filter-buffer.c @@ -176,24 +176,20 @@ static void filter_buffer_class_init(ObjectClass *oc,= void *data) { NetFilterClass *nfc =3D NETFILTER_CLASS(oc); =20 + object_class_property_add(oc, "interval", "uint32", + filter_buffer_get_interval, + filter_buffer_set_interval, NULL, NULL); + nfc->setup =3D filter_buffer_setup; nfc->cleanup =3D filter_buffer_cleanup; nfc->receive_iov =3D filter_buffer_receive_iov; nfc->status_changed =3D filter_buffer_status_changed; } =20 -static void filter_buffer_init(Object *obj) -{ - object_property_add(obj, "interval", "uint32", - filter_buffer_get_interval, - filter_buffer_set_interval, NULL, NULL); -} - static const TypeInfo filter_buffer_info =3D { .name =3D TYPE_FILTER_BUFFER, .parent =3D TYPE_NETFILTER, .class_init =3D filter_buffer_class_init, - .instance_init =3D filter_buffer_init, .instance_size =3D sizeof(FilterBufferState), }; =20 diff --git a/net/filter-mirror.c b/net/filter-mirror.c index 26b783011a..f8e65007c0 100644 --- a/net/filter-mirror.c +++ b/net/filter-mirror.c @@ -374,6 +374,12 @@ static void filter_mirror_class_init(ObjectClass *oc, = void *data) { NetFilterClass *nfc =3D NETFILTER_CLASS(oc); =20 + object_class_property_add_str(oc, "outdev", filter_mirror_get_outdev, + filter_mirror_set_outdev); + object_class_property_add_bool(oc, "vnet_hdr_support", + filter_mirror_get_vnet_hdr, + filter_mirror_set_vnet_hdr); + nfc->setup =3D filter_mirror_setup; nfc->cleanup =3D filter_mirror_cleanup; nfc->receive_iov =3D filter_mirror_receive_iov; @@ -383,6 +389,14 @@ static void filter_redirector_class_init(ObjectClass *= oc, void *data) { NetFilterClass *nfc =3D NETFILTER_CLASS(oc); =20 + object_class_property_add_str(oc, "indev", filter_redirector_get_indev, + filter_redirector_set_indev); + object_class_property_add_str(oc, "outdev", filter_redirector_get_outd= ev, + filter_redirector_set_outdev); + object_class_property_add_bool(oc, "vnet_hdr_support", + filter_redirector_get_vnet_hdr, + filter_redirector_set_vnet_hdr); + nfc->setup =3D filter_redirector_setup; nfc->cleanup =3D filter_redirector_cleanup; nfc->receive_iov =3D filter_redirector_receive_iov; @@ -392,28 +406,14 @@ static void filter_mirror_init(Object *obj) { MirrorState *s =3D FILTER_MIRROR(obj); =20 - object_property_add_str(obj, "outdev", filter_mirror_get_outdev, - filter_mirror_set_outdev); - s->vnet_hdr =3D false; - object_property_add_bool(obj, "vnet_hdr_support", - filter_mirror_get_vnet_hdr, - filter_mirror_set_vnet_hdr); } =20 static void filter_redirector_init(Object *obj) { MirrorState *s =3D FILTER_REDIRECTOR(obj); =20 - object_property_add_str(obj, "indev", filter_redirector_get_indev, - filter_redirector_set_indev); - object_property_add_str(obj, "outdev", filter_redirector_get_outdev, - filter_redirector_set_outdev); - s->vnet_hdr =3D false; - object_property_add_bool(obj, "vnet_hdr_support", - filter_redirector_get_vnet_hdr, - filter_redirector_set_vnet_hdr); } =20 static void filter_mirror_fini(Object *obj) diff --git a/net/filter-rewriter.c b/net/filter-rewriter.c index dc3c27a489..ae358059d9 100644 --- a/net/filter-rewriter.c +++ b/net/filter-rewriter.c @@ -416,15 +416,16 @@ static void filter_rewriter_init(Object *obj) =20 s->vnet_hdr =3D false; s->failover_mode =3D FAILOVER_MODE_OFF; - object_property_add_bool(obj, "vnet_hdr_support", - filter_rewriter_get_vnet_hdr, - filter_rewriter_set_vnet_hdr); } =20 static void colo_rewriter_class_init(ObjectClass *oc, void *data) { NetFilterClass *nfc =3D NETFILTER_CLASS(oc); =20 + object_class_property_add_bool(oc, "vnet_hdr_support", + filter_rewriter_get_vnet_hdr, + filter_rewriter_set_vnet_hdr); + nfc->setup =3D colo_rewriter_setup; nfc->cleanup =3D colo_rewriter_cleanup; nfc->receive_iov =3D colo_rewriter_receive_iov; diff --git a/net/filter.c b/net/filter.c index eac8ba1e9c..3fe88fa43f 100644 --- a/net/filter.c +++ b/net/filter.c @@ -212,18 +212,6 @@ static void netfilter_init(Object *obj) nf->on =3D true; nf->insert_before_flag =3D false; nf->position =3D g_strdup("tail"); - - object_property_add_str(obj, "netdev", - netfilter_get_netdev_id, netfilter_set_netdev_= id); - object_property_add_enum(obj, "queue", "NetFilterDirection", - &NetFilterDirection_lookup, - netfilter_get_direction, netfilter_set_direct= ion); - object_property_add_str(obj, "status", - netfilter_get_status, netfilter_set_status); - object_property_add_str(obj, "position", - netfilter_get_position, netfilter_set_position= ); - object_property_add_str(obj, "insert", - netfilter_get_insert, netfilter_set_insert); } =20 static void netfilter_complete(UserCreatable *uc, Error **errp) @@ -350,6 +338,18 @@ static void netfilter_class_init(ObjectClass *oc, void= *data) UserCreatableClass *ucc =3D USER_CREATABLE_CLASS(oc); NetFilterClass *nfc =3D NETFILTER_CLASS(oc); =20 + object_class_property_add_str(oc, "netdev", + netfilter_get_netdev_id, netfilter_set_n= etdev_id); + object_class_property_add_enum(oc, "queue", "NetFilterDirection", + &NetFilterDirection_lookup, + netfilter_get_direction, netfilter_set_= direction); + object_class_property_add_str(oc, "status", + netfilter_get_status, netfilter_set_stat= us); + object_class_property_add_str(oc, "position", + netfilter_get_position, netfilter_set_po= sition); + object_class_property_add_str(oc, "insert", + netfilter_get_insert, netfilter_set_inse= rt); + ucc->complete =3D netfilter_complete; nfc->handle_event =3D default_handle_event; } --=20 2.26.2 From nobody Sun Nov 16 23:03:59 2025 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=1602259880; cv=none; d=zohomail.com; s=zohoarc; b=W6p3p9IarhPcTe4L10YxT0IAMyjmyrONKtp1HezEg84zYTuwLnNYUOpOgvyVZY8yybmXUioiHNPpMvDtB2iN7+Q5n3TFtfpqX6xus443My43cn+uUwqWJv7HuzpX3EFBf7SU7y4/u1U9Le8DrEZPL5nq3M2+AU6vY2dCR2Fhvjw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602259880; 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=x/0WU02UGw93rIL/U7xfUdD3VvJQmzc6XB5lCRxb7ac=; b=hDs8pB221Oj9Q3B1C6b0FPzW8vAAhDYq87ThV2IVziWvctg4AuBSpEu7vyJxUAbeXCMqUtrdcvTeSfrBWz7ow/HX9AK6XHkqE1GGOuH0mhie68Rwl0YCaOrP/UihjenwTJWacVFRGI6bcs85CMBRIeRzd/IRQAK1wZGvG8gJ770= 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 160225988018232.5937858868283; Fri, 9 Oct 2020 09:11:20 -0700 (PDT) Received: from localhost ([::1]:43204 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kQuzG-00060x-OP for importer@patchew.org; Fri, 09 Oct 2020 12:11:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59192) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kQuqP-0003wM-AB for qemu-devel@nongnu.org; Fri, 09 Oct 2020 12:02:09 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:34825) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kQuqM-0001Cx-Bk for qemu-devel@nongnu.org; Fri, 09 Oct 2020 12:02: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-344-OPSQWlvbPbKlaXr9hbZ92w-1; Fri, 09 Oct 2020 12:02:03 -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 2E2E2835B50 for ; Fri, 9 Oct 2020 16:02:02 +0000 (UTC) Received: from localhost (ovpn-119-102.rdu2.redhat.com [10.10.119.102]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3D6815C1C7; Fri, 9 Oct 2020 16:01:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1602259324; 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=x/0WU02UGw93rIL/U7xfUdD3VvJQmzc6XB5lCRxb7ac=; b=OjbjTYWYVrO6uhi9N9LVHpB9XGlgtyyvHD2j110uW/zMi+uZNXluaerlrX8uEAGMKN+Ns6 XAvl3uY/sHNKV9q0jsoWJlD1x9vBWsvreIfsuTEMZmqFjdwfcvegSFL3j8CsBE996CGdzP /XzFEZWHnGEVL1NRB+hWI6+Ic7fnyKQ= X-MC-Unique: OPSQWlvbPbKlaXr9hbZ92w-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 10/12] input: Use class properties Date: Fri, 9 Oct 2020 12:01:20 -0400 Message-Id: <20201009160122.1662082-11-ehabkost@redhat.com> In-Reply-To: <20201009160122.1662082-1-ehabkost@redhat.com> References: <20201009160122.1662082-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-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/09 02:34:40 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: Kevin Wolf , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , John Snow , Markus Armbruster , Gerd Hoffmann 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" Instance properties make introspection hard and are not shown by "-object ...,help". Convert them to class properties. Signed-off-by: Eduardo Habkost Acked-by: Gerd Hoffmann --- Cc: Gerd Hoffmann Cc: qemu-devel@nongnu.org --- ui/input-barrier.c | 44 ++++++++++++++++++++++---------------------- ui/input-linux.c | 27 ++++++++++++++------------- 2 files changed, 36 insertions(+), 35 deletions(-) diff --git a/ui/input-barrier.c b/ui/input-barrier.c index a047919fde..8e886a6495 100644 --- a/ui/input-barrier.c +++ b/ui/input-barrier.c @@ -689,34 +689,34 @@ static void input_barrier_instance_init(Object *obj) ib->y_origin =3D 0; ib->width =3D 1920; ib->height =3D 1080; - - object_property_add_str(obj, "name", - input_barrier_get_name, - input_barrier_set_name); - object_property_add_str(obj, "server", - input_barrier_get_server, - input_barrier_set_server); - object_property_add_str(obj, "port", - input_barrier_get_port, - input_barrier_set_port); - object_property_add_str(obj, "x-origin", - input_barrier_get_x_origin, - input_barrier_set_x_origin); - object_property_add_str(obj, "y-origin", - input_barrier_get_y_origin, - input_barrier_set_y_origin); - object_property_add_str(obj, "width", - input_barrier_get_width, - input_barrier_set_width); - object_property_add_str(obj, "height", - input_barrier_get_height, - input_barrier_set_height); } =20 static void input_barrier_class_init(ObjectClass *oc, void *data) { UserCreatableClass *ucc =3D USER_CREATABLE_CLASS(oc); =20 + object_class_property_add_str(oc, "name", + input_barrier_get_name, + input_barrier_set_name); + object_class_property_add_str(oc, "server", + input_barrier_get_server, + input_barrier_set_server); + object_class_property_add_str(oc, "port", + input_barrier_get_port, + input_barrier_set_port); + object_class_property_add_str(oc, "x-origin", + input_barrier_get_x_origin, + input_barrier_set_x_origin); + object_class_property_add_str(oc, "y-origin", + input_barrier_get_y_origin, + input_barrier_set_y_origin); + object_class_property_add_str(oc, "width", + input_barrier_get_width, + input_barrier_set_width); + object_class_property_add_str(oc, "height", + input_barrier_get_height, + input_barrier_set_height); + ucc->complete =3D input_barrier_complete; } =20 diff --git a/ui/input-linux.c b/ui/input-linux.c index ab351a4187..df3dff8898 100644 --- a/ui/input-linux.c +++ b/ui/input-linux.c @@ -489,25 +489,26 @@ static void input_linux_set_grab_toggle(Object *obj, = int value, =20 static void input_linux_instance_init(Object *obj) { - object_property_add_str(obj, "evdev", - input_linux_get_evdev, - input_linux_set_evdev); - object_property_add_bool(obj, "grab_all", - input_linux_get_grab_all, - input_linux_set_grab_all); - object_property_add_bool(obj, "repeat", - input_linux_get_repeat, - input_linux_set_repeat); - object_property_add_enum(obj, "grab-toggle", "GrabToggleKeys", - &GrabToggleKeys_lookup, - input_linux_get_grab_toggle, - input_linux_set_grab_toggle); } =20 static void input_linux_class_init(ObjectClass *oc, void *data) { UserCreatableClass *ucc =3D USER_CREATABLE_CLASS(oc); =20 + object_class_property_add_str(oc, "evdev", + input_linux_get_evdev, + input_linux_set_evdev); + object_class_property_add_bool(oc, "grab_all", + input_linux_get_grab_all, + input_linux_set_grab_all); + object_class_property_add_bool(oc, "repeat", + input_linux_get_repeat, + input_linux_set_repeat); + object_class_property_add_enum(oc, "grab-toggle", "GrabToggleKeys", + &GrabToggleKeys_lookup, + input_linux_get_grab_toggle, + input_linux_set_grab_toggle); + ucc->complete =3D input_linux_complete; } =20 --=20 2.26.2 From nobody Sun Nov 16 23:03:59 2025 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=1602259805; cv=none; d=zohomail.com; s=zohoarc; b=VlJb43dmOn35Pyo9sfilE39ggbculYOzr+BNvAYVEv5Id2tKZz8dNOP3572KBAIiogvnyGPRQedRRcvC/50b1isnDA1HO5BRyBZaJ+ieEm2chWnLflzOh+Ev4ZKD0EX4vfdHLM/146VBlJ4mpBDj4ryU3e5sSqExGRd+1nWVQVk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602259805; 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=V6ZeMhapG7XRhWAt5UK9AHGNMYXnP5KbDP4eNV88Xtw=; b=OwsyH1TIgtAHBvx9yclIhLDkm72JCxbOfgt2MjfwUqjLt2Lk4tO/gBzyfghrZrwFomhOJ71Ema0WxzvAg/grsayfDXzwrBQaNW5R98mZJOq3hgLwu0UU9msAQrK251iHdEJ5L4BupeIUq07Ms1RbXwIXJLp8ssgdv1UTGK47kW4= 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 1602259805772789.7374768474242; Fri, 9 Oct 2020 09:10:05 -0700 (PDT) Received: from localhost ([::1]:39928 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kQuy4-0004fk-ER for importer@patchew.org; Fri, 09 Oct 2020 12:10:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59210) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kQuqX-0003zi-GG for qemu-devel@nongnu.org; Fri, 09 Oct 2020 12:02:20 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:49653) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kQuqR-0001Dg-Qn for qemu-devel@nongnu.org; Fri, 09 Oct 2020 12:02: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-87-330oxqEBOomz438RgQoKhA-1; Fri, 09 Oct 2020 12:02:07 -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 798351007B00 for ; Fri, 9 Oct 2020 16:02:06 +0000 (UTC) Received: from localhost (ovpn-119-102.rdu2.redhat.com [10.10.119.102]) by smtp.corp.redhat.com (Postfix) with ESMTP id 46E157665B; Fri, 9 Oct 2020 16:02:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1602259329; 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=V6ZeMhapG7XRhWAt5UK9AHGNMYXnP5KbDP4eNV88Xtw=; b=MdH67BdvSL4hmpgVwvkmeuBWeHNWB8of4fH0XYL6L8s70wsGPzolncVCXn5x3BLV2zf5wW 88UOMAiBW2A4OWGkbV/uCPQ9FkkltxYhRpRwDk2DtegDCj8/Yss59wgcUPxRKeJLxZYEmH gmS5YKkWGvztMKHy1njKYuAWNx05kps= X-MC-Unique: 330oxqEBOomz438RgQoKhA-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 11/12] [RFC] qom: Property lock mechanism Date: Fri, 9 Oct 2020 12:01:21 -0400 Message-Id: <20201009160122.1662082-12-ehabkost@redhat.com> In-Reply-To: <20201009160122.1662082-1-ehabkost@redhat.com> References: <20201009160122.1662082-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/09 02:34:37 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: Kevin Wolf , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Markus Armbruster , Paolo Bonzini , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , John Snow Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Add a mechanism to allow QOM types to prevent writable instance properties from being registered. This will be used by types that expose all QOM properties in user-visible interfaces like object-add and device_add, to ensure our external interfaces are not affected by dynamic QOM properties. Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- include/qom/object.h | 17 +++++++++ qom/object.c | 28 ++++++++++++++ tests/test-qdev-global-props.c | 70 ++++++++++++++++++++++++++++++++++ 3 files changed, 115 insertions(+) diff --git a/include/qom/object.h b/include/qom/object.h index 1634294e4f..a124cf897d 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -137,6 +137,8 @@ struct ObjectClass ObjectUnparent *unparent; =20 GHashTable *properties; + /* instance properties locked. See object_class_lock_properties() */ + bool properties_locked; }; =20 /** @@ -1867,6 +1869,21 @@ void object_property_set_description(Object *obj, co= nst char *name, void object_class_property_set_description(ObjectClass *klass, const char = *name, const char *description); =20 +/** + * object_class_lock_properties: + * @oc: the object class to have properties locked + * + * Prevent all subtypes of @oc from having writeable instance + * properties. If @oc is an interface type, this also affects all + * classes implementing the interface. + * + * This can be used by QOM types that have all QOM properties + * exposed to the external world (e.g. #TYPE_USER_CREATABLE) to + * ensure all user-writable properties are introspectable at the + * class level. + */ +void object_class_lock_properties(ObjectClass *oc); + /** * object_child_foreach: * @obj: the object whose children will be navigated diff --git a/qom/object.c b/qom/object.c index bb32f5d3ad..73f27b8b7e 100644 --- a/qom/object.c +++ b/qom/object.c @@ -498,6 +498,27 @@ static void object_class_property_init_all(Object *obj) } } =20 +void object_class_lock_properties(ObjectClass *oc) +{ + oc->properties_locked =3D true; +} + +static bool object_class_properties_locked(ObjectClass *oc) +{ + GSList *i =3D NULL; + + if (oc->properties_locked) { + return true; + } + for (i =3D oc->interfaces; i; i =3D i->next) { + ObjectClass *ic =3D i->data; + if (ic->properties_locked) { + return true; + } + } + return false; +} + static void object_initialize_with_type(Object *obj, size_t size, TypeImpl= *type) { type_initialize(type); @@ -1192,8 +1213,15 @@ object_property_try_add(Object *obj, const char *nam= e, const char *type, void *opaque, Error **errp) { ObjectProperty *prop; + ObjectClass *oc =3D object_get_class(obj); size_t name_len =3D strlen(name); =20 + if (set && object_class_properties_locked(oc)) { + error_setg(errp, "writable instance property not allowed for type = %s", + object_class_get_name(oc)); + return NULL; + } + if (name_len >=3D 3 && !memcmp(name + name_len - 3, "[*]", 4)) { int i; ObjectProperty *ret; diff --git a/tests/test-qdev-global-props.c b/tests/test-qdev-global-props.c index c8862cac5f..590c916c4b 100644 --- a/tests/test-qdev-global-props.c +++ b/tests/test-qdev-global-props.c @@ -58,6 +58,9 @@ static void static_prop_class_init(ObjectClass *oc, void = *data) =20 dc->realize =3D NULL; device_class_set_props(dc, static_props); + + /* test_proplist_lock() will check if property locking works */ + object_class_lock_properties(oc); } =20 static const TypeInfo static_prop_type =3D { @@ -213,6 +216,69 @@ static const TypeInfo nondevice_type =3D { .parent =3D TYPE_OBJECT, }; =20 +static void locked_interface_class_base_init(ObjectClass *klass, void *dat= a) +{ + object_class_lock_properties(klass); +} + +#define TYPE_LOCKED_INTERFACE "locked-interface" +static const TypeInfo locked_interface_type =3D { + .name =3D TYPE_LOCKED_INTERFACE, + .parent =3D TYPE_INTERFACE, + .class_base_init =3D locked_interface_class_base_init, +}; + +#define TYPE_LOCKED_BY_INTERFACE "locked-by-interface" +static const TypeInfo locked_by_interface_type =3D { + .name =3D TYPE_LOCKED_BY_INTERFACE, + .parent =3D TYPE_OBJECT, + .interfaces =3D (InterfaceInfo[]) { + { TYPE_LOCKED_INTERFACE }, + { }, + }, +}; + +/* Make sure QOM property locking works as expected */ +static void test_proplist_lock(void) +{ + g_autoptr(Object) dynamic_obj =3D object_new(TYPE_DYNAMIC_PROPS); + g_autoptr(Object) static_obj =3D object_new(TYPE_STATIC_PROPS); + g_autoptr(Object) locked =3D object_new(TYPE_LOCKED_BY_INTERFACE); + Error *err =3D NULL; + + /* read-only property: should always work */ + object_property_try_add(dynamic_obj, "dynamic-prop-ro", "uint32", + prop1_accessor, NULL, + NULL, NULL, &error_abort); + object_property_try_add(static_obj, "dynamic-prop-ro", "uint32", + prop1_accessor, NULL, + NULL, NULL, &error_abort); + object_property_try_add(locked, "dynamic-prop-ro", "uint32", + prop1_accessor, NULL, + NULL, NULL, &error_abort); + + + /* read-write property: */ + + /* TYPE_DYNAMIC_PROPS is not locked */ + object_property_try_add(dynamic_obj, "dynamic-prop-rw", "uint32", + prop1_accessor, prop1_accessor, + NULL, NULL, &error_abort); + + /* TYPE_STATIC_PROPS is locked */ + object_property_try_add(static_obj, "dynamic-prop-rw", "uint32", + prop1_accessor, prop1_accessor, + NULL, NULL, &err); + error_free_or_abort(&err); + + /* TYPE_LOCKED_BY_INTERFACE is locked by interface type */ + object_property_try_add(locked, "dynamic-prop-rw", "uint32", + prop1_accessor, prop1_accessor, + NULL, NULL, &err); + error_free_or_abort(&err); +} + + /* Test setting of dynamic properties using global properties */ static void test_dynamic_globalprop_subprocess(void) { @@ -294,6 +360,10 @@ int main(int argc, char **argv) type_register_static(&hotplug_type); type_register_static(&nohotplug_type); type_register_static(&nondevice_type); + type_register_static(&locked_interface_type); + type_register_static(&locked_by_interface_type); + + g_test_add_func("/qdev/properties/locking", test_proplist_lock); =20 g_test_add_func("/qdev/properties/static/default/subprocess", test_static_prop_subprocess); --=20 2.26.2 From nobody Sun Nov 16 23:03:59 2025 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=1602260014; cv=none; d=zohomail.com; s=zohoarc; b=VF/FNne7zD+Eo4jjGeYm+xbKGtn1z4LHtoTRsv++Af6Zjof05FbA9ciX372DXFqyPsINWeWE3OPvazTlQntqdDOyd1p2zATk84+Mo/1FxO2xs09CBGinw/dNIjFwkPN2E2y0Xt0vVoN58b/yZR9Y5IhTHWrmcH2AiZ3pud4gUok= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602260014; 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=3K8tXU6aq8VGFAZW5fsFeYLPxQQLh3GInrtH5l6YUng=; b=IlCppk13GcaR4+UmB1BzjrZdIzOC2NP6iP5ldkPl58zeokR2Ju928ymkK0L/TM+AOAjW9zTPDFRKRg8jS7ukoK90K8IkpK3VjJ7UBN0bP+5zlIYY2B6NiOhBgHBV+x79YRvDphwt/+rDK4+skBuyK87rJE5+gt/iiT7/oNIydEA= 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 1602260014609419.00928467854135; Fri, 9 Oct 2020 09:13:34 -0700 (PDT) Received: from localhost ([::1]:48634 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kQv1R-0008K0-3n for importer@patchew.org; Fri, 09 Oct 2020 12:13:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59264) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kQuqe-000407-Si for qemu-devel@nongnu.org; Fri, 09 Oct 2020 12:02:26 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:60878) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kQuqX-0001E0-8E for qemu-devel@nongnu.org; Fri, 09 Oct 2020 12:02:21 -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-234-N57T0fw8MyKAWd0hLA-Seg-1; Fri, 09 Oct 2020 12:02:11 -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 C6EA518A073A for ; Fri, 9 Oct 2020 16:02:10 +0000 (UTC) Received: from localhost (ovpn-119-102.rdu2.redhat.com [10.10.119.102]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9AA2460BE2; Fri, 9 Oct 2020 16:02:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1602259334; 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=3K8tXU6aq8VGFAZW5fsFeYLPxQQLh3GInrtH5l6YUng=; b=bEF6P2RwoiK6L52FliD1MYg7EEaX/SV1jAbY7Wyv5g9LytYkHJxi+L5lvQ3qDzYoFpxBO2 WEo68/lbhw/d7t70gA+AMZ9enSUjXXLaN17K68GfHWGNulWLr1OeNv2FF0/nOcBnaBnahS Md0KBaUSJ8nuutX9Lgt0OGWvINyN6uY= X-MC-Unique: N57T0fw8MyKAWd0hLA-Seg-1 From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 12/12] [RFC] qom: Lock properties of all TYPE_USER_CREATABLE types Date: Fri, 9 Oct 2020 12:01:22 -0400 Message-Id: <20201009160122.1662082-13-ehabkost@redhat.com> In-Reply-To: <20201009160122.1662082-1-ehabkost@redhat.com> References: <20201009160122.1662082-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/09 02:34:40 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: Kevin Wolf , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Markus Armbruster , Paolo Bonzini , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , John Snow Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) TYPE_USER_CREATABLE types expose all QOM properties through `-object` and `object-add`. Lock the properties on TYPE_USER_CREATABLE so we will never add new writable instance properties to those types. Signed-off-by: Eduardo Habkost --- Cc: Paolo Bonzini Cc: "Daniel P. Berrang=C3=A9" Cc: Eduardo Habkost Cc: qemu-devel@nongnu.org --- qom/object_interfaces.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/qom/object_interfaces.c b/qom/object_interfaces.c index e8e1523960..40123d4b50 100644 --- a/qom/object_interfaces.c +++ b/qom/object_interfaces.c @@ -293,6 +293,16 @@ bool user_creatable_del(const char *id, Error **errp) return true; } =20 +static void user_creatable_class_init(ObjectClass *klass, void *data) +{ + /* + * User-creatable QOM types expose all writable QOM properties + * to the external world through `-object` and `object-add`, + * so all writable properties must be registered at class level. + */ + object_class_lock_properties(klass); +} + void user_creatable_cleanup(void) { object_unparent(object_get_objects_root()); @@ -304,6 +314,7 @@ static void register_types(void) .name =3D TYPE_USER_CREATABLE, .parent =3D TYPE_INTERFACE, .class_size =3D sizeof(UserCreatableClass), + .class_init =3D user_creatable_class_init, }; =20 type_register_static(&uc_interface_info); --=20 2.26.2