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: 1379477 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=BWdmkOxR; dkim-atps=neutral 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 ozlabs.org (Postfix) with ESMTPS id 4C7Hr14BBVz9sTD for ; Sat, 10 Oct 2020 06:16:48 +1100 (AEDT) Received: from localhost ([::1]:53510 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kQxsj-0000O2-I6 for incoming@patchwork.ozlabs.org; Fri, 09 Oct 2020 15:16:45 -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?= =?utf-8?q?=C3=A9?= , Markus Armbruster , Aleksandar Markovic , =?utf-8?q?Marc-Andr?= =?utf-8?q?=C3=A9_Lureau?= , Paolo Bonzini , Aurelien Jarno Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.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: 1379479 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=fTlwzfFk; dkim-atps=neutral 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 ozlabs.org (Postfix) with ESMTPS id 4C7Hr32NgPz9sSn for ; Sat, 10 Oct 2020 06:16:51 +1100 (AEDT) Received: from localhost ([::1]:53632 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kQxsm-0000Ri-IW for incoming@patchwork.ozlabs.org; Fri, 09 Oct 2020 15:16:48 -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?= =?utf-8?q?=C3=A9?= , Markus Armbruster , Aleksandar Markovic , =?utf-8?q?Marc-Andr?= =?utf-8?q?=C3=A9_Lureau?= , Paolo Bonzini , Aurelien Jarno Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.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: 1379480 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=VHaGURhG; dkim-atps=neutral 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 ozlabs.org (Postfix) with ESMTPS id 4C7HtW2ZcNz9sSn for ; Sat, 10 Oct 2020 06:18:59 +1100 (AEDT) Received: from localhost ([::1]:59700 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kQxuq-000350-S6 for incoming@patchwork.ozlabs.org; Fri, 09 Oct 2020 15:18:56 -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?= =?utf-8?q?=C3=A9?= , Markus Armbruster , Aleksandar Markovic , =?utf-8?q?Marc-Andr?= =?utf-8?q?=C3=A9_Lureau?= , Paolo Bonzini , Aurelien Jarno Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.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); }