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);
return NULL;
if (src->nfs_uid != -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 != -1 &&
- virJSONValueObjectAdd(ret, "i:group", src->nfs_gid, NULL) < 0)
+ virJSONValueObjectAdd(&ret, "i:group", src->nfs_gid, NULL) < 0)
return NULL;
return ret;
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);
if (!onlytarget) {
if (qemuBlockNodeNameValidate(src->nodestorage) < 0 ||
- virJSONValueObjectAdd(fileprops, "S:node-name", src->nodestorage, NULL) < 0)
+ virJSONValueObjectAdd(&fileprops, "S:node-name", src->nodestorage, NULL) < 0)
return NULL;
if (!legacy) {
if (qemuBlockStorageSourceGetBlockdevGetCacheProps(src, fileprops) < 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_UNMAP) &&
- virJSONValueObjectAdd(fileprops,
+ virJSONValueObjectAdd(&fileprops,
"s:discard", "unmap",
NULL) < 0)
return NULL;
return -1;
}
- if (virJSONValueObjectAdd(props,
+ if (virJSONValueObjectAdd(&props,
"s:driver", "luks",
"s:key-secret", srcPriv->encinfo->alias,
NULL) < 0)
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)
if (qemuBlockStorageSourceGetCryptoProps(src, &encprops) < 0)
return -1;
- if (virJSONValueObjectAdd(props,
+ if (virJSONValueObjectAdd(&props,
"s:driver", format,
"A:encrypt", &encprops, NULL) < 0)
return -1;
* https://git.qemu.org/?p=qemu.git;a=blob;f=docs/qcow2-cache.txt
*/
if (src->metadataCacheMaxSize > 0) {
- if (virJSONValueObjectAdd(props,
+ if (virJSONValueObjectAdd(&props,
"U:cache-size", src->metadataCacheMaxSize,
NULL) < 0)
return -1;
}
if (driver &&
- virJSONValueObjectAdd(props, "s:driver", driver, NULL) < 0)
+ virJSONValueObjectAdd(&props, "s:driver", driver, NULL) < 0)
return NULL;
return g_steal_pointer(&props);
if (!(backingFileStr = qemuBlockGetBackingStoreString(backing, false)))
return -1;
- if (virJSONValueObjectAdd(props,
+ if (virJSONValueObjectAdd(&props,
"S:backing-file", backingFileStr,
"S:backing-fmt", backingFormatStr,
NULL) < 0)
src->encryption->encinfo.cipher_size);
}
- if (virJSONValueObjectAdd(props,
+ if (virJSONValueObjectAdd(&props,
"S:cipher-alg", cipheralg,
"S:cipher-mode", src->encryption->encinfo.cipher_mode,
"S:hash-alg", src->encryption->encinfo.cipher_hash,
if (qemuBlockStorageSourceCreateGetEncryptionLUKS(src, &luksprops) < 0)
return -1;
- if (virJSONValueObjectAdd(luksprops,
+ if (virJSONValueObjectAdd(&luksprops,
"s:driver", "luks",
"s:file", src->nodestorage,
"U:size", src->capacity,
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;
bus = 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)
bus = g_strdup_printf("%s.%u", controllerAlias, info->addr.drive.unit);
- if (virJSONValueObjectAdd(props,
+ if (virJSONValueObjectAdd(&props,
"s:bus", bus,
NULL) < 0)
return -1;
break;
case VIR_DOMAIN_DISK_BUS_FDC:
- if (virJSONValueObjectAdd(props,
+ if (virJSONValueObjectAdd(&props,
"u:unit", info->addr.drive.unit,
NULL) < 0)
return -1;
case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_AM53C974:
bus = 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)
case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VIRTIO_NON_TRANSITIONAL:
bus = 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,
else
pciaddr = 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,
virDomainUSBAddressPortFormatBuf(&port, info->addr.usb.port);
- if (virJSONValueObjectAdd(props,
+ if (virJSONValueObjectAdd(&props,
"s:bus", bus,
"S:port", virBufferCurrentContent(&port),
NULL) < 0)
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;
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)
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)
bus = g_strdup_printf("%s.%d", contAlias, info->addr.vioserial.bus);
- if (virJSONValueObjectAdd(props,
+ if (virJSONValueObjectAdd(&props,
"s:bus", bus,
"i:nr", info->addr.vioserial.port,
NULL) < 0)
return NULL;
if (virtioOptions) {
- if (virJSONValueObjectAdd(props,
+ if (virJSONValueObjectAdd(&props,
"T:iommu_platform", virtioOptions->iommu,
"T:ats", virtioOptions->ats,
"T:packed", virtioOptions->packed,
}
}
- if (virJSONValueObjectAdd(props,
+ if (virJSONValueObjectAdd(&props,
"k:rombar", rombar,
"S:romfile", romfile,
NULL) < 0)
if (!(props = qemuBuildVirtioDevProps(VIR_DOMAIN_DEVICE_DISK, disk, qemuCaps)))
return NULL;
- if (virJSONValueObjectAdd(props,
+ if (virJSONValueObjectAdd(&props,
"S:iothread", iothread,
"T:ioeventfd", disk->ioeventfd,
"T:event_idx", disk->event_idx,
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,
if (!(props = 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,
if (!(devprops = qemuBuildVirtioDevProps(VIR_DOMAIN_DEVICE_FS, fs, qemuCaps)))
return -1;
- if (virJSONValueObjectAdd(devprops,
+ if (virJSONValueObjectAdd(&devprops,
"s:id", fs->info.alias,
"s:fsdev", fsdev,
"s:mount_tag", fs->dst,
masterbus = g_strdup_printf("%s.0", alias);
- if (virJSONValueObjectAdd(props,
+ if (virJSONValueObjectAdd(&props,
"s:masterbus", masterbus,
"i:firstport", def->info.master.usb.startport,
NULL) < 0)
return NULL;
} else {
- if (virJSONValueObjectAdd(props,
+ if (virJSONValueObjectAdd(&props,
"s:id", def->info.alias,
NULL) < 0)
return NULL;
if (def->iothread > 0)
iothread = 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,
return -1;
if (pciopts->numaNode != -1 &&
- virJSONValueObjectAdd(props, "i:numa_node", pciopts->numaNode, NULL) < 0)
+ virJSONValueObjectAdd(&props, "i:numa_node", pciopts->numaNode, NULL) < 0)
return -1;
break;
return -1;
if (pciopts->numaNode != -1 &&
- virJSONValueObjectAdd(props, "i:numa_node", pciopts->numaNode, NULL) < 0)
+ virJSONValueObjectAdd(&props, "i:numa_node", pciopts->numaNode, NULL) < 0)
return -1;
break;
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,
{
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:
backendType = "memory-backend-memfd";
if (useHugepage) {
- if (virJSONValueObjectAdd(props, "b:hugetlb", useHugepage, NULL) < 0 ||
- virJSONValueObjectAdd(props, "U:hugetlbsize", pagesize << 10, NULL) < 0) {
+ if (virJSONValueObjectAdd(&props, "b:hugetlb", useHugepage, NULL) < 0 ||
+ virJSONValueObjectAdd(&props, "U:hugetlbsize", pagesize << 10, NULL) < 0) {
return -1;
}
return -1;
}
- if (virJSONValueObjectAdd(props,
+ if (virJSONValueObjectAdd(&props,
"s:mem-path", memPath,
NULL) < 0)
return -1;
return -1;
}
- if (virJSONValueObjectAdd(props,
+ if (virJSONValueObjectAdd(&props,
"B:discard-data", true,
NULL) < 0)
return -1;
*/
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 == VIR_DOMAIN_MEMORY_MODEL_VIRTIO_MEM) {
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) {
"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;
}
"with this QEMU binary"));
return -1;
}
- if (virJSONValueObjectAdd(props, "b:pmem", true, NULL) < 0)
+ if (virJSONValueObjectAdd(&props, "b:pmem", true, NULL) < 0)
return -1;
}
mode != VIR_DOMAIN_NUMATUNE_MEM_RESTRICTIVE) {
if (!virNumaNodesetIsAvailable(nodemask))
return -1;
- if (virJSONValueObjectAdd(props,
+ if (virJSONValueObjectAdd(&props,
"m:host-nodes", nodemask,
"S:policy", qemuNumaPolicyTypeToString(mode),
NULL) < 0)
if (!(props = qemuBuildVirtioDevProps(VIR_DOMAIN_DEVICE_NET, net, qemuCaps)))
return NULL;
- if (virJSONValueObjectAdd(props,
+ if (virJSONValueObjectAdd(&props,
"S:tx", tx,
"T:ioeventfd", net->driver.virtio.ioeventfd,
"T:event_idx", net->driver.virtio.event_idx,
virMacAddrFormat(&net->mac, macaddr);
- if (virJSONValueObjectAdd(props,
+ if (virJSONValueObjectAdd(&props,
"s:netdev", netdev,
"s:id", net->info.alias,
"s:mac", macaddr,
/* for one tapfd 'fd=' shall be used,
* for more than one 'fds=' is the right choice */
if (tapfdSize == 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 = VIR_BUFFER_INITIALIZER;
virBufferTrim(&fdsbuf, ":");
- if (virJSONValueObjectAdd(netprops,
+ if (virJSONValueObjectAdd(&netprops,
"s:fds", virBufferCurrentContent(&fdsbuf),
NULL) < 0)
return NULL;
return NULL;
if (vhostfdSize == 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 = VIR_BUFFER_INITIALIZER;
virBufferTrim(&fdsbuf, ":");
- if (virJSONValueObjectAdd(netprops,
+ if (virJSONValueObjectAdd(&netprops,
"s:vhostfds", virBufferCurrentContent(&fdsbuf),
NULL) < 0)
return NULL;
def->memballoon, qemuCaps)))
return -1;
- if (virJSONValueObjectAdd(props,
+ if (virJSONValueObjectAdd(&props,
"s:id", def->memballoon->info.alias,
"T:deflate-on-oom", def->memballoon->autodeflate,
"T:free-page-reporting", def->memballoon->free_page_reporting,
if (!(props = 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)
return NULL;
if (dev->source.grab == 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 != VIR_DOMAIN_INPUT_SOURCE_GRAB_TOGGLE_DEFAULT &&
- virJSONValueObjectAdd(props, "s:grab-toggle",
+ virJSONValueObjectAdd(&props, "s:grab-toggle",
virDomainInputSourceGrabToggleTypeToString(dev->source.grabToggle),
NULL) < 0)
return NULL;
}
}
- if (virJSONValueObjectAdd(props,
+ if (virJSONValueObjectAdd(&props,
"s:id", video->info.alias,
"T:virgl", virgl,
NULL) < 0)
return -1;
if (video->type == 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;
} else if (video->backend == VIR_DOMAIN_VIDEO_BACKEND_TYPE_VHOSTUSER) {
g_autofree char *alias = qemuDomainGetVhostUserChrAlias(video->info.alias);
- if (virJSONValueObjectAdd(props,
+ if (virJSONValueObjectAdd(&props,
"p:max_outputs", video->heads,
"s:chardev", alias,
NULL) < 0)
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_GPU_MAX_OUTPUTS))
heads = video->heads;
- if (virJSONValueObjectAdd(props,
+ if (virJSONValueObjectAdd(&props,
"p:max_outputs", heads,
NULL) < 0)
return -1;
virQEMUCapsGet(qemuCaps, QEMU_CAPS_VGA_VGAMEM)) ||
(video->type == 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 == 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)
if (!(props = 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,
targetname = "com.redhat.spice.0";
}
- if (virJSONValueObjectAdd(props,
+ if (virJSONValueObjectAdd(&props,
"s:chardev", chardev,
"s:id", dev->info.alias,
"S:name", targetname,
period = 1000;
}
- if (virJSONValueObjectAdd(props,
+ if (virJSONValueObjectAdd(&props,
"s:rng", rng,
"s:id", dev->info.alias,
"p:max-bytes", dev->rate,
bus = g_strdup_printf("%s.0", contAlias);
- if (virJSONValueObjectAdd(props,
+ if (virJSONValueObjectAdd(&props,
"s:id", smartcard->info.alias,
"s:bus", bus,
NULL) < 0)
/* pvpanic uses 'ioport' instead of 'iobase' so
* qemuBuildDeviceAddressProps can't be used */
if (def->panics[i]->info.type == 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;
if (!(props = 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,