From patchwork Mon Nov 25 15:36:36 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Felipe Franciosi X-Patchwork-Id: 1200469 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=pass (p=none dis=none) header.from=nutanix.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=nutanix.com header.i=@nutanix.com header.b="vbftO3TT"; 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 47MB8122bLz9sPJ for ; Tue, 26 Nov 2019 02:40:49 +1100 (AEDT) Received: from localhost ([::1]:45458 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iZGTm-0007jM-UR for incoming@patchwork.ozlabs.org; Mon, 25 Nov 2019 10:40:46 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:33295) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iZGPq-0004PQ-0a for qemu-devel@nongnu.org; Mon, 25 Nov 2019 10:36:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iZGPn-0007oz-Sn for qemu-devel@nongnu.org; Mon, 25 Nov 2019 10:36:41 -0500 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]:6750) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iZGPn-0007oY-Lc for qemu-devel@nongnu.org; Mon, 25 Nov 2019 10:36:39 -0500 Received: from pps.filterd (m0127842.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id xAPFVeZl009362; Mon, 25 Nov 2019 07:36:38 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=proofpoint20171006; bh=d52H99FygMBlQsaOLSfVBoDdwgiSasHyNJIWL0HMe2g=; b=vbftO3TTxH/Ngee8y/LjcQSu0AC7mcdCsSKwmFUVHCAvrWphZBQmh/dGq8rVx0W7AU/7 eZGJ2IkYBy7Y5mWTyxy/21ijMjEkgLE4j4CGXCPIyaq+xakHe2DfHkAqrZUGyuVZ073v of3UiPbv77z4pbiHeUCmHYeYIc2lcaJs8FNu8RwdwOePYvGZ6n4eY4GvYGpLpX9Ds9ny x++TWEra6CvQyNYPNZyUM8/whO8uwLdgz4fMoD5ALeWsQjlGKiE4CVE15iPwRoh6t3i4 Xe38UO/aabjyL8q1TdKosazFyTj0Chs3QeuhM9V6e2eDyQ0+pybdrZEsVYx8K6bdfw98 nw== Received: from nam02-sn1-obe.outbound.protection.outlook.com (mail-sn1nam02lp2059.outbound.protection.outlook.com [104.47.36.59]) by mx0b-002c1b01.pphosted.com with ESMTP id 2wf4yn3unp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 25 Nov 2019 07:36:37 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hl9iHKMZCEnaYfEn3qHzcFZ6uiFKyzVVO27hydlR3jPAAR/eFGFvZ9sXIFESUWd5HbKTzBFeanUbMrgq56NQsEfMmo569tDOKSsWnwPzQnmZa/y/1cGhWb29DskhUBM5JN4ls3tziuDpDK0XJFJo7DTFqpibaaT7xrcotEXlCQajpKLY3oZlr42fg+lBEyJ3UkrXp2ga4t0e7qcTI5X7i2osH7K819zEqLQ4n91YaGvHDFnu5hqQc7sl6/e1LppF1NrJRy6W4wE5BHc+fdQSswuDIngn1GKjVSFAmz7yc3h6o4IT98vCGDd4IzILnR7DYPD66tAVhjG07v/G7t8fJg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=d52H99FygMBlQsaOLSfVBoDdwgiSasHyNJIWL0HMe2g=; b=g4tTW41AJuBCJ5C3fLulx0cDTTMEZJmA5/y9/0okjBq18cJOR4CvVkUfimD/giX1mdBTSEdr9f7gyQ6zs5MXW9X1sMubsG08to06nGxV43HSssdzwTkyRbCYCQd5uX8Czl94k3mWT1F5RrtiHh4vjMDIx/v32d0z03kqG/zcPoZp+n+pTkV+E6P9lKyNzsu1gvCMuDRl4wkGOVSaWUvuHCUj9hmOPzuujzK71LN2C5U8wU3K77etabrmYlKh6d7FCuY+wYrTQSKqQoPaFPzJlriPhEmNYhli9AZpBXeNn9ErD0QDkHyqCBAUPje6f7APyCNsI5m6WonxvP3U06oUxw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none Received: from MWHPR02MB2656.namprd02.prod.outlook.com (10.168.206.142) by MWHPR02MB3183.namprd02.prod.outlook.com (10.164.133.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2474.19; Mon, 25 Nov 2019 15:36:36 +0000 Received: from MWHPR02MB2656.namprd02.prod.outlook.com ([fe80::f801:763d:e7fc:6bf]) by MWHPR02MB2656.namprd02.prod.outlook.com ([fe80::f801:763d:e7fc:6bf%7]) with mapi id 15.20.2474.023; Mon, 25 Nov 2019 15:36:36 +0000 From: Felipe Franciosi To: Eduardo Habkost , Markus Armbruster , Stefan Hajnoczi Subject: [PATCH 1/4] qom/object: enable setter for uint types Thread-Topic: [PATCH 1/4] qom/object: enable setter for uint types Thread-Index: AQHVo6YfczBLJ5MzqUmyLMkT1QxxYw== Date: Mon, 25 Nov 2019 15:36:36 +0000 Message-ID: <20191125153619.39893-2-felipe@nutanix.com> References: <20191125153619.39893-1-felipe@nutanix.com> In-Reply-To: <20191125153619.39893-1-felipe@nutanix.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: AM0PR02CA0087.eurprd02.prod.outlook.com (2603:10a6:208:154::28) To MWHPR02MB2656.namprd02.prod.outlook.com (2603:10b6:300:45::14) x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.20.1 x-originating-ip: [62.254.189.133] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 42bb2c3a-513f-486c-e061-08d771bd41b2 x-ms-traffictypediagnostic: MWHPR02MB3183: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-proofpoint-crosstenant: true x-ms-oob-tlc-oobclassifiers: OLM:249; x-forefront-prvs: 0232B30BBC x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(346002)(136003)(376002)(396003)(39860400002)(366004)(189003)(199004)(4326008)(6512007)(86362001)(1076003)(3846002)(6116002)(386003)(6506007)(7736002)(305945005)(6436002)(6486002)(478600001)(54906003)(26005)(102836004)(110136005)(2906002)(36756003)(25786009)(14454004)(316002)(446003)(99286004)(256004)(107886003)(66066001)(66446008)(64756008)(66556008)(66476007)(11346002)(2616005)(5660300002)(66946007)(186003)(76176011)(52116002)(50226002)(81166006)(81156014)(8676002)(71200400001)(30864003)(8936002)(71190400001)(64030200001); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR02MB3183; H:MWHPR02MB2656.namprd02.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: nutanix.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Cva3ee0yvt1laopGQ+XACHUYiu00Q8akBuCCP9tDelzYLGkGVMYIkYy0GXFI42VtSOCIXLbM6snV08XTybXnWpZmPzmhlZo6+w3ulh3h47MEuxfwAikZP/BFeXWxIflbXAY5nSqfsebdITb5qo2bAqXtyUmxFAICuPNcCnkNdRq7KOZvBz99vCohTEQxLzMGaL1vt+OwbfDSkut96Uokj6OIpFhT+r42XVdHZpyHoAVzLsOxql8wDr87jAGK91R5gUBH7S5fiPIPt/JXffX0LOrf5At8TjcFrNRTCdY73xt9xIm/BZDVxpOOkNkOV2IuY8IMdzlcsCrHE2MTOfPcqlEpVWH4PIhtgzor16a8Sx6d3OToWtpR+do17ih3qv+t5ViHor1mE/M4lVn6o/Er4XMnXr1UoVHk7hm+EDnt17OnlQbnoiZTTKWHerrcOVAq MIME-Version: 1.0 X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 42bb2c3a-513f-486c-e061-08d771bd41b2 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Nov 2019 15:36:36.3342 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Ej9B2IDWmn+fiV2O03OT5g7xPjvF6YBrFHktnl3a8kHnIXUdYyTQUOu1TPX16ePWAYLHunTj/6fQNoObTLhrJtqP+814KiX4yPliYHSf2pI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR02MB3183 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95, 18.0.572 definitions=2019-11-25_03:2019-11-21, 2019-11-25 signatures=0 X-Proofpoint-Spam-Reason: safe X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 148.163.155.12 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: "qemu-devel@nongnu.org" , Felipe Franciosi Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Traditionally, the uint-specific property helpers only offer getters. When adding object (or class) uint types, one must therefore use the generic property helper if a setter is needed. This enhances the uint-specific property helper APIs by adding a 'readonly' field and modifying all users of that API to set this parameter to true. If 'readonly' is false, though, the helper will add an automatic setter for the value. Signed-off-by: Felipe Franciosi --- hw/acpi/ich9.c | 4 +- hw/acpi/pcihp.c | 6 +- hw/acpi/piix4.c | 12 ++-- hw/isa/lpc_ich9.c | 4 +- hw/ppc/spapr_drc.c | 2 +- include/qom/object.h | 28 +++++--- qom/object.c | 152 ++++++++++++++++++++++++++++++++++++------- ui/console.c | 3 +- 8 files changed, 163 insertions(+), 48 deletions(-) diff --git a/hw/acpi/ich9.c b/hw/acpi/ich9.c index 2034dd749e..94dc5147ce 100644 --- a/hw/acpi/ich9.c +++ b/hw/acpi/ich9.c @@ -454,12 +454,12 @@ void ich9_pm_add_properties(Object *obj, ICH9LPCPMRegs *pm, Error **errp) pm->s4_val = 2; object_property_add_uint32_ptr(obj, ACPI_PM_PROP_PM_IO_BASE, - &pm->pm_io_base, errp); + &pm->pm_io_base, true, errp); object_property_add(obj, ACPI_PM_PROP_GPE0_BLK, "uint32", ich9_pm_get_gpe0_blk, NULL, NULL, pm, NULL); object_property_add_uint32_ptr(obj, ACPI_PM_PROP_GPE0_BLK_LEN, - &gpe0_len, errp); + &gpe0_len, true, errp); object_property_add_bool(obj, "memory-hotplug-support", ich9_pm_get_memory_hotplug_support, ich9_pm_set_memory_hotplug_support, diff --git a/hw/acpi/pcihp.c b/hw/acpi/pcihp.c index 8413348a33..70bc1408e6 100644 --- a/hw/acpi/pcihp.c +++ b/hw/acpi/pcihp.c @@ -80,7 +80,7 @@ static void *acpi_set_bsel(PCIBus *bus, void *opaque) *bus_bsel = (*bsel_alloc)++; object_property_add_uint32_ptr(OBJECT(bus), ACPI_PCIHP_PROP_BSEL, - bus_bsel, &error_abort); + bus_bsel, true, &error_abort); } return bsel_alloc; @@ -373,9 +373,9 @@ void acpi_pcihp_init(Object *owner, AcpiPciHpState *s, PCIBus *root_bus, memory_region_add_subregion(address_space_io, s->io_base, &s->io); object_property_add_uint16_ptr(owner, ACPI_PCIHP_IO_BASE_PROP, &s->io_base, - &error_abort); + true, &error_abort); object_property_add_uint16_ptr(owner, ACPI_PCIHP_IO_LEN_PROP, &s->io_len, - &error_abort); + true, &error_abort); } const VMStateDescription vmstate_acpi_pcihp_pci_status = { diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c index 93aec2dd2c..032ba11e62 100644 --- a/hw/acpi/piix4.c +++ b/hw/acpi/piix4.c @@ -443,17 +443,17 @@ static void piix4_pm_add_propeties(PIIX4PMState *s) static const uint16_t sci_int = 9; object_property_add_uint8_ptr(OBJECT(s), ACPI_PM_PROP_ACPI_ENABLE_CMD, - &acpi_enable_cmd, NULL); + &acpi_enable_cmd, true, NULL); object_property_add_uint8_ptr(OBJECT(s), ACPI_PM_PROP_ACPI_DISABLE_CMD, - &acpi_disable_cmd, NULL); + &acpi_disable_cmd, true, NULL); object_property_add_uint32_ptr(OBJECT(s), ACPI_PM_PROP_GPE0_BLK, - &gpe0_blk, NULL); + &gpe0_blk, true, NULL); object_property_add_uint32_ptr(OBJECT(s), ACPI_PM_PROP_GPE0_BLK_LEN, - &gpe0_blk_len, NULL); + &gpe0_blk_len, true, NULL); object_property_add_uint16_ptr(OBJECT(s), ACPI_PM_PROP_SCI_INT, - &sci_int, NULL); + &sci_int, true, NULL); object_property_add_uint32_ptr(OBJECT(s), ACPI_PM_PROP_PM_IO_BASE, - &s->io_base, NULL); + &s->io_base, true, NULL); } static void piix4_pm_realize(PCIDevice *dev, Error **errp) diff --git a/hw/isa/lpc_ich9.c b/hw/isa/lpc_ich9.c index 17c292e306..5555ce3342 100644 --- a/hw/isa/lpc_ich9.c +++ b/hw/isa/lpc_ich9.c @@ -645,9 +645,9 @@ static void ich9_lpc_add_properties(ICH9LPCState *lpc) ich9_lpc_get_sci_int, NULL, NULL, NULL, NULL); object_property_add_uint8_ptr(OBJECT(lpc), ACPI_PM_PROP_ACPI_ENABLE_CMD, - &acpi_enable_cmd, NULL); + &acpi_enable_cmd, true, NULL); object_property_add_uint8_ptr(OBJECT(lpc), ACPI_PM_PROP_ACPI_DISABLE_CMD, - &acpi_disable_cmd, NULL); + &acpi_disable_cmd, true, NULL); ich9_pm_add_properties(OBJECT(lpc), &lpc->pm, NULL); } diff --git a/hw/ppc/spapr_drc.c b/hw/ppc/spapr_drc.c index 62f1a42592..76f389f56a 100644 --- a/hw/ppc/spapr_drc.c +++ b/hw/ppc/spapr_drc.c @@ -553,7 +553,7 @@ static void spapr_dr_connector_instance_init(Object *obj) SpaprDrc *drc = SPAPR_DR_CONNECTOR(obj); SpaprDrcClass *drck = SPAPR_DR_CONNECTOR_GET_CLASS(drc); - object_property_add_uint32_ptr(obj, "id", &drc->id, NULL); + object_property_add_uint32_ptr(obj, "id", &drc->id, true, NULL); object_property_add(obj, "index", "uint32", prop_get_index, NULL, NULL, NULL, NULL); object_property_add(obj, "fdt", "struct", prop_get_fdt, diff --git a/include/qom/object.h b/include/qom/object.h index 128d00c77f..8fc28ed0c9 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -1584,60 +1584,72 @@ void object_class_property_add_tm(ObjectClass *klass, const char *name, * @obj: the object to add a property to * @name: the name of the property * @v: pointer to value + * @readonly: don't add setter for value * @errp: if an error occurs, a pointer to an area to store the error * * Add an integer property in memory. This function will add a * property of type 'uint8'. */ void object_property_add_uint8_ptr(Object *obj, const char *name, - const uint8_t *v, Error **errp); + const uint8_t *v, bool readonly, + Error **errp); void object_class_property_add_uint8_ptr(ObjectClass *klass, const char *name, - const uint8_t *v, Error **errp); + const uint8_t *v, bool readonly, + Error **errp); /** * object_property_add_uint16_ptr: * @obj: the object to add a property to * @name: the name of the property * @v: pointer to value + * @readonly: don't add setter for value * @errp: if an error occurs, a pointer to an area to store the error * * Add an integer property in memory. This function will add a * property of type 'uint16'. */ void object_property_add_uint16_ptr(Object *obj, const char *name, - const uint16_t *v, Error **errp); + const uint16_t *v, bool readonly, + Error **errp); void object_class_property_add_uint16_ptr(ObjectClass *klass, const char *name, - const uint16_t *v, Error **errp); + const uint16_t *v, bool readonly, + Error **errp); /** * object_property_add_uint32_ptr: * @obj: the object to add a property to * @name: the name of the property * @v: pointer to value + * @readonly: don't add setter for value * @errp: if an error occurs, a pointer to an area to store the error * * Add an integer property in memory. This function will add a * property of type 'uint32'. */ void object_property_add_uint32_ptr(Object *obj, const char *name, - const uint32_t *v, Error **errp); + const uint32_t *v, bool readonly, + Error **errp); void object_class_property_add_uint32_ptr(ObjectClass *klass, const char *name, - const uint32_t *v, Error **errp); + const uint32_t *v, bool readonly, + Error **errp); /** * object_property_add_uint64_ptr: * @obj: the object to add a property to * @name: the name of the property * @v: pointer to value + * @readonly: don't add setter for value * @errp: if an error occurs, a pointer to an area to store the error * * Add an integer property in memory. This function will add a * property of type 'uint64'. */ void object_property_add_uint64_ptr(Object *obj, const char *name, - const uint64_t *v, Error **Errp); + const uint64_t *v, bool readonly, + Error **Errp); void object_class_property_add_uint64_ptr(ObjectClass *klass, const char *name, - const uint64_t *v, Error **Errp); + const uint64_t *v, bool readonly, + Error **Errp); /** * object_property_add_alias: diff --git a/qom/object.c b/qom/object.c index d51b57fba1..775f702465 100644 --- a/qom/object.c +++ b/qom/object.c @@ -2326,6 +2326,26 @@ static void property_get_uint8_ptr(Object *obj, Visitor *v, const char *name, visit_type_uint8(v, name, &value, errp); } +static void property_set_uint8_ptr(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + uint8_t *field = opaque; + uint8_t value; + Error *local_err = NULL; + + visit_type_uint8(v, name, &value, &local_err); + if (local_err) { + goto err; + } + + *field = value; + + return; + +err: + error_propagate(errp, local_err); +} + static void property_get_uint16_ptr(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { @@ -2333,6 +2353,26 @@ static void property_get_uint16_ptr(Object *obj, Visitor *v, const char *name, visit_type_uint16(v, name, &value, errp); } +static void property_set_uint16_ptr(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + uint16_t *field = opaque; + uint16_t value; + Error *local_err = NULL; + + visit_type_uint16(v, name, &value, &local_err); + if (local_err) { + goto err; + } + + *field = value; + + return; + +err: + error_propagate(errp, local_err); +} + static void property_get_uint32_ptr(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { @@ -2340,6 +2380,26 @@ static void property_get_uint32_ptr(Object *obj, Visitor *v, const char *name, visit_type_uint32(v, name, &value, errp); } +static void property_set_uint32_ptr(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + uint32_t *field = opaque; + uint32_t value; + Error *local_err = NULL; + + visit_type_uint32(v, name, &value, &local_err); + if (local_err) { + goto err; + } + + *field = value; + + return; + +err: + error_propagate(errp, local_err); +} + static void property_get_uint64_ptr(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { @@ -2347,60 +2407,104 @@ static void property_get_uint64_ptr(Object *obj, Visitor *v, const char *name, visit_type_uint64(v, name, &value, errp); } +static void property_set_uint64_ptr(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + uint64_t *field = opaque; + uint64_t value; + Error *local_err = NULL; + + visit_type_uint64(v, name, &value, &local_err); + if (local_err) { + goto err; + } + + *field = value; + + return; + +err: + error_propagate(errp, local_err); +} + void object_property_add_uint8_ptr(Object *obj, const char *name, - const uint8_t *v, Error **errp) + const uint8_t *v, bool readonly, + Error **errp) { - object_property_add(obj, name, "uint8", property_get_uint8_ptr, - NULL, NULL, (void *)v, errp); + object_property_add(obj, name, "uint8", + property_get_uint8_ptr, + readonly ? NULL : property_set_uint8_ptr, + NULL, (void *)v, errp); } void object_class_property_add_uint8_ptr(ObjectClass *klass, const char *name, - const uint8_t *v, Error **errp) + const uint8_t *v, bool readonly, + Error **errp) { - object_class_property_add(klass, name, "uint8", property_get_uint8_ptr, - NULL, NULL, (void *)v, errp); + object_class_property_add(klass, name, "uint8", + property_get_uint8_ptr, + readonly ? NULL : property_set_uint8_ptr, + NULL, (void *)v, errp); } void object_property_add_uint16_ptr(Object *obj, const char *name, - const uint16_t *v, Error **errp) + const uint16_t *v, bool readonly, + Error **errp) { - object_property_add(obj, name, "uint16", property_get_uint16_ptr, - NULL, NULL, (void *)v, errp); + object_property_add(obj, name, "uint16", + property_get_uint16_ptr, + readonly ? NULL : property_set_uint16_ptr, + NULL, (void *)v, errp); } void object_class_property_add_uint16_ptr(ObjectClass *klass, const char *name, - const uint16_t *v, Error **errp) + const uint16_t *v, bool readonly, + Error **errp) { - object_class_property_add(klass, name, "uint16", property_get_uint16_ptr, - NULL, NULL, (void *)v, errp); + object_class_property_add(klass, name, "uint16", + property_get_uint16_ptr, + readonly ? NULL : property_set_uint16_ptr, + NULL, (void *)v, errp); } void object_property_add_uint32_ptr(Object *obj, const char *name, - const uint32_t *v, Error **errp) + const uint32_t *v, bool readonly, + Error **errp) { - object_property_add(obj, name, "uint32", property_get_uint32_ptr, - NULL, NULL, (void *)v, errp); + object_property_add(obj, name, "uint32", + property_get_uint32_ptr, + readonly ? NULL : property_set_uint32_ptr, + NULL, (void *)v, errp); } void object_class_property_add_uint32_ptr(ObjectClass *klass, const char *name, - const uint32_t *v, Error **errp) + const uint32_t *v, bool readonly, + Error **errp) { - object_class_property_add(klass, name, "uint32", property_get_uint32_ptr, - NULL, NULL, (void *)v, errp); + object_class_property_add(klass, name, "uint32", + property_get_uint32_ptr, + readonly ? NULL : property_set_uint32_ptr, + NULL, (void *)v, errp); } void object_property_add_uint64_ptr(Object *obj, const char *name, - const uint64_t *v, Error **errp) + const uint64_t *v, bool readonly, + Error **errp) { - object_property_add(obj, name, "uint64", property_get_uint64_ptr, - NULL, NULL, (void *)v, errp); + object_property_add(obj, name, "uint64", + property_get_uint64_ptr, + property_set_uint64_ptr, + NULL, (void *)v, errp); } void object_class_property_add_uint64_ptr(ObjectClass *klass, const char *name, - const uint64_t *v, Error **errp) + const uint64_t *v, bool readonly, + Error **errp) { - object_class_property_add(klass, name, "uint64", property_get_uint64_ptr, - NULL, NULL, (void *)v, errp); + object_class_property_add(klass, name, "uint64", + property_get_uint64_ptr, + readonly ? NULL : property_set_uint64_ptr, + NULL, (void *)v, errp); } typedef struct { diff --git a/ui/console.c b/ui/console.c index 82d1ddac9c..3375c33d71 100644 --- a/ui/console.c +++ b/ui/console.c @@ -1296,8 +1296,7 @@ static QemuConsole *new_console(DisplayState *ds, console_type_t console_type, object_property_allow_set_link, OBJ_PROP_LINK_STRONG, &error_abort); - object_property_add_uint32_ptr(obj, "head", - &s->head, &error_abort); + object_property_add_uint32_ptr(obj, "head", &s->head, true, &error_abort); if (!active_console || ((active_console->console_type != GRAPHIC_CONSOLE) && (console_type == GRAPHIC_CONSOLE))) { From patchwork Mon Nov 25 15:36:38 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Felipe Franciosi X-Patchwork-Id: 1200465 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=pass (p=none dis=none) header.from=nutanix.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=nutanix.com header.i=@nutanix.com header.b="uGoQOGXJ"; 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 47MB4D15MYz9sPJ for ; Tue, 26 Nov 2019 02:37:29 +1100 (AEDT) Received: from localhost ([::1]:45404 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iZGQY-0004Pp-Cp for incoming@patchwork.ozlabs.org; Mon, 25 Nov 2019 10:37:26 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:33287) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iZGPp-0004PP-Jo for qemu-devel@nongnu.org; Mon, 25 Nov 2019 10:36:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iZGPn-0007p5-UM for qemu-devel@nongnu.org; Mon, 25 Nov 2019 10:36:41 -0500 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]:1480) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iZGPn-0007oj-PQ for qemu-devel@nongnu.org; Mon, 25 Nov 2019 10:36:39 -0500 Received: from pps.filterd (m0127842.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id xAPFVfei009365; Mon, 25 Nov 2019 07:36:39 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=proofpoint20171006; bh=eOwV4DeHBup9OqaefCFkcue4SmcvXAexlK1LjnCrbbk=; b=uGoQOGXJQ/PPufxMJJiepvIG2HoG9vE4xfyf3qkuZ1gM0wLIHuyKKoSF86F2/i4glsUn myl53o5KqQmbcVSTqLoaFg0zppxMO9lNgjwZ3oaJ3Xilh2Pkv0JpM9W6A0+VXyPo98n2 ZnshH6yHv9xgP2FPszU1NfKr6dVIzlus1OdgGsM4DXGGScEJi3aTbuy6uZyCzoJcG+AE JarjB4iMraDV0Lq3GUwc95fUNtGPTKBCoynCb4KQSxDwrfB3mrtOSQ7Kx2jffhltebU5 qcC83taqC//1elAbkSMNDDYnyTov07NHdDjG2TdN1PZFHKSVQUrYjw1JNdP79h5XyyLA cQ== Received: from nam02-sn1-obe.outbound.protection.outlook.com (mail-sn1nam02lp2052.outbound.protection.outlook.com [104.47.36.52]) by mx0b-002c1b01.pphosted.com with ESMTP id 2wf4yn3unq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 25 Nov 2019 07:36:39 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CmKS57ASB6U76qQ3ies+J0nigDr1B3mIqgmH7MfsVIn38E4IOzg17CEWOGkfxR6vS9sPQKL2foyFizF/P8toJN7LU9VTwHUWzZs2JJSwOs15mx0V84/MS8pSiH+QclK1yVKoQnS/rAB4i2ixGv4BvD0i6sjZOdbkVXvKKrNrTb/qGl+wk8F27Q57WLNrhh2Q9cdzcxqOE5NQ5mFWB6sEbFQ7WNOBeHa6cfD38YAZkx1oSmertStfHLZ1zV/bnckBGvgYSlrvW2SWrW40ifWu67/3QH54e7Q+xh0GunzpAlPktMFo0L9Vc1uViIQaqVNE4BYhzGBIxM12kix9GmsuYQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=eOwV4DeHBup9OqaefCFkcue4SmcvXAexlK1LjnCrbbk=; b=D1NcdMnr+Ykpoc9+/5TiYQluQncovW83JeQhnTSg4qC8AWJr9VmMowZ4N12eh7ytLTZgSlEnfLlrDjDcqZ63DrKS0CKh06HhCVwBZiWzUxrx0c53DiiLMK/5/dO/kkwI1FEFqP488qoOrXQYIll7I5FF6qENsItdZzDbbk34D15WiSOf+ZTeFn/1MNN6yX3Q/fHuYZRI1m3ScdRsYWHxTG0Ak98h6pLmkfyFABZE/JFc8XEH1HX/I7KTy++QnfzJPB9btN9b3ZCCpCY8kXNYrXiZNiAXq6M3T/gOCDyPYeHc33UPJledz/uloSJaO6NWDQSZTvrE5O6vHuKzJ4SwWg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none Received: from MWHPR02MB2656.namprd02.prod.outlook.com (10.168.206.142) by MWHPR02MB3183.namprd02.prod.outlook.com (10.164.133.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2474.19; Mon, 25 Nov 2019 15:36:38 +0000 Received: from MWHPR02MB2656.namprd02.prod.outlook.com ([fe80::f801:763d:e7fc:6bf]) by MWHPR02MB2656.namprd02.prod.outlook.com ([fe80::f801:763d:e7fc:6bf%7]) with mapi id 15.20.2474.023; Mon, 25 Nov 2019 15:36:38 +0000 From: Felipe Franciosi To: Eduardo Habkost , Markus Armbruster , Stefan Hajnoczi Subject: [PATCH 2/4] ich9: fix getter type for sci_int property Thread-Topic: [PATCH 2/4] ich9: fix getter type for sci_int property Thread-Index: AQHVo6YgVQPIYdSUK0GhG0cq3dH2nw== Date: Mon, 25 Nov 2019 15:36:38 +0000 Message-ID: <20191125153619.39893-3-felipe@nutanix.com> References: <20191125153619.39893-1-felipe@nutanix.com> In-Reply-To: <20191125153619.39893-1-felipe@nutanix.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: AM0PR02CA0087.eurprd02.prod.outlook.com (2603:10a6:208:154::28) To MWHPR02MB2656.namprd02.prod.outlook.com (2603:10b6:300:45::14) x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.20.1 x-originating-ip: [62.254.189.133] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 17099d98-f109-44b7-ffbf-08d771bd42d7 x-ms-traffictypediagnostic: MWHPR02MB3183: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-proofpoint-crosstenant: true x-ms-oob-tlc-oobclassifiers: OLM:4303; x-forefront-prvs: 0232B30BBC x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(346002)(136003)(376002)(396003)(39860400002)(366004)(189003)(199004)(4326008)(6512007)(86362001)(1076003)(3846002)(6116002)(386003)(6506007)(7736002)(305945005)(6436002)(6486002)(478600001)(54906003)(26005)(102836004)(110136005)(2906002)(36756003)(25786009)(14454004)(316002)(446003)(99286004)(256004)(107886003)(66066001)(66446008)(64756008)(66556008)(66476007)(11346002)(2616005)(5660300002)(66946007)(186003)(76176011)(52116002)(50226002)(81166006)(81156014)(8676002)(71200400001)(8936002)(71190400001)(64030200001); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR02MB3183; H:MWHPR02MB2656.namprd02.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: nutanix.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: UWEeawA9iadJtrhOolW68ZZRhSl8dBW81sOjrH9Z21+BVdMTRFMqxY01xr5NkkH4YZrYQuR3J9A8Xlv5k8it41uIIN5oNg7TXWoOxSQ9S417PgZw+iXSzNwvTA1BjZjCYhDVF25eWuT/tHyqi6zDGZNLoaPBt+MCW1keR0ovKrVa0YG6dlJfY8Df581Ub3HxYGLRz7lyAm6ofobOVoP+CI6C3fXwzupifFPj+rCpBBpVUUgtCEItztRhqU9L5oFOIGYzfE4g5vDRja+Y+24jE21uVUmOLi1jb+2IIPnaIVq7+t93krjE7Wnl37P1UZpdKSamkk/3VN4WQPH1nv5qKbZ3wJ3JeBttl5XsIGbVGcW18KIxZGzVYDsPoh51lSYhzsWqpvPl4T8zIIsyTOK9WVuzrSkXKeA9qSp1V8M18NNHxx4nFa6clH9ow7AyDYns MIME-Version: 1.0 X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 17099d98-f109-44b7-ffbf-08d771bd42d7 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Nov 2019 15:36:38.2023 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Vp1Tl12IRXLMBUgBDGlQi9nPK3NsMzQrpnIERNMcGm03PYl5netCePhJidTBr3rkJwvHWNtOEBWYq1wP5CZS8J2xi1gd+8mSh6lHGmAS6bw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR02MB3183 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95, 18.0.572 definitions=2019-11-25_03:2019-11-21, 2019-11-25 signatures=0 X-Proofpoint-Spam-Reason: safe X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 148.163.155.12 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: "qemu-devel@nongnu.org" , Felipe Franciosi Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" When QOM APIs were added to ich9 in 6f1426ab, the getter for sci_int was written using uint32_t. However, the object property is uint8_t. This fixes the getter for correctness. Signed-off-by: Felipe Franciosi Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Marc-André Lureau --- hw/isa/lpc_ich9.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/isa/lpc_ich9.c b/hw/isa/lpc_ich9.c index 5555ce3342..240979885d 100644 --- a/hw/isa/lpc_ich9.c +++ b/hw/isa/lpc_ich9.c @@ -631,9 +631,9 @@ static void ich9_lpc_get_sci_int(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { ICH9LPCState *lpc = ICH9_LPC_DEVICE(obj); - uint32_t value = lpc->sci_gsi; + uint8_t value = lpc->sci_gsi; - visit_type_uint32(v, name, &value, errp); + visit_type_uint8(v, name, &value, errp); } static void ich9_lpc_add_properties(ICH9LPCState *lpc) @@ -641,7 +641,7 @@ static void ich9_lpc_add_properties(ICH9LPCState *lpc) static const uint8_t acpi_enable_cmd = ICH9_APM_ACPI_ENABLE; static const uint8_t acpi_disable_cmd = ICH9_APM_ACPI_DISABLE; - object_property_add(OBJECT(lpc), ACPI_PM_PROP_SCI_INT, "uint32", + object_property_add(OBJECT(lpc), ACPI_PM_PROP_SCI_INT, "uint8", ich9_lpc_get_sci_int, NULL, NULL, NULL, NULL); object_property_add_uint8_ptr(OBJECT(lpc), ACPI_PM_PROP_ACPI_ENABLE_CMD, From patchwork Mon Nov 25 15:36:40 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Felipe Franciosi X-Patchwork-Id: 1200467 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=pass (p=none dis=none) header.from=nutanix.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=nutanix.com header.i=@nutanix.com header.b="c4ikAQ/Y"; 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 47MB4K5nc5z9sPJ for ; Tue, 26 Nov 2019 02:37:37 +1100 (AEDT) Received: from localhost ([::1]:45416 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iZGQh-0004S5-6q for incoming@patchwork.ozlabs.org; Mon, 25 Nov 2019 10:37:35 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:33310) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iZGPr-0004PR-2d for qemu-devel@nongnu.org; Mon, 25 Nov 2019 10:36:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iZGPq-0007pj-35 for qemu-devel@nongnu.org; Mon, 25 Nov 2019 10:36:43 -0500 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]:57362) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iZGPp-0007pY-Th for qemu-devel@nongnu.org; Mon, 25 Nov 2019 10:36:42 -0500 Received: from pps.filterd (m0127841.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id xAPFWdnQ007388; Mon, 25 Nov 2019 07:36:41 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=proofpoint20171006; bh=TW99OkJPGvNpk+VsJS+A6yo8TaYTa8Uncc+j5ULJa1Q=; b=c4ikAQ/YcXdAtpjxrqHXotng8vOsh6AhnozXgn6g4CYh1oQeahoT6jFQtRCBPXwX7+6f jo54iJCpeH4wtoByb38ti0BHU+LCuuKIplELnVFjJeFSz3Ot5MdpYRkpavbxwthhuoYN A3MCowg+NPU711g7D3vg0r460DMw8YzN+/ou+oaK9uq5Ild47NTqfK0+xRQQ6CjuhW3J OSo9aGBUaUnzJg6B2rCk1GzoxZaWPSzbq3VRU5QKCaIkXtUqu0mX9NLUVXZ4yrz/lQ8E VgLi27cDDLYbL65EPbJTOuQe5MF18qQJJKcdL0kQmQEgb7dibZxnDcr5c/RhrncF6PpR tg== Received: from nam02-sn1-obe.outbound.protection.outlook.com (mail-sn1nam02lp2055.outbound.protection.outlook.com [104.47.36.55]) by mx0b-002c1b01.pphosted.com with ESMTP id 2wf36euy2y-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 25 Nov 2019 07:36:41 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WlzgF8a+4qt0YQGj91Rz67p5r9b1bzVlCXQhqqHkir4Xa4ZQDr0SMhlMwEFIo+mqvpGL9UCYVzS/pHnVLCsM1kXJYZ0ORv4gs5XVYm+WO+OhymNDJ5SsrLcen9QTSFISQZzEfQzwObV7rfNSGMCfhILWXje7YxnHBFajZ83Xfzhc4b95uoSvp6SPJc7hqxUf1mbd6JJlo5mKpDNkFSo7aKx+xsbonyUgxGtPwYLRe/X4pGgOz9On3dkL6A8jGfmg1jlzAPIWF/55f6fzix+fPRvn81Ua3iXU89FK29INqqDYUVsagamyxr2QeX49dK6hd1BdWqv1yTZHCtGqnQezEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TW99OkJPGvNpk+VsJS+A6yo8TaYTa8Uncc+j5ULJa1Q=; b=SF/mJmsTBucEkJlkqHr2ZwIv/0nqJDu5XFBf6idbjt8bugr8YebpEFW4XM3mc8fkOBkWS0j78SHtHgGz2gN92gJifuWzLoMiWpok2yGf4MdiACtt9hrFKpon7FoqTZNk0DKsnVTn9CSV6zy/elKFdzGfa42ZEuECtmcoD/qYDU83OOe17jthWWnszl8HivaAgYRkMK8qnq9dXC9+V5RrUTJHTCQW7jUzcaA9PIlQemjS333V+2T7F+0cJfNJSFmBBLdYhE6CVrNrZsgBB3SWSJE8fh1xREzSqrMqMtCED5a5ZbLhZF1bLchYTDj/0d22e84+FZiCYE+oL/j/2Jrhzg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none Received: from MWHPR02MB2656.namprd02.prod.outlook.com (10.168.206.142) by MWHPR02MB3183.namprd02.prod.outlook.com (10.164.133.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2474.19; Mon, 25 Nov 2019 15:36:40 +0000 Received: from MWHPR02MB2656.namprd02.prod.outlook.com ([fe80::f801:763d:e7fc:6bf]) by MWHPR02MB2656.namprd02.prod.outlook.com ([fe80::f801:763d:e7fc:6bf%7]) with mapi id 15.20.2474.023; Mon, 25 Nov 2019 15:36:40 +0000 From: Felipe Franciosi To: Eduardo Habkost , Markus Armbruster , Stefan Hajnoczi Subject: [PATCH 3/4] ich9: Simplify ich9_lpc_initfn Thread-Topic: [PATCH 3/4] ich9: Simplify ich9_lpc_initfn Thread-Index: AQHVo6YhylH331ZIG06iKIfsf9xAwQ== Date: Mon, 25 Nov 2019 15:36:40 +0000 Message-ID: <20191125153619.39893-4-felipe@nutanix.com> References: <20191125153619.39893-1-felipe@nutanix.com> In-Reply-To: <20191125153619.39893-1-felipe@nutanix.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: AM0PR02CA0087.eurprd02.prod.outlook.com (2603:10a6:208:154::28) To MWHPR02MB2656.namprd02.prod.outlook.com (2603:10b6:300:45::14) x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.20.1 x-originating-ip: [62.254.189.133] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 4306dd7d-c457-4b0d-17c3-08d771bd43e6 x-ms-traffictypediagnostic: MWHPR02MB3183: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-proofpoint-crosstenant: true x-ms-oob-tlc-oobclassifiers: OLM:4303; x-forefront-prvs: 0232B30BBC x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(346002)(136003)(376002)(396003)(39860400002)(366004)(189003)(199004)(4326008)(6512007)(86362001)(1076003)(3846002)(6116002)(386003)(6506007)(7736002)(305945005)(6436002)(6486002)(478600001)(54906003)(26005)(102836004)(110136005)(2906002)(36756003)(25786009)(14454004)(316002)(446003)(99286004)(256004)(107886003)(66066001)(66446008)(64756008)(66556008)(66476007)(11346002)(2616005)(5660300002)(66946007)(186003)(76176011)(52116002)(50226002)(81166006)(81156014)(8676002)(71200400001)(8936002)(71190400001)(64030200001); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR02MB3183; H:MWHPR02MB2656.namprd02.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: nutanix.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: SOHuIHJ+d+DmExREUy/Azcn10vMCyVoluGXJlOEOoYR7+rPT98qC+8a7eOEyoqZmR2IM4dVptEg34v/b2LJuQhpgCiAMCudCYW/ddmrEJtUBHJgPl9UJllGHuC0Ps5QpGZCgbjcg/du3iufzb7x84hoxgVoUkypFi9DZ7xuKuYoYMkM9siEHnGaJHqLUVAc2SCIxnfS9guqi5NE5QyooiCiJBozcwHylgYk1D2KkEW3m55BTmkst6OmoaREF8JFlNg8Hpa5MoUemE3VTxvCIwL56fkQzJwiiZ2Wb2Rg3GYpGIE9Aea4d4SLxS27vdq0THJq7ircnAUmz1PelTsc+UQADylrqbgAGkhTlqeFHmbVMZW4DT1AYMMW0MExpq4lKUQMRpokvTsVonKGFFB6fZqslJXkjCtzX62I51rcTl1Y/vE5QElCuN0v/gshz641p MIME-Version: 1.0 X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4306dd7d-c457-4b0d-17c3-08d771bd43e6 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Nov 2019 15:36:40.1203 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: jQ9llXtPIn7+Se6k60fGoezL9EC145qwoD+u6qqebaku2EtZRFH6UCcc3mW9494pMMTOV92rXUuswLTJVGsLN8URCxvk8wCF2YQJH00DrWI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR02MB3183 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95, 18.0.572 definitions=2019-11-25_03:2019-11-21, 2019-11-25 signatures=0 X-Proofpoint-Spam-Reason: safe X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 148.163.155.12 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: "qemu-devel@nongnu.org" , Felipe Franciosi Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Currently, ich9_lpc_initfn simply serves as a caller to ich9_lpc_add_properties. This simplifies the code a bit by eliminating ich9_lpc_add_properties altogether and executing its logic in the parent object initialiser function. Signed-off-by: Felipe Franciosi Reviewed-by: Marc-André Lureau --- hw/isa/lpc_ich9.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/hw/isa/lpc_ich9.c b/hw/isa/lpc_ich9.c index 240979885d..232c7916f3 100644 --- a/hw/isa/lpc_ich9.c +++ b/hw/isa/lpc_ich9.c @@ -636,27 +636,22 @@ static void ich9_lpc_get_sci_int(Object *obj, Visitor *v, const char *name, visit_type_uint8(v, name, &value, errp); } -static void ich9_lpc_add_properties(ICH9LPCState *lpc) +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; - object_property_add(OBJECT(lpc), ACPI_PM_PROP_SCI_INT, "uint8", + object_property_add(obj, ACPI_PM_PROP_SCI_INT, "uint8", ich9_lpc_get_sci_int, NULL, NULL, NULL, NULL); - object_property_add_uint8_ptr(OBJECT(lpc), ACPI_PM_PROP_ACPI_ENABLE_CMD, + object_property_add_uint8_ptr(obj, ACPI_PM_PROP_ACPI_ENABLE_CMD, &acpi_enable_cmd, true, NULL); - object_property_add_uint8_ptr(OBJECT(lpc), ACPI_PM_PROP_ACPI_DISABLE_CMD, + object_property_add_uint8_ptr(obj, ACPI_PM_PROP_ACPI_DISABLE_CMD, &acpi_disable_cmd, true, NULL); - ich9_pm_add_properties(OBJECT(lpc), &lpc->pm, NULL); -} - -static void ich9_lpc_initfn(Object *obj) -{ - ICH9LPCState *lpc = ICH9_LPC_DEVICE(obj); - - ich9_lpc_add_properties(lpc); + ich9_pm_add_properties(obj, &lpc->pm, NULL); } static void ich9_lpc_realize(PCIDevice *d, Error **errp) From patchwork Mon Nov 25 15:36:41 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Felipe Franciosi X-Patchwork-Id: 1200468 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=pass (p=none dis=none) header.from=nutanix.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=nutanix.com header.i=@nutanix.com header.b="drZDU8yA"; 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 47MB4P5YMgz9sPj for ; Tue, 26 Nov 2019 02:37:41 +1100 (AEDT) Received: from localhost ([::1]:45422 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iZGQl-0004WR-4Q for incoming@patchwork.ozlabs.org; Mon, 25 Nov 2019 10:37:39 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:33330) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iZGPu-0004Qx-P0 for qemu-devel@nongnu.org; Mon, 25 Nov 2019 10:36:49 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iZGPs-0007qm-BX for qemu-devel@nongnu.org; Mon, 25 Nov 2019 10:36:46 -0500 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]:43048) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iZGPs-0007qA-4w for qemu-devel@nongnu.org; Mon, 25 Nov 2019 10:36:44 -0500 Received: from pps.filterd (m0127844.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id xAPFVoLt027228; Mon, 25 Nov 2019 07:36:43 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=proofpoint20171006; bh=6sIKK6T27P5xtYGTYM0h7cf54DRUqb2+V8ixwslms+Y=; b=drZDU8yA1ccQIQhz5M2bod42/GkjGmngtgiZG4Rw11pBGqDDE/KrGSXTSCylhv2c6OtU 1LZPlxWLLkKqiYUdQ1YLgDRY6HhDF/YDdO+U1Zq+5podFgJcmj4XgUPUmtwu86Wd+vc8 34TMK5OYWHT+Q4L9aO2ZyA8uQ+kVVtnAo8qq0ZUGFK0fBYP6jdsLkiN9t+jIR8eJMhVN UL87mGx/VpuGFePptF9ia0gfKCF2Zjhr+uCEIVOjm7xM9x6zIDX0oq96T5RaEbleGVtv m6NB5dt6BJx8B7mb1qFR9DytmFId+54oghHmBg2PPV3lYDBlUm9kqQjbXBJMGg8NhISR qQ== Received: from nam02-sn1-obe.outbound.protection.outlook.com (mail-sn1nam02lp2059.outbound.protection.outlook.com [104.47.36.59]) by mx0b-002c1b01.pphosted.com with ESMTP id 2wf566bu73-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 25 Nov 2019 07:36:43 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=afqhxwijpueVLzTRq/Dv0QomSM67W/8wWimsF7nPZ/nnBaoOgqVkv49Mf/VerTnHZR+82hjn45IZVmmSLiPY/VBCN2djo1i9R3DqVbkYPK1CWcCjwU4tvsKOJAOSlv4kXiQp+WqBwQo4InfmQeEl9ZCif9Gs1CWdxAtfoKefN39y2+SKCtLRYdsSJ4J5PNYs/uc2L5soLcPJ/QS2hzaEt5xWm2wECVSxItmqVW4gV6+WOzx7l4x8NYlHqmW/lyvlY/qJfra3FYShlldMZQOhPaS2SVg/e33xVr7kipNWfx25ETUyEew9uW1W/+qCV4itOXk5g1YkNvpGpbw/LwtPwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6sIKK6T27P5xtYGTYM0h7cf54DRUqb2+V8ixwslms+Y=; b=Q5GhfLsaCCVaDYsVFJqG08VqyOqeDAgHeuYMUk6Jclps2rZVRhVmIHlFPnIdKqi2cPcyoqeI8vjRQA692nTAd14s3rPhEXiYbJkc91BIDcIauMRVDvDdvuuQ7W+oFoq+LNmUlMWgT8KzFkB4ZPd1REUpj8sd+Qr5j4B3t9Qx9kBgHfB6Vhywk5Amxp9nY7bp0UgbgrZoc8UQjf/EsonMB1/zinnVdW8p6wQFZs/9eW24u9Ia/Y8KyB/PZhMAzONODqgA7aMj25IdIxk3NQUXJcQYBalDrbtE3ri8y82exs4vl6fHmtH4gg9Kp0IEUsacduEY4IoTsjUYXWqbW1U/JQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none Received: from MWHPR02MB2656.namprd02.prod.outlook.com (10.168.206.142) by MWHPR02MB3183.namprd02.prod.outlook.com (10.164.133.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2474.19; Mon, 25 Nov 2019 15:36:42 +0000 Received: from MWHPR02MB2656.namprd02.prod.outlook.com ([fe80::f801:763d:e7fc:6bf]) by MWHPR02MB2656.namprd02.prod.outlook.com ([fe80::f801:763d:e7fc:6bf%7]) with mapi id 15.20.2474.023; Mon, 25 Nov 2019 15:36:42 +0000 From: Felipe Franciosi To: Eduardo Habkost , Markus Armbruster , Stefan Hajnoczi Subject: [PATCH 4/4] qom/object: Use common get/set uint helpers Thread-Topic: [PATCH 4/4] qom/object: Use common get/set uint helpers Thread-Index: AQHVo6YibywgKNk9jUy72iwLolfq1g== Date: Mon, 25 Nov 2019 15:36:41 +0000 Message-ID: <20191125153619.39893-5-felipe@nutanix.com> References: <20191125153619.39893-1-felipe@nutanix.com> In-Reply-To: <20191125153619.39893-1-felipe@nutanix.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: AM0PR02CA0087.eurprd02.prod.outlook.com (2603:10a6:208:154::28) To MWHPR02MB2656.namprd02.prod.outlook.com (2603:10b6:300:45::14) x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.20.1 x-originating-ip: [62.254.189.133] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f1a498ed-5ee6-4e2e-7cdb-08d771bd4506 x-ms-traffictypediagnostic: MWHPR02MB3183: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-proofpoint-crosstenant: true x-ms-oob-tlc-oobclassifiers: OLM:2512; x-forefront-prvs: 0232B30BBC x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(346002)(136003)(376002)(396003)(39860400002)(366004)(189003)(199004)(4326008)(6512007)(86362001)(1076003)(3846002)(6116002)(386003)(6506007)(7736002)(305945005)(6436002)(6486002)(478600001)(54906003)(26005)(102836004)(110136005)(2906002)(36756003)(25786009)(14454004)(316002)(446003)(99286004)(256004)(107886003)(66066001)(66446008)(64756008)(66556008)(66476007)(11346002)(2616005)(5660300002)(66946007)(186003)(76176011)(52116002)(50226002)(81166006)(81156014)(8676002)(71200400001)(30864003)(14444005)(8936002)(71190400001)(64030200001); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR02MB3183; H:MWHPR02MB2656.namprd02.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: nutanix.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: N0XCOFj4t38z5FuXJWQYExsQ9pPTtSmhHxCYVff1OpO68kpuVxAzF53f3lmTb7GWdBIzpB/vAntxVb5y5amZjzCLjhumj37BuFVDNFMsq+ORihezie09jh6/4GqyYl5H6uj7gYy6uz7nVisVaOnOHqq0gwBcc0LEXQT1X00Xul+anCQIx3Q9RnV5sVc166ojERwjSeoyjbDMIs6Q/hR69bsT7S//S6IYDYf6rnIYQrTKs1ROiVV/TlkxjXFpVdp65isa0iZKDSSJzKDz73qjIAWgLbaEVTOPRobP82wOgSzzqt8FPsUBvOV2ZtJpX7Uc4bRf5QdoYVTgV6I/hk0Y4Ba7PzTSV2qZVNNNaGAFWqFC5bdoa5HZWFgusRNnJUp6cARHiZp3f3pMjWEqQUiGNAX3yYrQl+LHJeWqpMPnLwY3ZNiqFgvv4AP1YJXeHcvE MIME-Version: 1.0 X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: f1a498ed-5ee6-4e2e-7cdb-08d771bd4506 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Nov 2019 15:36:42.0513 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 41OKbRTdGdmsSyT3WZVGiNza32wbfCInvfxnyl8tljL9zji7wakuUkC1IdGetR4lBV176YUtvSXj+dxj3cpaEmapjSW4c/OEAWIpNKbCRO8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR02MB3183 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95, 18.0.572 definitions=2019-11-25_03:2019-11-21, 2019-11-25 signatures=0 X-Proofpoint-Spam-Reason: safe X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 148.163.155.12 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: "qemu-devel@nongnu.org" , Felipe Franciosi Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Several objects implemented their own uint property getters and setters, despite them being straightforward (without any checks/validations on the values themselves) and identical across objects. This makes use of an enhanced API for object_property_add_uintXX_ptr() which offers default setters. Some of these setters used to update the value even if the type visit failed (eg. because the value being set overflowed over the given type). The new setter introduces a check for these errors, not updating the value if an error occurred. The error is propagated. Signed-off-by: Felipe Franciosi Reviewed-by: Marc-André Lureau --- hw/acpi/ich9.c | 93 +++------------------------------------ hw/isa/lpc_ich9.c | 14 +----- hw/misc/edu.c | 12 +---- hw/pci-host/q35.c | 14 ++---- hw/ppc/spapr.c | 17 ++------ hw/vfio/pci-quirks.c | 18 ++------ memory.c | 15 +------ target/arm/cpu.c | 21 +-------- target/i386/sev.c | 102 +++---------------------------------------- 9 files changed, 29 insertions(+), 277 deletions(-) diff --git a/hw/acpi/ich9.c b/hw/acpi/ich9.c index 94dc5147ce..aa3c7a59ab 100644 --- a/hw/acpi/ich9.c +++ b/hw/acpi/ich9.c @@ -357,81 +357,6 @@ static void ich9_pm_set_cpu_hotplug_legacy(Object *obj, bool value, s->pm.cpu_hotplug_legacy = value; } -static void ich9_pm_get_disable_s3(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - ICH9LPCPMRegs *pm = opaque; - uint8_t value = pm->disable_s3; - - visit_type_uint8(v, name, &value, errp); -} - -static void ich9_pm_set_disable_s3(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - ICH9LPCPMRegs *pm = opaque; - Error *local_err = NULL; - uint8_t value; - - visit_type_uint8(v, name, &value, &local_err); - if (local_err) { - goto out; - } - pm->disable_s3 = value; -out: - error_propagate(errp, local_err); -} - -static void ich9_pm_get_disable_s4(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - ICH9LPCPMRegs *pm = opaque; - uint8_t value = pm->disable_s4; - - visit_type_uint8(v, name, &value, errp); -} - -static void ich9_pm_set_disable_s4(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - ICH9LPCPMRegs *pm = opaque; - Error *local_err = NULL; - uint8_t value; - - visit_type_uint8(v, name, &value, &local_err); - if (local_err) { - goto out; - } - pm->disable_s4 = value; -out: - error_propagate(errp, local_err); -} - -static void ich9_pm_get_s4_val(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - ICH9LPCPMRegs *pm = opaque; - uint8_t value = pm->s4_val; - - visit_type_uint8(v, name, &value, errp); -} - -static void ich9_pm_set_s4_val(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - ICH9LPCPMRegs *pm = opaque; - Error *local_err = NULL; - uint8_t value; - - visit_type_uint8(v, name, &value, &local_err); - if (local_err) { - goto out; - } - pm->s4_val = value; -out: - error_propagate(errp, local_err); -} - static bool ich9_pm_get_enable_tco(Object *obj, Error **errp) { ICH9LPCState *s = ICH9_LPC_DEVICE(obj); @@ -468,18 +393,12 @@ void ich9_pm_add_properties(Object *obj, ICH9LPCPMRegs *pm, Error **errp) ich9_pm_get_cpu_hotplug_legacy, ich9_pm_set_cpu_hotplug_legacy, NULL); - object_property_add(obj, ACPI_PM_PROP_S3_DISABLED, "uint8", - ich9_pm_get_disable_s3, - ich9_pm_set_disable_s3, - NULL, pm, NULL); - object_property_add(obj, ACPI_PM_PROP_S4_DISABLED, "uint8", - ich9_pm_get_disable_s4, - ich9_pm_set_disable_s4, - NULL, pm, NULL); - object_property_add(obj, ACPI_PM_PROP_S4_VAL, "uint8", - ich9_pm_get_s4_val, - ich9_pm_set_s4_val, - NULL, pm, NULL); + object_property_add_uint8_ptr(obj, ACPI_PM_PROP_S3_DISABLED, + &pm->disable_s3, false, errp); + object_property_add_uint8_ptr(obj, ACPI_PM_PROP_S4_DISABLED, + &pm->disable_s4, false, errp); + object_property_add_uint8_ptr(obj, ACPI_PM_PROP_S4_VAL, + &pm->s4_val, false, errp); object_property_add_bool(obj, ACPI_PM_PROP_TCO_ENABLED, ich9_pm_get_enable_tco, ich9_pm_set_enable_tco, diff --git a/hw/isa/lpc_ich9.c b/hw/isa/lpc_ich9.c index 232c7916f3..9abe07247e 100644 --- a/hw/isa/lpc_ich9.c +++ b/hw/isa/lpc_ich9.c @@ -627,15 +627,6 @@ static const MemoryRegionOps ich9_rst_cnt_ops = { .endianness = DEVICE_LITTLE_ENDIAN }; -static void ich9_lpc_get_sci_int(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - ICH9LPCState *lpc = ICH9_LPC_DEVICE(obj); - uint8_t value = lpc->sci_gsi; - - visit_type_uint8(v, name, &value, errp); -} - static void ich9_lpc_initfn(Object *obj) { ICH9LPCState *lpc = ICH9_LPC_DEVICE(obj); @@ -643,9 +634,8 @@ static void ich9_lpc_initfn(Object *obj) static const uint8_t acpi_enable_cmd = ICH9_APM_ACPI_ENABLE; static const uint8_t acpi_disable_cmd = ICH9_APM_ACPI_DISABLE; - object_property_add(obj, ACPI_PM_PROP_SCI_INT, "uint8", - ich9_lpc_get_sci_int, - NULL, NULL, NULL, NULL); + object_property_add_uint8_ptr(obj, ACPI_PM_PROP_SCI_INT, + &lpc->sci_gsi, true, NULL); object_property_add_uint8_ptr(obj, ACPI_PM_PROP_ACPI_ENABLE_CMD, &acpi_enable_cmd, true, NULL); object_property_add_uint8_ptr(obj, ACPI_PM_PROP_ACPI_DISABLE_CMD, diff --git a/hw/misc/edu.c b/hw/misc/edu.c index d5e2bdbb57..200503ecfd 100644 --- a/hw/misc/edu.c +++ b/hw/misc/edu.c @@ -396,21 +396,13 @@ static void pci_edu_uninit(PCIDevice *pdev) msi_uninit(pdev); } -static void edu_obj_uint64(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - uint64_t *val = opaque; - - visit_type_uint64(v, name, val, errp); -} - static void edu_instance_init(Object *obj) { EduState *edu = EDU(obj); edu->dma_mask = (1UL << 28) - 1; - object_property_add(obj, "dma_mask", "uint64", edu_obj_uint64, - edu_obj_uint64, NULL, &edu->dma_mask, NULL); + object_property_add_uint64_ptr(obj, "dma_mask", + &edu->dma_mask, false, NULL); } static void edu_class_init(ObjectClass *class, void *data) diff --git a/hw/pci-host/q35.c b/hw/pci-host/q35.c index 158d270b9f..61fbe04fe9 100644 --- a/hw/pci-host/q35.c +++ b/hw/pci-host/q35.c @@ -165,14 +165,6 @@ static void q35_host_get_pci_hole64_end(Object *obj, Visitor *v, visit_type_uint64(v, name, &value, errp); } -static void q35_host_get_mmcfg_size(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - PCIExpressHost *e = PCIE_HOST_BRIDGE(obj); - - visit_type_uint64(v, name, &e->size, errp); -} - /* * NOTE: setting defaults for the mch.* fields in this table * doesn't work, because mch is a separate QOM object that is @@ -213,6 +205,7 @@ static void q35_host_initfn(Object *obj) { Q35PCIHost *s = Q35_HOST_DEVICE(obj); PCIHostState *phb = PCI_HOST_BRIDGE(obj); + PCIExpressHost *pehb = PCIE_HOST_BRIDGE(obj); memory_region_init_io(&phb->conf_mem, obj, &pci_host_conf_le_ops, phb, "pci-conf-idx", 4); @@ -242,9 +235,8 @@ static void q35_host_initfn(Object *obj) q35_host_get_pci_hole64_end, NULL, NULL, NULL, NULL); - object_property_add(obj, PCIE_HOST_MCFG_SIZE, "uint64", - q35_host_get_mmcfg_size, - NULL, NULL, NULL, NULL); + object_property_add_uint64_ptr(obj, PCIE_HOST_MCFG_SIZE, + &pehb->size, true, NULL); object_property_add_link(obj, MCH_HOST_PROP_RAM_MEM, TYPE_MEMORY_REGION, (Object **) &s->mch.ram_memory, diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index e076f6023c..1b9400526f 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -3227,18 +3227,6 @@ static void spapr_set_resize_hpt(Object *obj, const char *value, Error **errp) } } -static void spapr_get_vsmt(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - visit_type_uint32(v, name, (uint32_t *)opaque, errp); -} - -static void spapr_set_vsmt(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - visit_type_uint32(v, name, (uint32_t *)opaque, errp); -} - static char *spapr_get_ic_mode(Object *obj, Error **errp) { SpaprMachineState *spapr = SPAPR_MACHINE(obj); @@ -3336,8 +3324,9 @@ static void spapr_instance_init(Object *obj) object_property_set_description(obj, "resize-hpt", "Resizing of the Hash Page Table (enabled, disabled, required)", NULL); - object_property_add(obj, "vsmt", "uint32", spapr_get_vsmt, - spapr_set_vsmt, NULL, &spapr->vsmt, &error_abort); + object_property_add_uint32_ptr(obj, "vsmt", + &spapr->vsmt, false, &error_abort); + object_property_set_description(obj, "vsmt", "Virtual SMT: KVM behaves as if this were" " the host's SMT mode", &error_abort); diff --git a/hw/vfio/pci-quirks.c b/hw/vfio/pci-quirks.c index 136f3a9ad6..34335e071e 100644 --- a/hw/vfio/pci-quirks.c +++ b/hw/vfio/pci-quirks.c @@ -2187,14 +2187,6 @@ int vfio_add_virt_caps(VFIOPCIDevice *vdev, Error **errp) return 0; } -static void vfio_pci_nvlink2_get_tgt(Object *obj, Visitor *v, - const char *name, - void *opaque, Error **errp) -{ - uint64_t tgt = (uintptr_t) opaque; - visit_type_uint64(v, name, &tgt, errp); -} - static void vfio_pci_nvlink2_get_link_speed(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) @@ -2240,9 +2232,8 @@ int vfio_pci_nvidia_v100_ram_init(VFIOPCIDevice *vdev, Error **errp) nv2reg->size, p); QLIST_INSERT_HEAD(&vdev->bars[0].quirks, quirk, next); - object_property_add(OBJECT(vdev), "nvlink2-tgt", "uint64", - vfio_pci_nvlink2_get_tgt, NULL, NULL, - (void *) (uintptr_t) cap->tgt, NULL); + object_property_add_uint64_ptr(OBJECT(vdev), "nvlink2-tgt", + (void *)(uintptr_t)cap->tgt, true, NULL); trace_vfio_pci_nvidia_gpu_setup_quirk(vdev->vbasedev.name, cap->tgt, nv2reg->size); free_exit: @@ -2301,9 +2292,8 @@ int vfio_pci_nvlink2_init(VFIOPCIDevice *vdev, Error **errp) QLIST_INSERT_HEAD(&vdev->bars[0].quirks, quirk, next); } - object_property_add(OBJECT(vdev), "nvlink2-tgt", "uint64", - vfio_pci_nvlink2_get_tgt, NULL, NULL, - (void *) (uintptr_t) captgt->tgt, NULL); + object_property_add_uint64_ptr(OBJECT(vdev), "nvlink2-tgt", + (void *)(uintptr_t)captgt->tgt, true, NULL); trace_vfio_pci_nvlink2_setup_quirk_ssatgt(vdev->vbasedev.name, captgt->tgt, atsdreg->size); diff --git a/memory.c b/memory.c index 06484c2bff..0a34ee3c86 100644 --- a/memory.c +++ b/memory.c @@ -1158,15 +1158,6 @@ void memory_region_init(MemoryRegion *mr, memory_region_do_init(mr, owner, name, size); } -static void memory_region_get_addr(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - MemoryRegion *mr = MEMORY_REGION(obj); - uint64_t value = mr->addr; - - visit_type_uint64(v, name, &value, errp); -} - static void memory_region_get_container(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) @@ -1230,10 +1221,8 @@ static void memory_region_initfn(Object *obj) NULL, NULL, &error_abort); op->resolve = memory_region_resolve_container; - object_property_add(OBJECT(mr), "addr", "uint64", - memory_region_get_addr, - NULL, /* memory_region_set_addr */ - NULL, NULL, &error_abort); + object_property_add_uint64_ptr(OBJECT(mr), "addr", + &mr->addr, true, &error_abort); object_property_add(OBJECT(mr), "priority", "uint32", memory_region_get_priority, NULL, /* memory_region_set_priority */ diff --git a/target/arm/cpu.c b/target/arm/cpu.c index 7a4ac9339b..aa7278e540 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -1039,22 +1039,6 @@ static void arm_set_pmu(Object *obj, bool value, Error **errp) cpu->has_pmu = value; } -static void arm_get_init_svtor(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - ARMCPU *cpu = ARM_CPU(obj); - - visit_type_uint32(v, name, &cpu->init_svtor, errp); -} - -static void arm_set_init_svtor(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - ARMCPU *cpu = ARM_CPU(obj); - - visit_type_uint32(v, name, &cpu->init_svtor, errp); -} - void arm_cpu_post_init(Object *obj) { ARMCPU *cpu = ARM_CPU(obj); @@ -1165,9 +1149,8 @@ void arm_cpu_post_init(Object *obj) * a simple DEFINE_PROP_UINT32 for this because we want to permit * the property to be set after realize. */ - object_property_add(obj, "init-svtor", "uint32", - arm_get_init_svtor, arm_set_init_svtor, - NULL, NULL, &error_abort); + object_property_add_uint32_ptr(obj, "init-svtor", + &cpu->init_svtor, false, &error_abort); } qdev_property_add_static(DEVICE(obj), &arm_cpu_cfgend_property, diff --git a/target/i386/sev.c b/target/i386/sev.c index 024bb24e51..23d7ab8b72 100644 --- a/target/i386/sev.c +++ b/target/i386/sev.c @@ -266,94 +266,6 @@ qsev_guest_class_init(ObjectClass *oc, void *data) "guest owners session parameters (encoded with base64)", NULL); } -static void -qsev_guest_set_handle(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - QSevGuestInfo *sev = QSEV_GUEST_INFO(obj); - uint32_t value; - - visit_type_uint32(v, name, &value, errp); - sev->handle = value; -} - -static void -qsev_guest_set_policy(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - QSevGuestInfo *sev = QSEV_GUEST_INFO(obj); - uint32_t value; - - visit_type_uint32(v, name, &value, errp); - sev->policy = value; -} - -static void -qsev_guest_set_cbitpos(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - QSevGuestInfo *sev = QSEV_GUEST_INFO(obj); - uint32_t value; - - visit_type_uint32(v, name, &value, errp); - sev->cbitpos = value; -} - -static void -qsev_guest_set_reduced_phys_bits(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - QSevGuestInfo *sev = QSEV_GUEST_INFO(obj); - uint32_t value; - - visit_type_uint32(v, name, &value, errp); - sev->reduced_phys_bits = value; -} - -static void -qsev_guest_get_policy(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - uint32_t value; - QSevGuestInfo *sev = QSEV_GUEST_INFO(obj); - - value = sev->policy; - visit_type_uint32(v, name, &value, errp); -} - -static void -qsev_guest_get_handle(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - uint32_t value; - QSevGuestInfo *sev = QSEV_GUEST_INFO(obj); - - value = sev->handle; - visit_type_uint32(v, name, &value, errp); -} - -static void -qsev_guest_get_cbitpos(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - uint32_t value; - QSevGuestInfo *sev = QSEV_GUEST_INFO(obj); - - value = sev->cbitpos; - visit_type_uint32(v, name, &value, errp); -} - -static void -qsev_guest_get_reduced_phys_bits(Object *obj, Visitor *v, const char *name, - void *opaque, Error **errp) -{ - uint32_t value; - QSevGuestInfo *sev = QSEV_GUEST_INFO(obj); - - value = sev->reduced_phys_bits; - visit_type_uint32(v, name, &value, errp); -} - static void qsev_guest_init(Object *obj) { @@ -361,15 +273,11 @@ qsev_guest_init(Object *obj) sev->sev_device = g_strdup(DEFAULT_SEV_DEVICE); sev->policy = DEFAULT_GUEST_POLICY; - object_property_add(obj, "policy", "uint32", qsev_guest_get_policy, - qsev_guest_set_policy, NULL, NULL, NULL); - object_property_add(obj, "handle", "uint32", qsev_guest_get_handle, - qsev_guest_set_handle, NULL, NULL, NULL); - object_property_add(obj, "cbitpos", "uint32", qsev_guest_get_cbitpos, - qsev_guest_set_cbitpos, NULL, NULL, NULL); - object_property_add(obj, "reduced-phys-bits", "uint32", - qsev_guest_get_reduced_phys_bits, - qsev_guest_set_reduced_phys_bits, NULL, NULL, NULL); + object_property_add_uint32_ptr(obj, "policy", &sev->policy, false, NULL); + object_property_add_uint32_ptr(obj, "handle", &sev->handle, false, NULL); + object_property_add_uint32_ptr(obj, "cbitpos", &sev->cbitpos, false, NULL); + object_property_add_uint32_ptr(obj, "reduced-phys-bits", + &sev->reduced_phys_bits, false, NULL); } /* sev guest info */