From nobody Mon Feb 9 00:30:48 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) client-ip=216.205.24.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1636986154; cv=none; d=zohomail.com; s=zohoarc; b=XxvNToaL3FVE0jM6Bh5ooTrmM+8YRkNhKUL+aJ81mYfJhQpT6Og1GGC3a6wmUzc8/Tq/sUUNQ5q1gfXlwcKAFekm24zt9F/ndnyccNRrrlO+vmxV+3PuIqkfghxInZ59YwPJN5m99cq5W1y4a8mCsrn/AwFXM9I6h3+aWlMiRgg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1636986154; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=nYHoGqb9FvsIo1XYmfJEIvpwqxwkSerzcYPXh3n6hUE=; b=LcdDAF7qtwHig2Kk9iVPcloFTqOG6lfU3C55TETJWh1FQiO+Iyh5jjEWaxlkv6Cdd7yhDbnkA4m6MIdxCoFLFCXWeaJqepuFSylPmzJOTAvV7c9ZEua+HJF3GFttHZik/Xs8E/cMDehcyUHKBOt9zeTDANn/phtByxhusH8pSXc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.zohomail.com with SMTPS id 1636986154221752.0559063152213; Mon, 15 Nov 2021 06:22:34 -0800 (PST) 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-525-0TG6qb16M1-UpaDMKh9Q7g-1; Mon, 15 Nov 2021 09:22:30 -0500 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 3CBA087D541; Mon, 15 Nov 2021 14:22:24 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id DE42E5D9CA; Mon, 15 Nov 2021 14:22:23 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 906C44A704; Mon, 15 Nov 2021 14:22:21 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 1AFEMKGQ009669 for ; Mon, 15 Nov 2021 09:22:20 -0500 Received: by smtp.corp.redhat.com (Postfix) id 966CA5BB0D; Mon, 15 Nov 2021 14:22:20 +0000 (UTC) Received: from speedmetal.lan (unknown [10.40.208.20]) by smtp.corp.redhat.com (Postfix) with ESMTP id BF09622719 for ; Mon, 15 Nov 2021 14:22:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1636986153; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=nYHoGqb9FvsIo1XYmfJEIvpwqxwkSerzcYPXh3n6hUE=; b=bSXPO3gfPIbVDN8+kVUKJya3g9bzcn4Z8wXGo1Z9tOBfI0T8kT9OLLxov1m4myC3HMqn+P 8DG6N3KSs1YNCZ8XSwQxwNcec4JOPoHPo5KamCzgwMfi20ANdRWXjjbu6Jgqn/trg1x7tA JqZl1b/l0SrEcjkJSAMUarcsjo8s9FM= X-MC-Unique: 0TG6qb16M1-UpaDMKh9Q7g-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 01/18] virJSONValueObjectAdd: Convert @obj argument to double pointer Date: Mon, 15 Nov 2021 15:22:00 +0100 Message-Id: <453979cfafa6af4ed46271f06491aa6bf6899cbf.1636986086.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1636986242892100003 Content-Type: text/plain; charset="utf-8" Change the first argument to a double pointer so that later the function can be unified with virJSONValueObjectCreate and fix all callers. Signed-off-by: Peter Krempa --- src/qemu/qemu_block.c | 36 +++++----- src/qemu/qemu_command.c | 124 +++++++++++++++++------------------ src/qemu/qemu_monitor_json.c | 6 +- src/util/virjson.c | 6 +- src/util/virjson.h | 2 +- 5 files changed, 87 insertions(+), 87 deletions(-) diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index b8e70f6a83..a1adef0c5d 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -636,7 +636,7 @@ qemuBlockStorageSourceGetGlusterProps(virStorageSource = *src, if (!onlytarget && src->debug && - virJSONValueObjectAdd(props, "u:debug", src->debugLevel, NULL) < 0) + virJSONValueObjectAdd(&props, "u:debug", src->debugLevel, NULL) < = 0) return NULL; return g_steal_pointer(&props); @@ -700,11 +700,11 @@ qemuBlockStorageSourceGetNFSProps(virStorageSource *s= rc) return NULL; if (src->nfs_uid !=3D -1 && - virJSONValueObjectAdd(ret, "i:user", src->nfs_uid, NULL) < 0) + virJSONValueObjectAdd(&ret, "i:user", src->nfs_uid, NULL) < 0) return NULL; if (src->nfs_gid !=3D -1 && - virJSONValueObjectAdd(ret, "i:group", src->nfs_gid, NULL) < 0) + virJSONValueObjectAdd(&ret, "i:group", src->nfs_gid, NULL) < 0) return NULL; return ret; @@ -1060,7 +1060,7 @@ qemuBlockStorageSourceGetVvfatProps(virStorageSource = *src, return NULL; if (!onlytarget && - virJSONValueObjectAdd(ret, "b:rw", !src->readonly, NULL) < 0) + virJSONValueObjectAdd(&ret, "b:rw", !src->readonly, NULL) < 0) return NULL; return g_steal_pointer(&ret); @@ -1270,21 +1270,21 @@ qemuBlockStorageSourceGetBackendProps(virStorageSou= rce *src, if (!onlytarget) { if (qemuBlockNodeNameValidate(src->nodestorage) < 0 || - virJSONValueObjectAdd(fileprops, "S:node-name", src->nodestora= ge, NULL) < 0) + virJSONValueObjectAdd(&fileprops, "S:node-name", src->nodestor= age, NULL) < 0) return NULL; if (!legacy) { if (qemuBlockStorageSourceGetBlockdevGetCacheProps(src, filepr= ops) < 0) return NULL; - if (virJSONValueObjectAdd(fileprops, + if (virJSONValueObjectAdd(&fileprops, "T:read-only", ro, "T:auto-read-only", aro, NULL) < 0) return NULL; if (!(flags & QEMU_BLOCK_STORAGE_SOURCE_BACKEND_PROPS_SKIP_UNM= AP) && - virJSONValueObjectAdd(fileprops, + virJSONValueObjectAdd(&fileprops, "s:discard", "unmap", NULL) < 0) return NULL; @@ -1307,7 +1307,7 @@ qemuBlockStorageSourceGetFormatLUKSProps(virStorageSo= urce *src, return -1; } - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "s:driver", "luks", "s:key-secret", srcPriv->encinfo->alias, NULL) < 0) @@ -1321,14 +1321,14 @@ static int qemuBlockStorageSourceGetFormatRawProps(virStorageSource *src, virJSONValue *props) { - if (virJSONValueObjectAdd(props, "s:driver", "raw", NULL) < 0) + if (virJSONValueObjectAdd(&props, "s:driver", "raw", NULL) < 0) return -1; /* Currently only storage slices are supported. We'll have to calculate * the union of the slices here if we don't want to be adding needless * 'raw' nodes. */ if (src->sliceStorage && - virJSONValueObjectAdd(props, + virJSONValueObjectAdd(&props, "U:offset", src->sliceStorage->offset, "U:size", src->sliceStorage->size, NULL) < 0) @@ -1392,7 +1392,7 @@ qemuBlockStorageSourceGetFormatQcowGenericProps(virSt= orageSource *src, if (qemuBlockStorageSourceGetCryptoProps(src, &encprops) < 0) return -1; - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "s:driver", format, "A:encrypt", &encprops, NULL) < 0) return -1; @@ -1426,7 +1426,7 @@ qemuBlockStorageSourceGetFormatQcow2Props(virStorageS= ource *src, * https://git.qemu.org/?p=3Dqemu.git;a=3Dblob;f=3Ddocs/qcow2-cache.txt */ if (src->metadataCacheMaxSize > 0) { - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "U:cache-size", src->metadataCacheMaxSiz= e, NULL) < 0) return -1; @@ -1545,7 +1545,7 @@ qemuBlockStorageSourceGetBlockdevFormatProps(virStora= geSource *src) } if (driver && - virJSONValueObjectAdd(props, "s:driver", driver, NULL) < 0) + virJSONValueObjectAdd(&props, "s:driver", driver, NULL) < 0) return NULL; return g_steal_pointer(&props); @@ -2311,7 +2311,7 @@ qemuBlockStorageSourceCreateAddBacking(virStorageSour= ce *backing, if (!(backingFileStr =3D qemuBlockGetBackingStoreString(backing, false= ))) return -1; - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "S:backing-file", backingFileStr, "S:backing-fmt", backingFormatStr, NULL) < 0) @@ -2370,7 +2370,7 @@ qemuBlockStorageSourceCreateGetEncryptionLUKS(virStor= ageSource *src, src->encryption->encinfo.cipher_si= ze); } - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "S:cipher-alg", cipheralg, "S:cipher-mode", src->encryption->encinf= o.cipher_mode, "S:hash-alg", src->encryption->encinfo.c= ipher_hash, @@ -2394,7 +2394,7 @@ qemuBlockStorageSourceCreateGetFormatPropsLUKS(virSto= rageSource *src, if (qemuBlockStorageSourceCreateGetEncryptionLUKS(src, &luksprops) < 0) return -1; - if (virJSONValueObjectAdd(luksprops, + if (virJSONValueObjectAdd(&luksprops, "s:driver", "luks", "s:file", src->nodestorage, "U:size", src->capacity, @@ -2424,10 +2424,10 @@ qemuBlockStorageSourceCreateAddEncryptionQcow(virSt= orageSource *src, if (qemuBlockStorageSourceCreateGetEncryptionLUKS(src, &encryptProps) = < 0) return -1; - if (virJSONValueObjectAdd(encryptProps, "s:format", "luks", NULL) < 0) + if (virJSONValueObjectAdd(&encryptProps, "s:format", "luks", NULL) < 0) return -1; - if (virJSONValueObjectAdd(props, "a:encrypt", &encryptProps, NULL) < 0) + if (virJSONValueObjectAdd(&props, "a:encrypt", &encryptProps, NULL) < = 0) return -1; return 0; diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 9bd7258b1d..17ff7a5fe2 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -449,7 +449,7 @@ qemuBuildDeviceAddresDriveProps(virJSONValue *props, bus =3D g_strdup_printf("%s.%u", controllerAlias, info->addr.drive= .bus); - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "s:bus", bus, "u:unit", info->addr.drive.unit, NULL) < 0) @@ -473,7 +473,7 @@ qemuBuildDeviceAddresDriveProps(virJSONValue *props, bus =3D g_strdup_printf("%s.%u", controllerAlias, info->addr.drive= .unit); - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "s:bus", bus, NULL) < 0) return -1; @@ -481,7 +481,7 @@ qemuBuildDeviceAddresDriveProps(virJSONValue *props, break; case VIR_DOMAIN_DISK_BUS_FDC: - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "u:unit", info->addr.drive.unit, NULL) < 0) return -1; @@ -503,7 +503,7 @@ qemuBuildDeviceAddresDriveProps(virJSONValue *props, case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_AM53C974: bus =3D g_strdup_printf("%s.%u", controller->info.alias, info-= >addr.drive.bus); - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "s:bus", bus, "u:scsi-id", info->addr.drive.unit, NULL) < 0) @@ -522,7 +522,7 @@ qemuBuildDeviceAddresDriveProps(virJSONValue *props, case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VIRTIO_NON_TRANSITIONAL: bus =3D g_strdup_printf("%s.0", controller->info.alias); - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "s:bus", bus, "u:channel", info->addr.drive.bus, "u:scsi-id", info->addr.drive.target, @@ -578,7 +578,7 @@ qemuBuildDeviceAddressProps(virJSONValue *props, else pciaddr =3D g_strdup_printf("0x%x", info->addr.pci.slot); - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "s:bus", bus, "T:multifunction", info->addr.pci.multi, "s:addr", pciaddr, @@ -604,7 +604,7 @@ qemuBuildDeviceAddressProps(virJSONValue *props, virDomainUSBAddressPortFormatBuf(&port, info->addr.usb.port); - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "s:bus", bus, "S:port", virBufferCurrentContent(&port), NULL) < 0) @@ -615,7 +615,7 @@ qemuBuildDeviceAddressProps(virJSONValue *props, case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_SPAPRVIO: if (info->addr.spaprvio.has_reg) { - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "P:reg", info->addr.spaprvio.reg, NULL) < 0) return -1; @@ -628,14 +628,14 @@ qemuBuildDeviceAddressProps(virJSONValue *props, info->addr.ccw.ssid, info->addr.ccw.devno); - if (virJSONValueObjectAdd(props, "s:devno", devno, NULL) < 0) + if (virJSONValueObjectAdd(&props, "s:devno", devno, NULL) < 0) return -1; return 0; } case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_ISA: - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "u:iobase", info->addr.isa.iobase, "p:irq", info->addr.isa.irq, NULL) < 0) @@ -644,7 +644,7 @@ qemuBuildDeviceAddressProps(virJSONValue *props, return 0; case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DIMM: - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "u:slot", info->addr.dimm.slot, "P:addr", info->addr.dimm.base, NULL) < 0) @@ -666,7 +666,7 @@ qemuBuildDeviceAddressProps(virJSONValue *props, bus =3D g_strdup_printf("%s.%d", contAlias, info->addr.vioserial.b= us); - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "s:bus", bus, "i:nr", info->addr.vioserial.port, NULL) < 0) @@ -1122,7 +1122,7 @@ qemuBuildVirtioDevProps(virDomainDeviceType devtype, return NULL; if (virtioOptions) { - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "T:iommu_platform", virtioOptions->iommu, "T:ats", virtioOptions->ats, "T:packed", virtioOptions->packed, @@ -1165,7 +1165,7 @@ qemuBuildRomProps(virJSONValue *props, } } - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "k:rombar", rombar, "S:romfile", romfile, NULL) < 0) @@ -1975,7 +1975,7 @@ qemuBuildDiskDeviceProps(const virDomainDef *def, if (!(props =3D qemuBuildVirtioDevProps(VIR_DOMAIN_DEVICE_DISK, di= sk, qemuCaps))) return NULL; - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "S:iothread", iothread, "T:ioeventfd", disk->ioeventfd, "T:event_idx", disk->event_idx, @@ -2088,7 +2088,7 @@ qemuBuildDiskDeviceProps(const virDomainDef *def, if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_STORAGE_WERROR)) qemuBuildDiskGetErrorPolicy(disk, &wpolicy, &rpolicy); - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "S:device_id", scsiVPDDeviceId, "T:share-rw", shareRW, "S:drive", drive, @@ -2480,7 +2480,7 @@ qemuBuildVHostUserFsDevProps(virDomainFSDef *fs, if (!(props =3D qemuBuildVirtioDevProps(VIR_DOMAIN_DEVICE_FS, fs, priv= ->qemuCaps))) return NULL; - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "s:id", fs->info.alias, "s:chardev", chardev_alias, "P:queue-size", fs->queue_size, @@ -2585,7 +2585,7 @@ qemuBuildFSDevCmd(virCommand *cmd, if (!(devprops =3D qemuBuildVirtioDevProps(VIR_DOMAIN_DEVICE_FS, fs, q= emuCaps))) return -1; - if (virJSONValueObjectAdd(devprops, + if (virJSONValueObjectAdd(&devprops, "s:id", fs->info.alias, "s:fsdev", fsdev, "s:mount_tag", fs->dst, @@ -2776,13 +2776,13 @@ qemuBuildUSBControllerDevProps(const virDomainDef *= domainDef, masterbus =3D g_strdup_printf("%s.0", alias); - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "s:masterbus", masterbus, "i:firstport", def->info.master.usb.star= tport, NULL) < 0) return NULL; } else { - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "s:id", def->info.alias, NULL) < 0) return NULL; @@ -2811,7 +2811,7 @@ qemuBuildControllerSCSIDevProps(virDomainControllerDe= f *def, if (def->iothread > 0) iothread =3D g_strdup_printf("iothread%u", def->iothread); - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "S:iothread", iothread, "s:id", def->info.alias, "p:num_queues", def->queues, @@ -2915,7 +2915,7 @@ qemuBuildControllerPCIDevProps(virDomainControllerDef= *def, return -1; if (pciopts->numaNode !=3D -1 && - virJSONValueObjectAdd(props, "i:numa_node", pciopts->numaNode,= NULL) < 0) + virJSONValueObjectAdd(&props, "i:numa_node", pciopts->numaNode= , NULL) < 0) return -1; break; @@ -2952,7 +2952,7 @@ qemuBuildControllerPCIDevProps(virDomainControllerDef= *def, return -1; if (pciopts->numaNode !=3D -1 && - virJSONValueObjectAdd(props, "i:numa_node", pciopts->numaNode,= NULL) < 0) + virJSONValueObjectAdd(&props, "i:numa_node", pciopts->numaNode= , NULL) < 0) return -1; break; @@ -3015,7 +3015,7 @@ qemuBuildControllerDevProps(const virDomainDef *domai= nDef, qemuCaps))) return -1; - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "s:id", def->info.alias, "k:max_ports", def->opts.vioserial.ports, "k:vectors", def->opts.vioserial.vectors, @@ -3305,10 +3305,10 @@ qemuBuildMemoryBackendPropsShare(virJSONValue *prop= s, { switch (memAccess) { case VIR_DOMAIN_MEMORY_ACCESS_SHARED: - return virJSONValueObjectAdd(props, "b:share", true, NULL); + return virJSONValueObjectAdd(&props, "b:share", true, NULL); case VIR_DOMAIN_MEMORY_ACCESS_PRIVATE: - return virJSONValueObjectAdd(props, "b:share", false, NULL); + return virJSONValueObjectAdd(&props, "b:share", false, NULL); case VIR_DOMAIN_MEMORY_ACCESS_DEFAULT: case VIR_DOMAIN_MEMORY_ACCESS_LAST: @@ -3498,8 +3498,8 @@ qemuBuildMemoryBackendProps(virJSONValue **backendPro= ps, backendType =3D "memory-backend-memfd"; if (useHugepage) { - if (virJSONValueObjectAdd(props, "b:hugetlb", useHugepage, NUL= L) < 0 || - virJSONValueObjectAdd(props, "U:hugetlbsize", pagesize << = 10, NULL) < 0) { + if (virJSONValueObjectAdd(&props, "b:hugetlb", useHugepage, NU= LL) < 0 || + virJSONValueObjectAdd(&props, "U:hugetlbsize", pagesize <<= 10, NULL) < 0) { return -1; } @@ -3533,7 +3533,7 @@ qemuBuildMemoryBackendProps(virJSONValue **backendPro= ps, return -1; } - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "s:mem-path", memPath, NULL) < 0) return -1; @@ -3546,7 +3546,7 @@ qemuBuildMemoryBackendProps(virJSONValue **backendPro= ps, return -1; } - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "B:discard-data", true, NULL) < 0) return -1; @@ -3574,7 +3574,7 @@ qemuBuildMemoryBackendProps(virJSONValue **backendPro= ps, */ if (disableCanonicalPath && virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_X_USE_CANONICAL_PATH_FOR_= RAMBLOCK_ID) && - virJSONValueObjectAdd(props, "b:x-use-canonical-path-for-ramblock-= id", false, NULL) < 0) + virJSONValueObjectAdd(&props, "b:x-use-canonical-path-for-ramblock= -id", false, NULL) < 0) return -1; if (mem->model =3D=3D VIR_DOMAIN_MEMORY_MODEL_VIRTIO_MEM) { @@ -3591,11 +3591,11 @@ qemuBuildMemoryBackendProps(virJSONValue **backendP= rops, return -1; } else { if (!priv->memPrealloc && - virJSONValueObjectAdd(props, "B:prealloc", prealloc, NULL) < 0) + virJSONValueObjectAdd(&props, "B:prealloc", prealloc, NULL) < = 0) return -1; } - if (virJSONValueObjectAdd(props, "U:size", mem->size * 1024, NULL) < 0) + if (virJSONValueObjectAdd(&props, "U:size", mem->size * 1024, NULL) < = 0) return -1; if (mem->alignsize) { @@ -3605,7 +3605,7 @@ qemuBuildMemoryBackendProps(virJSONValue **backendPro= ps, "with this QEMU binary")); return -1; } - if (virJSONValueObjectAdd(props, "U:align", mem->alignsize * 1024,= NULL) < 0) + if (virJSONValueObjectAdd(&props, "U:align", mem->alignsize * 1024= , NULL) < 0) return -1; } @@ -3616,7 +3616,7 @@ qemuBuildMemoryBackendProps(virJSONValue **backendPro= ps, "with this QEMU binary")); return -1; } - if (virJSONValueObjectAdd(props, "b:pmem", true, NULL) < 0) + if (virJSONValueObjectAdd(&props, "b:pmem", true, NULL) < 0) return -1; } @@ -3635,7 +3635,7 @@ qemuBuildMemoryBackendProps(virJSONValue **backendPro= ps, mode !=3D VIR_DOMAIN_NUMATUNE_MEM_RESTRICTIVE) { if (!virNumaNodesetIsAvailable(nodemask)) return -1; - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "m:host-nodes", nodemask, "S:policy", qemuNumaPolicyTypeToString(m= ode), NULL) < 0) @@ -3884,7 +3884,7 @@ qemuBuildNicDevProps(virDomainDef *def, if (!(props =3D qemuBuildVirtioDevProps(VIR_DOMAIN_DEVICE_NET, net= , qemuCaps))) return NULL; - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "S:tx", tx, "T:ioeventfd", net->driver.virtio.ioeven= tfd, "T:event_idx", net->driver.virtio.event_= idx, @@ -3917,7 +3917,7 @@ qemuBuildNicDevProps(virDomainDef *def, virMacAddrFormat(&net->mac, macaddr); - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "s:netdev", netdev, "s:id", net->info.alias, "s:mac", macaddr, @@ -3973,7 +3973,7 @@ qemuBuildHostNetStr(virDomainNetDef *net, /* for one tapfd 'fd=3D' shall be used, * for more than one 'fds=3D' is the right choice */ if (tapfdSize =3D=3D 1) { - if (virJSONValueObjectAdd(netprops, "s:fd", tapfd[0], NULL) < = 0) + if (virJSONValueObjectAdd(&netprops, "s:fd", tapfd[0], NULL) <= 0) return NULL; } else { g_auto(virBuffer) fdsbuf =3D VIR_BUFFER_INITIALIZER; @@ -3983,7 +3983,7 @@ qemuBuildHostNetStr(virDomainNetDef *net, virBufferTrim(&fdsbuf, ":"); - if (virJSONValueObjectAdd(netprops, + if (virJSONValueObjectAdd(&netprops, "s:fds", virBufferCurrentContent(&fd= sbuf), NULL) < 0) return NULL; @@ -4102,7 +4102,7 @@ qemuBuildHostNetStr(virDomainNetDef *net, return NULL; if (vhostfdSize =3D=3D 1) { - if (virJSONValueObjectAdd(netprops, "s:vhostfd", vhostfd[0= ], NULL) < 0) + if (virJSONValueObjectAdd(&netprops, "s:vhostfd", vhostfd[= 0], NULL) < 0) return NULL; } else { g_auto(virBuffer) fdsbuf =3D VIR_BUFFER_INITIALIZER; @@ -4112,7 +4112,7 @@ qemuBuildHostNetStr(virDomainNetDef *net, virBufferTrim(&fdsbuf, ":"); - if (virJSONValueObjectAdd(netprops, + if (virJSONValueObjectAdd(&netprops, "s:vhostfds", virBufferCurrentCo= ntent(&fdsbuf), NULL) < 0) return NULL; @@ -4202,7 +4202,7 @@ qemuBuildMemballoonCommandLine(virCommand *cmd, def->memballoon, qemuCaps))) return -1; - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "s:id", def->memballoon->info.alias, "T:deflate-on-oom", def->memballoon->autodef= late, "T:free-page-reporting", def->memballoon->fr= ee_page_reporting, @@ -4281,7 +4281,7 @@ qemuBuildInputVirtioDevProps(const virDomainDef *def, if (!(props =3D qemuBuildVirtioDevProps(VIR_DOMAIN_DEVICE_INPUT, dev, = qemuCaps))) return NULL; - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "s:id", dev->info.alias, "S:evdev", evdev, NULL) < 0) @@ -4338,11 +4338,11 @@ qemuBuildInputEvdevProps(virDomainInputDef *dev) return NULL; if (dev->source.grab =3D=3D VIR_DOMAIN_INPUT_SOURCE_GRAB_ALL && - virJSONValueObjectAdd(props, "b:grab_all", true, NULL) < 0) + virJSONValueObjectAdd(&props, "b:grab_all", true, NULL) < 0) return NULL; if (dev->source.grabToggle !=3D VIR_DOMAIN_INPUT_SOURCE_GRAB_TOGGLE_DE= FAULT && - virJSONValueObjectAdd(props, "s:grab-toggle", + virJSONValueObjectAdd(&props, "s:grab-toggle", virDomainInputSourceGrabToggleTypeToString(d= ev->source.grabToggle), NULL) < 0) return NULL; @@ -4580,35 +4580,35 @@ qemuBuildDeviceVideoCmd(virCommand *cmd, } } - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "s:id", video->info.alias, "T:virgl", virgl, NULL) < 0) return -1; if (video->type =3D=3D VIR_DOMAIN_VIDEO_TYPE_QXL) { - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "p:ram_size", video->ram * 1024, "p:vram_size", video->vram * 1024, NULL) < 0) return -1; if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_QXL_VRAM64)) { - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "u:vram64_size_mb", video->vram64 / = 1024, NULL) < 0) return -1; } if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_QXL_VGAMEM)) { - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "u:vgamem_mb", video->vgamem / 1024, NULL) < 0) return -1; } if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_QXL_MAX_OUTPUTS)) { - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "p:max_outputs", video->heads, NULL) < 0) return -1; @@ -4616,7 +4616,7 @@ qemuBuildDeviceVideoCmd(virCommand *cmd, } else if (video->backend =3D=3D VIR_DOMAIN_VIDEO_BACKEND_TYPE_VHOSTUS= ER) { g_autofree char *alias =3D qemuDomainGetVhostUserChrAlias(video->i= nfo.alias); - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "p:max_outputs", video->heads, "s:chardev", alias, NULL) < 0) @@ -4627,7 +4627,7 @@ qemuBuildDeviceVideoCmd(virCommand *cmd, if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_GPU_MAX_OUTPUTS)) heads =3D video->heads; - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "p:max_outputs", heads, NULL) < 0) return -1; @@ -4635,19 +4635,19 @@ qemuBuildDeviceVideoCmd(virCommand *cmd, virQEMUCapsGet(qemuCaps, QEMU_CAPS_VGA_VGAMEM)) || (video->type =3D=3D VIR_DOMAIN_VIDEO_TYPE_VMVGA && virQEMUCapsGet(qemuCaps, QEMU_CAPS_VMWARE_SVGA_VGAMEM))) { - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "p:vgamem_mb", video->vram / 1024, NULL) < 0) return -1; } else if (video->type =3D=3D VIR_DOMAIN_VIDEO_TYPE_BOCHS) { - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "p:vgamem", video->vram * 1024, NULL) < 0) return -1; } if (video->res) { - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "p:xres", video->res->x, "p:yres", video->res->y, NULL) < 0) @@ -4900,7 +4900,7 @@ qemuBuildSCSIVHostHostdevDevProps(const virDomainDef = *def, if (!(props =3D qemuBuildVirtioDevProps(VIR_DOMAIN_DEVICE_HOSTDEV, dev= , qemuCaps))) return NULL; - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "s:wwpn", hostsrc->wwpn, "s:vhostfd", vhostfdName, "s:id", dev->info->alias, @@ -5664,7 +5664,7 @@ qemuBuildVirtioSerialPortDevProps(const virDomainDef = *def, targetname =3D "com.redhat.spice.0"; } - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "s:chardev", chardev, "s:id", dev->info.alias, "S:name", targetname, @@ -5811,7 +5811,7 @@ qemuBuildRNGDevProps(const virDomainDef *def, period =3D 1000; } - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "s:rng", rng, "s:id", dev->info.alias, "p:max-bytes", dev->rate, @@ -9150,7 +9150,7 @@ qemuBuildSmartcardCommandLine(virLogManager *logManag= er, bus =3D g_strdup_printf("%s.0", contAlias); - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "s:id", smartcard->info.alias, "s:bus", bus, NULL) < 0) @@ -10166,7 +10166,7 @@ qemuBuildPanicCommandLine(virCommand *cmd, /* pvpanic uses 'ioport' instead of 'iobase' so * qemuBuildDeviceAddressProps can't be used */ if (def->panics[i]->info.type =3D=3D VIR_DOMAIN_DEVICE_ADDRESS= _TYPE_ISA) { - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "u:ioport", def->panics[i]->info= .addr.isa.iobase, NULL) < 0) return -1; @@ -10472,7 +10472,7 @@ qemuBuildVsockDevProps(virDomainDef *def, if (!(props =3D qemuBuildVirtioDevProps(VIR_DOMAIN_DEVICE_VSOCK, vsock= , qemuCaps))) return NULL; - if (virJSONValueObjectAdd(props, + if (virJSONValueObjectAdd(&props, "s:id", vsock->info.alias, "u:guest-cid", vsock->guest_cid, "s:vhostfd", vhostfd, diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 4669b9135d..8105b40ffb 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -3612,7 +3612,7 @@ int qemuMonitorJSONAddFileHandleToSet(qemuMonitor *mo= n, return -1; if (fdset >=3D 0 && - virJSONValueObjectAdd(args, "j:fdset-id", fdset, NULL) < 0) { + virJSONValueObjectAdd(&args, "j:fdset-id", fdset, NULL) < 0) { return -1; } @@ -6636,7 +6636,7 @@ qemuMonitorJSONAttachCharDevCommand(const char *chrID, backend_type =3D "file"; if (virJSONValueObjectAppendString(data, "out", chr->data.file.pat= h) < 0) return NULL; - if (virJSONValueObjectAdd(data, + if (virJSONValueObjectAdd(&data, "T:append", chr->data.file.append, NULL) < 0) return NULL; @@ -6748,7 +6748,7 @@ qemuMonitorJSONAttachCharDevCommand(const char *chrID, } if (chr->logfile && - virJSONValueObjectAdd(data, + virJSONValueObjectAdd(&data, "s:logfile", chr->logfile, "T:logappend", chr->logappend, NULL) < 0) diff --git a/src/util/virjson.c b/src/util/virjson.c index 4aabad15ef..446b675309 100644 --- a/src/util/virjson.c +++ b/src/util/virjson.c @@ -348,13 +348,13 @@ virJSONValueObjectAddVArgs(virJSONValue *obj, int -virJSONValueObjectAdd(virJSONValue *obj, ...) +virJSONValueObjectAdd(virJSONValue **objptr, ...) { va_list args; int ret; - va_start(args, obj); - ret =3D virJSONValueObjectAddVArgs(obj, args); + va_start(args, objptr); + ret =3D virJSONValueObjectAddVArgs(*objptr, args); va_end(args); return ret; diff --git a/src/util/virjson.h b/src/util/virjson.h index 7b9fcbf99b..c5d969f0fc 100644 --- a/src/util/virjson.h +++ b/src/util/virjson.h @@ -48,7 +48,7 @@ int virJSONValueObjectCreate(virJSONValue **obj, ...) ATTRIBUTE_NONNULL(1) G_GNUC_NULL_TERMINATED; int virJSONValueObjectCreateVArgs(virJSONValue **obj, va_list args) ATTRIBUTE_NONNULL(1); -int virJSONValueObjectAdd(virJSONValue *obj, ...) +int virJSONValueObjectAdd(virJSONValue **obj, ...) ATTRIBUTE_NONNULL(1) G_GNUC_NULL_TERMINATED; int virJSONValueObjectAddVArgs(virJSONValue *obj, va_list args) ATTRIBUTE_NONNULL(1); --=20 2.31.1