From patchwork Fri Oct 9 19:15:18 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eduardo Habkost X-Patchwork-Id: 271687 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 463DFC433DF for ; Fri, 9 Oct 2020 19:17:34 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id AA1252227E for ; Fri, 9 Oct 2020 19:17:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="BWdmkOxR" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AA1252227E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:56428 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kQxtU-0001gH-HR for qemu-devel@archiver.kernel.org; Fri, 09 Oct 2020 15:17:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44196) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kQxri-0000Mc-Nf for qemu-devel@nongnu.org; Fri, 09 Oct 2020 15:15:42 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:27362) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kQxrh-0000PC-4t for qemu-devel@nongnu.org; Fri, 09 Oct 2020 15:15:42 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1602270939; 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=u1ignAfKpKJCiV6u91zNVKq8+uBU6mixfWejHGHxevs=; b=BWdmkOxRHUjjiltuuzNxmvM3iQmZvWoyn+oiSgGd7p4uNaSYViF0ApOxLC/hM5Lt7ZJNdF 40KOqz1vJGlcRjazU35xSWVIOG7KNB7/VEEq1olDEtVV+sUSlqF3TwrPToqx+WI3AfCjgh sFsdk81Cs/QG9tXCxHg+Y2LC7e14VT4= 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-368-2F4pFr1XODeEkK-zld0x1A-1; Fri, 09 Oct 2020 15:15:35 -0400 X-MC-Unique: 2F4pFr1XODeEkK-zld0x1A-1 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 6CF5318A8230; Fri, 9 Oct 2020 19:15:34 +0000 (UTC) Received: from localhost (ovpn-119-102.rdu2.redhat.com [10.10.119.102]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9B7D360BFA; Fri, 9 Oct 2020 19:15:28 +0000 (UTC) From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 1/3] acpi: Don't pass const pointers to object_property_add_uint*_ptr() Date: Fri, 9 Oct 2020 15:15:18 -0400 Message-Id: <20201009191520.1799419-2-ehabkost@redhat.com> In-Reply-To: <20201009191520.1799419-1-ehabkost@redhat.com> References: <20201009191520.1799419-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 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: =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Eduardo Habkost , Igor Mammedov , "Michael S. Tsirkin" , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Markus Armbruster , Aleksandar Markovic , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , Paolo Bonzini , Aurelien Jarno Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" object_property_add_uint*_ptr() will be changed to get non-const pointers. Adapt the ACPI code to that. Signed-off-by: Eduardo Habkost --- hw/acpi/ich9.c | 2 +- hw/acpi/piix4.c | 10 +++++----- hw/isa/lpc_ich9.c | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/hw/acpi/ich9.c b/hw/acpi/ich9.c index 95cb0f935b..9bb8d1b155 100644 --- a/hw/acpi/ich9.c +++ b/hw/acpi/ich9.c @@ -371,7 +371,7 @@ static void ich9_pm_set_enable_tco(Object *obj, bool value, Error **errp) void ich9_pm_add_properties(Object *obj, ICH9LPCPMRegs *pm) { - static const uint32_t gpe0_len = ICH9_PMIO_GPE0_LEN; + static uint32_t gpe0_len = ICH9_PMIO_GPE0_LEN; pm->acpi_memory_hotplug.is_enabled = true; pm->cpu_hotplug_legacy = true; pm->disable_s3 = 0; diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c index 894d357f8c..1e8a15676d 100644 --- a/hw/acpi/piix4.c +++ b/hw/acpi/piix4.c @@ -439,11 +439,11 @@ static void piix4_pm_machine_ready(Notifier *n, void *opaque) static void piix4_pm_add_propeties(PIIX4PMState *s) { - static const uint8_t acpi_enable_cmd = ACPI_ENABLE; - static const uint8_t acpi_disable_cmd = ACPI_DISABLE; - static const uint32_t gpe0_blk = GPE_BASE; - static const uint32_t gpe0_blk_len = GPE_LEN; - static const uint16_t sci_int = 9; + static uint8_t acpi_enable_cmd = ACPI_ENABLE; + static uint8_t acpi_disable_cmd = ACPI_DISABLE; + static uint32_t gpe0_blk = GPE_BASE; + static uint32_t gpe0_blk_len = GPE_LEN; + static uint16_t sci_int = 9; object_property_add_uint8_ptr(OBJECT(s), ACPI_PM_PROP_ACPI_ENABLE_CMD, &acpi_enable_cmd, OBJ_PROP_FLAG_READ); diff --git a/hw/isa/lpc_ich9.c b/hw/isa/lpc_ich9.c index 04e5323140..b9dc01f654 100644 --- a/hw/isa/lpc_ich9.c +++ b/hw/isa/lpc_ich9.c @@ -638,8 +638,8 @@ static void ich9_lpc_initfn(Object *obj) { ICH9LPCState *lpc = ICH9_LPC_DEVICE(obj); - static const uint8_t acpi_enable_cmd = ICH9_APM_ACPI_ENABLE; - static const uint8_t acpi_disable_cmd = ICH9_APM_ACPI_DISABLE; + static uint8_t acpi_enable_cmd = ICH9_APM_ACPI_ENABLE; + static uint8_t acpi_disable_cmd = ICH9_APM_ACPI_DISABLE; object_property_add_uint8_ptr(obj, ACPI_PM_PROP_SCI_INT, &lpc->sci_gsi, OBJ_PROP_FLAG_READ); From patchwork Fri Oct 9 19:15:19 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eduardo Habkost X-Patchwork-Id: 303271 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id F1131C43467 for ; Fri, 9 Oct 2020 19:17:35 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 5B7332227E for ; Fri, 9 Oct 2020 19:17:35 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="fTlwzfFk" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5B7332227E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:56544 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kQxtW-0001j8-50 for qemu-devel@archiver.kernel.org; Fri, 09 Oct 2020 15:17:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44208) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kQxrn-0000OR-2b for qemu-devel@nongnu.org; Fri, 09 Oct 2020 15:15:47 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:31904) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kQxrl-0000PT-BA for qemu-devel@nongnu.org; Fri, 09 Oct 2020 15:15:46 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1602270944; 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=APMCuA+kGZhAUSQKhWHMtsGZmjMgpPqNQ7KZLQNpwwI=; b=fTlwzfFkFi4k+OSRf8gfzWKKTMQhK8OLb44HIx2pNfSDnAweQfMvDjEjlsDSgxlQNjpn/O yLtGeCG9GyqWG9RCsP4lP/4DZyKdRLDr0Uy0UJjLVqLJz/AEftnkNlBELOIvPi8QZ2tuT3 Eqjg9n+5EjrAShucSLlk3WEhxA2I/1Q= 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-214-SNIYI9pHPjKWbOBaeLk78Q-1; Fri, 09 Oct 2020 15:15:42 -0400 X-MC-Unique: SNIYI9pHPjKWbOBaeLk78Q-1 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 6BA9F1084CA1; Fri, 9 Oct 2020 19:15: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 7C97D1A885; Fri, 9 Oct 2020 19:15:35 +0000 (UTC) From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 2/3] qom: Make object_property_add_uint*_ptr() get non-const pointers Date: Fri, 9 Oct 2020 15:15:19 -0400 Message-Id: <20201009191520.1799419-3-ehabkost@redhat.com> In-Reply-To: <20201009191520.1799419-1-ehabkost@redhat.com> References: <20201009191520.1799419-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 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: =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Eduardo Habkost , Igor Mammedov , "Michael S. Tsirkin" , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Markus Armbruster , Aleksandar Markovic , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , Paolo Bonzini , Aurelien Jarno Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Currently, the getter/setter functions are awkward because the visit_type_uint*() functions provided by QAPI will always write a value to the provided pointer. Getting a non-const pointer will allow us to simplify a lot of the getters/setters logic. Signed-off-by: Eduardo Habkost --- include/qom/object.h | 8 ++++---- qom/object.c | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/include/qom/object.h b/include/qom/object.h index a124cf897d..1441807be6 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -1744,7 +1744,7 @@ typedef enum { * Returns: The newly added property on success, or %NULL on failure. */ ObjectProperty *object_property_add_uint8_ptr(Object *obj, const char *name, - const uint8_t *v, + uint8_t *v, ObjectPropertyFlags flags); ObjectProperty *object_class_property_add_uint8_ptr(ObjectClass *klass, @@ -1765,7 +1765,7 @@ ObjectProperty *object_class_property_add_uint8_ptr(ObjectClass *klass, * Returns: The newly added property on success, or %NULL on failure. */ ObjectProperty *object_property_add_uint16_ptr(Object *obj, const char *name, - const uint16_t *v, + uint16_t *v, ObjectPropertyFlags flags); ObjectProperty *object_class_property_add_uint16_ptr(ObjectClass *klass, @@ -1786,7 +1786,7 @@ ObjectProperty *object_class_property_add_uint16_ptr(ObjectClass *klass, * Returns: The newly added property on success, or %NULL on failure. */ ObjectProperty *object_property_add_uint32_ptr(Object *obj, const char *name, - const uint32_t *v, + uint32_t *v, ObjectPropertyFlags flags); ObjectProperty *object_class_property_add_uint32_ptr(ObjectClass *klass, @@ -1807,7 +1807,7 @@ ObjectProperty *object_class_property_add_uint32_ptr(ObjectClass *klass, * Returns: The newly added property on success, or %NULL on failure. */ ObjectProperty *object_property_add_uint64_ptr(Object *obj, const char *name, - const uint64_t *v, + uint64_t *v, ObjectPropertyFlags flags); ObjectProperty *object_class_property_add_uint64_ptr(ObjectClass *klass, diff --git a/qom/object.c b/qom/object.c index 73f27b8b7e..6b4dfc279a 100644 --- a/qom/object.c +++ b/qom/object.c @@ -2623,7 +2623,7 @@ object_class_property_add_uint_ptr(ObjectClass *oc, const char *name, ObjectProperty * object_property_add_uint8_ptr(Object *obj, const char *name, - const uint8_t *v, + uint8_t *v, ObjectPropertyFlags flags) { return object_property_add_uint_ptr(obj, name, "uint8", @@ -2646,7 +2646,7 @@ object_class_property_add_uint8_ptr(ObjectClass *klass, const char *name, ObjectProperty * object_property_add_uint16_ptr(Object *obj, const char *name, - const uint16_t *v, + uint16_t *v, ObjectPropertyFlags flags) { return object_property_add_uint_ptr(obj, name, "uint16", @@ -2669,7 +2669,7 @@ object_class_property_add_uint16_ptr(ObjectClass *klass, const char *name, ObjectProperty * object_property_add_uint32_ptr(Object *obj, const char *name, - const uint32_t *v, + uint32_t *v, ObjectPropertyFlags flags) { return object_property_add_uint_ptr(obj, name, "uint32", @@ -2692,7 +2692,7 @@ object_class_property_add_uint32_ptr(ObjectClass *klass, const char *name, ObjectProperty * object_property_add_uint64_ptr(Object *obj, const char *name, - const uint64_t *v, + uint64_t *v, ObjectPropertyFlags flags) { return object_property_add_uint_ptr(obj, name, "uint64", From patchwork Fri Oct 9 19:15:20 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eduardo Habkost X-Patchwork-Id: 271686 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9F623C433E7 for ; Fri, 9 Oct 2020 19:19:23 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 095132227E for ; Fri, 9 Oct 2020 19:19:22 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="VHaGURhG" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 095132227E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:60666 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kQxvG-0003Vc-1Z for qemu-devel@archiver.kernel.org; Fri, 09 Oct 2020 15:19:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44220) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kQxrt-0000bV-SS for qemu-devel@nongnu.org; Fri, 09 Oct 2020 15:15:53 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:31392) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kQxrr-0000S8-SC for qemu-devel@nongnu.org; Fri, 09 Oct 2020 15:15:53 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1602270951; 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=ogH/FuOlxStCUd7+LcfJbj3FDvyHTMFFmUxuDa2v9/E=; b=VHaGURhG9ct8JU6LDzAAjNbqJsGC0k5JuxJQA3MaY8BiHlpw6EfsVZv0UJhUdHzPEDU1Xt +eX3jXHAlX+OkkpcZl24wcqwpmf3Lv72AL/MclAyc3NYi8tyG9wRcRVpwTs43CnUsEMZOH laGP4mTpYD7RhpgcN2c/kWA3kw3ujN0= 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-312-jM3NiHPtPMWWS0LmpjGjUQ-1; Fri, 09 Oct 2020 15:15:49 -0400 X-MC-Unique: jM3NiHPtPMWWS0LmpjGjUQ-1 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 2216C80403A; Fri, 9 Oct 2020 19:15:48 +0000 (UTC) Received: from localhost (ovpn-119-102.rdu2.redhat.com [10.10.119.102]) by smtp.corp.redhat.com (Postfix) with ESMTP id 531AD5C1BB; Fri, 9 Oct 2020 19:15:42 +0000 (UTC) From: Eduardo Habkost To: qemu-devel@nongnu.org Subject: [PATCH 3/3] qom: Simplify and merge pointer property getters/setters Date: Fri, 9 Oct 2020 15:15:20 -0400 Message-Id: <20201009191520.1799419-4-ehabkost@redhat.com> In-Reply-To: <20201009191520.1799419-1-ehabkost@redhat.com> References: <20201009191520.1799419-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 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: =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Eduardo Habkost , Igor Mammedov , "Michael S. Tsirkin" , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Markus Armbruster , Aleksandar Markovic , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , Paolo Bonzini , Aurelien Jarno Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Both the property getter and setter for pointer properties can simply call the visitor functions directly, instead of making extra copies and requiring additional logic. Remove the extra copying logic, and merge the getter and setter functions in object_visit_uint*_ptr() accessors. Signed-off-by: Eduardo Habkost --- qom/object.c | 114 ++++++++++----------------------------------------- 1 file changed, 22 insertions(+), 92 deletions(-) diff --git a/qom/object.c b/qom/object.c index 6b4dfc279a..3b343fd118 100644 --- a/qom/object.c +++ b/qom/object.c @@ -2496,119 +2496,57 @@ static void *pointer_property_get_ptr(Object *obj, PointerProperty *prop) } } -static void property_get_uint8_ptr(Object *obj, Visitor *v, const char *name, +static void property_visit_uint8_ptr(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { PointerProperty *prop = opaque; uint8_t *field = pointer_property_get_ptr(obj, prop); - uint8_t value = *field; - visit_type_uint8(v, name, &value, errp); + visit_type_uint8(v, name, field, errp); } -static void property_set_uint8_ptr(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - PointerProperty *prop = opaque; - uint8_t *field = pointer_property_get_ptr(obj, prop); - uint8_t value; - - if (!visit_type_uint8(v, name, &value, errp)) { - return; - } - - *field = value; -} - -static void property_get_uint16_ptr(Object *obj, Visitor *v, const char *name, +static void property_visit_uint16_ptr(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { PointerProperty *prop = opaque; uint16_t *field = pointer_property_get_ptr(obj, prop); - uint16_t value = *field; - visit_type_uint16(v, name, &value, errp); -} - -static void property_set_uint16_ptr(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - PointerProperty *prop = opaque; - uint16_t *field = pointer_property_get_ptr(obj, prop); - uint16_t value; - - if (!visit_type_uint16(v, name, &value, errp)) { - return; - } - - *field = value; + visit_type_uint16(v, name, field, errp); } -static void property_get_uint32_ptr(Object *obj, Visitor *v, const char *name, +static void property_visit_uint32_ptr(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { PointerProperty *prop = opaque; uint32_t *field = pointer_property_get_ptr(obj, prop); - uint32_t value = *field; - visit_type_uint32(v, name, &value, errp); + visit_type_uint32(v, name, field, errp); } -static void property_set_uint32_ptr(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - PointerProperty *prop = opaque; - uint32_t *field = pointer_property_get_ptr(obj, prop); - uint32_t value; - - if (!visit_type_uint32(v, name, &value, errp)) { - return; - } - - *field = value; -} - -static void property_get_uint64_ptr(Object *obj, Visitor *v, const char *name, +static void property_visit_uint64_ptr(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { PointerProperty *prop = opaque; uint64_t *field = pointer_property_get_ptr(obj, prop); - uint64_t value = *field; - visit_type_uint64(v, name, &value, errp); -} - -static void property_set_uint64_ptr(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - PointerProperty *prop = opaque; - uint64_t *field = pointer_property_get_ptr(obj, prop); - uint64_t value; - - if (!visit_type_uint64(v, name, &value, errp)) { - return; - } - - *field = value; + visit_type_uint64(v, name, field, errp); } static ObjectProperty * object_property_add_uint_ptr(Object *obj, const char *name, const char *type, - ObjectPropertyAccessor getter, - ObjectPropertyAccessor setter, + ObjectPropertyAccessor accessor, ObjectPropertyFlags flags, void *ptr) { PointerProperty *prop = g_new0(PointerProperty, 1); prop->ptr = ptr; return object_property_add(obj, name, type, - (flags & OBJ_PROP_FLAG_READ) ? getter : NULL, - (flags & OBJ_PROP_FLAG_WRITE) ? setter : NULL, + (flags & OBJ_PROP_FLAG_READ) ? accessor : NULL, + (flags & OBJ_PROP_FLAG_WRITE) ? accessor : NULL, NULL, (void *)prop); } static ObjectProperty * object_class_property_add_uint_ptr(ObjectClass *oc, const char *name, const char *type, - ObjectPropertyAccessor getter, - ObjectPropertyAccessor setter, + ObjectPropertyAccessor accessor, ObjectPropertyFlags flags, ptrdiff_t offset) { @@ -2616,8 +2554,8 @@ object_class_property_add_uint_ptr(ObjectClass *oc, const char *name, prop->is_offset = true; prop->offset = offset; return object_class_property_add(oc, name, type, - (flags & OBJ_PROP_FLAG_READ) ? getter : NULL, - (flags & OBJ_PROP_FLAG_WRITE) ? setter : NULL, + (flags & OBJ_PROP_FLAG_READ) ? accessor : NULL, + (flags & OBJ_PROP_FLAG_WRITE) ? accessor : NULL, NULL, (void *)prop); } @@ -2627,8 +2565,7 @@ object_property_add_uint8_ptr(Object *obj, const char *name, ObjectPropertyFlags flags) { return object_property_add_uint_ptr(obj, name, "uint8", - property_get_uint8_ptr, - property_set_uint8_ptr, + property_visit_uint8_ptr, flags, (void *)v); } @@ -2639,8 +2576,7 @@ object_class_property_add_uint8_ptr(ObjectClass *klass, const char *name, ObjectPropertyFlags flags) { return object_class_property_add_uint_ptr(klass, name, "uint8", - property_get_uint8_ptr, - property_set_uint8_ptr, + property_visit_uint8_ptr, flags, offset); } @@ -2650,8 +2586,7 @@ object_property_add_uint16_ptr(Object *obj, const char *name, ObjectPropertyFlags flags) { return object_property_add_uint_ptr(obj, name, "uint16", - property_get_uint16_ptr, - property_set_uint16_ptr, + property_visit_uint16_ptr, flags, (void *)v); } @@ -2662,8 +2597,7 @@ object_class_property_add_uint16_ptr(ObjectClass *klass, const char *name, ObjectPropertyFlags flags) { return object_class_property_add_uint_ptr(klass, name, "uint16", - property_get_uint16_ptr, - property_set_uint16_ptr, + property_visit_uint16_ptr, flags, offset); } @@ -2673,8 +2607,7 @@ object_property_add_uint32_ptr(Object *obj, const char *name, ObjectPropertyFlags flags) { return object_property_add_uint_ptr(obj, name, "uint32", - property_get_uint32_ptr, - property_set_uint32_ptr, + property_visit_uint32_ptr, flags, (void *)v); } @@ -2685,8 +2618,7 @@ object_class_property_add_uint32_ptr(ObjectClass *klass, const char *name, ObjectPropertyFlags flags) { return object_class_property_add_uint_ptr(klass, name, "uint32", - property_get_uint32_ptr, - property_set_uint32_ptr, + property_visit_uint32_ptr, flags, offset); } @@ -2696,8 +2628,7 @@ object_property_add_uint64_ptr(Object *obj, const char *name, ObjectPropertyFlags flags) { return object_property_add_uint_ptr(obj, name, "uint64", - property_get_uint64_ptr, - property_set_uint64_ptr, + property_visit_uint64_ptr, flags, (void *)v); } @@ -2708,8 +2639,7 @@ object_class_property_add_uint64_ptr(ObjectClass *klass, const char *name, ObjectPropertyFlags flags) { return object_class_property_add_uint_ptr(klass, name, "uint64", - property_get_uint64_ptr, - property_set_uint64_ptr, + property_visit_uint64_ptr, flags, offset); }