From nobody Fri May 3 00:24:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.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 170.10.129.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=1639053222; cv=none; d=zohomail.com; s=zohoarc; b=ZmbCTOEcXyTotyUqE1KWx+kFKsiqxzAbb45ZxlRk2AtwHMc2h/h4clAU7v+Rj7MobVybFzInmmHu1gfGk2WCi8+XdUqh7FFxBTgjfci4m5g0UwSROQ/VuYsKRFUt5ldyJrqhzhxi+GvvB/MreLWS1rcVmJ0h1pO75/ayLzpWnD8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1639053222; 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=STwlOxjyno7D0Vhr84cks+anMmi08V0idZu6ofE+CbM=; b=Q0ujiKgNOYfH46mpU31/ejtJ847rVnNtoi2eowfJfN7A5i9ipZ0XSXBNsB/5Eylz2DytSkVddlREAIBYwwQ9PhrNi173vRU2yoCjUtddVQPUfZ3bzsb5VyQf/EsZitfW8MsVGUHC33s7ChHOp4LTmxamoXWgeBA5wPHu0CHqCyc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.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 [170.10.129.124]) by mx.zohomail.com with SMTPS id 1639053222623139.1178077930624; Thu, 9 Dec 2021 04:33:42 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-59-WrpBqS7SNe6SP9Oinztakw-1; Thu, 09 Dec 2021 07:33:40 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 880EF190D34D; Thu, 9 Dec 2021 12:33:34 +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 3AAA65BE11; Thu, 9 Dec 2021 12:33:34 +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 ED9F34A700; Thu, 9 Dec 2021 12:33:32 +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 1B9CV2XU017590 for ; Thu, 9 Dec 2021 07:31:02 -0500 Received: by smtp.corp.redhat.com (Postfix) id 465171B472; Thu, 9 Dec 2021 12:31:02 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.10]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9B641779D2 for ; Thu, 9 Dec 2021 12:31:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1639053221; 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=STwlOxjyno7D0Vhr84cks+anMmi08V0idZu6ofE+CbM=; b=Fa0Xrm1RaLXNMECOvG9jd10yGThK7QrOuf3YHYQ12OGX7rx9GXi+Zg9bonxTi9ttNLG0Ji dvVJ80QEjW2VYG277eXi2rlCLRfwsvNDThSW2/Rz97BD5Z5PeU2sjDD02APaad3KcmhPMm 7mXx93kSZLYZ6JMbmi3VtS5vh30BtAI= X-MC-Unique: WrpBqS7SNe6SP9Oinztakw-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 01/24] virDomainDeviceInfoIterateFlags: Export the symbol Date: Thu, 9 Dec 2021 13:30:36 +0100 Message-Id: <8cd6ab8b50f02649f6f79fe567629497854dee4a.1639052639.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.15 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: 1639053223943100001 Content-Type: text/plain; charset="utf-8" Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/libvirt_private.syms | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 7be5b51100..cb3ee324cc 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -359,6 +359,7 @@ virDomainDeviceDefParse; virDomainDeviceFindSCSIController; virDomainDeviceGetInfo; virDomainDeviceInfoIterate; +virDomainDeviceInfoIterateFlags; virDomainDeviceSetData; virDomainDeviceTypeToString; virDomainDiskBackingStoreFormat; --=20 2.31.1 From nobody Fri May 3 00:24:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.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 170.10.129.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=1639053243; cv=none; d=zohomail.com; s=zohoarc; b=dEUoBrJYWCNcTgU9/x+13kieYXeBy/3W7uI9DfzHOU23b/FRXvhuL76QadVxyrOdhbIt2S0jpKTQfvLMpFHbzYq7kqv0b2/1W97FJdC0uSbJv7HefPDS3mXQ8A9ZvP0iyoOqyMhR64aFRWe4DVkylmnx6TkPqboIiinqtYJrw5g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1639053243; 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=diQiNMzZjo9lhFwXgygM2PVBCeU+G9/G1nYp2jXVvyg=; b=VjljrUyYYY/qglxkjkHWlFyWe2FhvOD+Z8kxLUdyL0VhZDO9YKruYSubAak/NsZsohsTc6kStuj+N+DeJI1EdcCXiz0SveIailAF2POLV3tvrGGi74cBzm3jFYBGzyiaJ/ajkS6KtZ5ErEZFl6y7VmuncmePItDRjvUgHeTbUtI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.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 [170.10.129.124]) by mx.zohomail.com with SMTPS id 16390532430671.2662657457012756; Thu, 9 Dec 2021 04:34:03 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-587-U-g-EaWlMxmWtKfRiBM-Zg-1; Thu, 09 Dec 2021 07:33:43 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 609F11018757; Thu, 9 Dec 2021 12:33:38 +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 4716C45D83; Thu, 9 Dec 2021 12:33:38 +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 9EF724A708; Thu, 9 Dec 2021 12:33:37 +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 1B9CV3G5017603 for ; Thu, 9 Dec 2021 07:31:03 -0500 Received: by smtp.corp.redhat.com (Postfix) id 5BDD14ABA1; Thu, 9 Dec 2021 12:31:03 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.10]) by smtp.corp.redhat.com (Postfix) with ESMTP id B6DFD1B472 for ; Thu, 9 Dec 2021 12:31:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1639053242; 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=diQiNMzZjo9lhFwXgygM2PVBCeU+G9/G1nYp2jXVvyg=; b=B1vQMNDPTbNSSeQ5ogykdlWVWhHc24GksVm+FaPq4dghrftCg9dz/QrLK8CTIYT2vej8ap rcGVtzB+swjP8RuLVdo2f0ivx7qgR6LdDoBgmqMaDlzUSywrhi44rTrSx6a3UxRozqD/Uk ZMBR9g4y53T291TvDXECFFa4IRQxx0A= X-MC-Unique: U-g-EaWlMxmWtKfRiBM-Zg-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 02/24] qemu: domain: Introduce helpers for initializing chardev backend of devices Date: Thu, 9 Dec 2021 13:30:37 +0100 Message-Id: <3a8815d2bdf00dc8fb69b239ca31d5856e1aa9cf.1639052639.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.11 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: 1639053243519100001 Content-Type: text/plain; charset="utf-8" Introduce qemuDomainDeviceBackendChardevForeach(One) which calls the callback if either given device has a chardev backend or for all chardev backends of all devices. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_domain.c | 117 +++++++++++++++++++++++++++++++++++++++++ src/qemu/qemu_domain.h | 12 +++++ 2 files changed, 129 insertions(+) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 2c10f185f8..4f0d266c73 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -11455,3 +11455,120 @@ qemuDomainGetVHostUserFSSocketPath(qemuDomainObjP= rivate *priv, return virFileBuildPath(priv->libDir, fs->info.alias, "-fs.sock"); } + + +/** + * qemuDomainDeviceBackendChardevForeachOne: + * @dev: device definition + * @cb: callback + * @opaque: data for @cb + * + * Calls @cb with the char device backend data if @dev is a device which h= as a + * chardev backend. + */ +int +qemuDomainDeviceBackendChardevForeachOne(virDomainDeviceDef *dev, + qemuDomainDeviceBackendChardevFor= eachCallback cb, + void *opaque) +{ + switch ((virDomainDeviceType) dev->type) { + case VIR_DOMAIN_DEVICE_NET: + if (virDomainNetGetActualType(dev->data.net) !=3D VIR_DOMAIN_NET_T= YPE_VHOSTUSER) + return 0; + + return cb(dev, dev->data.net->data.vhostuser, opaque); + + case VIR_DOMAIN_DEVICE_REDIRDEV: + return cb(dev, dev->data.redirdev->source, opaque); + + case VIR_DOMAIN_DEVICE_SHMEM: + if (!dev->data.shmem->server.enabled) + return 0; + + return cb(dev, dev->data.shmem->server.chr, opaque); + + case VIR_DOMAIN_DEVICE_CHR: + return cb(dev, dev->data.chr->source, opaque); + + case VIR_DOMAIN_DEVICE_SMARTCARD: + if (dev->data.smartcard->type !=3D VIR_DOMAIN_SMARTCARD_TYPE_PASST= HROUGH) + return 0; + + return cb(dev, dev->data.smartcard->data.passthru, opaque); + + case VIR_DOMAIN_DEVICE_RNG: + if (dev->data.rng->backend !=3D VIR_DOMAIN_RNG_BACKEND_EGD) + return 0; + + return cb(dev, dev->data.rng->source.chardev, opaque); + + case VIR_DOMAIN_DEVICE_DISK: + case VIR_DOMAIN_DEVICE_LEASE: + case VIR_DOMAIN_DEVICE_FS: + case VIR_DOMAIN_DEVICE_INPUT: + case VIR_DOMAIN_DEVICE_SOUND: + case VIR_DOMAIN_DEVICE_VIDEO: + case VIR_DOMAIN_DEVICE_HOSTDEV: + case VIR_DOMAIN_DEVICE_WATCHDOG: + case VIR_DOMAIN_DEVICE_CONTROLLER: + case VIR_DOMAIN_DEVICE_GRAPHICS: + case VIR_DOMAIN_DEVICE_HUB: + case VIR_DOMAIN_DEVICE_NONE: + case VIR_DOMAIN_DEVICE_MEMBALLOON: + case VIR_DOMAIN_DEVICE_NVRAM: + case VIR_DOMAIN_DEVICE_TPM: + case VIR_DOMAIN_DEVICE_PANIC: + case VIR_DOMAIN_DEVICE_LAST: + case VIR_DOMAIN_DEVICE_MEMORY: + case VIR_DOMAIN_DEVICE_IOMMU: + case VIR_DOMAIN_DEVICE_VSOCK: + case VIR_DOMAIN_DEVICE_AUDIO: + /* no chardev backend */ + break; + } + + return 0; +} + +struct qemuDomainDeviceBackendChardevIterData { + qemuDomainDeviceBackendChardevForeachCallback cb; + void *cbdata; +}; + + +static int +qemuDomainDeviceBackendChardevIter(virDomainDef *def G_GNUC_UNUSED, + virDomainDeviceDef *dev, + virDomainDeviceInfo *info G_GNUC_UNUSED, + void *opaque) +{ + struct qemuDomainDeviceBackendChardevIterData *data =3D opaque; + + return qemuDomainDeviceBackendChardevForeachOne(dev, data->cb, data->c= bdata); +} + + +/** + * qemuDomainDeviceBackendChardevForeach:a + * @def: domain definition + * @cb: callback + * @opqaue: data for @cb + * + * Same as qemuDomainDeviceBackendChardevForeachOne called for every devic= e in + * @def. + */ +int +qemuDomainDeviceBackendChardevForeach(virDomainDef *def, + qemuDomainDeviceBackendChardevForeac= hCallback cb, + void *opaque) +{ + struct qemuDomainDeviceBackendChardevIterData data =3D { + .cb =3D cb, + .cbdata =3D opaque, + }; + + return virDomainDeviceInfoIterateFlags(def, + qemuDomainDeviceBackendChardevI= ter, + DOMAIN_DEVICE_ITERATE_MISSING_I= NFO, + &data); +} diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index f2a303d8a7..3de3f70b94 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -1032,3 +1032,15 @@ qemuDomainNamePathsCleanup(virQEMUDriverConfig *cfg, char * qemuDomainGetVHostUserFSSocketPath(qemuDomainObjPrivate *priv, const virDomainFSDef *fs); + +typedef int (*qemuDomainDeviceBackendChardevForeachCallback)(virDomainDevi= ceDef *dev, + virDomainChrS= ourceDef *charsrc, + void *opaque); +int +qemuDomainDeviceBackendChardevForeachOne(virDomainDeviceDef *dev, + qemuDomainDeviceBackendChardevFor= eachCallback cb, + void *opaque); +int +qemuDomainDeviceBackendChardevForeach(virDomainDef *def, + qemuDomainDeviceBackendChardevForeac= hCallback cb, + void *opaque); --=20 2.31.1 From nobody Fri May 3 00:24:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.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 170.10.129.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=1639053227; cv=none; d=zohomail.com; s=zohoarc; b=e8NxiKlHOVyCwCavFrK3OWkSt1JJDddCTEPALPZRBhkNePYyUl7zbV6bFDhNDMnTzkaDHK0n48cUQBEM0GZBRbLz/eVxnEuRZNjSWRfIJsRQLybKs4AkePoimSDbI/NgDFUPu4AODJVsSii8ngRAcZxLqXRk9QiMu83CKYnl1xM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1639053227; 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=/BDCACEM6jB9JU9tvFZYqwNo8ihyMiop7aHZBjyIksE=; b=jc9y1psIdWpaYYRanXmJV6oX+tzui89TBNSqvi1iwgXZHdf0JZVtHS20d3MqpkqNDwhAcMD82v5n6f8QQNePz3a0lX610pUfi2Otd4LGzQ/lQmFEiI3cmZM5eHaLjXAZe7t6Z4mkiGPOgVIaTo+H8XGDc37T5CG3qFEXo1WtEE0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.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 [170.10.129.124]) by mx.zohomail.com with SMTPS id 1639053227241890.8593122576673; Thu, 9 Dec 2021 04:33:47 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-531-g0bjGxMFO6-FqodKWuw-WQ-1; Thu, 09 Dec 2021 07:33:42 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 5D7F4802928; Thu, 9 Dec 2021 12:33:36 +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 0050A5D740; Thu, 9 Dec 2021 12:33:35 +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 C0AE44A700; Thu, 9 Dec 2021 12:33:35 +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 1B9CV4P2017613 for ; Thu, 9 Dec 2021 07:31:04 -0500 Received: by smtp.corp.redhat.com (Postfix) id A4BA64ABA1; Thu, 9 Dec 2021 12:31:04 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.10]) by smtp.corp.redhat.com (Postfix) with ESMTP id BD61C1B472 for ; Thu, 9 Dec 2021 12:31:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1639053226; 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=/BDCACEM6jB9JU9tvFZYqwNo8ihyMiop7aHZBjyIksE=; b=AF9LgTGtHbQeXKTfvcaxDMfHq3C83RiP2sVKbeUKeUs04MjBH+ZHLP1BjrLQr/cZmDbEiu 7pRugjUzIqSpEcASsjyd2qdRv9dX7whebFM9Dgb97EcsOJnMfhzDETDQXCLPcz+e1jcNI6 Oh9ccwOJTmItxmhRR8yttdkhbd7Kyls= X-MC-Unique: g0bjGxMFO6-FqodKWuw-WQ-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 03/24] qemu: Move creation and opening of chardev backend FDs to host prepare step Date: Thu, 9 Dec 2021 13:30:38 +0100 Message-Id: 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.15 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: 1639053228782100001 Content-Type: text/plain; charset="utf-8" The opening of files for FD passing for a chardev backend was historically done in the function which is formatting the commandline. This has multiple problems. Firstly the function takes a lot of parameters which need to be passed through the commandline formatters. This made the 'qemuBuildChrChardevStr' extremely unappealing to the extent that we have multiple other custom formatters in places which didn't really want to use the function. Additionally the function is also creating files in the host in certain configurations which is wrong for a commandline formatter to do. This meant that e.g. not all chardev test cases can be converted to use DO_TEST_CAPS_LATEST as we attempt to use such code path and attempt to create files outside of the test directory. This patch moves the opening of the filedescriptors from 'qemuBuildChrChardevFileStr' into a new helper 'qemuProcessPrepareHostBackendChardevOne' which is called using 'qemuDomainDeviceBackendChardevForeach'. To preserve test behaviour we also have another instance 'testPrepareHostBackendChardevOne' which is populating mock filedescriptors. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_command.c | 160 +++++++++------------------ src/qemu/qemu_domain.c | 6 + src/qemu/qemu_domain.h | 3 + src/qemu/qemu_process.c | 229 ++++++++++++++++++++++++++++++++++----- tests/qemuxml2argvtest.c | 79 ++++++++++++++ 5 files changed, 338 insertions(+), 139 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index c47998aabd..01388b44ef 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -4967,86 +4967,6 @@ qemuBuildSCSIHostdevDevProps(const virDomainDef *def, return g_steal_pointer(&props); } -static int -qemuBuildChrChardevFileStr(virLogManager *logManager, - virSecurityManager *secManager, - virQEMUDriverConfig *cfg, - virQEMUCaps *qemuCaps, - const virDomainDef *def, - virCommand *cmd, - virBuffer *buf, - const char *filearg, const char *fileval, - const char *appendarg, int appendval) -{ - /* Technically, to pass an FD via /dev/fdset we don't need - * any capability check because X_QEMU_CAPS_ADD_FD is already - * assumed. But keeping the old style is still handy when - * building a standalone command line (e.g. for tests). */ - if (logManager || - virQEMUCapsGet(qemuCaps, QEMU_CAPS_CHARDEV_FD_PASS_COMMANDLINE)) { - g_autofree char *fdset =3D NULL; - int logfd; - size_t idx; - - if (logManager) { - int flags =3D 0; - - if (appendval =3D=3D VIR_TRISTATE_SWITCH_ABSENT || - appendval =3D=3D VIR_TRISTATE_SWITCH_OFF) - flags |=3D VIR_LOG_MANAGER_PROTOCOL_DOMAIN_OPEN_LOG_FILE_T= RUNCATE; - - if ((logfd =3D virLogManagerDomainOpenLogFile(logManager, - "qemu", - def->uuid, - def->name, - fileval, - flags, - NULL, NULL)) < 0) - return -1; - } else { - int oflags =3D O_CREAT | O_WRONLY; - - switch (appendval) { - case VIR_TRISTATE_SWITCH_ABSENT: - case VIR_TRISTATE_SWITCH_OFF: - oflags |=3D O_TRUNC; - break; - case VIR_TRISTATE_SWITCH_ON: - oflags |=3D O_APPEND; - break; - case VIR_TRISTATE_SWITCH_LAST: - break; - } - - if ((logfd =3D qemuDomainOpenFile(cfg, def, fileval, oflags, N= ULL)) < 0) - return -1; - - if (qemuSecuritySetImageFDLabel(secManager, (virDomainDef*)def= , logfd) < 0) { - VIR_FORCE_CLOSE(logfd); - return -1; - } - } - - virCommandPassFDIndex(cmd, logfd, VIR_COMMAND_PASS_FD_CLOSE_PARENT= , &idx); - fdset =3D qemuBuildFDSet(logfd, idx); - - virCommandAddArg(cmd, "-add-fd"); - virCommandAddArg(cmd, fdset); - - virBufferAsprintf(buf, ",%s=3D/dev/fdset/%zu,%s=3Don", filearg, id= x, appendarg); - } else { - virBufferAsprintf(buf, ",%s=3D", filearg); - virQEMUBuildBufferEscapeComma(buf, fileval); - if (appendval !=3D VIR_TRISTATE_SWITCH_ABSENT) { - virBufferAsprintf(buf, ",%s=3D%s", appendarg, - virTristateSwitchTypeToString(appendval)); - } - } - - return 0; -} - - static void qemuBuildChrChardevReconnectStr(virBuffer *buf, const virDomainChrSourceReconnectDef *def) @@ -5125,11 +5045,11 @@ enum { /* This function outputs a -chardev command line option which describes on= ly the * host side of the character device */ static char * -qemuBuildChrChardevStr(virLogManager *logManager, - virSecurityManager *secManager, +qemuBuildChrChardevStr(virLogManager *logManager G_GNUC_UNUSED, + virSecurityManager *secManager G_GNUC_UNUSED, virCommand *cmd, virQEMUDriverConfig *cfg, - const virDomainDef *def, + const virDomainDef *def G_GNUC_UNUSED, const virDomainChrSourceDef *dev, const char *alias, virQEMUCaps *qemuCaps, @@ -5166,12 +5086,27 @@ qemuBuildChrChardevStr(virLogManager *logManager, case VIR_DOMAIN_CHR_TYPE_FILE: virBufferAsprintf(&buf, "file,id=3D%s", charAlias); - if (qemuBuildChrChardevFileStr(cdevflags & QEMU_BUILD_CHARDEV_FILE= _LOGD ? - logManager : NULL, - secManager, cfg, qemuCaps, def, cmd= , &buf, - "path", dev->data.file.path, - "append", dev->data.file.append) < = 0) - return NULL; + if (chrSourcePriv->fd !=3D -1) { + g_autofree char *fdset =3D NULL; + size_t idx; + + virCommandPassFDIndex(cmd, chrSourcePriv->fd, + VIR_COMMAND_PASS_FD_CLOSE_PARENT, &idx); + fdset =3D qemuBuildFDSet(chrSourcePriv->fd, idx); + chrSourcePriv->fd =3D -1; + + virCommandAddArg(cmd, "-add-fd"); + virCommandAddArg(cmd, fdset); + + virBufferAsprintf(&buf, ",path=3D/dev/fdset/%zu,append=3Don", = idx); + } else { + virBufferAddLit(&buf, ",path=3D"); + virQEMUBuildBufferEscapeComma(&buf, dev->data.file.path); + if (dev->data.file.append !=3D VIR_TRISTATE_SWITCH_ABSENT) { + virBufferAsprintf(&buf, ",append=3D%s", + virTristateSwitchTypeToString(dev->data.= file.append)); + } + } break; case VIR_DOMAIN_CHR_TYPE_PIPE: @@ -5255,24 +5190,11 @@ qemuBuildChrChardevStr(virLogManager *logManager, case VIR_DOMAIN_CHR_TYPE_UNIX: virBufferAsprintf(&buf, "socket,id=3D%s", charAlias); - if (dev->data.nix.listen && - (cdevflags & QEMU_BUILD_CHARDEV_UNIX_FD_PASS) && - virQEMUCapsGet(qemuCaps, QEMU_CAPS_CHARDEV_FD_PASS_COMMANDLINE= )) { - int fd; - - if (qemuSecuritySetSocketLabel(secManager, (virDomainDef *)def= ) < 0) - return NULL; - fd =3D qemuOpenChrChardevUNIXSocket(dev); - if (qemuSecurityClearSocketLabel(secManager, (virDomainDef *)d= ef) < 0) { - VIR_FORCE_CLOSE(fd); - return NULL; - } - if (fd < 0) - return NULL; - - virBufferAsprintf(&buf, ",fd=3D%d", fd); + if (chrSourcePriv->fd !=3D -1) { + virBufferAsprintf(&buf, ",fd=3D%d", chrSourcePriv->fd); - virCommandPassFD(cmd, fd, VIR_COMMAND_PASS_FD_CLOSE_PARENT); + virCommandPassFD(cmd, chrSourcePriv->fd, VIR_COMMAND_PASS_FD_C= LOSE_PARENT); + chrSourcePriv->fd =3D -1; } else { virBufferAddLit(&buf, ",path=3D"); virQEMUBuildBufferEscapeComma(&buf, dev->data.nix.path); @@ -5306,11 +5228,27 @@ qemuBuildChrChardevStr(virLogManager *logManager, } if (dev->logfile) { - if (qemuBuildChrChardevFileStr(logManager, secManager, cfg, - qemuCaps, def, cmd, &buf, - "logfile", dev->logfile, - "logappend", dev->logappend) < 0) - return NULL; + if (chrSourcePriv->logfd !=3D -1) { + g_autofree char *fdset =3D NULL; + size_t idx; + + virCommandPassFDIndex(cmd, chrSourcePriv->logfd, + VIR_COMMAND_PASS_FD_CLOSE_PARENT, &idx); + fdset =3D qemuBuildFDSet(chrSourcePriv->logfd, idx); + chrSourcePriv->logfd =3D -1; + + virCommandAddArg(cmd, "-add-fd"); + virCommandAddArg(cmd, fdset); + + virBufferAsprintf(&buf, ",logfile=3D/dev/fdset/%zu,logappend= =3Don", idx); + } else { + virBufferAddLit(&buf, ",logfile=3D"); + virQEMUBuildBufferEscapeComma(&buf, dev->logfile); + if (dev->logappend !=3D VIR_TRISTATE_SWITCH_ABSENT) { + virBufferAsprintf(&buf, ",logappend=3D%s", + virTristateSwitchTypeToString(dev->logap= pend)); + } + } } return virBufferContentAndReset(&buf); diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 4f0d266c73..cbaa39b618 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -850,6 +850,9 @@ qemuDomainChrSourcePrivateNew(void) if (!(priv =3D virObjectNew(qemuDomainChrSourcePrivateClass))) return NULL; + priv->fd =3D -1; + priv->logfd =3D -1; + return (virObject *) priv; } @@ -859,6 +862,9 @@ qemuDomainChrSourcePrivateDispose(void *obj) { qemuDomainChrSourcePrivate *priv =3D obj; + VIR_FORCE_CLOSE(priv->fd); + VIR_FORCE_CLOSE(priv->logfd); + g_clear_pointer(&priv->secinfo, qemuDomainSecretInfoFree); } diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index 3de3f70b94..61704fdae7 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -341,6 +341,9 @@ struct _qemuDomainChrSourcePrivate { /* for char devices using secret * NB: *not* to be written to qemu domain object XML */ qemuDomainSecretInfo *secinfo; + + int fd; /* file descriptor of the chardev source */ + int logfd; /* file descriptor of the logging source */ }; diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 6b83a571b9..866b6b9ed6 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -98,6 +98,9 @@ #include "storage_source.h" #include "backup_conf.h" +#include "logging/log_manager.h" +#include "logging/log_protocol.h" + #define VIR_FROM_THIS VIR_FROM_QEMU VIR_LOG_INIT("qemu.qemu_process"); @@ -3069,29 +3072,6 @@ qemuProcessInitPasswords(virQEMUDriver *driver, } -static int -qemuProcessPrepareChardevDevice(virDomainDef *def G_GNUC_UNUSED, - virDomainChrDef *dev, - void *opaque G_GNUC_UNUSED) -{ - int fd; - if (dev->source->type !=3D VIR_DOMAIN_CHR_TYPE_FILE) - return 0; - - if ((fd =3D open(dev->source->data.file.path, - O_CREAT | O_APPEND, S_IRUSR|S_IWUSR)) < 0) { - virReportSystemError(errno, - _("Unable to pre-create chardev file '%s'"), - dev->source->data.file.path); - return -1; - } - - VIR_FORCE_CLOSE(fd); - - return 0; -} - - static int qemuProcessCleanupChardevDevice(virDomainDef *def G_GNUC_UNUSED, virDomainChrDef *dev, @@ -6806,6 +6786,200 @@ qemuProcessOpenVhostVsock(virDomainVsockDef *vsock) } +static int +qemuProcessPrepareHostBackendChardevFileHelper(const char *path, + virTristateSwitch append, + int *fd, + virLogManager *logManager, + virSecurityManager *secMana= ger, + virQEMUCaps *qemuCaps, + virQEMUDriverConfig *cfg, + const virDomainDef *def) +{ + /* Technically, to pass an FD via /dev/fdset we don't need + * any capability check because X_QEMU_CAPS_ADD_FD is already + * assumed. But keeping the old style is still handy when + * building a standalone command line (e.g. for tests). */ + if (!logManager && + !virQEMUCapsGet(qemuCaps, QEMU_CAPS_CHARDEV_FD_PASS_COMMANDLINE)) + return 0; + + if (logManager) { + int flags =3D 0; + + if (append =3D=3D VIR_TRISTATE_SWITCH_ABSENT || + append =3D=3D VIR_TRISTATE_SWITCH_OFF) + flags |=3D VIR_LOG_MANAGER_PROTOCOL_DOMAIN_OPEN_LOG_FILE_TRUNC= ATE; + + if ((*fd =3D virLogManagerDomainOpenLogFile(logManager, + "qemu", + def->uuid, + def->name, + path, + flags, + NULL, NULL)) < 0) + return -1; + } else { + int oflags =3D O_CREAT | O_WRONLY; + + switch (append) { + case VIR_TRISTATE_SWITCH_ABSENT: + case VIR_TRISTATE_SWITCH_OFF: + oflags |=3D O_TRUNC; + break; + case VIR_TRISTATE_SWITCH_ON: + oflags |=3D O_APPEND; + break; + case VIR_TRISTATE_SWITCH_LAST: + break; + } + + if ((*fd =3D qemuDomainOpenFile(cfg, def, path, oflags, NULL)) < 0) + return -1; + + if (qemuSecuritySetImageFDLabel(secManager, (virDomainDef*)def, *f= d) < 0) { + VIR_FORCE_CLOSE(*fd); + return -1; + } + } + + return 0; +} + + +struct qemuProcessPrepareHostBackendChardevData { + virQEMUCaps *qemuCaps; + virLogManager *logManager; + virSecurityManager *secManager; + virQEMUDriverConfig *cfg; + virDomainDef *def; +}; + + +static int +qemuProcessPrepareHostBackendChardevOne(virDomainDeviceDef *dev, + virDomainChrSourceDef *chardev, + void *opaque) +{ + struct qemuProcessPrepareHostBackendChardevData *data =3D opaque; + qemuDomainChrSourcePrivate *charpriv =3D QEMU_DOMAIN_CHR_SOURCE_PRIVAT= E(chardev); + + /* this function is also called for the monitor backend which doesn't = have + * a 'dev' */ + if (dev) { + if (dev->type =3D=3D VIR_DOMAIN_DEVICE_NET) { + /* due to a historical bug in qemu we don't use FD passtrhough= for + * vhost-sockets for network devices */ + return 0; + } + } + + switch ((virDomainChrType) chardev->type) { + case VIR_DOMAIN_CHR_TYPE_NULL: + case VIR_DOMAIN_CHR_TYPE_VC: + case VIR_DOMAIN_CHR_TYPE_PTY: + case VIR_DOMAIN_CHR_TYPE_DEV: + case VIR_DOMAIN_CHR_TYPE_PIPE: + case VIR_DOMAIN_CHR_TYPE_STDIO: + case VIR_DOMAIN_CHR_TYPE_UDP: + case VIR_DOMAIN_CHR_TYPE_TCP: + case VIR_DOMAIN_CHR_TYPE_SPICEVMC: + case VIR_DOMAIN_CHR_TYPE_SPICEPORT: + break; + + case VIR_DOMAIN_CHR_TYPE_FILE: + if (qemuProcessPrepareHostBackendChardevFileHelper(chardev->data.f= ile.path, + chardev->data.f= ile.append, + &charpriv->fd, + data->logManage= r, + data->secManage= r, + data->qemuCaps, + data->cfg, + data->def) < 0) + return -1; + + break; + + case VIR_DOMAIN_CHR_TYPE_UNIX: + if (chardev->data.nix.listen && + virQEMUCapsGet(data->qemuCaps, QEMU_CAPS_CHARDEV_FD_PASS_COMMA= NDLINE)) { + + if (qemuSecuritySetSocketLabel(data->secManager, data->def) < = 0) + return -1; + + charpriv->fd =3D qemuOpenChrChardevUNIXSocket(chardev); + + if (qemuSecurityClearSocketLabel(data->secManager, data->def) = < 0) { + VIR_FORCE_CLOSE(charpriv->fd); + return -1; + } + + if (charpriv->fd < 0) + return -1; + } + break; + + case VIR_DOMAIN_CHR_TYPE_NMDM: + case VIR_DOMAIN_CHR_TYPE_LAST: + default: + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("unsupported chardev '%s'"), + virDomainChrTypeToString(chardev->type)); + return -1; + } + + if (chardev->logfile) { + if (qemuProcessPrepareHostBackendChardevFileHelper(chardev->logfil= e, + chardev->logapp= end, + &charpriv->logf= d, + data->logManage= r, + data->secManage= r, + data->qemuCaps, + data->cfg, + data->def) < 0) + return -1; + } + + return 0; +} + + +/* prepare the chardev backends for various devices: + * serial/parallel/channel chardevs, vhost-user disks, vhost-user network + * interfaces, smartcards, shared memory, and redirdevs */ +static int +qemuProcessPrepareHostBackendChardev(virDomainObj *vm, + virQEMUCaps *qemuCaps, + virSecurityManager *secManager) +{ + qemuDomainObjPrivate *priv =3D vm->privateData; + g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(priv->dr= iver); + struct qemuProcessPrepareHostBackendChardevData data =3D { + .qemuCaps =3D qemuCaps, + .logManager =3D NULL, + .secManager =3D secManager, + .cfg =3D cfg, + .def =3D vm->def, + }; + g_autoptr(virLogManager) logManager =3D NULL; + + if (cfg->stdioLogD) { + if (!(logManager =3D data.logManager =3D virLogManagerNew(priv->dr= iver->privileged))) + return -1; + } + + if (qemuDomainDeviceBackendChardevForeach(vm->def, + qemuProcessPrepareHostBacken= dChardevOne, + &data) < 0) + return -1; + + if (qemuProcessPrepareHostBackendChardevOne(NULL, priv->monConfig, &da= ta) < 0) + return -1; + + return 0; +} + + /** * qemuProcessPrepareHost: * @driver: qemu driver @@ -6852,11 +7026,10 @@ qemuProcessPrepareHost(virQEMUDriver *driver, hostdev_flags) < 0) return -1; - VIR_DEBUG("Preparing chr devices"); - if (virDomainChrDefForeach(vm->def, - true, - qemuProcessPrepareChardevDevice, - NULL) < 0) + VIR_DEBUG("Preparing chr device backends"); + if (qemuProcessPrepareHostBackendChardev(vm, + priv->qemuCaps, + driver->securityManager) < 0) return -1; if (qemuProcessBuildDestroyMemoryPaths(driver, vm, NULL, true) < 0) diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 5e4cd7389c..9cece1df91 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -376,6 +376,71 @@ testCheckExclusiveFlags(int flags) } +static int +testPrepareHostBackendChardevOne(virDomainDeviceDef *dev, + virDomainChrSourceDef *chardev, + void *opaque) +{ + virQEMUCaps *qemuCaps =3D opaque; + qemuDomainChrSourcePrivate *charpriv =3D QEMU_DOMAIN_CHR_SOURCE_PRIVAT= E(chardev); + + if (dev) { + if (dev->type =3D=3D VIR_DOMAIN_DEVICE_NET) { + /* due to a historical bug in qemu we don't use FD passtrhough= for + * vhost-sockets for network devices */ + return 0; + } + } + + switch ((virDomainChrType) chardev->type) { + case VIR_DOMAIN_CHR_TYPE_NULL: + case VIR_DOMAIN_CHR_TYPE_VC: + case VIR_DOMAIN_CHR_TYPE_PTY: + case VIR_DOMAIN_CHR_TYPE_DEV: + case VIR_DOMAIN_CHR_TYPE_PIPE: + case VIR_DOMAIN_CHR_TYPE_STDIO: + case VIR_DOMAIN_CHR_TYPE_UDP: + case VIR_DOMAIN_CHR_TYPE_TCP: + case VIR_DOMAIN_CHR_TYPE_SPICEVMC: + case VIR_DOMAIN_CHR_TYPE_SPICEPORT: + break; + + case VIR_DOMAIN_CHR_TYPE_FILE: + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_CHARDEV_FD_PASS_COMMANDLINE= )) { + if (fcntl(1750, F_GETFD) !=3D -1) + abort(); + charpriv->fd =3D 1750; + } + break; + + case VIR_DOMAIN_CHR_TYPE_UNIX: + if (chardev->data.nix.listen && + virQEMUCapsGet(qemuCaps, QEMU_CAPS_CHARDEV_FD_PASS_COMMANDLINE= )) { + + if (fcntl(1729, F_GETFD) !=3D -1) + abort(); + + charpriv->fd =3D 1729; + } + break; + + case VIR_DOMAIN_CHR_TYPE_NMDM: + case VIR_DOMAIN_CHR_TYPE_LAST: + break; + } + + if (chardev->logfile) { + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_CHARDEV_FD_PASS_COMMANDLINE= )) { + if (fcntl(1751, F_GETFD) !=3D -1) + abort(); + charpriv->logfd =3D 1751; + } + } + + return 0; +} + + static virCommand * testCompareXMLToArgvCreateArgs(virQEMUDriver *drv, virDomainObj *vm, @@ -391,6 +456,20 @@ testCompareXMLToArgvCreateArgs(virQEMUDriver *drv, VIR_QEMU_PROCESS_START_COLD) < = 0) return NULL; + if (qemuDomainDeviceBackendChardevForeach(vm->def, + testPrepareHostBackendCharde= vOne, + info->qemuCaps) < 0) + return NULL; + + if (virQEMUCapsGet(info->qemuCaps, QEMU_CAPS_CHARDEV_FD_PASS_COMMANDLI= NE)) { + qemuDomainChrSourcePrivate *monpriv =3D QEMU_DOMAIN_CHR_SOURCE_PRI= VATE(priv->monConfig); + + if (fcntl(1729, F_GETFD) !=3D -1) + abort(); + + monpriv->fd =3D 1729; + } + for (i =3D 0; i < vm->def->ndisks; i++) { virDomainDiskDef *disk =3D vm->def->disks[i]; --=20 2.31.1 From nobody Fri May 3 00:24:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.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 170.10.133.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=1639053227; cv=none; d=zohomail.com; s=zohoarc; b=a0CBJGgvKzZC5lb6jcFMZZvyf4UQte5w3PcuKbG+GYvdDIZ4qMWpySvJ1VQGgqSc/R7gcWE2i+vRVRH2/mqtGtw8CHQkzPteQs9V23XCazagQKhPaRb+hDUeqhTGdFoaaCIeSjSS+1jPVrr+zfzIkkqZ3IrD31ETyYBcBRMA5xI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1639053227; 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=uSYPTZETim2+AkzBlwJ9zgUxmcwve4Zhgp/yPp1G8Rc=; b=CpsQ0H4zA9M2rFU18nlI1/Yi961EHN2KPhpvhiUgeNsreGQylyNQ59ZzMvii0EmZBlKWIxKEFxfiXP6Hgr6WwH0y1+FqXPD0bcjtkKmMm3AwtkKXySgW3oDWuy1zDPpHcU+E3Uq+KqpsCGQ+xG4cG7tbqJ+ZCFZD7a8XmRIDtBg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.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 [170.10.133.124]) by mx.zohomail.com with SMTPS id 1639053227292480.47474913944177; Thu, 9 Dec 2021 04:33:47 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-272-Qvv93vjrOdeTWmnVBDrPBQ-1; Thu, 09 Dec 2021 07:33:43 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id B05E93E74D; Thu, 9 Dec 2021 12:33:38 +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 9305919D9B; Thu, 9 Dec 2021 12:33:38 +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 6454E4A708; Thu, 9 Dec 2021 12:33:38 +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 1B9CV51u017618 for ; Thu, 9 Dec 2021 07:31:05 -0500 Received: by smtp.corp.redhat.com (Postfix) id BB84B1B472; Thu, 9 Dec 2021 12:31:05 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.10]) by smtp.corp.redhat.com (Postfix) with ESMTP id 163177095E for ; Thu, 9 Dec 2021 12:31:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1639053226; 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=uSYPTZETim2+AkzBlwJ9zgUxmcwve4Zhgp/yPp1G8Rc=; b=ZxtSmc+7furEp+Z/RlRMxBkkRSulTzDZYxclc5uaGcP+bLqr0INyP1VB8zgrkoLDlItcXc t37yuQsGRtYwH/+bzC9fUo/BvgKuUd2zp7vvAQCSLgERCZlc1yg1ma1uyU/Jmh39kJRiGs 0i2xj3grD864CDaM77kAoR5Zqos4uTM= X-MC-Unique: Qvv93vjrOdeTWmnVBDrPBQ-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 04/24] qemu: command: Remove unused QEMU_BUILD_CHARDEV_FILE_LOGD and QEMU_BUILD_CHARDEV_UNIX_FD_PASS Date: Thu, 9 Dec 2021 13:30:39 +0100 Message-Id: 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.84 on 10.5.11.23 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: 1639053228866100002 Content-Type: text/plain; charset="utf-8" 'qemuBuildChrChardevStr' doesn't use these flags any more. Stop passing them. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_command.c | 64 +++++++++++------------------------------ 1 file changed, 17 insertions(+), 47 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 01388b44ef..814b003e49 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -5038,8 +5038,6 @@ qemuOpenChrChardevUNIXSocket(const virDomainChrSource= Def *dev) enum { QEMU_BUILD_CHARDEV_TCP_NOWAIT =3D (1 << 0), - QEMU_BUILD_CHARDEV_FILE_LOGD =3D (1 << 1), - QEMU_BUILD_CHARDEV_UNIX_FD_PASS =3D (1 << 2), }; /* This function outputs a -chardev command line option which describes on= ly the @@ -5527,10 +5525,7 @@ qemuBuildMonitorCommandLine(virLogManager *logManage= r, qemuDomainObjPrivate *priv) { g_autofree char *chrdev =3D NULL; - unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT | - QEMU_BUILD_CHARDEV_UNIX_FD_PASS; - if (priv->chardevStdioLogd) - cdevflags |=3D QEMU_BUILD_CHARDEV_FILE_LOGD; + unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; if (!priv->monConfig) return 0; @@ -5665,16 +5660,12 @@ qemuBuildRNGBackendChrdevStr(virLogManager *logMana= ger, virDomainRNGDef *rng, virQEMUCaps *qemuCaps, char **chr, - bool chardevStdioLogd) + bool chardevStdioLogd G_GNUC_UNUSED) { - unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT | - QEMU_BUILD_CHARDEV_UNIX_FD_PASS; + unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; *chr =3D NULL; - if (chardevStdioLogd) - cdevflags |=3D QEMU_BUILD_CHARDEV_FILE_LOGD; - switch ((virDomainRNGBackend) rng->backend) { case VIR_DOMAIN_RNG_BACKEND_RANDOM: case VIR_DOMAIN_RNG_BACKEND_BUILTIN: @@ -9045,7 +9036,7 @@ qemuBuildSmartcardCommandLine(virLogManager *logManag= er, virQEMUDriverConfig *cfg, const virDomainDef *def, virQEMUCaps *qemuCaps, - bool chardevStdioLogd) + bool chardevStdioLogd G_GNUC_UNUSED) { g_autoptr(virJSONValue) props =3D NULL; virDomainSmartcardDef *smartcard; @@ -9086,13 +9077,10 @@ qemuBuildSmartcardCommandLine(virLogManager *logMan= ager, break; case VIR_DOMAIN_SMARTCARD_TYPE_PASSTHROUGH: { - unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT | QEMU_BU= ILD_CHARDEV_UNIX_FD_PASS; + unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; g_autofree char *chardevstr =3D NULL; g_autofree char *chardevalias =3D g_strdup_printf("char%s", smartc= ard->info.alias); - if (chardevStdioLogd) - cdevflags |=3D QEMU_BUILD_CHARDEV_FILE_LOGD; - if (!(chardevstr =3D qemuBuildChrChardevStr(logManager, secManager, cmd, cfg, def, smartcard->data.passthru, @@ -9249,15 +9237,12 @@ qemuBuildShmemCommandLine(virLogManager *logManager, virDomainDef *def, virDomainShmemDef *shmem, virQEMUCaps *qemuCaps, - bool chardevStdioLogd) + bool chardevStdioLogd G_GNUC_UNUSED) { g_autoptr(virJSONValue) memProps =3D NULL; g_autoptr(virJSONValue) devProps =3D NULL; g_autofree char *chardev =3D NULL; - unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT | - QEMU_BUILD_CHARDEV_UNIX_FD_PASS; - if (chardevStdioLogd) - cdevflags |=3D QEMU_BUILD_CHARDEV_FILE_LOGD; + unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; if (shmem->size) { /* @@ -9422,14 +9407,11 @@ qemuBuildSerialCommandLine(virLogManager *logManage= r, virQEMUDriverConfig *cfg, const virDomainDef *def, virQEMUCaps *qemuCaps, - bool chardevStdioLogd) + bool chardevStdioLogd G_GNUC_UNUSED) { size_t i; bool havespice =3D false; - unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT | - QEMU_BUILD_CHARDEV_UNIX_FD_PASS; - if (chardevStdioLogd) - cdevflags |=3D QEMU_BUILD_CHARDEV_FILE_LOGD; + unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; if (def->nserials) { for (i =3D 0; i < def->ngraphics && !havespice; i++) { @@ -9486,13 +9468,10 @@ qemuBuildParallelsCommandLine(virLogManager *logMan= ager, virQEMUDriverConfig *cfg, const virDomainDef *def, virQEMUCaps *qemuCaps, - bool chardevStdioLogd) + bool chardevStdioLogd G_GNUC_UNUSED) { size_t i; - unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT | - QEMU_BUILD_CHARDEV_UNIX_FD_PASS; - if (chardevStdioLogd) - cdevflags |=3D QEMU_BUILD_CHARDEV_FILE_LOGD; + unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; for (i =3D 0; i < def->nparallels; i++) { virDomainChrDef *parallel =3D def->parallels[i]; @@ -9523,13 +9502,10 @@ qemuBuildChannelsCommandLine(virLogManager *logMana= ger, virQEMUDriverConfig *cfg, const virDomainDef *def, virQEMUCaps *qemuCaps, - bool chardevStdioLogd) + bool chardevStdioLogd G_GNUC_UNUSED) { size_t i; - unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT | - QEMU_BUILD_CHARDEV_UNIX_FD_PASS; - if (chardevStdioLogd) - cdevflags |=3D QEMU_BUILD_CHARDEV_FILE_LOGD; + unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; for (i =3D 0; i < def->nchannels; i++) { virDomainChrDef *channel =3D def->channels[i]; @@ -9578,13 +9554,10 @@ qemuBuildConsoleCommandLine(virLogManager *logManag= er, virQEMUDriverConfig *cfg, const virDomainDef *def, virQEMUCaps *qemuCaps, - bool chardevStdioLogd) + bool chardevStdioLogd G_GNUC_UNUSED) { size_t i; - unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT | - QEMU_BUILD_CHARDEV_UNIX_FD_PASS; - if (chardevStdioLogd) - cdevflags |=3D QEMU_BUILD_CHARDEV_FILE_LOGD; + unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; /* Explicit console devices */ for (i =3D 0; i < def->nconsoles; i++) { @@ -9714,13 +9687,10 @@ qemuBuildRedirdevCommandLine(virLogManager *logMana= ger, virQEMUDriverConfig *cfg, const virDomainDef *def, virQEMUCaps *qemuCaps, - bool chardevStdioLogd) + bool chardevStdioLogd G_GNUC_UNUSED) { size_t i; - unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT | - QEMU_BUILD_CHARDEV_UNIX_FD_PASS; - if (chardevStdioLogd) - cdevflags |=3D QEMU_BUILD_CHARDEV_FILE_LOGD; + unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; for (i =3D 0; i < def->nredirdevs; i++) { virDomainRedirdevDef *redirdev =3D def->redirdevs[i]; --=20 2.31.1 From nobody Fri May 3 00:24:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.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 170.10.129.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=1639053231; cv=none; d=zohomail.com; s=zohoarc; b=JHTo10+VLrBolNPPTJ2vriTJBFue05/ssK79FiHmUpzPx5ERZQJG23JxhZctZAyxNu6QoPyZiNGr0L9OVWgM7jayoqiRvVZ4soK7Z4IzAGdyPoUjIP24hUqjGKgANoX6tqzW7J54azS8z14DvwfOr77tO7Y1KWkndvds2AfZlvs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1639053231; 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=EA9PYFYvXJcOUfPlRpHb6lMrA94Xuvi8UluuL1BvbAU=; b=TdtJFIGFpUE5CRX1eqO+5D4aHPyX+AmV0mbeUkEAJ6Qae32e3Zl2ejQ/F8ZWMZOCdb2+xXbTwjK+LJDN9X5lhGESHReTHwO89yelSab+QfL865ZedToY5SAmS4TcYlu/5ZQf20QuK0JiabNQ2bVm3AEJxrbmy1Z8izQCu/iMLMM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.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 [170.10.129.124]) by mx.zohomail.com with SMTPS id 1639053231059345.3840617698668; Thu, 9 Dec 2021 04:33:51 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-171-MMM7g0EoOaK77J04w-Vh3g-1; Thu, 09 Dec 2021 07:33:46 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 3138B802E68; Thu, 9 Dec 2021 12:33:41 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id BE8905D6D5; Thu, 9 Dec 2021 12:33:40 +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 8FFA818218B8; Thu, 9 Dec 2021 12:33:40 +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 1B9CV6fZ017631 for ; Thu, 9 Dec 2021 07:31:06 -0500 Received: by smtp.corp.redhat.com (Postfix) id CA23E1B472; Thu, 9 Dec 2021 12:31:06 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.10]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2C8E660C25 for ; Thu, 9 Dec 2021 12:31:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1639053230; 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=EA9PYFYvXJcOUfPlRpHb6lMrA94Xuvi8UluuL1BvbAU=; b=WRjFq9jlzPg8PLuS2ZhkZ4fYwIM5bBnfl4UuwXitMhZ6di58c602tIBWmA9BYe8mvxqRaZ LPP92TNB3hWfw9cWA3ph72tvFgEeE0YjinLPJFFsDup3/WHJrDU6JZAKuX0jGuYK+h+1MU CekxoycHVrpv6EImvQxiNNMuLcXp8PY= X-MC-Unique: MMM7g0EoOaK77J04w-Vh3g-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 05/24] qemu: command: remove the unused 'chardevStdioLogd' argument/variable Date: Thu, 9 Dec 2021 13:30:40 +0100 Message-Id: <68d04485689a086f2af434db95d7bdf091001079.1639052639.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.15 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: 1639053231390100001 Content-Type: text/plain; charset="utf-8" Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_command.c | 55 ++++++++++++++--------------------------- 1 file changed, 18 insertions(+), 37 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 814b003e49..b637cd2bf5 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -5659,8 +5659,7 @@ qemuBuildRNGBackendChrdevStr(virLogManager *logManage= r, const virDomainDef *def, virDomainRNGDef *rng, virQEMUCaps *qemuCaps, - char **chr, - bool chardevStdioLogd G_GNUC_UNUSED) + char **chr) { unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; @@ -5771,8 +5770,7 @@ qemuBuildRNGCommandLine(virLogManager *logManager, virCommand *cmd, virQEMUDriverConfig *cfg, const virDomainDef *def, - virQEMUCaps *qemuCaps, - bool chardevStdioLogd) + virQEMUCaps *qemuCaps) { size_t i; @@ -5790,8 +5788,7 @@ qemuBuildRNGCommandLine(virLogManager *logManager, /* possibly add character device for backend */ if (qemuBuildRNGBackendChrdevStr(logManager, secManager, cmd, cfg,= def, - rng, qemuCaps, &chardev, - chardevStdioLogd) < 0) + rng, qemuCaps, &chardev) < 0) return -1; if (chardev) @@ -9035,8 +9032,7 @@ qemuBuildSmartcardCommandLine(virLogManager *logManag= er, virCommand *cmd, virQEMUDriverConfig *cfg, const virDomainDef *def, - virQEMUCaps *qemuCaps, - bool chardevStdioLogd G_GNUC_UNUSED) + virQEMUCaps *qemuCaps) { g_autoptr(virJSONValue) props =3D NULL; virDomainSmartcardDef *smartcard; @@ -9236,8 +9232,7 @@ qemuBuildShmemCommandLine(virLogManager *logManager, virQEMUDriverConfig *cfg, virDomainDef *def, virDomainShmemDef *shmem, - virQEMUCaps *qemuCaps, - bool chardevStdioLogd G_GNUC_UNUSED) + virQEMUCaps *qemuCaps) { g_autoptr(virJSONValue) memProps =3D NULL; g_autoptr(virJSONValue) devProps =3D NULL; @@ -9406,8 +9401,7 @@ qemuBuildSerialCommandLine(virLogManager *logManager, virCommand *cmd, virQEMUDriverConfig *cfg, const virDomainDef *def, - virQEMUCaps *qemuCaps, - bool chardevStdioLogd G_GNUC_UNUSED) + virQEMUCaps *qemuCaps) { size_t i; bool havespice =3D false; @@ -9467,8 +9461,7 @@ qemuBuildParallelsCommandLine(virLogManager *logManag= er, virCommand *cmd, virQEMUDriverConfig *cfg, const virDomainDef *def, - virQEMUCaps *qemuCaps, - bool chardevStdioLogd G_GNUC_UNUSED) + virQEMUCaps *qemuCaps) { size_t i; unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; @@ -9501,8 +9494,7 @@ qemuBuildChannelsCommandLine(virLogManager *logManage= r, virCommand *cmd, virQEMUDriverConfig *cfg, const virDomainDef *def, - virQEMUCaps *qemuCaps, - bool chardevStdioLogd G_GNUC_UNUSED) + virQEMUCaps *qemuCaps) { size_t i; unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; @@ -9553,8 +9545,7 @@ qemuBuildConsoleCommandLine(virLogManager *logManager, virCommand *cmd, virQEMUDriverConfig *cfg, const virDomainDef *def, - virQEMUCaps *qemuCaps, - bool chardevStdioLogd G_GNUC_UNUSED) + virQEMUCaps *qemuCaps) { size_t i; unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; @@ -9686,8 +9677,7 @@ qemuBuildRedirdevCommandLine(virLogManager *logManage= r, virCommand *cmd, virQEMUDriverConfig *cfg, const virDomainDef *def, - virQEMUCaps *qemuCaps, - bool chardevStdioLogd G_GNUC_UNUSED) + virQEMUCaps *qemuCaps) { size_t i; unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; @@ -10566,7 +10556,6 @@ qemuBuildCommandLine(virQEMUDriver *driver, qemuDomainObjPrivate *priv =3D vm->privateData; virDomainDef *def =3D vm->def; virQEMUCaps *qemuCaps =3D priv->qemuCaps; - bool chardevStdioLogd =3D priv->chardevStdioLogd; VIR_DEBUG("driver=3D%p def=3D%p mon=3D%p " "qemuCaps=3D%p migrateURI=3D%s snapshot=3D%p vmop=3D%d flags= =3D0x%x", @@ -10715,24 +10704,19 @@ qemuBuildCommandLine(virQEMUDriver *driver, nnicindexes, nicindexes) < 0) return NULL; - if (qemuBuildSmartcardCommandLine(logManager, secManager, cmd, cfg, de= f, qemuCaps, - chardevStdioLogd) < 0) + if (qemuBuildSmartcardCommandLine(logManager, secManager, cmd, cfg, de= f, qemuCaps) < 0) return NULL; - if (qemuBuildSerialCommandLine(logManager, secManager, cmd, cfg, def, = qemuCaps, - chardevStdioLogd) < 0) + if (qemuBuildSerialCommandLine(logManager, secManager, cmd, cfg, def, = qemuCaps) < 0) return NULL; - if (qemuBuildParallelsCommandLine(logManager, secManager, cmd, cfg, de= f, qemuCaps, - chardevStdioLogd) < 0) + if (qemuBuildParallelsCommandLine(logManager, secManager, cmd, cfg, de= f, qemuCaps) < 0) return NULL; - if (qemuBuildChannelsCommandLine(logManager, secManager, cmd, cfg, def= , qemuCaps, - chardevStdioLogd) < 0) + if (qemuBuildChannelsCommandLine(logManager, secManager, cmd, cfg, def= , qemuCaps) < 0) return NULL; - if (qemuBuildConsoleCommandLine(logManager, secManager, cmd, cfg, def,= qemuCaps, - chardevStdioLogd) < 0) + if (qemuBuildConsoleCommandLine(logManager, secManager, cmd, cfg, def,= qemuCaps) < 0) return NULL; if (qemuBuildTPMsCommandLine(cmd, def, qemuCaps) < 0) @@ -10756,8 +10740,7 @@ qemuBuildCommandLine(virQEMUDriver *driver, if (qemuBuildWatchdogCommandLine(cmd, def, qemuCaps) < 0) return NULL; - if (qemuBuildRedirdevCommandLine(logManager, secManager, cmd, cfg, def= , qemuCaps, - chardevStdioLogd) < 0) + if (qemuBuildRedirdevCommandLine(logManager, secManager, cmd, cfg, def= , qemuCaps) < 0) return NULL; if (qemuBuildHostdevCommandLine(cmd, def, qemuCaps) < 0) @@ -10769,8 +10752,7 @@ qemuBuildCommandLine(virQEMUDriver *driver, if (qemuBuildMemballoonCommandLine(cmd, def, qemuCaps) < 0) return NULL; - if (qemuBuildRNGCommandLine(logManager, secManager, cmd, cfg, def, qem= uCaps, - chardevStdioLogd) < 0) + if (qemuBuildRNGCommandLine(logManager, secManager, cmd, cfg, def, qem= uCaps) < 0) return NULL; if (qemuBuildNVRAMCommandLine(cmd, def) < 0) @@ -10805,8 +10787,7 @@ qemuBuildCommandLine(virQEMUDriver *driver, for (i =3D 0; i < def->nshmems; i++) { if (qemuBuildShmemCommandLine(logManager, secManager, cmd, cfg, - def, def->shmems[i], qemuCaps, - chardevStdioLogd) < 0) + def, def->shmems[i], qemuCaps) < 0) return NULL; } --=20 2.31.1 From nobody Fri May 3 00:24:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.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 170.10.133.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=1639053233; cv=none; d=zohomail.com; s=zohoarc; b=Knm3Mp13Vj//VzVycGLORpoGEh8F48rWjkpZZYpu4TyFWaDsnmbVpOOxbm59e5rCGXV9WmCUrX1wXsA7RXB4F0XRfjM/7Wdmlbm0+7+TpzpwD+AXg24CjY/hAVSyzawwSmGaHnLRJ0Bq+SBUQz4jeRnL1Z2og9r4sfajfv0vHJk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1639053233; 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=nWvjv9Agmg5LOHNQmmXxJTppt6SQ72o2z5gHRRvyl1A=; b=gAkhDswWfVR6jBFHE8IWktaEtYzHddHO6r1pYZnApi7TGsSYihA2jV3KJJ4VoJatjKQZ0haabzgsONZEPMA5HxnuhuDMKFM3+fQSZhuQKaI90Z9022wrVQJ56HXT4RWE3b2Uns7mPtyObitFu5jzkUTrI+mtlk1ugXUOp1Jl2F4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.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 [170.10.133.124]) by mx.zohomail.com with SMTPS id 16390532335181021.1057001450107; Thu, 9 Dec 2021 04:33:53 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-158-Jo1K91nVN5-4ItBUwqnbtQ-1; Thu, 09 Dec 2021 07:33:49 -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 94251802E6E; Thu, 9 Dec 2021 12:33:43 +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 743A75ED36; Thu, 9 Dec 2021 12:33:43 +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 41DB64BB7C; Thu, 9 Dec 2021 12:33:43 +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 1B9CV70H017639 for ; Thu, 9 Dec 2021 07:31:07 -0500 Received: by smtp.corp.redhat.com (Postfix) id D3BCC4ABA1; Thu, 9 Dec 2021 12:31:07 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.10]) by smtp.corp.redhat.com (Postfix) with ESMTP id 426001B472 for ; Thu, 9 Dec 2021 12:31:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1639053232; 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=nWvjv9Agmg5LOHNQmmXxJTppt6SQ72o2z5gHRRvyl1A=; b=Yf/W0kGu6Bfo+XtsmI0yVuRBrSupTpRCIE8aMsnvVDVFeDKyhekVKq5mW57HTZqpKJpRfX db1ExBNnF5oYiSAl5rZort/1MiigJV5FaYKXvyh/kuzVVBOE885vfh6xWOpFXCpGRFzm12 kHNHduNb8wPvi8ZikKgWmI/dzR3cyqM= X-MC-Unique: Jo1K91nVN5-4ItBUwqnbtQ-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 06/24] qemu: domain: Refactor chardev definition preparing Date: Thu, 9 Dec 2021 13:30:41 +0100 Message-Id: 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: 1639053233875100003 Content-Type: text/plain; charset="utf-8" Use the qemuDomainDeviceBackendChardevForeach helper to iterate all eligible structs and convert the setup of the TLS defaults from the config. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_domain.c | 103 +++++++++++++++++++--------------------- src/qemu/qemu_domain.h | 13 ++--- src/qemu/qemu_driver.c | 7 +++ src/qemu/qemu_hotplug.c | 3 -- src/qemu/qemu_process.c | 23 ++++++++- 5 files changed, 85 insertions(+), 64 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index cbaa39b618..550afca36e 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -9720,66 +9720,63 @@ qemuDomainPrepareChannel(virDomainChrDef *channel, } -/* qemuDomainPrepareChardevSourceTLS: - * @source: pointer to host interface data for char devices - * @cfg: driver configuration - * - * Updates host interface TLS encryption setting based on qemu.conf - * for char devices. This will be presented as "tls=3D'yes|no'" in - * live XML of a guest. - */ -void -qemuDomainPrepareChardevSourceTLS(virDomainChrSourceDef *source, - virQEMUDriverConfig *cfg) -{ - if (source->type =3D=3D VIR_DOMAIN_CHR_TYPE_TCP) { - if (source->data.tcp.haveTLS =3D=3D VIR_TRISTATE_BOOL_ABSENT) { - if (cfg->chardevTLS) - source->data.tcp.haveTLS =3D VIR_TRISTATE_BOOL_YES; - else - source->data.tcp.haveTLS =3D VIR_TRISTATE_BOOL_NO; - source->data.tcp.tlsFromConfig =3D true; - } - } -} - - -/* qemuDomainPrepareChardevSource: - * @def: live domain definition - * @cfg: driver configuration +/* qemuDomainPrepareChardevSourceOne: + * @dev: device definition + * @charsrc: chardev source definition + * @opaque: pointer to struct qemuDomainPrepareChardevSourceData * - * Iterate through all devices that use virDomainChrSourceDef *as host - * interface part. + * Updates the config of a chardev source based on the qemu driver configu= ration. + * Note that this is meant to be called via + * qemuDomainDeviceBackendChardevForeach(One). */ -void -qemuDomainPrepareChardevSource(virDomainDef *def, - virQEMUDriverConfig *cfg) +int +qemuDomainPrepareChardevSourceOne(virDomainDeviceDef *dev, + virDomainChrSourceDef *charsrc, + void *opaque) { - size_t i; - - for (i =3D 0; i < def->nserials; i++) - qemuDomainPrepareChardevSourceTLS(def->serials[i]->source, cfg); - - for (i =3D 0; i < def->nparallels; i++) - qemuDomainPrepareChardevSourceTLS(def->parallels[i]->source, cfg); + struct qemuDomainPrepareChardevSourceData *data =3D opaque; - for (i =3D 0; i < def->nchannels; i++) - qemuDomainPrepareChardevSourceTLS(def->channels[i]->source, cfg); - - for (i =3D 0; i < def->nconsoles; i++) - qemuDomainPrepareChardevSourceTLS(def->consoles[i]->source, cfg); + switch ((virDomainDeviceType) dev->type) { - for (i =3D 0; i < def->nrngs; i++) - if (def->rngs[i]->backend =3D=3D VIR_DOMAIN_RNG_BACKEND_EGD) - qemuDomainPrepareChardevSourceTLS(def->rngs[i]->source.chardev= , cfg); + case VIR_DOMAIN_DEVICE_CHR: + case VIR_DOMAIN_DEVICE_RNG: + case VIR_DOMAIN_DEVICE_SMARTCARD: + case VIR_DOMAIN_DEVICE_REDIRDEV: + if (charsrc->type =3D=3D VIR_DOMAIN_CHR_TYPE_TCP) { + if (charsrc->data.tcp.haveTLS =3D=3D VIR_TRISTATE_BOOL_ABSENT)= { + charsrc->data.tcp.haveTLS =3D virTristateBoolFromBool(data= ->cfg->chardevTLS); + charsrc->data.tcp.tlsFromConfig =3D true; + } + } + break; - for (i =3D 0; i < def->nsmartcards; i++) - if (def->smartcards[i]->type =3D=3D VIR_DOMAIN_SMARTCARD_TYPE_PASS= THROUGH) - qemuDomainPrepareChardevSourceTLS(def->smartcards[i]->data.pas= sthru, - cfg); + case VIR_DOMAIN_DEVICE_DISK: + case VIR_DOMAIN_DEVICE_NET: + case VIR_DOMAIN_DEVICE_SHMEM: + case VIR_DOMAIN_DEVICE_LEASE: + case VIR_DOMAIN_DEVICE_FS: + case VIR_DOMAIN_DEVICE_INPUT: + case VIR_DOMAIN_DEVICE_SOUND: + case VIR_DOMAIN_DEVICE_VIDEO: + case VIR_DOMAIN_DEVICE_HOSTDEV: + case VIR_DOMAIN_DEVICE_WATCHDOG: + case VIR_DOMAIN_DEVICE_CONTROLLER: + case VIR_DOMAIN_DEVICE_GRAPHICS: + case VIR_DOMAIN_DEVICE_HUB: + case VIR_DOMAIN_DEVICE_NONE: + case VIR_DOMAIN_DEVICE_MEMBALLOON: + case VIR_DOMAIN_DEVICE_NVRAM: + case VIR_DOMAIN_DEVICE_TPM: + case VIR_DOMAIN_DEVICE_PANIC: + case VIR_DOMAIN_DEVICE_LAST: + case VIR_DOMAIN_DEVICE_MEMORY: + case VIR_DOMAIN_DEVICE_IOMMU: + case VIR_DOMAIN_DEVICE_VSOCK: + case VIR_DOMAIN_DEVICE_AUDIO: + break; + } - for (i =3D 0; i < def->nredirdevs; i++) - qemuDomainPrepareChardevSourceTLS(def->redirdevs[i]->source, cfg); + return 0; } diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index 61704fdae7..f84acf408b 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -864,13 +864,14 @@ int qemuDomainPrepareChannel(virDomainChrDef *chr, const char *domainChannelTargetDir) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); -void qemuDomainPrepareChardevSourceTLS(virDomainChrSourceDef *source, - virQEMUDriverConfig *cfg) - ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); +struct qemuDomainPrepareChardevSourceData { + virQEMUDriverConfig *cfg; +}; -void qemuDomainPrepareChardevSource(virDomainDef *def, - virQEMUDriverConfig *cfg) - ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); +int +qemuDomainPrepareChardevSourceOne(virDomainDeviceDef *dev, + virDomainChrSourceDef *charsrc, + void *opaque); void qemuDomainPrepareShmemChardev(virDomainShmemDef *shmem) ATTRIBUTE_NONNULL(1); diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 8093b8f69b..10feb606ad 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -6793,6 +6793,13 @@ qemuDomainAttachDeviceLive(virDomainObj *vm, { int ret =3D -1; const char *alias =3D NULL; + g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(driver); + struct qemuDomainPrepareChardevSourceData chardevBackendData =3D { .cf= g =3D cfg }; + + if (qemuDomainDeviceBackendChardevForeachOne(dev, + qemuDomainPrepareChardevS= ourceOne, + &chardevBackendData) < 0) + return -1; switch ((virDomainDeviceType)dev->type) { case VIR_DOMAIN_DEVICE_DISK: diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 2e1d18c633..66961eba70 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -1852,9 +1852,6 @@ qemuDomainAddChardevTLSObjects(virQEMUDriver *driver, g_autoptr(virJSONValue) tlsProps =3D NULL; g_autoptr(virJSONValue) secProps =3D NULL; - /* NB: This may alter haveTLS based on cfg */ - qemuDomainPrepareChardevSourceTLS(dev, cfg); - if (dev->type !=3D VIR_DOMAIN_CHR_TYPE_TCP || dev->data.tcp.haveTLS !=3D VIR_TRISTATE_BOOL_YES) return 0; diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 866b6b9ed6..be49cc9360 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -6498,6 +6498,24 @@ qemuProcessUpdateSEVInfo(virDomainObj *vm) } +/* qemuProcessPrepareChardevSource: + * @def: live domain definition + * @cfg: driver configuration + * + * Iterate through all devices that use virDomainChrSourceDef as backend. + */ +static int +qemuProcessPrepareChardevSource(virDomainDef *def, + virQEMUDriverConfig *cfg) +{ + struct qemuDomainPrepareChardevSourceData data =3D { .cfg =3D cfg }; + + return qemuDomainDeviceBackendChardevForeach(def, + qemuDomainPrepareChardevS= ourceOne, + &data); +} + + /** * qemuProcessPrepareDomain: * @driver: qemu driver @@ -6586,8 +6604,9 @@ qemuProcessPrepareDomain(virQEMUDriver *driver, if (qemuProcessPrepareDomainHostdevs(vm, priv) < 0) return -1; - VIR_DEBUG("Prepare chardev source backends for TLS"); - qemuDomainPrepareChardevSource(vm->def, cfg); + VIR_DEBUG("Prepare chardev source backends"); + if (qemuProcessPrepareChardevSource(vm->def, cfg) < 0) + return -1; VIR_DEBUG("Prepare device secrets"); if (qemuDomainSecretPrepare(driver, vm) < 0) --=20 2.31.1 From nobody Fri May 3 00:24:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.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 170.10.133.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=1639053365; cv=none; d=zohomail.com; s=zohoarc; b=eUGiZqQq9Gq6QuU0CpNK94Zw4K4d8YXgU/AaTgA0gfcVzqibseB8qUor84uc4BLYobFxLLJ9+Iv4aB49wADEyBnIGR56uQM7h7KqprjCI3+StzOFmOUyCfz4BbxkPHJ2phr20IDY3XT6m08XyiB/OCpFT0nUMVFMWyYwyBreCTo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1639053365; 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=PAJFdARJLjiKdYn6YgQ7Eq/xiBmOwBq3Ymo0cghYak0=; b=bKBfFj+s/Lbz0ay1PGnvigXOdjigEtU6V0B49Hy9Gf9GqZNi3aAzaW0EuYdHsBCL1q638L02h6BFENSN6rEB2hv9jLUMwnwK0QSRjaayIT4viPdFNDfvepSFGAmJ8MKzhVtt76k80g/DDQxI5kXzsKbki+TzFKPFvOBtoNyRn9Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.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 [170.10.133.124]) by mx.zohomail.com with SMTPS id 1639053365599321.9220600928421; Thu, 9 Dec 2021 04:36:05 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-7-q0khyRT9MfG5a40Sxbctdg-1; Thu, 09 Dec 2021 07:33:52 -0500 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 51EA21017977; Thu, 9 Dec 2021 12:33:46 +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 316B660C04; Thu, 9 Dec 2021 12:33:46 +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 062B24A70B; Thu, 9 Dec 2021 12:33:46 +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 1B9CV8Kw017654 for ; Thu, 9 Dec 2021 07:31:08 -0500 Received: by smtp.corp.redhat.com (Postfix) id E4E0B4ABA1; Thu, 9 Dec 2021 12:31:08 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.10]) by smtp.corp.redhat.com (Postfix) with ESMTP id 43EC11B472 for ; Thu, 9 Dec 2021 12:31:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1639053364; 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=PAJFdARJLjiKdYn6YgQ7Eq/xiBmOwBq3Ymo0cghYak0=; b=YmFY12FJQ4YedYPgkqryDhxNrCswhmFbtRIQvSEdr0ofcxO6Z1awNwVJ/jLp9JiE4zwDum EYMxjZsbWks1fOxP6LwslV1kbaUrlXQ+WIz8CZCaJUCwe5ASP3zAb+OSW85GlSjg6qbUTJ L49+ENWuWVsI8kMhGCgabWbdk4p711M= X-MC-Unique: q0khyRT9MfG5a40Sxbctdg-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 07/24] qemu: Store chardev 'wait' flag in chardev source private data Date: Thu, 9 Dec 2021 13:30:42 +0100 Message-Id: <722de4aab7474c2747581600ee01988787ff09e4.1639052639.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.12 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: 1639053366895100001 Content-Type: text/plain; charset="utf-8" We have just one case when we wish to wait for incomming connections for a listening socket and that is for vhost-user network devices. Passing this via a flag to qemuBuildChrChardevStr is unwieldy. Add a field to qemuDomainChrSourcePrivate and populate it for our special case inside of qemuDomainPrepareChardevSourceOne. Since we wait for incomming connections only on startup of a new VM we also need to pass in a flag whether qemuDomainPrepareChardevSourceOne is called on a new start or on hotplug. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_command.c | 6 +++--- src/qemu/qemu_domain.c | 8 +++++++- src/qemu/qemu_domain.h | 2 ++ src/qemu/qemu_driver.c | 3 ++- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index b637cd2bf5..0baf3acde6 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -5051,7 +5051,7 @@ qemuBuildChrChardevStr(virLogManager *logManager G_GN= UC_UNUSED, const virDomainChrSourceDef *dev, const char *alias, virQEMUCaps *qemuCaps, - unsigned int cdevflags) + unsigned int cdevflags G_GNUC_UNUSED) { qemuDomainChrSourcePrivate *chrSourcePriv =3D QEMU_DOMAIN_CHR_SOURCE_P= RIVATE(dev); g_auto(virBuffer) buf =3D VIR_BUFFER_INITIALIZER; @@ -5148,7 +5148,7 @@ qemuBuildChrChardevStr(virLogManager *logManager G_GN= UC_UNUSED, if (dev->data.tcp.listen) { virBufferAddLit(&buf, ",server=3Don"); - if (cdevflags & QEMU_BUILD_CHARDEV_TCP_NOWAIT) + if (!chrSourcePriv->wait) virBufferAddLit(&buf, ",wait=3Doff"); } @@ -5199,7 +5199,7 @@ qemuBuildChrChardevStr(virLogManager *logManager G_GN= UC_UNUSED, } if (dev->data.nix.listen) { virBufferAddLit(&buf, ",server=3Don"); - if (cdevflags & QEMU_BUILD_CHARDEV_TCP_NOWAIT) + if (!chrSourcePriv->wait) virBufferAddLit(&buf, ",wait=3Doff"); } diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 550afca36e..e6d6bf10f1 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -9735,6 +9735,7 @@ qemuDomainPrepareChardevSourceOne(virDomainDeviceDef = *dev, void *opaque) { struct qemuDomainPrepareChardevSourceData *data =3D opaque; + qemuDomainChrSourcePrivate *charpriv =3D QEMU_DOMAIN_CHR_SOURCE_PRIVAT= E(charsrc); switch ((virDomainDeviceType) dev->type) { @@ -9750,8 +9751,13 @@ qemuDomainPrepareChardevSourceOne(virDomainDeviceDef= *dev, } break; - case VIR_DOMAIN_DEVICE_DISK: case VIR_DOMAIN_DEVICE_NET: + /* when starting a fresh VM, vhost-user network sockets wait for c= onnection */ + if (!data->hotplug) + charpriv->wait =3D true; + break; + + case VIR_DOMAIN_DEVICE_DISK: case VIR_DOMAIN_DEVICE_SHMEM: case VIR_DOMAIN_DEVICE_LEASE: case VIR_DOMAIN_DEVICE_FS: diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index f84acf408b..2d93cf2253 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -344,6 +344,7 @@ struct _qemuDomainChrSourcePrivate { int fd; /* file descriptor of the chardev source */ int logfd; /* file descriptor of the logging source */ + bool wait; /* wait for incomming connections on chardev */ }; @@ -866,6 +867,7 @@ int qemuDomainPrepareChannel(virDomainChrDef *chr, struct qemuDomainPrepareChardevSourceData { virQEMUDriverConfig *cfg; + bool hotplug; }; int diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 10feb606ad..4301f3f89e 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -6794,7 +6794,8 @@ qemuDomainAttachDeviceLive(virDomainObj *vm, int ret =3D -1; const char *alias =3D NULL; g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(driver); - struct qemuDomainPrepareChardevSourceData chardevBackendData =3D { .cf= g =3D cfg }; + struct qemuDomainPrepareChardevSourceData chardevBackendData =3D { .cf= g =3D cfg, + .hotp= lug =3D true }; if (qemuDomainDeviceBackendChardevForeachOne(dev, qemuDomainPrepareChardevS= ourceOne, --=20 2.31.1 From nobody Fri May 3 00:24:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.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 170.10.133.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=1639053137; cv=none; d=zohomail.com; s=zohoarc; b=MstNcAKCZ/+N96ljNuKNel0/ys/IYmuqr60J6nH6Mn4h7rb0RnzckLEikQ1B8BfNzc5n+A+rz7JqrnKKUtQ2AZhTGkg6E3LRzPhrmdf5EJJV23IPaz22rjpicHm4OPpUGwZc3MzWAh2FLm1I1mXHcLxSthK3GoPMV0+YYnS1His= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1639053137; 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=yeJD7fffpS3wdeLSRphMtyJXUbktjPKptsB5Uxm9uwc=; b=NwkiUV1AeD2WV41zXtA0AFo8QXZXSHiCSMKJxg99ixGCyK7lASoLbUWsbMDxEtN0HGm18KnUz0PhEFRM1OEhKCAawCk93OKWa5w31ZcgDH4Q2cHQ6R46mZ+0xaD/99I53m6W0iUwUeSn/TOP1V0vrmS8hJ1JQUuYsimKCPsgcbI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.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 [170.10.133.124]) by mx.zohomail.com with SMTPS id 163905313769486.16069522260045; Thu, 9 Dec 2021 04:32:17 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-454-Lp4Zx2Z2P1S4TDbiQX4VLg-1; Thu, 09 Dec 2021 07:32:15 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 9B86E100D683; Thu, 9 Dec 2021 12:32:10 +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 2ADD16B8EA; Thu, 9 Dec 2021 12:32:10 +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 016344BB7C; Thu, 9 Dec 2021 12:32:09 +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 1B9CVAGv017664 for ; Thu, 9 Dec 2021 07:31:10 -0500 Received: by smtp.corp.redhat.com (Postfix) id 026091B472; Thu, 9 Dec 2021 12:31:10 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.10]) by smtp.corp.redhat.com (Postfix) with ESMTP id 60CE160C25 for ; Thu, 9 Dec 2021 12:31:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1639053136; 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=yeJD7fffpS3wdeLSRphMtyJXUbktjPKptsB5Uxm9uwc=; b=HXMNxPwfqVmGt0d0eusUvWas9Uy297cRXqFmXplNy4DD8P2MBfbB9cODTPnyYKw+c6j8Ji PCTMLFuOrWNq8cXfHPg6HJOkDM2RrO6eiApKDtYPApGwgmSkTIbIeXGYLDa9urOBTkrzn+ 7E1Ulqyy0PraShQ46VkGDxoS8rPq40w= X-MC-Unique: Lp4Zx2Z2P1S4TDbiQX4VLg-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 08/24] qemuBuildChrChardevStr: Remove 'cdevflags' argument Date: Thu, 9 Dec 2021 13:30:43 +0100 Message-Id: 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.16 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: 1639053139041100001 Content-Type: text/plain; charset="utf-8" The argument and corresponding enum are not used any more. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_command.c | 45 ++++++++++++++--------------------------- 1 file changed, 15 insertions(+), 30 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 0baf3acde6..918361d55c 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -5036,10 +5036,6 @@ qemuOpenChrChardevUNIXSocket(const virDomainChrSourc= eDef *dev) } -enum { - QEMU_BUILD_CHARDEV_TCP_NOWAIT =3D (1 << 0), -}; - /* This function outputs a -chardev command line option which describes on= ly the * host side of the character device */ static char * @@ -5050,8 +5046,7 @@ qemuBuildChrChardevStr(virLogManager *logManager G_GN= UC_UNUSED, const virDomainDef *def G_GNUC_UNUSED, const virDomainChrSourceDef *dev, const char *alias, - virQEMUCaps *qemuCaps, - unsigned int cdevflags G_GNUC_UNUSED) + virQEMUCaps *qemuCaps) { qemuDomainChrSourcePrivate *chrSourcePriv =3D QEMU_DOMAIN_CHR_SOURCE_P= RIVATE(dev); g_auto(virBuffer) buf =3D VIR_BUFFER_INITIALIZER; @@ -5525,7 +5520,6 @@ qemuBuildMonitorCommandLine(virLogManager *logManager, qemuDomainObjPrivate *priv) { g_autofree char *chrdev =3D NULL; - unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; if (!priv->monConfig) return 0; @@ -5533,7 +5527,7 @@ qemuBuildMonitorCommandLine(virLogManager *logManager, if (!(chrdev =3D qemuBuildChrChardevStr(logManager, secManager, cmd, cfg, def, priv->monConfig, "monitor", - priv->qemuCaps, cdevflags))) + priv->qemuCaps))) return -1; virCommandAddArg(cmd, "-chardev"); virCommandAddArg(cmd, chrdev); @@ -5661,8 +5655,6 @@ qemuBuildRNGBackendChrdevStr(virLogManager *logManage= r, virQEMUCaps *qemuCaps, char **chr) { - unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; - *chr =3D NULL; switch ((virDomainRNGBackend) rng->backend) { @@ -5676,8 +5668,8 @@ qemuBuildRNGBackendChrdevStr(virLogManager *logManage= r, if (!(*chr =3D qemuBuildChrChardevStr(logManager, secManager, cmd, cfg, def, rng->source.chardev, - rng->info.alias, qemuCaps, - cdevflags))) + rng->info.alias, + qemuCaps))) return -1; break; } @@ -8629,7 +8621,7 @@ qemuInterfaceVhostuserConnect(virQEMUDriver *driver, if (!(*chardev =3D qemuBuildChrChardevStr(logManager, secManager, cmd, cfg, def, net->data.vhostuser, - net->info.alias, qemuCaps,= 0))) + net->info.alias, qemuCaps)= )) return -1; break; @@ -9073,7 +9065,6 @@ qemuBuildSmartcardCommandLine(virLogManager *logManag= er, break; case VIR_DOMAIN_SMARTCARD_TYPE_PASSTHROUGH: { - unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; g_autofree char *chardevstr =3D NULL; g_autofree char *chardevalias =3D g_strdup_printf("char%s", smartc= ard->info.alias); @@ -9081,7 +9072,7 @@ qemuBuildSmartcardCommandLine(virLogManager *logManag= er, cmd, cfg, def, smartcard->data.passthru, smartcard->info.alias, - qemuCaps, cdevflags))) { + qemuCaps))) { return -1; } @@ -9237,7 +9228,6 @@ qemuBuildShmemCommandLine(virLogManager *logManager, g_autoptr(virJSONValue) memProps =3D NULL; g_autoptr(virJSONValue) devProps =3D NULL; g_autofree char *chardev =3D NULL; - unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; if (shmem->size) { /* @@ -9299,8 +9289,8 @@ qemuBuildShmemCommandLine(virLogManager *logManager, chardev =3D qemuBuildChrChardevStr(logManager, secManager, cmd, cfg, def, shmem->server.chr, - shmem->info.alias, qemuCaps, - cdevflags); + shmem->info.alias, + qemuCaps); if (!chardev) return -1; @@ -9405,7 +9395,6 @@ qemuBuildSerialCommandLine(virLogManager *logManager, { size_t i; bool havespice =3D false; - unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; if (def->nserials) { for (i =3D 0; i < def->ngraphics && !havespice; i++) { @@ -9425,7 +9414,7 @@ qemuBuildSerialCommandLine(virLogManager *logManager, cmd, cfg, def, serial->source, serial->info.alias, - qemuCaps, cdevflags))) + qemuCaps))) return -1; virCommandAddArg(cmd, "-chardev"); virCommandAddArg(cmd, devstr); @@ -9464,7 +9453,6 @@ qemuBuildParallelsCommandLine(virLogManager *logManag= er, virQEMUCaps *qemuCaps) { size_t i; - unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; for (i =3D 0; i < def->nparallels; i++) { virDomainChrDef *parallel =3D def->parallels[i]; @@ -9474,7 +9462,7 @@ qemuBuildParallelsCommandLine(virLogManager *logManag= er, cmd, cfg, def, parallel->source, parallel->info.alias, - qemuCaps, cdevflags))) + qemuCaps))) return -1; virCommandAddArg(cmd, "-chardev"); virCommandAddArg(cmd, devstr); @@ -9497,7 +9485,6 @@ qemuBuildChannelsCommandLine(virLogManager *logManage= r, virQEMUCaps *qemuCaps) { size_t i; - unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; for (i =3D 0; i < def->nchannels; i++) { virDomainChrDef *channel =3D def->channels[i]; @@ -9508,7 +9495,7 @@ qemuBuildChannelsCommandLine(virLogManager *logManage= r, cmd, cfg, def, channel->source, channel->info.alias, - qemuCaps, cdevflags))) + qemuCaps))) return -1; virCommandAddArg(cmd, "-chardev"); @@ -9548,7 +9535,6 @@ qemuBuildConsoleCommandLine(virLogManager *logManager, virQEMUCaps *qemuCaps) { size_t i; - unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; /* Explicit console devices */ for (i =3D 0; i < def->nconsoles; i++) { @@ -9561,7 +9547,7 @@ qemuBuildConsoleCommandLine(virLogManager *logManager, cmd, cfg, def, console->source, console->info.alias, - qemuCaps, cdevflags))) + qemuCaps))) return -1; virCommandAddArg(cmd, "-chardev"); virCommandAddArg(cmd, devstr); @@ -9576,7 +9562,7 @@ qemuBuildConsoleCommandLine(virLogManager *logManager, cmd, cfg, def, console->source, console->info.alias, - qemuCaps, cdevflags))) + qemuCaps))) return -1; virCommandAddArg(cmd, "-chardev"); virCommandAddArg(cmd, devstr); @@ -9591,7 +9577,7 @@ qemuBuildConsoleCommandLine(virLogManager *logManager, cmd, cfg, def, console->source, console->info.alias, - qemuCaps, cdevflags))) + qemuCaps))) return -1; virCommandAddArg(cmd, "-chardev"); virCommandAddArg(cmd, devstr); @@ -9680,7 +9666,6 @@ qemuBuildRedirdevCommandLine(virLogManager *logManage= r, virQEMUCaps *qemuCaps) { size_t i; - unsigned int cdevflags =3D QEMU_BUILD_CHARDEV_TCP_NOWAIT; for (i =3D 0; i < def->nredirdevs; i++) { virDomainRedirdevDef *redirdev =3D def->redirdevs[i]; @@ -9691,7 +9676,7 @@ qemuBuildRedirdevCommandLine(virLogManager *logManage= r, cmd, cfg, def, redirdev->source, redirdev->info.alias, - qemuCaps, cdevflags))) { + qemuCaps))) { return -1; } --=20 2.31.1 From nobody Fri May 3 00:24:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.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 170.10.133.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=1639053309; cv=none; d=zohomail.com; s=zohoarc; b=AMSfG7iFpEKc/OWt2eOOKoarTia5rDPnr6M8aslTxgxF83QzoC1OrMN9+0j1OJJV4nIwAWDqZfVImyEKTZ00sz/rZQ+KZAag4djL3CpyzAXNqdDb55fcuW5qDd9H2WRDZ46pg3tJ//4diKWLAgU759NC9yYGTX6vSiHLQ/iHYmQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1639053309; 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=Q0zKp/mnr5kh+SW0elXzaAkNINbrRBcQq7canTC1Bso=; b=J5HxLPfj1rsisCVdcVQVquBfIkKdoswYZ+cCCP5a1G9ygxMcaBsrA5n1IoPZf0t24C49Aayk1+YhWZchgXd4/HCNe7Wog3iaokjy3siwuWP4VxjbXid660iOb7K2FJ16LJ9opezhJIRl4rqRNW4VZXUr6owgt39bR1deLuHupKg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.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 [170.10.133.124]) by mx.zohomail.com with SMTPS id 1639053309030217.14965185096503; Thu, 9 Dec 2021 04:35:09 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-140-K4HOyq4UNVWAksbuZ_fsyw-1; Thu, 09 Dec 2021 07:33:54 -0500 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 3240A801962; Thu, 9 Dec 2021 12:33:50 +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 103B860C7F; Thu, 9 Dec 2021 12:33:50 +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 D7B9C4A70B; Thu, 9 Dec 2021 12:33:48 +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 1B9CVBTe017670 for ; Thu, 9 Dec 2021 07:31:11 -0500 Received: by smtp.corp.redhat.com (Postfix) id 22BB11B472; Thu, 9 Dec 2021 12:31:11 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.10]) by smtp.corp.redhat.com (Postfix) with ESMTP id 656B2694C0 for ; Thu, 9 Dec 2021 12:31:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1639053307; 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=Q0zKp/mnr5kh+SW0elXzaAkNINbrRBcQq7canTC1Bso=; b=CCnkScZ4Z2JqGU17kJE7LoEXt5OGQyfe5sQ5e5pEJwKb3vvTTBN2jb+vLgbp4ByHB2s3yH i2t+DdMUC+bcKL7w8lBdDLl85uG86z3qXyGhOUVHeXjZHXGDxbcsHIV4U2s4/QHjcdswFs HENvu5Kej/Qht1dsrPifxzYmSkfP/Hg= X-MC-Unique: K4HOyq4UNVWAksbuZ_fsyw-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 09/24] qemuBuildChrChardevStr: Remove unused arguments and clean up callers Date: Thu, 9 Dec 2021 13:30:44 +0100 Message-Id: <34e413954d3ed394d8792405af5457a496246bfd.1639052639.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.12 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: 1639053311038100001 Content-Type: text/plain; charset="utf-8" Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_command.c | 145 +++++++++++++++------------------------- src/qemu/qemu_command.h | 2 - src/qemu/qemu_process.c | 4 -- 3 files changed, 55 insertions(+), 96 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 918361d55c..5c2b8d65fd 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -5039,11 +5039,8 @@ qemuOpenChrChardevUNIXSocket(const virDomainChrSourc= eDef *dev) /* This function outputs a -chardev command line option which describes on= ly the * host side of the character device */ static char * -qemuBuildChrChardevStr(virLogManager *logManager G_GNUC_UNUSED, - virSecurityManager *secManager G_GNUC_UNUSED, - virCommand *cmd, +qemuBuildChrChardevStr(virCommand *cmd, virQEMUDriverConfig *cfg, - const virDomainDef *def G_GNUC_UNUSED, const virDomainChrSourceDef *dev, const char *alias, virQEMUCaps *qemuCaps) @@ -5512,11 +5509,8 @@ qemuBuildHostdevCommandLine(virCommand *cmd, static int -qemuBuildMonitorCommandLine(virLogManager *logManager, - virSecurityManager *secManager, - virCommand *cmd, +qemuBuildMonitorCommandLine(virCommand *cmd, virQEMUDriverConfig *cfg, - virDomainDef *def, qemuDomainObjPrivate *priv) { g_autofree char *chrdev =3D NULL; @@ -5524,9 +5518,10 @@ qemuBuildMonitorCommandLine(virLogManager *logManage= r, if (!priv->monConfig) return 0; - if (!(chrdev =3D qemuBuildChrChardevStr(logManager, secManager, - cmd, cfg, def, - priv->monConfig, "monitor", + if (!(chrdev =3D qemuBuildChrChardevStr(cmd, + cfg, + priv->monConfig, + "monitor", priv->qemuCaps))) return -1; virCommandAddArg(cmd, "-chardev"); @@ -5646,11 +5641,8 @@ qemuBuildSclpDevProps(virDomainChrDef *dev) static int -qemuBuildRNGBackendChrdevStr(virLogManager *logManager, - virSecurityManager *secManager, - virCommand *cmd, +qemuBuildRNGBackendChrdevStr(virCommand *cmd, virQEMUDriverConfig *cfg, - const virDomainDef *def, virDomainRNGDef *rng, virQEMUCaps *qemuCaps, char **chr) @@ -5665,8 +5657,8 @@ qemuBuildRNGBackendChrdevStr(virLogManager *logManage= r, return 0; case VIR_DOMAIN_RNG_BACKEND_EGD: - if (!(*chr =3D qemuBuildChrChardevStr(logManager, secManager, - cmd, cfg, def, + if (!(*chr =3D qemuBuildChrChardevStr(cmd, + cfg, rng->source.chardev, rng->info.alias, qemuCaps))) @@ -5757,9 +5749,7 @@ qemuBuildRNGDevProps(const virDomainDef *def, static int -qemuBuildRNGCommandLine(virLogManager *logManager, - virSecurityManager *secManager, - virCommand *cmd, +qemuBuildRNGCommandLine(virCommand *cmd, virQEMUDriverConfig *cfg, const virDomainDef *def, virQEMUCaps *qemuCaps) @@ -5779,8 +5769,7 @@ qemuBuildRNGCommandLine(virLogManager *logManager, } /* possibly add character device for backend */ - if (qemuBuildRNGBackendChrdevStr(logManager, secManager, cmd, cfg,= def, - rng, qemuCaps, &chardev) < 0) + if (qemuBuildRNGBackendChrdevStr(cmd, cfg, rng, qemuCaps, &chardev= ) < 0) return -1; if (chardev) @@ -8606,10 +8595,7 @@ qemuBuildGraphicsCommandLine(virQEMUDriverConfig *cf= g, static int qemuInterfaceVhostuserConnect(virQEMUDriver *driver, - virLogManager *logManager, - virSecurityManager *secManager, virCommand *cmd, - virDomainDef *def, virDomainNetDef *net, virQEMUCaps *qemuCaps, char **chardev) @@ -8618,10 +8604,11 @@ qemuInterfaceVhostuserConnect(virQEMUDriver *driver, switch ((virDomainChrType)net->data.vhostuser->type) { case VIR_DOMAIN_CHR_TYPE_UNIX: - if (!(*chardev =3D qemuBuildChrChardevStr(logManager, secManager, - cmd, cfg, def, + if (!(*chardev =3D qemuBuildChrChardevStr(cmd, + cfg, net->data.vhostuser, - net->info.alias, qemuCaps)= )) + net->info.alias, + qemuCaps))) return -1; break; @@ -8650,8 +8637,6 @@ qemuInterfaceVhostuserConnect(virQEMUDriver *driver, static int qemuBuildInterfaceCommandLine(virQEMUDriver *driver, virDomainObj *vm, - virLogManager *logManager, - virSecurityManager *secManager, virCommand *cmd, virDomainNetDef *net, virQEMUCaps *qemuCaps, @@ -8742,8 +8727,7 @@ qemuBuildInterfaceCommandLine(virQEMUDriver *driver, case VIR_DOMAIN_NET_TYPE_VHOSTUSER: requireNicdev =3D true; - if (qemuInterfaceVhostuserConnect(driver, logManager, secManager, - cmd, def, net, qemuCaps, &charde= v) < 0) + if (qemuInterfaceVhostuserConnect(driver, cmd, net, qemuCaps, &cha= rdev) < 0) goto cleanup; if (virNetDevOpenvswitchGetVhostuserIfname(net->data.vhostuser->da= ta.nix.path, @@ -8980,8 +8964,6 @@ qemuBuildInterfaceCommandLine(virQEMUDriver *driver, static int qemuBuildNetCommandLine(virQEMUDriver *driver, virDomainObj *vm, - virLogManager *logManager, - virSecurityManager *secManager, virCommand *cmd, virQEMUCaps *qemuCaps, virNetDevVPortProfileOp vmop, @@ -8997,7 +8979,7 @@ qemuBuildNetCommandLine(virQEMUDriver *driver, for (i =3D 0; i < def->nnets; i++) { virDomainNetDef *net =3D def->nets[i]; - if (qemuBuildInterfaceCommandLine(driver, vm, logManager, secManag= er, cmd, net, + if (qemuBuildInterfaceCommandLine(driver, vm, cmd, net, qemuCaps, vmop, standalone, nnicindexes, nicindexes) < 0) @@ -9019,9 +9001,7 @@ qemuBuildNetCommandLine(virQEMUDriver *driver, static int -qemuBuildSmartcardCommandLine(virLogManager *logManager, - virSecurityManager *secManager, - virCommand *cmd, +qemuBuildSmartcardCommandLine(virCommand *cmd, virQEMUDriverConfig *cfg, const virDomainDef *def, virQEMUCaps *qemuCaps) @@ -9068,8 +9048,8 @@ qemuBuildSmartcardCommandLine(virLogManager *logManag= er, g_autofree char *chardevstr =3D NULL; g_autofree char *chardevalias =3D g_strdup_printf("char%s", smartc= ard->info.alias); - if (!(chardevstr =3D qemuBuildChrChardevStr(logManager, secManager, - cmd, cfg, def, + if (!(chardevstr =3D qemuBuildChrChardevStr(cmd, + cfg, smartcard->data.passthru, smartcard->info.alias, qemuCaps))) { @@ -9217,9 +9197,7 @@ qemuBuildShmemBackendMemProps(virDomainShmemDef *shme= m) static int -qemuBuildShmemCommandLine(virLogManager *logManager, - virSecurityManager *secManager, - virCommand *cmd, +qemuBuildShmemCommandLine(virCommand *cmd, virQEMUDriverConfig *cfg, virDomainDef *def, virDomainShmemDef *shmem, @@ -9286,11 +9264,11 @@ qemuBuildShmemCommandLine(virLogManager *logManager, return -1; if (shmem->server.enabled) { - chardev =3D qemuBuildChrChardevStr(logManager, secManager, - cmd, cfg, def, - shmem->server.chr, - shmem->info.alias, - qemuCaps); + chardev =3D qemuBuildChrChardevStr(cmd, + cfg, + shmem->server.chr, + shmem->info.alias, + qemuCaps); if (!chardev) return -1; @@ -9386,9 +9364,7 @@ qemuChrIsPlatformDevice(const virDomainDef *def, static int -qemuBuildSerialCommandLine(virLogManager *logManager, - virSecurityManager *secManager, - virCommand *cmd, +qemuBuildSerialCommandLine(virCommand *cmd, virQEMUDriverConfig *cfg, const virDomainDef *def, virQEMUCaps *qemuCaps) @@ -9410,8 +9386,8 @@ qemuBuildSerialCommandLine(virLogManager *logManager, if (serial->source->type =3D=3D VIR_DOMAIN_CHR_TYPE_SPICEPORT && != havespice) continue; - if (!(devstr =3D qemuBuildChrChardevStr(logManager, secManager, - cmd, cfg, def, + if (!(devstr =3D qemuBuildChrChardevStr(cmd, + cfg, serial->source, serial->info.alias, qemuCaps))) @@ -9445,9 +9421,7 @@ qemuBuildSerialCommandLine(virLogManager *logManager, static int -qemuBuildParallelsCommandLine(virLogManager *logManager, - virSecurityManager *secManager, - virCommand *cmd, +qemuBuildParallelsCommandLine(virCommand *cmd, virQEMUDriverConfig *cfg, const virDomainDef *def, virQEMUCaps *qemuCaps) @@ -9458,8 +9432,8 @@ qemuBuildParallelsCommandLine(virLogManager *logManag= er, virDomainChrDef *parallel =3D def->parallels[i]; g_autofree char *devstr =3D NULL; - if (!(devstr =3D qemuBuildChrChardevStr(logManager, secManager, - cmd, cfg, def, + if (!(devstr =3D qemuBuildChrChardevStr(cmd, + cfg, parallel->source, parallel->info.alias, qemuCaps))) @@ -9477,9 +9451,7 @@ qemuBuildParallelsCommandLine(virLogManager *logManag= er, static int -qemuBuildChannelsCommandLine(virLogManager *logManager, - virSecurityManager *secManager, - virCommand *cmd, +qemuBuildChannelsCommandLine(virCommand *cmd, virQEMUDriverConfig *cfg, const virDomainDef *def, virQEMUCaps *qemuCaps) @@ -9491,8 +9463,8 @@ qemuBuildChannelsCommandLine(virLogManager *logManage= r, g_autofree char *chardevstr =3D NULL; g_autoptr(virJSONValue) netdevprops =3D NULL; - if (!(chardevstr =3D qemuBuildChrChardevStr(logManager, secManager, - cmd, cfg, def, + if (!(chardevstr =3D qemuBuildChrChardevStr(cmd, + cfg, channel->source, channel->info.alias, qemuCaps))) @@ -9527,9 +9499,7 @@ qemuBuildChannelsCommandLine(virLogManager *logManage= r, static int -qemuBuildConsoleCommandLine(virLogManager *logManager, - virSecurityManager *secManager, - virCommand *cmd, +qemuBuildConsoleCommandLine(virCommand *cmd, virQEMUDriverConfig *cfg, const virDomainDef *def, virQEMUCaps *qemuCaps) @@ -9543,8 +9513,8 @@ qemuBuildConsoleCommandLine(virLogManager *logManager, switch (console->targetType) { case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SCLP: - if (!(devstr =3D qemuBuildChrChardevStr(logManager, secManager, - cmd, cfg, def, + if (!(devstr =3D qemuBuildChrChardevStr(cmd, + cfg, console->source, console->info.alias, qemuCaps))) @@ -9558,8 +9528,8 @@ qemuBuildConsoleCommandLine(virLogManager *logManager, break; case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SCLPLM: - if (!(devstr =3D qemuBuildChrChardevStr(logManager, secManager, - cmd, cfg, def, + if (!(devstr =3D qemuBuildChrChardevStr(cmd, + cfg, console->source, console->info.alias, qemuCaps))) @@ -9573,8 +9543,8 @@ qemuBuildConsoleCommandLine(virLogManager *logManager, break; case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_VIRTIO: - if (!(devstr =3D qemuBuildChrChardevStr(logManager, secManager, - cmd, cfg, def, + if (!(devstr =3D qemuBuildChrChardevStr(cmd, + cfg, console->source, console->info.alias, qemuCaps))) @@ -9658,9 +9628,7 @@ qemuBuildRedirdevDevProps(const virDomainDef *def, static int -qemuBuildRedirdevCommandLine(virLogManager *logManager, - virSecurityManager *secManager, - virCommand *cmd, +qemuBuildRedirdevCommandLine(virCommand *cmd, virQEMUDriverConfig *cfg, const virDomainDef *def, virQEMUCaps *qemuCaps) @@ -9672,8 +9640,8 @@ qemuBuildRedirdevCommandLine(virLogManager *logManage= r, g_autoptr(virJSONValue) devprops =3D NULL; char *devstr; - if (!(devstr =3D qemuBuildChrChardevStr(logManager, secManager, - cmd, cfg, def, + if (!(devstr =3D qemuBuildChrChardevStr(cmd, + cfg, redirdev->source, redirdev->info.alias, qemuCaps))) { @@ -10522,8 +10490,6 @@ qemuBuildCompatDeprecatedCommandLine(virCommand *cm= d, */ virCommand * qemuBuildCommandLine(virQEMUDriver *driver, - virLogManager *logManager, - virSecurityManager *secManager, virDomainObj *vm, const char *migrateURI, virDomainMomentObj *snapshot, @@ -10650,7 +10616,7 @@ qemuBuildCommandLine(virQEMUDriver *driver, virCommandAddArg(cmd, "-no-user-config"); virCommandAddArg(cmd, "-nodefaults"); - if (qemuBuildMonitorCommandLine(logManager, secManager, cmd, cfg, def,= priv) < 0) + if (qemuBuildMonitorCommandLine(cmd, cfg, priv) < 0) return NULL; if (qemuBuildClockCommandLine(cmd, def, qemuCaps) < 0) @@ -10684,24 +10650,24 @@ qemuBuildCommandLine(virQEMUDriver *driver, if (qemuBuildFilesystemCommandLine(cmd, def, qemuCaps, priv) < 0) return NULL; - if (qemuBuildNetCommandLine(driver, vm, logManager, secManager, cmd, + if (qemuBuildNetCommandLine(driver, vm, cmd, qemuCaps, vmop, standalone, nnicindexes, nicindexes) < 0) return NULL; - if (qemuBuildSmartcardCommandLine(logManager, secManager, cmd, cfg, de= f, qemuCaps) < 0) + if (qemuBuildSmartcardCommandLine(cmd, cfg, def, qemuCaps) < 0) return NULL; - if (qemuBuildSerialCommandLine(logManager, secManager, cmd, cfg, def, = qemuCaps) < 0) + if (qemuBuildSerialCommandLine(cmd, cfg, def, qemuCaps) < 0) return NULL; - if (qemuBuildParallelsCommandLine(logManager, secManager, cmd, cfg, de= f, qemuCaps) < 0) + if (qemuBuildParallelsCommandLine(cmd, cfg, def, qemuCaps) < 0) return NULL; - if (qemuBuildChannelsCommandLine(logManager, secManager, cmd, cfg, def= , qemuCaps) < 0) + if (qemuBuildChannelsCommandLine(cmd, cfg, def, qemuCaps) < 0) return NULL; - if (qemuBuildConsoleCommandLine(logManager, secManager, cmd, cfg, def,= qemuCaps) < 0) + if (qemuBuildConsoleCommandLine(cmd, cfg, def, qemuCaps) < 0) return NULL; if (qemuBuildTPMsCommandLine(cmd, def, qemuCaps) < 0) @@ -10725,7 +10691,7 @@ qemuBuildCommandLine(virQEMUDriver *driver, if (qemuBuildWatchdogCommandLine(cmd, def, qemuCaps) < 0) return NULL; - if (qemuBuildRedirdevCommandLine(logManager, secManager, cmd, cfg, def= , qemuCaps) < 0) + if (qemuBuildRedirdevCommandLine(cmd, cfg, def, qemuCaps) < 0) return NULL; if (qemuBuildHostdevCommandLine(cmd, def, qemuCaps) < 0) @@ -10737,7 +10703,7 @@ qemuBuildCommandLine(virQEMUDriver *driver, if (qemuBuildMemballoonCommandLine(cmd, def, qemuCaps) < 0) return NULL; - if (qemuBuildRNGCommandLine(logManager, secManager, cmd, cfg, def, qem= uCaps) < 0) + if (qemuBuildRNGCommandLine(cmd, cfg, def, qemuCaps) < 0) return NULL; if (qemuBuildNVRAMCommandLine(cmd, def) < 0) @@ -10771,8 +10737,7 @@ qemuBuildCommandLine(virQEMUDriver *driver, return NULL; for (i =3D 0; i < def->nshmems; i++) { - if (qemuBuildShmemCommandLine(logManager, secManager, cmd, cfg, - def, def->shmems[i], qemuCaps) < 0) + if (qemuBuildShmemCommandLine(cmd, cfg, def, def->shmems[i], qemuC= aps) < 0) return NULL; } diff --git a/src/qemu/qemu_command.h b/src/qemu/qemu_command.h index 7dec2cb4af..dbdf3a4793 100644 --- a/src/qemu/qemu_command.h +++ b/src/qemu/qemu_command.h @@ -44,8 +44,6 @@ VIR_ENUM_DECL(qemuVideo); VIR_ENUM_DECL(qemuSoundCodec); virCommand *qemuBuildCommandLine(virQEMUDriver *driver, - virLogManager *logManager, - virSecurityManager *secManager, virDomainObj *vm, const char *migrateURI, virDomainMomentObj *snapshot, diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index be49cc9360..d31ab103cf 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -7463,8 +7463,6 @@ qemuProcessLaunch(virConnectPtr conn, VIR_DEBUG("Building emulator command line"); if (!(cmd =3D qemuBuildCommandLine(driver, - qemuDomainLogContextGetManager(logCtx= t), - driver->securityManager, vm, incoming ? incoming->launchURI : NULL, snapshot, vmop, @@ -7978,8 +7976,6 @@ qemuProcessCreatePretendCmdBuild(virQEMUDriver *drive= r, { VIR_DEBUG("Building emulator command line"); return qemuBuildCommandLine(driver, - NULL, - driver->securityManager, vm, migrateURI, NULL, --=20 2.31.1 From nobody Fri May 3 00:24:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.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 170.10.133.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=1639053231; cv=none; d=zohomail.com; s=zohoarc; b=J7WHzqSQ0mxYK0mDAs8FM9LGQqPP58WcrsQI+qFa6SUz7vxFfZKP/hb5L2jl82RBfQnKlqg8NebJ77GAquzJBEEmhHrZZ4a3xPgV/SeAxzGkenaGIUJkJYrYz703i84uAqIOM0v9Dvdx6qNRHZgCb4yzC/iIaztp0lLNqVPtMlE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1639053231; 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=L4oOHi8Kpxrf0OxwaAF4WiSqX6tOi4WwETq93rPJynM=; b=g9whymSHcXsK8aMJnqOB47Ceqi/UToy6W0aQXt8OWecj8CCN74MlVD/5L/dBoWfypMbfGTxEsQ6QDHlyiOA1VkJxxEIf6E5qdIbeQsyZR2L/oHsoiO9mhE+Cf369UI9YBAbXZCGQ9hO1w3R1L6hteMVd19NTbUOEe5pQAYOoT2g= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.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 [170.10.133.124]) by mx.zohomail.com with SMTPS id 1639053231590815.5158017969961; Thu, 9 Dec 2021 04:33:51 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-386-nIvhST-tMUiQedSut5ijOA-1; Thu, 09 Dec 2021 07:33:48 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 64FF761245; Thu, 9 Dec 2021 12:33:43 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 314485D740; Thu, 9 Dec 2021 12:33:43 +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 B9B9018218B8; Thu, 9 Dec 2021 12:33:42 +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 1B9CVC1u017685 for ; Thu, 9 Dec 2021 07:31:12 -0500 Received: by smtp.corp.redhat.com (Postfix) id 634881B472; Thu, 9 Dec 2021 12:31:12 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.10]) by smtp.corp.redhat.com (Postfix) with ESMTP id 882FE60C25 for ; Thu, 9 Dec 2021 12:31:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1639053230; 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=L4oOHi8Kpxrf0OxwaAF4WiSqX6tOi4WwETq93rPJynM=; b=IjTVYWN/j2dLh4zmMJClaFHN+hB/CUijD2NhhxpVwt9tZQMjiKTrg4YoKvYN2h2H6UmZSm jDeN/1AogA5rPML5x1S1w6u7s6fsuCqQjztoNU85HSKpgyMNo1m5M330dJhdp0SccaT40A HZLgQWHorxs1U33V68rLZAn+/k5N8hA= X-MC-Unique: nIvhST-tMUiQedSut5ijOA-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 10/24] qemuxml2argvtest: Add DO_TEST_CAPS_LATEST versions for all character device tests Date: Thu, 9 Dec 2021 13:30:45 +0100 Message-Id: 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.15 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: 1639053233548100001 Content-Type: text/plain; charset="utf-8" Now that the test cases won't cause host modification we can add the contemporary versions. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- .../console-compat-auto.x86_64-latest.args | 39 +++++++++++++++++ .../console-compat-chardev.x86_64-latest.args | 39 +++++++++++++++++ .../console-compat.x86_64-latest.args | 38 ++++++++++++++++ ...arallel-parport-chardev.x86_64-latest.args | 39 +++++++++++++++++ .../parallel-tcp-chardev.x86_64-latest.args | 39 +++++++++++++++++ .../pci-serial-dev-chardev.x86_64-latest.args | 39 +++++++++++++++++ ...rial-dev-chardev-iobase.x86_64-latest.args | 39 +++++++++++++++++ .../serial-dev-chardev.x86_64-latest.args | 39 +++++++++++++++++ .../serial-file-chardev.x86_64-latest.args | 40 +++++++++++++++++ .../serial-file-log.x86_64-latest.args | 40 +++++++++++++++++ .../serial-many-chardev.x86_64-latest.args | 42 ++++++++++++++++++ .../serial-pty-chardev.x86_64-latest.args | 39 +++++++++++++++++ ...erial-spiceport-nospice.x86_64-latest.args | 37 ++++++++++++++++ .../serial-spiceport.x86_64-latest.args | 41 ++++++++++++++++++ .../serial-tcp-chardev.x86_64-latest.args | 39 +++++++++++++++++ ...rial-tcp-telnet-chardev.x86_64-latest.args | 39 +++++++++++++++++ ...p-tlsx509-chardev-notls.x86_64-latest.args | 41 ++++++++++++++++++ ...-tlsx509-chardev-verify.x86_64-latest.args | 42 ++++++++++++++++++ ...ial-tcp-tlsx509-chardev.x86_64-latest.args | 42 ++++++++++++++++++ ...-tlsx509-secret-chardev.x86_64-latest.args | 43 +++++++++++++++++++ .../serial-udp-chardev.x86_64-latest.args | 41 ++++++++++++++++++ ...rial-unix-missing-source.x86_64-latest.err | 1 + .../serial-vc-chardev.x86_64-latest.args | 39 +++++++++++++++++ tests/qemuxml2argvtest.c | 26 +++++++++++ 24 files changed, 903 insertions(+) create mode 100644 tests/qemuxml2argvdata/console-compat-auto.x86_64-lates= t.args create mode 100644 tests/qemuxml2argvdata/console-compat-chardev.x86_64-la= test.args create mode 100644 tests/qemuxml2argvdata/console-compat.x86_64-latest.args create mode 100644 tests/qemuxml2argvdata/parallel-parport-chardev.x86_64-= latest.args create mode 100644 tests/qemuxml2argvdata/parallel-tcp-chardev.x86_64-late= st.args create mode 100644 tests/qemuxml2argvdata/pci-serial-dev-chardev.x86_64-la= test.args create mode 100644 tests/qemuxml2argvdata/serial-dev-chardev-iobase.x86_64= -latest.args create mode 100644 tests/qemuxml2argvdata/serial-dev-chardev.x86_64-latest= .args create mode 100644 tests/qemuxml2argvdata/serial-file-chardev.x86_64-lates= t.args create mode 100644 tests/qemuxml2argvdata/serial-file-log.x86_64-latest.ar= gs create mode 100644 tests/qemuxml2argvdata/serial-many-chardev.x86_64-lates= t.args create mode 100644 tests/qemuxml2argvdata/serial-pty-chardev.x86_64-latest= .args create mode 100644 tests/qemuxml2argvdata/serial-spiceport-nospice.x86_64-= latest.args create mode 100644 tests/qemuxml2argvdata/serial-spiceport.x86_64-latest.a= rgs create mode 100644 tests/qemuxml2argvdata/serial-tcp-chardev.x86_64-latest= .args create mode 100644 tests/qemuxml2argvdata/serial-tcp-telnet-chardev.x86_64= -latest.args create mode 100644 tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-notls= .x86_64-latest.args create mode 100644 tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-verif= y.x86_64-latest.args create mode 100644 tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev.x86_6= 4-latest.args create mode 100644 tests/qemuxml2argvdata/serial-tcp-tlsx509-secret-charde= v.x86_64-latest.args create mode 100644 tests/qemuxml2argvdata/serial-udp-chardev.x86_64-latest= .args create mode 100644 tests/qemuxml2argvdata/serial-unix-missing-source.x86_6= 4-latest.err create mode 100644 tests/qemuxml2argvdata/serial-vc-chardev.x86_64-latest.= args diff --git a/tests/qemuxml2argvdata/console-compat-auto.x86_64-latest.args = b/tests/qemuxml2argvdata/console-compat-auto.x86_64-latest.args new file mode 100644 index 0000000000..7b31c86820 --- /dev/null +++ b/tests/qemuxml2argvdata/console-compat-auto.x86_64-latest.args @@ -0,0 +1,39 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/tmp/lib/domain--1-QEMUGuest1 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ +/usr/bin/qemu-system-i386 \ +-name guest=3DQEMUGuest1,debug-threads=3Don \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/tm= p/lib/domain--1-QEMUGuest1/master-key.aes"}' \ +-machine pc,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dpc.ram \ +-accel tcg \ +-cpu qemu64 \ +-m 214 \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'= \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server=3Don,wait=3Doff \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-no-acpi \ +-boot strict=3Don \ +-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ +-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1","no= de-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ +-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw= ","file":"libvirt-1-storage"}' \ +-device '{"driver":"ide-hd","bus":"ide.0","unit":0,"drive":"libvirt-1-form= at","id":"ide0-0-0","bootindex":1}' \ +-chardev pty,id=3Dcharserial0 \ +-device '{"driver":"isa-serial","chardev":"charserial0","id":"serial0"}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x2"}' \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxml2argvdata/console-compat-chardev.x86_64-latest.ar= gs b/tests/qemuxml2argvdata/console-compat-chardev.x86_64-latest.args new file mode 100644 index 0000000000..7b31c86820 --- /dev/null +++ b/tests/qemuxml2argvdata/console-compat-chardev.x86_64-latest.args @@ -0,0 +1,39 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/tmp/lib/domain--1-QEMUGuest1 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ +/usr/bin/qemu-system-i386 \ +-name guest=3DQEMUGuest1,debug-threads=3Don \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/tm= p/lib/domain--1-QEMUGuest1/master-key.aes"}' \ +-machine pc,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dpc.ram \ +-accel tcg \ +-cpu qemu64 \ +-m 214 \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'= \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server=3Don,wait=3Doff \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-no-acpi \ +-boot strict=3Don \ +-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ +-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1","no= de-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ +-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw= ","file":"libvirt-1-storage"}' \ +-device '{"driver":"ide-hd","bus":"ide.0","unit":0,"drive":"libvirt-1-form= at","id":"ide0-0-0","bootindex":1}' \ +-chardev pty,id=3Dcharserial0 \ +-device '{"driver":"isa-serial","chardev":"charserial0","id":"serial0"}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x2"}' \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxml2argvdata/console-compat.x86_64-latest.args b/tes= ts/qemuxml2argvdata/console-compat.x86_64-latest.args new file mode 100644 index 0000000000..17a356b480 --- /dev/null +++ b/tests/qemuxml2argvdata/console-compat.x86_64-latest.args @@ -0,0 +1,38 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/tmp/lib/domain--1-QEMUGuest1 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ +/usr/bin/qemu-system-i386 \ +-name guest=3DQEMUGuest1,debug-threads=3Don \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/tm= p/lib/domain--1-QEMUGuest1/master-key.aes"}' \ +-machine pc,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dpc.ram \ +-accel tcg \ +-cpu qemu64 \ +-m 214 \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'= \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server=3Don,wait=3Doff \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-no-acpi \ +-boot strict=3Don \ +-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ +-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1","no= de-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ +-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw= ","file":"libvirt-1-storage"}' \ +-device '{"driver":"ide-hd","bus":"ide.0","unit":0,"drive":"libvirt-1-form= at","id":"ide0-0-0","bootindex":1}' \ +-chardev pty,id=3Dcharserial0 \ +-device '{"driver":"isa-serial","chardev":"charserial0","id":"serial0"}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxml2argvdata/parallel-parport-chardev.x86_64-latest.= args b/tests/qemuxml2argvdata/parallel-parport-chardev.x86_64-latest.args new file mode 100644 index 0000000000..eecdb27463 --- /dev/null +++ b/tests/qemuxml2argvdata/parallel-parport-chardev.x86_64-latest.args @@ -0,0 +1,39 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/tmp/lib/domain--1-QEMUGuest1 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ +/usr/bin/qemu-system-i386 \ +-name guest=3DQEMUGuest1,debug-threads=3Don \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/tm= p/lib/domain--1-QEMUGuest1/master-key.aes"}' \ +-machine pc,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dpc.ram \ +-accel tcg \ +-cpu qemu64 \ +-m 214 \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'= \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server=3Don,wait=3Doff \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-no-acpi \ +-boot strict=3Don \ +-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ +-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1","no= de-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ +-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw= ","file":"libvirt-1-storage"}' \ +-device '{"driver":"ide-hd","bus":"ide.0","unit":0,"drive":"libvirt-1-form= at","id":"ide0-0-0","bootindex":1}' \ +-chardev parport,id=3Dcharparallel0,path=3D/dev/parport0 \ +-device '{"driver":"isa-parallel","chardev":"charparallel0","id":"parallel= 0"}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x2"}' \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxml2argvdata/parallel-tcp-chardev.x86_64-latest.args= b/tests/qemuxml2argvdata/parallel-tcp-chardev.x86_64-latest.args new file mode 100644 index 0000000000..b549c433a5 --- /dev/null +++ b/tests/qemuxml2argvdata/parallel-tcp-chardev.x86_64-latest.args @@ -0,0 +1,39 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/tmp/lib/domain--1-QEMUGuest1 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ +/usr/bin/qemu-system-i386 \ +-name guest=3DQEMUGuest1,debug-threads=3Don \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/tm= p/lib/domain--1-QEMUGuest1/master-key.aes"}' \ +-machine pc,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dpc.ram \ +-accel tcg \ +-cpu qemu64 \ +-m 214 \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'= \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server=3Don,wait=3Doff \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-no-acpi \ +-boot strict=3Don \ +-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ +-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1","no= de-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ +-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw= ","file":"libvirt-1-storage"}' \ +-device '{"driver":"ide-hd","bus":"ide.0","unit":0,"drive":"libvirt-1-form= at","id":"ide0-0-0","bootindex":1}' \ +-chardev socket,id=3Dcharparallel0,host=3D127.0.0.1,port=3D9999,server=3Do= n,wait=3Doff \ +-device '{"driver":"isa-parallel","chardev":"charparallel0","id":"parallel= 0"}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x2"}' \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxml2argvdata/pci-serial-dev-chardev.x86_64-latest.ar= gs b/tests/qemuxml2argvdata/pci-serial-dev-chardev.x86_64-latest.args new file mode 100644 index 0000000000..988ec823b4 --- /dev/null +++ b/tests/qemuxml2argvdata/pci-serial-dev-chardev.x86_64-latest.args @@ -0,0 +1,39 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/tmp/lib/domain--1-QEMUGuest1 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ +/usr/bin/qemu-system-i386 \ +-name guest=3DQEMUGuest1,debug-threads=3Don \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/tm= p/lib/domain--1-QEMUGuest1/master-key.aes"}' \ +-machine pc,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dpc.ram \ +-accel tcg \ +-cpu qemu64 \ +-m 214 \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'= \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server=3Don,wait=3Doff \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-no-acpi \ +-boot strict=3Don \ +-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ +-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1","no= de-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ +-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw= ","file":"libvirt-1-storage"}' \ +-device '{"driver":"ide-hd","bus":"ide.0","unit":0,"drive":"libvirt-1-form= at","id":"ide0-0-0","bootindex":1}' \ +-chardev tty,id=3Dcharserial0,path=3D/dev/ttyS2 \ +-device '{"driver":"pci-serial","chardev":"charserial0","id":"serial0","bu= s":"pci.0","addr":"0x4"}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x2"}' \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxml2argvdata/serial-dev-chardev-iobase.x86_64-latest= .args b/tests/qemuxml2argvdata/serial-dev-chardev-iobase.x86_64-latest.args new file mode 100644 index 0000000000..512d1f7e9d --- /dev/null +++ b/tests/qemuxml2argvdata/serial-dev-chardev-iobase.x86_64-latest.args @@ -0,0 +1,39 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/tmp/lib/domain--1-QEMUGuest1 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ +/usr/bin/qemu-system-i386 \ +-name guest=3DQEMUGuest1,debug-threads=3Don \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/tm= p/lib/domain--1-QEMUGuest1/master-key.aes"}' \ +-machine pc,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dpc.ram \ +-accel tcg \ +-cpu qemu64 \ +-m 214 \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'= \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server=3Don,wait=3Doff \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-no-acpi \ +-boot strict=3Don \ +-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ +-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1","no= de-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ +-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw= ","file":"libvirt-1-storage"}' \ +-device '{"driver":"ide-hd","bus":"ide.0","unit":0,"drive":"libvirt-1-form= at","id":"ide0-0-0","bootindex":1}' \ +-chardev tty,id=3Dcharserial0,path=3D/dev/ttyS2 \ +-device '{"driver":"isa-serial","chardev":"charserial0","id":"serial0","io= base":1016,"irq":4}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x2"}' \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxml2argvdata/serial-dev-chardev.x86_64-latest.args b= /tests/qemuxml2argvdata/serial-dev-chardev.x86_64-latest.args new file mode 100644 index 0000000000..cfa0f8ce02 --- /dev/null +++ b/tests/qemuxml2argvdata/serial-dev-chardev.x86_64-latest.args @@ -0,0 +1,39 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/tmp/lib/domain--1-QEMUGuest1 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ +/usr/bin/qemu-system-i386 \ +-name guest=3DQEMUGuest1,debug-threads=3Don \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/tm= p/lib/domain--1-QEMUGuest1/master-key.aes"}' \ +-machine pc,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dpc.ram \ +-accel tcg \ +-cpu qemu64 \ +-m 214 \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'= \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server=3Don,wait=3Doff \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-no-acpi \ +-boot strict=3Don \ +-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ +-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1","no= de-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ +-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw= ","file":"libvirt-1-storage"}' \ +-device '{"driver":"ide-hd","bus":"ide.0","unit":0,"drive":"libvirt-1-form= at","id":"ide0-0-0","bootindex":1}' \ +-chardev tty,id=3Dcharserial0,path=3D/dev/ttyS2 \ +-device '{"driver":"isa-serial","chardev":"charserial0","id":"serial0"}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x2"}' \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxml2argvdata/serial-file-chardev.x86_64-latest.args = b/tests/qemuxml2argvdata/serial-file-chardev.x86_64-latest.args new file mode 100644 index 0000000000..9c7fd01f97 --- /dev/null +++ b/tests/qemuxml2argvdata/serial-file-chardev.x86_64-latest.args @@ -0,0 +1,40 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/tmp/lib/domain--1-QEMUGuest1 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ +/usr/bin/qemu-system-i386 \ +-name guest=3DQEMUGuest1,debug-threads=3Don \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/tm= p/lib/domain--1-QEMUGuest1/master-key.aes"}' \ +-machine pc,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dpc.ram \ +-accel tcg \ +-cpu qemu64 \ +-m 214 \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'= \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server=3Don,wait=3Doff \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-no-acpi \ +-boot strict=3Don \ +-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ +-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1","no= de-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ +-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw= ","file":"libvirt-1-storage"}' \ +-device '{"driver":"ide-hd","bus":"ide.0","unit":0,"drive":"libvirt-1-form= at","id":"ide0-0-0","bootindex":1}' \ +-add-fd set=3D0,fd=3D1750 \ +-chardev file,id=3Dcharserial0,path=3D/dev/fdset/0,append=3Don \ +-device '{"driver":"isa-serial","chardev":"charserial0","id":"serial0"}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x2"}' \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxml2argvdata/serial-file-log.x86_64-latest.args b/te= sts/qemuxml2argvdata/serial-file-log.x86_64-latest.args new file mode 100644 index 0000000000..f7f59bc542 --- /dev/null +++ b/tests/qemuxml2argvdata/serial-file-log.x86_64-latest.args @@ -0,0 +1,40 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/tmp/lib/domain--1-QEMUGuest1 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ +/usr/bin/qemu-system-i386 \ +-name guest=3DQEMUGuest1,debug-threads=3Don \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/tm= p/lib/domain--1-QEMUGuest1/master-key.aes"}' \ +-machine pc,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dpc.ram \ +-accel tcg \ +-cpu qemu64 \ +-m 214 \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'= \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server=3Don,wait=3Doff \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-no-acpi \ +-boot strict=3Don \ +-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ +-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1","no= de-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ +-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw= ","file":"libvirt-1-storage"}' \ +-device '{"driver":"ide-hd","bus":"ide.0","unit":0,"drive":"libvirt-1-form= at","id":"ide0-0-0","bootindex":1}' \ +-add-fd set=3D0,fd=3D1750 \ +-add-fd set=3D1,fd=3D1751 \ +-chardev file,id=3Dcharserial0,path=3D/dev/fdset/0,append=3Don,logfile=3D/= dev/fdset/1,logappend=3Don \ +-device '{"driver":"isa-serial","chardev":"charserial0","id":"serial0"}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxml2argvdata/serial-many-chardev.x86_64-latest.args = b/tests/qemuxml2argvdata/serial-many-chardev.x86_64-latest.args new file mode 100644 index 0000000000..1e0f0110bf --- /dev/null +++ b/tests/qemuxml2argvdata/serial-many-chardev.x86_64-latest.args @@ -0,0 +1,42 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/tmp/lib/domain--1-QEMUGuest1 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ +/usr/bin/qemu-system-i386 \ +-name guest=3DQEMUGuest1,debug-threads=3Don \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/tm= p/lib/domain--1-QEMUGuest1/master-key.aes"}' \ +-machine pc,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dpc.ram \ +-accel tcg \ +-cpu qemu64 \ +-m 214 \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'= \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server=3Don,wait=3Doff \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-no-acpi \ +-boot strict=3Don \ +-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ +-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1","no= de-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ +-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw= ","file":"libvirt-1-storage"}' \ +-device '{"driver":"ide-hd","bus":"ide.0","unit":0,"drive":"libvirt-1-form= at","id":"ide0-0-0","bootindex":1}' \ +-chardev pty,id=3Dcharserial0 \ +-device '{"driver":"isa-serial","chardev":"charserial0","id":"serial0"}' \ +-add-fd set=3D0,fd=3D1750 \ +-chardev file,id=3Dcharserial1,path=3D/dev/fdset/0,append=3Don \ +-device '{"driver":"isa-serial","chardev":"charserial1","id":"serial1"}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x2"}' \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxml2argvdata/serial-pty-chardev.x86_64-latest.args b= /tests/qemuxml2argvdata/serial-pty-chardev.x86_64-latest.args new file mode 100644 index 0000000000..7b31c86820 --- /dev/null +++ b/tests/qemuxml2argvdata/serial-pty-chardev.x86_64-latest.args @@ -0,0 +1,39 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/tmp/lib/domain--1-QEMUGuest1 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ +/usr/bin/qemu-system-i386 \ +-name guest=3DQEMUGuest1,debug-threads=3Don \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/tm= p/lib/domain--1-QEMUGuest1/master-key.aes"}' \ +-machine pc,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dpc.ram \ +-accel tcg \ +-cpu qemu64 \ +-m 214 \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'= \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server=3Don,wait=3Doff \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-no-acpi \ +-boot strict=3Don \ +-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ +-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1","no= de-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ +-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw= ","file":"libvirt-1-storage"}' \ +-device '{"driver":"ide-hd","bus":"ide.0","unit":0,"drive":"libvirt-1-form= at","id":"ide0-0-0","bootindex":1}' \ +-chardev pty,id=3Dcharserial0 \ +-device '{"driver":"isa-serial","chardev":"charserial0","id":"serial0"}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x2"}' \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxml2argvdata/serial-spiceport-nospice.x86_64-latest.= args b/tests/qemuxml2argvdata/serial-spiceport-nospice.x86_64-latest.args new file mode 100644 index 0000000000..7a52bb6a8c --- /dev/null +++ b/tests/qemuxml2argvdata/serial-spiceport-nospice.x86_64-latest.args @@ -0,0 +1,37 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/tmp/lib/domain--1-QEMUGuest1 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ +/usr/bin/qemu-system-i386 \ +-name guest=3DQEMUGuest1,debug-threads=3Don \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/tm= p/lib/domain--1-QEMUGuest1/master-key.aes"}' \ +-machine pc,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dpc.ram \ +-accel tcg \ +-cpu qemu64 \ +-m 214 \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'= \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server=3Don,wait=3Doff \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-no-acpi \ +-boot strict=3Don \ +-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ +-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1","no= de-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ +-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw= ","file":"libvirt-1-storage"}' \ +-device '{"driver":"ide-hd","bus":"ide.0","unit":0,"drive":"libvirt-1-form= at","id":"ide0-0-0","bootindex":1}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x2"}' \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxml2argvdata/serial-spiceport.x86_64-latest.args b/t= ests/qemuxml2argvdata/serial-spiceport.x86_64-latest.args new file mode 100644 index 0000000000..f552782edf --- /dev/null +++ b/tests/qemuxml2argvdata/serial-spiceport.x86_64-latest.args @@ -0,0 +1,41 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/tmp/lib/domain--1-QEMUGuest1 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ +/usr/bin/qemu-system-i386 \ +-name guest=3DQEMUGuest1,debug-threads=3Don \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/tm= p/lib/domain--1-QEMUGuest1/master-key.aes"}' \ +-machine pc,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dpc.ram \ +-accel tcg \ +-cpu qemu64 \ +-m 214 \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'= \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server=3Don,wait=3Doff \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-no-acpi \ +-boot strict=3Don \ +-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ +-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1","no= de-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ +-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw= ","file":"libvirt-1-storage"}' \ +-device '{"driver":"ide-hd","bus":"ide.0","unit":0,"drive":"libvirt-1-form= at","id":"ide0-0-0","bootindex":1}' \ +-chardev spiceport,id=3Dcharserial0,name=3Dorg.qemu.console.serial.0 \ +-device '{"driver":"isa-serial","chardev":"charserial0","id":"serial0"}' \ +-device '{"driver":"usb-tablet","id":"input0","bus":"usb.0","port":"1"}' \ +-audiodev '{"id":"audio1","driver":"spice"}' \ +-spice port=3D5903,tls-port=3D5904,addr=3D127.0.0.1,x509-dir=3D/etc/pki/li= bvirt-spice,seamless-migration=3Don \ +-device '{"driver":"qxl-vga","id":"video0","ram_size":67108864,"vram_size"= :67108864,"vram64_size_mb":0,"vgamem_mb":8,"max_outputs":1,"bus":"pci.0","a= ddr":"0x2"}' \ +-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x3"}' \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxml2argvdata/serial-tcp-chardev.x86_64-latest.args b= /tests/qemuxml2argvdata/serial-tcp-chardev.x86_64-latest.args new file mode 100644 index 0000000000..33e6215ebb --- /dev/null +++ b/tests/qemuxml2argvdata/serial-tcp-chardev.x86_64-latest.args @@ -0,0 +1,39 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/tmp/lib/domain--1-QEMUGuest1 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ +/usr/bin/qemu-system-i386 \ +-name guest=3DQEMUGuest1,debug-threads=3Don \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/tm= p/lib/domain--1-QEMUGuest1/master-key.aes"}' \ +-machine pc,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dpc.ram \ +-accel tcg \ +-cpu qemu64 \ +-m 214 \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'= \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server=3Don,wait=3Doff \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-no-acpi \ +-boot strict=3Don \ +-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ +-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1","no= de-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ +-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw= ","file":"libvirt-1-storage"}' \ +-device '{"driver":"ide-hd","bus":"ide.0","unit":0,"drive":"libvirt-1-form= at","id":"ide0-0-0","bootindex":1}' \ +-chardev socket,id=3Dcharserial0,host=3D127.0.0.1,port=3D9999 \ +-device '{"driver":"isa-serial","chardev":"charserial0","id":"serial0"}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x2"}' \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxml2argvdata/serial-tcp-telnet-chardev.x86_64-latest= .args b/tests/qemuxml2argvdata/serial-tcp-telnet-chardev.x86_64-latest.args new file mode 100644 index 0000000000..4433ce50f5 --- /dev/null +++ b/tests/qemuxml2argvdata/serial-tcp-telnet-chardev.x86_64-latest.args @@ -0,0 +1,39 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/tmp/lib/domain--1-QEMUGuest1 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ +/usr/bin/qemu-system-i386 \ +-name guest=3DQEMUGuest1,debug-threads=3Don \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/tm= p/lib/domain--1-QEMUGuest1/master-key.aes"}' \ +-machine pc,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dpc.ram \ +-accel tcg \ +-cpu qemu64 \ +-m 214 \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'= \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server=3Don,wait=3Doff \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-no-acpi \ +-boot strict=3Don \ +-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ +-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1","no= de-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ +-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw= ","file":"libvirt-1-storage"}' \ +-device '{"driver":"ide-hd","bus":"ide.0","unit":0,"drive":"libvirt-1-form= at","id":"ide0-0-0","bootindex":1}' \ +-chardev socket,id=3Dcharserial0,host=3D127.0.0.1,port=3D9999,telnet=3Don,= server=3Don,wait=3Doff \ +-device '{"driver":"isa-serial","chardev":"charserial0","id":"serial0"}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x2"}' \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-notls.x86_64= -latest.args b/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-notls.x86_= 64-latest.args new file mode 100644 index 0000000000..f4c3ca4cbd --- /dev/null +++ b/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-notls.x86_64-latest= .args @@ -0,0 +1,41 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/tmp/lib/domain--1-QEMUGuest1 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ +/usr/bin/qemu-system-i386 \ +-name guest=3DQEMUGuest1,debug-threads=3Don \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/tm= p/lib/domain--1-QEMUGuest1/master-key.aes"}' \ +-machine pc,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dpc.ram \ +-accel tcg \ +-cpu qemu64 \ +-m 214 \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'= \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server=3Don,wait=3Doff \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-no-acpi \ +-boot strict=3Don \ +-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ +-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1","no= de-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ +-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw= ","file":"libvirt-1-storage"}' \ +-device '{"driver":"ide-hd","bus":"ide.0","unit":0,"drive":"libvirt-1-form= at","id":"ide0-0-0","bootindex":1}' \ +-chardev udp,id=3Dcharserial0,host=3D127.0.0.1,port=3D2222,localaddr=3D127= .0.0.1,localport=3D1111 \ +-device '{"driver":"isa-serial","chardev":"charserial0","id":"serial0"}' \ +-chardev socket,id=3Dcharserial1,host=3D127.0.0.1,port=3D5555 \ +-device '{"driver":"isa-serial","chardev":"charserial1","id":"serial1"}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x3"}' \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-verify.x86_6= 4-latest.args b/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-verify.x8= 6_64-latest.args new file mode 100644 index 0000000000..39d8c562c0 --- /dev/null +++ b/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-verify.x86_64-lates= t.args @@ -0,0 +1,42 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/tmp/lib/domain--1-QEMUGuest1 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ +/usr/bin/qemu-system-i386 \ +-name guest=3DQEMUGuest1,debug-threads=3Don \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/tm= p/lib/domain--1-QEMUGuest1/master-key.aes"}' \ +-machine pc,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dpc.ram \ +-accel tcg \ +-cpu qemu64 \ +-m 214 \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'= \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server=3Don,wait=3Doff \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-no-acpi \ +-boot strict=3Don \ +-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ +-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1","no= de-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ +-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw= ","file":"libvirt-1-storage"}' \ +-device '{"driver":"ide-hd","bus":"ide.0","unit":0,"drive":"libvirt-1-form= at","id":"ide0-0-0","bootindex":1}' \ +-chardev udp,id=3Dcharserial0,host=3D127.0.0.1,port=3D2222,localaddr=3D127= .0.0.1,localport=3D1111 \ +-device '{"driver":"isa-serial","chardev":"charserial0","id":"serial0"}' \ +-object '{"qom-type":"tls-creds-x509","id":"objcharserial1_tls0","dir":"/e= tc/pki/libvirt-chardev","endpoint":"client","verify-peer":true}' \ +-chardev socket,id=3Dcharserial1,host=3D127.0.0.1,port=3D5555,tls-creds=3D= objcharserial1_tls0 \ +-device '{"driver":"isa-serial","chardev":"charserial1","id":"serial1"}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x2"}' \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev.x86_64-lates= t.args b/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev.x86_64-latest.ar= gs new file mode 100644 index 0000000000..39d8c562c0 --- /dev/null +++ b/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev.x86_64-latest.args @@ -0,0 +1,42 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/tmp/lib/domain--1-QEMUGuest1 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ +/usr/bin/qemu-system-i386 \ +-name guest=3DQEMUGuest1,debug-threads=3Don \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/tm= p/lib/domain--1-QEMUGuest1/master-key.aes"}' \ +-machine pc,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dpc.ram \ +-accel tcg \ +-cpu qemu64 \ +-m 214 \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'= \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server=3Don,wait=3Doff \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-no-acpi \ +-boot strict=3Don \ +-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ +-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1","no= de-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ +-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw= ","file":"libvirt-1-storage"}' \ +-device '{"driver":"ide-hd","bus":"ide.0","unit":0,"drive":"libvirt-1-form= at","id":"ide0-0-0","bootindex":1}' \ +-chardev udp,id=3Dcharserial0,host=3D127.0.0.1,port=3D2222,localaddr=3D127= .0.0.1,localport=3D1111 \ +-device '{"driver":"isa-serial","chardev":"charserial0","id":"serial0"}' \ +-object '{"qom-type":"tls-creds-x509","id":"objcharserial1_tls0","dir":"/e= tc/pki/libvirt-chardev","endpoint":"client","verify-peer":true}' \ +-chardev socket,id=3Dcharserial1,host=3D127.0.0.1,port=3D5555,tls-creds=3D= objcharserial1_tls0 \ +-device '{"driver":"isa-serial","chardev":"charserial1","id":"serial1"}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x2"}' \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxml2argvdata/serial-tcp-tlsx509-secret-chardev.x86_6= 4-latest.args b/tests/qemuxml2argvdata/serial-tcp-tlsx509-secret-chardev.x8= 6_64-latest.args new file mode 100644 index 0000000000..4f20639bcf --- /dev/null +++ b/tests/qemuxml2argvdata/serial-tcp-tlsx509-secret-chardev.x86_64-lates= t.args @@ -0,0 +1,43 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/tmp/lib/domain--1-QEMUGuest1 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ +/usr/bin/qemu-system-i386 \ +-name guest=3DQEMUGuest1,debug-threads=3Don \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/tm= p/lib/domain--1-QEMUGuest1/master-key.aes"}' \ +-machine pc,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dpc.ram \ +-accel tcg \ +-cpu qemu64 \ +-m 214 \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'= \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server=3Don,wait=3Doff \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-no-acpi \ +-boot strict=3Don \ +-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ +-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1","no= de-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ +-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw= ","file":"libvirt-1-storage"}' \ +-device '{"driver":"ide-hd","bus":"ide.0","unit":0,"drive":"libvirt-1-form= at","id":"ide0-0-0","bootindex":1}' \ +-chardev udp,id=3Dcharserial0,host=3D127.0.0.1,port=3D2222,localaddr=3D127= .0.0.1,localport=3D1111 \ +-device '{"driver":"isa-serial","chardev":"charserial0","id":"serial0"}' \ +-object '{"qom-type":"secret","id":"charserial1-secret0","data":"9eao5F8qt= kGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1","keyid":"masterKey= 0","iv":"AAECAwQFBgcICQoLDA0ODw=3D=3D","format":"base64"}' \ +-object '{"qom-type":"tls-creds-x509","id":"objcharserial1_tls0","dir":"/e= tc/pki/libvirt-chardev","endpoint":"client","verify-peer":true,"passwordid"= :"charserial1-secret0"}' \ +-chardev socket,id=3Dcharserial1,host=3D127.0.0.1,port=3D5555,tls-creds=3D= objcharserial1_tls0 \ +-device '{"driver":"isa-serial","chardev":"charserial1","id":"serial1"}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x3"}' \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxml2argvdata/serial-udp-chardev.x86_64-latest.args b= /tests/qemuxml2argvdata/serial-udp-chardev.x86_64-latest.args new file mode 100644 index 0000000000..95e6e6ed90 --- /dev/null +++ b/tests/qemuxml2argvdata/serial-udp-chardev.x86_64-latest.args @@ -0,0 +1,41 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/tmp/lib/domain--1-QEMUGuest1 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ +/usr/bin/qemu-system-i386 \ +-name guest=3DQEMUGuest1,debug-threads=3Don \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/tm= p/lib/domain--1-QEMUGuest1/master-key.aes"}' \ +-machine pc,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dpc.ram \ +-accel tcg \ +-cpu qemu64 \ +-m 214 \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'= \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server=3Don,wait=3Doff \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-no-acpi \ +-boot strict=3Don \ +-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ +-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1","no= de-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ +-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw= ","file":"libvirt-1-storage"}' \ +-device '{"driver":"ide-hd","bus":"ide.0","unit":0,"drive":"libvirt-1-form= at","id":"ide0-0-0","bootindex":1}' \ +-chardev udp,id=3Dcharserial0,host=3D127.0.0.1,port=3D9998,localaddr=3D127= .0.0.1,localport=3D9999 \ +-device '{"driver":"isa-serial","chardev":"charserial0","id":"serial0"}' \ +-chardev udp,id=3Dcharserial1,host=3D,port=3D9999,localaddr=3D,localport= =3D0 \ +-device '{"driver":"isa-serial","chardev":"charserial1","id":"serial1"}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x2"}' \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxml2argvdata/serial-unix-missing-source.x86_64-lates= t.err b/tests/qemuxml2argvdata/serial-unix-missing-source.x86_64-latest.err new file mode 100644 index 0000000000..86be3aead4 --- /dev/null +++ b/tests/qemuxml2argvdata/serial-unix-missing-source.x86_64-latest.err @@ -0,0 +1 @@ +unsupported configuration: Emulator '/usr/bin/qemu-system-aarch64' does no= t support arch 'aarch64' diff --git a/tests/qemuxml2argvdata/serial-vc-chardev.x86_64-latest.args b/= tests/qemuxml2argvdata/serial-vc-chardev.x86_64-latest.args new file mode 100644 index 0000000000..d15062b94f --- /dev/null +++ b/tests/qemuxml2argvdata/serial-vc-chardev.x86_64-latest.args @@ -0,0 +1,39 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/tmp/lib/domain--1-QEMUGuest1 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ +/usr/bin/qemu-system-i386 \ +-name guest=3DQEMUGuest1,debug-threads=3Don \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/tm= p/lib/domain--1-QEMUGuest1/master-key.aes"}' \ +-machine pc,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dpc.ram \ +-accel tcg \ +-cpu qemu64 \ +-m 214 \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'= \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server=3Don,wait=3Doff \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-no-acpi \ +-boot strict=3Don \ +-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ +-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1","no= de-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \ +-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw= ","file":"libvirt-1-storage"}' \ +-device '{"driver":"ide-hd","bus":"ide.0","unit":0,"drive":"libvirt-1-form= at","id":"ide0-0-0","bootindex":1}' \ +-chardev vc,id=3Dcharserial0 \ +-device '{"driver":"isa-serial","chardev":"charserial0","id":"serial0"}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x2"}' \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 9cece1df91..a3d0b5e614 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -1685,6 +1685,18 @@ mymain(void) QEMU_CAPS_CHARDEV_FILE_APPEND); DO_TEST("serial-unix-chardev", QEMU_CAPS_DEVICE_ISA_SERIAL); + DO_TEST_CAPS_LATEST("serial-file-log"); + DO_TEST_CAPS_LATEST("serial-spiceport"); + DO_TEST_CAPS_LATEST("serial-spiceport-nospice"); + + DO_TEST_CAPS_LATEST("console-compat"); + DO_TEST_CAPS_LATEST("console-compat-auto"); + + DO_TEST_CAPS_LATEST("serial-vc-chardev"); + DO_TEST_CAPS_LATEST("serial-pty-chardev"); + DO_TEST_CAPS_LATEST("serial-dev-chardev"); + DO_TEST_CAPS_LATEST("serial-dev-chardev-iobase"); + DO_TEST_CAPS_LATEST("serial-file-chardev"); DO_TEST_CAPS_LATEST("serial-unix-chardev"); DO_TEST_PARSE_ERROR_NOCAPS("serial-unix-missing-source"); DO_TEST("serial-tcp-chardev", @@ -1693,31 +1705,45 @@ mymain(void) QEMU_CAPS_DEVICE_ISA_SERIAL); DO_TEST("serial-tcp-telnet-chardev", QEMU_CAPS_DEVICE_ISA_SERIAL); + DO_TEST_CAPS_LATEST("serial-unix-chardev"); + DO_TEST_CAPS_LATEST_PARSE_ERROR("serial-unix-missing-source"); + DO_TEST_CAPS_LATEST("serial-tcp-chardev"); + DO_TEST_CAPS_LATEST("serial-udp-chardev"); + DO_TEST_CAPS_LATEST("serial-tcp-telnet-chardev"); driver.config->chardevTLS =3D 1; DO_TEST("serial-tcp-tlsx509-chardev", QEMU_CAPS_DEVICE_ISA_SERIAL); + DO_TEST_CAPS_LATEST("serial-tcp-tlsx509-chardev"); driver.config->chardevTLSx509verify =3D 1; DO_TEST("serial-tcp-tlsx509-chardev-verify", QEMU_CAPS_DEVICE_ISA_SERIAL); + DO_TEST_CAPS_LATEST("serial-tcp-tlsx509-chardev-verify"); driver.config->chardevTLSx509verify =3D 0; DO_TEST("serial-tcp-tlsx509-chardev-notls", QEMU_CAPS_DEVICE_ISA_SERIAL); + DO_TEST_CAPS_LATEST("serial-tcp-tlsx509-chardev-notls"); VIR_FREE(driver.config->chardevTLSx509certdir); driver.config->chardevTLSx509certdir =3D g_strdup("/etc/pki/libvirt-ch= ardev"); driver.config->chardevTLSx509secretUUID =3D g_strdup("6fd3f62d-9fe7-4a= 4e-a869-7acd6376d8ea"); DO_TEST("serial-tcp-tlsx509-secret-chardev", QEMU_CAPS_DEVICE_ISA_SERIAL); + DO_TEST_CAPS_LATEST("serial-tcp-tlsx509-secret-chardev"); driver.config->chardevTLS =3D 0; VIR_FREE(driver.config->chardevTLSx509certdir); DO_TEST("serial-many-chardev", QEMU_CAPS_DEVICE_ISA_SERIAL); DO_TEST_NOCAPS("parallel-tcp-chardev"); DO_TEST_NOCAPS("parallel-parport-chardev"); + DO_TEST_CAPS_LATEST("serial-many-chardev"); + DO_TEST_CAPS_LATEST("parallel-tcp-chardev"); + DO_TEST_CAPS_LATEST("parallel-parport-chardev"); DO_TEST_CAPS_LATEST("parallel-unix-chardev"); DO_TEST("console-compat-chardev", QEMU_CAPS_DEVICE_ISA_SERIAL); DO_TEST("pci-serial-dev-chardev", QEMU_CAPS_DEVICE_PCI_SERIAL); + DO_TEST_CAPS_LATEST("console-compat-chardev"); + DO_TEST_CAPS_LATEST("pci-serial-dev-chardev"); DO_TEST_NOCAPS("channel-guestfwd"); DO_TEST_CAPS_LATEST("channel-unix-guestfwd"); --=20 2.31.1 From nobody Fri May 3 00:24:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.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 170.10.133.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=1639053147; cv=none; d=zohomail.com; s=zohoarc; b=Dg/TA6SDJ/Y/OSjA9ehNQt0t6JibG8//jKWJShwFjZ2/3bpYesM3OLUOMYTih7dpJyJpkRM+hA1tCRxdmnKbB6l9Mu2KX22J57C4umzeUyTerOXrCHruMNL+ppzJgANJ3ESg2jFv4BV+hTWk0aRghJMq6vLMl8u4P5kMaFhdKUo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1639053147; 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=nTtsZrF0ZI+EO9afuhnRUXn/LzZ4p/1/mLxGTvTixEI=; b=Nfj/6nxAuXh4StgM6rBOMDz5sUT0G3Mpbq6kE+jh1wSRMU3MrWc8RFDwgV9oTCw/jAHz5rZh8mgUN1SX6RU7HSzcjFQdLRC2xiciZjzACyF3GVf+tujFdyfPvoX5yCaispkJ4/39iMGc2024Ms2lSZIOBUenQh4AUUYsQ/vDc1A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.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 [170.10.133.124]) by mx.zohomail.com with SMTPS id 1639053147869690.7050690091752; Thu, 9 Dec 2021 04:32:27 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-340-PWQUEWnQPo-LeNK_2oeWeg-1; Thu, 09 Dec 2021 07:32:25 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 69A1B10144E3; Thu, 9 Dec 2021 12:32:21 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 4C9EF60657; Thu, 9 Dec 2021 12:32:21 +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 DE8A9180126E; Thu, 9 Dec 2021 12:32:20 +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 1B9CVDOn017693 for ; Thu, 9 Dec 2021 07:31:13 -0500 Received: by smtp.corp.redhat.com (Postfix) id 768504ABA1; Thu, 9 Dec 2021 12:31:13 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.10]) by smtp.corp.redhat.com (Postfix) with ESMTP id C8545694C0 for ; Thu, 9 Dec 2021 12:31:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1639053146; 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=nTtsZrF0ZI+EO9afuhnRUXn/LzZ4p/1/mLxGTvTixEI=; b=OaSgklUsJ7uK0vP1M/LI3iq7QwoYKkZIP9N0T8Fu41MsqaIQi6rLBmejmudrWxsI571Yf7 QPA8wnGZIkTOK6xURhbJuWqsF2RfjMf1G3oCKS+znUn+eL/k4qEJcP7CC/PA+FW/va7rjZ qhfZjk9K7wrE9FYm9Dv/rinf7is4UiU= X-MC-Unique: PWQUEWnQPo-LeNK_2oeWeg-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 11/24] qemuxml2argvtest: Add _LATEST version for 'name-escape' case Date: Thu, 9 Dec 2021 13:30:46 +0100 Message-Id: <106d45b778782b5270a8228a7e1b6698c28afa6e.1639052639.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.11 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: 1639053149489100001 Content-Type: text/plain; charset="utf-8" It was impossible to use _LATEST when commit d7c814f7f75 was modernizing the cases as improper separation in the code caused that files were created in the host during the testsuite run. Now that the host manipulation when instantiating chardevs is separated we can add the missing version. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- .../name-escape.x86_64-latest.args | 51 +++++++++++++++++++ tests/qemuxml2argvtest.c | 1 + 2 files changed, 52 insertions(+) create mode 100644 tests/qemuxml2argvdata/name-escape.x86_64-latest.args diff --git a/tests/qemuxml2argvdata/name-escape.x86_64-latest.args b/tests/= qemuxml2argvdata/name-escape.x86_64-latest.args new file mode 100644 index 0000000000..336ea5f4d4 --- /dev/null +++ b/tests/qemuxml2argvdata/name-escape.x86_64-latest.args @@ -0,0 +1,51 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/tmp/lib/domain--1-foo=3D1,bar=3D2 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/tmp/lib/domain--1-foo=3D1,bar=3D2/.local/share \ +XDG_CACHE_HOME=3D/tmp/lib/domain--1-foo=3D1,bar=3D2/.cache \ +XDG_CONFIG_HOME=3D/tmp/lib/domain--1-foo=3D1,bar=3D2/.config \ +/usr/bin/qemu-system-i386 \ +-name guest=3Dfoo=3D1,,bar=3D2,debug-threads=3Don \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/tm= p/lib/domain--1-foo=3D1,bar=3D2/master-key.aes"}' \ +-machine pc,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dpc.ram \ +-accel tcg \ +-cpu qemu64 \ +-m 214 \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'= \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server=3Don,wait=3Doff \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-no-acpi \ +-boot strict=3Don \ +-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ +-device '{"driver":"virtio-scsi-pci","id":"scsi0","bus":"pci.0","addr":"0x= 3"}' \ +-device '{"driver":"usb-ccid","id":"ccid0","bus":"usb.0","port":"1"}' \ +-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1","no= de-name":"libvirt-1-storage","cache":{"direct":true,"no-flush":false},"auto= -read-only":true,"discard":"unmap"}' \ +-blockdev '{"node-name":"libvirt-1-format","read-only":false,"cache":{"dir= ect":true,"no-flush":false},"driver":"qcow2","file":"libvirt-1-storage"}' \ +-device '{"driver":"ide-hd","bus":"ide.0","unit":0,"drive":"libvirt-1-form= at","id":"ide0-0-0","bootindex":1,"write-cache":"on"}' \ +-device '{"driver":"ccid-card-emulated","backend":"certificates","cert1":"= cert1,foo","cert2":"cert2","cert3":"cert3","db":"/etc/pki/nssdb,foo","id":"= smartcard0","bus":"ccid0.0"}' \ +-chardev tty,id=3Dcharserial0,path=3D/dev/ttyS2,,foo \ +-device '{"driver":"isa-serial","chardev":"charserial0","id":"serial0"}' \ +-add-fd set=3D0,fd=3D1750 \ +-chardev file,id=3Dcharserial1,path=3D/dev/fdset/0,append=3Don \ +-device '{"driver":"isa-serial","chardev":"charserial1","id":"serial1"}' \ +-chardev pipe,id=3Dcharchannel0,path=3D/tmp/guestfwd,,foo \ +-netdev user,guestfwd=3Dtcp:10.0.2.1:4600-chardev:charchannel0,id=3Dchanne= l0 \ +-audiodev '{"id":"audio1","driver":"spice"}' \ +-vnc vnc=3Dunix:/tmp/lib/domain--1-foo=3D1,,bar=3D2/vnc.sock,audiodev=3Dau= dio1 \ +-spice unix,addr=3D/tmp/lib/domain--1-foo=3D1,,bar=3D2/spice.sock,gl=3Don,= rendernode=3D/dev/dri/foo,,bar,seamless-migration=3Don \ +-device '{"driver":"cirrus-vga","id":"video0","bus":"pci.0","addr":"0x2"}'= \ +-blockdev '{"driver":"iscsi","portal":"example.foo.org:3260","target":"iqn= .1992-01.com.example:my,storage","lun":1,"transport":"tcp","node-name":"lib= virt-2-backend","read-only":false}' \ +-device '{"driver":"scsi-generic","drive":"libvirt-2-backend","id":"hostde= v0","bus":"scsi0.0","channel":0,"scsi-id":0,"lun":4}' \ +-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x4"}' \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index a3d0b5e614..fa451b6b54 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -3280,6 +3280,7 @@ mymain(void) ARG_END); DO_TEST_CAPS_VER("name-escape", "2.11.0"); + DO_TEST_CAPS_LATEST("name-escape"); DO_TEST_NOCAPS("master-key"); DO_TEST("usb-long-port-path", --=20 2.31.1 From nobody Fri May 3 00:24:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.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 170.10.129.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=1639053156; cv=none; d=zohomail.com; s=zohoarc; b=OPAi0PTFUeiDSiuS5j51YWZYip2cKIOj4HK5mLQ9H6nBwZVbaWC2QZgqwLEpIF+l2pAVD/E7ub9L4Vqt1QXckZKoxeug4mQx7TVZMW3P236VwpXpOz4/U1xyC6RBSX09oVm15hoJB2+Tlk778S3S7aysf8nT3F0XkeaxuOatuOU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1639053156; 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=uZ9xKazFnSByZ4B22fXUqKvR4BcV39dvoVgw6ZXjp2E=; b=FiFh0l2WlK2dUjg4ejesbtaTjTfOHPl5dyZbojPeo+dBqNX0T7r1PqAFOFET2nVr/mP2IJlgYusxltR1LWZ4l5yVAKZn6TyNSS+CjB1mE0L+Et2p/NnBnnHkIWhNDBMom8WYwjgcCXa5AnPc6cG8w5CqdRDfOk1O+ai45W1eDzY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.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 [170.10.129.124]) by mx.zohomail.com with SMTPS id 1639053156269661.8091804622737; Thu, 9 Dec 2021 04:32:36 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-455-P3i1UYyLMtaHwO3FQ7RoHA-1; Thu, 09 Dec 2021 07:32:31 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 5EC4B190D340; Thu, 9 Dec 2021 12:32:26 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 10B2C5D740; Thu, 9 Dec 2021 12:32:26 +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 D50F21802E27; Thu, 9 Dec 2021 12:32:25 +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 1B9CVEOl017705 for ; Thu, 9 Dec 2021 07:31:14 -0500 Received: by smtp.corp.redhat.com (Postfix) id 84CEA4ABA1; Thu, 9 Dec 2021 12:31:14 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.10]) by smtp.corp.redhat.com (Postfix) with ESMTP id D8B221B472 for ; Thu, 9 Dec 2021 12:31:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1639053155; 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=uZ9xKazFnSByZ4B22fXUqKvR4BcV39dvoVgw6ZXjp2E=; b=GHry7yMiwda1Gv56kK6lpQm26yUfIJVAN18iNSSzYOKig1pJKG7N7w5oY6k1opVjU9qMuG SlM+lSX2NH2jSY/8eMYs72oEna/avDIBBSr7b2JtsxeFKe2DVcEWy9y91wbsZyezdLNqYY auiVo93kVSOCNqFAx8zcRVHWQo3bKdE= X-MC-Unique: P3i1UYyLMtaHwO3FQ7RoHA-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 12/24] qemuBuildConsoleCommandLine: Remove identical code Date: Thu, 9 Dec 2021 13:30:47 +0100 Message-Id: <3ca50d80cb8c9a9780491f00d94fcf00ea15854a.1639052639.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.15 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: 1639053158512100003 Content-Type: text/plain; charset="utf-8" Unify the cases for SCPL/SCLPLM/VIRTIO consoles as the code is identical. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_command.c | 28 ---------------------------- 1 file changed, 28 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 5c2b8d65fd..fb4535e889 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -9513,35 +9513,7 @@ qemuBuildConsoleCommandLine(virCommand *cmd, switch (console->targetType) { case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SCLP: - if (!(devstr =3D qemuBuildChrChardevStr(cmd, - cfg, - console->source, - console->info.alias, - qemuCaps))) - return -1; - virCommandAddArg(cmd, "-chardev"); - virCommandAddArg(cmd, devstr); - VIR_FREE(devstr); - - if (qemuBuildChrDeviceCommandLine(cmd, def, console, qemuCaps)= < 0) - return -1; - break; - case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SCLPLM: - if (!(devstr =3D qemuBuildChrChardevStr(cmd, - cfg, - console->source, - console->info.alias, - qemuCaps))) - return -1; - virCommandAddArg(cmd, "-chardev"); - virCommandAddArg(cmd, devstr); - VIR_FREE(devstr); - - if (qemuBuildChrDeviceCommandLine(cmd, def, console, qemuCaps)= < 0) - return -1; - break; - case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_VIRTIO: if (!(devstr =3D qemuBuildChrChardevStr(cmd, cfg, --=20 2.31.1 From nobody Fri May 3 00:24:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.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 170.10.133.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=1639053240; cv=none; d=zohomail.com; s=zohoarc; b=lAz7XfpbdDcXeueRpgvmGr0l+E7uLYZll4ZErLpGVV4i7yNm1x+GNfs7TQ9zQzqDn1O5LrI8J6k7cERdwxhAI4uh9BFiHDblejssw3nCswLyx3tV04KmRGSYRIQ8jkFPE7sXR89rtxRqvUzyQ3+weJ2ftAtJ3/VYDs7lBGIUt2Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1639053240; 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=F2Y053ELTxW+Bd1VNDcCA+TcCok5W3IMHsKS9oOmpFk=; b=GvPST5doSMUFUnrZDtNLixDspM95giXini/cns0AGMg2knwjlYm2OjSq15YFW/cbX6Y867FyGbLEs43P+3gRsFQ1nvqzEyJtd2Sb/Np4ANjwZOyeV8XSLDwnJP+KQDrj+ZCBpkTvWswiyiz2aavOB4Nj4pVYjgPlDtMa4ptOPbM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.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 [170.10.133.124]) by mx.zohomail.com with SMTPS id 1639053240037816.6321925276154; Thu, 9 Dec 2021 04:34:00 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-548-ljdfWWcuMxuMW71eWIXUaw-1; Thu, 09 Dec 2021 07:33:57 -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 1F97E10168EE; Thu, 9 Dec 2021 12:33:53 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id B13835ED2B; Thu, 9 Dec 2021 12:33:52 +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 873D518218B8; Thu, 9 Dec 2021 12:33:52 +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 1B9CVFe0017721 for ; Thu, 9 Dec 2021 07:31:15 -0500 Received: by smtp.corp.redhat.com (Postfix) id 91A251B472; Thu, 9 Dec 2021 12:31:15 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.10]) by smtp.corp.redhat.com (Postfix) with ESMTP id F287A60C25 for ; Thu, 9 Dec 2021 12:31:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1639053239; 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=F2Y053ELTxW+Bd1VNDcCA+TcCok5W3IMHsKS9oOmpFk=; b=eDxAeAAxNFSqUjE22nlRx+4QGNwPUIbN8xhFWRhiwozW3fRUTnn2+BWyINrqSmWDwap5s2 6/HkHsJZwQ4eiG2Ljhj+Vf6qVbU3VYMhC2TiDqJc2Y7he79ikx9DKP3wFPC3pkR6IZc/se TxZ/XappPyf4IonAjvkVh3I8BGxox/s= X-MC-Unique: ljdfWWcuMxuMW71eWIXUaw-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 13/24] qemuBuildChrChardevStr: Directly generate command line Date: Thu, 9 Dec 2021 13:30:48 +0100 Message-Id: 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: 1639053241366100001 Content-Type: text/plain; charset="utf-8" 'qemuBuildChrChardevStr' used a hybrid approach where some arguments were directly added to '@cmd' while the commandline itself was returned as a string. This patch renames qemuBuildChrChardevStr to qemuBuildChardevCommand and adds the argument directly to @cmd inside the function. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_command.c | 186 +++++++++++++++------------------------- 1 file changed, 71 insertions(+), 115 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index fb4535e889..f6aab6a52c 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -5036,14 +5036,12 @@ qemuOpenChrChardevUNIXSocket(const virDomainChrSour= ceDef *dev) } -/* This function outputs a -chardev command line option which describes on= ly the - * host side of the character device */ -static char * -qemuBuildChrChardevStr(virCommand *cmd, - virQEMUDriverConfig *cfg, - const virDomainChrSourceDef *dev, - const char *alias, - virQEMUCaps *qemuCaps) +static int +qemuBuildChardevCommand(virCommand *cmd, + virQEMUDriverConfig *cfg, + const virDomainChrSourceDef *dev, + const char *alias, + virQEMUCaps *qemuCaps) { qemuDomainChrSourcePrivate *chrSourcePriv =3D QEMU_DOMAIN_CHR_SOURCE_P= RIVATE(dev); g_auto(virBuffer) buf =3D VIR_BUFFER_INITIALIZER; @@ -5051,7 +5049,7 @@ qemuBuildChrChardevStr(virCommand *cmd, g_autofree char *charAlias =3D NULL; if (!(charAlias =3D qemuAliasChardevFromDevAlias(alias))) - return NULL; + return -1; switch ((virDomainChrType) dev->type) { case VIR_DOMAIN_CHR_TYPE_NULL: @@ -5158,20 +5156,20 @@ qemuBuildChrChardevStr(virCommand *cmd, if (qemuBuildObjectSecretCommandLine(cmd, chrSourcePriv->secinf= o, qemuCaps) < 0) - return NULL; + return -1; tlsCertEncSecAlias =3D chrSourcePriv->secinfo->alias; } if (!(objalias =3D qemuAliasTLSObjFromSrcAlias(charAlias))) - return NULL; + return -1; if (qemuBuildTLSx509CommandLine(cmd, cfg->chardevTLSx509certdi= r, dev->data.tcp.listen, cfg->chardevTLSx509verify, tlsCertEncSecAlias, objalias, qemuCaps) < 0) { - return NULL; + return -1; } virBufferAsprintf(&buf, ",tls-creds=3D%s", objalias); @@ -5214,7 +5212,7 @@ qemuBuildChrChardevStr(virCommand *cmd, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("unsupported chardev '%s'"), virDomainChrTypeToString(dev->type)); - return NULL; + return -1; } if (dev->logfile) { @@ -5241,7 +5239,9 @@ qemuBuildChrChardevStr(virCommand *cmd, } } - return virBufferContentAndReset(&buf); + virCommandAddArgList(cmd, "-chardev", virBufferCurrentContent(&buf), N= ULL); + + return 0; } @@ -5513,19 +5513,15 @@ qemuBuildMonitorCommandLine(virCommand *cmd, virQEMUDriverConfig *cfg, qemuDomainObjPrivate *priv) { - g_autofree char *chrdev =3D NULL; - if (!priv->monConfig) return 0; - if (!(chrdev =3D qemuBuildChrChardevStr(cmd, - cfg, - priv->monConfig, - "monitor", - priv->qemuCaps))) + if (qemuBuildChardevCommand(cmd, + cfg, + priv->monConfig, + "monitor", + priv->qemuCaps) < 0) return -1; - virCommandAddArg(cmd, "-chardev"); - virCommandAddArg(cmd, chrdev); virCommandAddArg(cmd, "-mon"); virCommandAddArg(cmd, "chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontr= ol"); @@ -5641,14 +5637,11 @@ qemuBuildSclpDevProps(virDomainChrDef *dev) static int -qemuBuildRNGBackendChrdevStr(virCommand *cmd, - virQEMUDriverConfig *cfg, - virDomainRNGDef *rng, - virQEMUCaps *qemuCaps, - char **chr) +qemuBuildRNGBackendChrdev(virCommand *cmd, + virQEMUDriverConfig *cfg, + virDomainRNGDef *rng, + virQEMUCaps *qemuCaps) { - *chr =3D NULL; - switch ((virDomainRNGBackend) rng->backend) { case VIR_DOMAIN_RNG_BACKEND_RANDOM: case VIR_DOMAIN_RNG_BACKEND_BUILTIN: @@ -5657,11 +5650,11 @@ qemuBuildRNGBackendChrdevStr(virCommand *cmd, return 0; case VIR_DOMAIN_RNG_BACKEND_EGD: - if (!(*chr =3D qemuBuildChrChardevStr(cmd, - cfg, - rng->source.chardev, - rng->info.alias, - qemuCaps))) + if (qemuBuildChardevCommand(cmd, + cfg, + rng->source.chardev, + rng->info.alias, + qemuCaps) < 0) return -1; break; } @@ -5759,7 +5752,6 @@ qemuBuildRNGCommandLine(virCommand *cmd, for (i =3D 0; i < def->nrngs; i++) { g_autoptr(virJSONValue) props =3D NULL; virDomainRNGDef *rng =3D def->rngs[i]; - g_autofree char *chardev =3D NULL; g_autoptr(virJSONValue) devprops =3D NULL; if (!rng->info.alias) { @@ -5769,12 +5761,9 @@ qemuBuildRNGCommandLine(virCommand *cmd, } /* possibly add character device for backend */ - if (qemuBuildRNGBackendChrdevStr(cmd, cfg, rng, qemuCaps, &chardev= ) < 0) + if (qemuBuildRNGBackendChrdev(cmd, cfg, rng, qemuCaps) < 0) return -1; - if (chardev) - virCommandAddArgList(cmd, "-chardev", chardev, NULL); - if (qemuBuildRNGBackendProps(rng, &props) < 0) return -1; @@ -8597,18 +8586,17 @@ static int qemuInterfaceVhostuserConnect(virQEMUDriver *driver, virCommand *cmd, virDomainNetDef *net, - virQEMUCaps *qemuCaps, - char **chardev) + virQEMUCaps *qemuCaps) { g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(driver); switch ((virDomainChrType)net->data.vhostuser->type) { case VIR_DOMAIN_CHR_TYPE_UNIX: - if (!(*chardev =3D qemuBuildChrChardevStr(cmd, - cfg, - net->data.vhostuser, - net->info.alias, - qemuCaps))) + if (qemuBuildChardevCommand(cmd, + cfg, + net->data.vhostuser, + net->info.alias, + qemuCaps) < 0) return -1; break; @@ -8649,7 +8637,6 @@ qemuBuildInterfaceCommandLine(virQEMUDriver *driver, int ret =3D -1; g_autoptr(virJSONValue) nicprops =3D NULL; g_autofree char *nic =3D NULL; - g_autofree char *chardev =3D NULL; int *tapfd =3D NULL; size_t tapfdSize =3D 0; int *vhostfd =3D NULL; @@ -8727,7 +8714,7 @@ qemuBuildInterfaceCommandLine(virQEMUDriver *driver, case VIR_DOMAIN_NET_TYPE_VHOSTUSER: requireNicdev =3D true; - if (qemuInterfaceVhostuserConnect(driver, cmd, net, qemuCaps, &cha= rdev) < 0) + if (qemuInterfaceVhostuserConnect(driver, cmd, net, qemuCaps) < 0) goto cleanup; if (virNetDevOpenvswitchGetVhostuserIfname(net->data.vhostuser->da= ta.nix.path, @@ -8888,9 +8875,6 @@ qemuBuildInterfaceCommandLine(virQEMUDriver *driver, vdpafd =3D -1; } - if (chardev) - virCommandAddArgList(cmd, "-chardev", chardev, NULL); - if (!(hostnetprops =3D qemuBuildHostNetProps(net, tapfdName, tapfdSize, vhostfdName, vhostfdSize, @@ -9045,18 +9029,14 @@ qemuBuildSmartcardCommandLine(virCommand *cmd, break; case VIR_DOMAIN_SMARTCARD_TYPE_PASSTHROUGH: { - g_autofree char *chardevstr =3D NULL; g_autofree char *chardevalias =3D g_strdup_printf("char%s", smartc= ard->info.alias); - if (!(chardevstr =3D qemuBuildChrChardevStr(cmd, - cfg, - smartcard->data.passthru, - smartcard->info.alias, - qemuCaps))) { + if (qemuBuildChardevCommand(cmd, + cfg, + smartcard->data.passthru, + smartcard->info.alias, + qemuCaps) < 0) return -1; - } - - virCommandAddArgList(cmd, "-chardev", chardevstr, NULL); if (virJSONValueObjectAdd(&props, "s:driver", "ccid-card-passthru", @@ -9205,7 +9185,6 @@ qemuBuildShmemCommandLine(virCommand *cmd, { g_autoptr(virJSONValue) memProps =3D NULL; g_autoptr(virJSONValue) devProps =3D NULL; - g_autofree char *chardev =3D NULL; if (shmem->size) { /* @@ -9264,15 +9243,12 @@ qemuBuildShmemCommandLine(virCommand *cmd, return -1; if (shmem->server.enabled) { - chardev =3D qemuBuildChrChardevStr(cmd, - cfg, - shmem->server.chr, - shmem->info.alias, - qemuCaps); - if (!chardev) + if (qemuBuildChardevCommand(cmd, + cfg, + shmem->server.chr, + shmem->info.alias, + qemuCaps) < 0) return -1; - - virCommandAddArgList(cmd, "-chardev", chardev, NULL); } return 0; @@ -9381,19 +9357,16 @@ qemuBuildSerialCommandLine(virCommand *cmd, for (i =3D 0; i < def->nserials; i++) { virDomainChrDef *serial =3D def->serials[i]; - g_autofree char *devstr =3D NULL; if (serial->source->type =3D=3D VIR_DOMAIN_CHR_TYPE_SPICEPORT && != havespice) continue; - if (!(devstr =3D qemuBuildChrChardevStr(cmd, - cfg, - serial->source, - serial->info.alias, - qemuCaps))) + if (qemuBuildChardevCommand(cmd, + cfg, + serial->source, + serial->info.alias, + qemuCaps) < 0) return -1; - virCommandAddArg(cmd, "-chardev"); - virCommandAddArg(cmd, devstr); /* If the device is not a platform device, build the devstr */ if (!qemuChrIsPlatformDevice(def, serial)) { @@ -9430,16 +9403,13 @@ qemuBuildParallelsCommandLine(virCommand *cmd, for (i =3D 0; i < def->nparallels; i++) { virDomainChrDef *parallel =3D def->parallels[i]; - g_autofree char *devstr =3D NULL; - if (!(devstr =3D qemuBuildChrChardevStr(cmd, - cfg, - parallel->source, - parallel->info.alias, - qemuCaps))) + if (qemuBuildChardevCommand(cmd, + cfg, + parallel->source, + parallel->info.alias, + qemuCaps) < 0) return -1; - virCommandAddArg(cmd, "-chardev"); - virCommandAddArg(cmd, devstr); if (qemuBuildChrDeviceCommandLine(cmd, def, parallel, qemuCaps) < 0) @@ -9460,19 +9430,15 @@ qemuBuildChannelsCommandLine(virCommand *cmd, for (i =3D 0; i < def->nchannels; i++) { virDomainChrDef *channel =3D def->channels[i]; - g_autofree char *chardevstr =3D NULL; g_autoptr(virJSONValue) netdevprops =3D NULL; - if (!(chardevstr =3D qemuBuildChrChardevStr(cmd, - cfg, - channel->source, - channel->info.alias, - qemuCaps))) + if (qemuBuildChardevCommand(cmd, + cfg, + channel->source, + channel->info.alias, + qemuCaps) < 0) return -1; - virCommandAddArg(cmd, "-chardev"); - virCommandAddArg(cmd, chardevstr); - switch ((virDomainChrChannelTargetType) channel->targetType) { case VIR_DOMAIN_CHR_CHANNEL_TARGET_TYPE_GUESTFWD: if (!(netdevprops =3D qemuBuildChannelGuestfwdNetdevProps(chan= nel))) @@ -9509,21 +9475,17 @@ qemuBuildConsoleCommandLine(virCommand *cmd, /* Explicit console devices */ for (i =3D 0; i < def->nconsoles; i++) { virDomainChrDef *console =3D def->consoles[i]; - char *devstr; switch (console->targetType) { case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SCLP: case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SCLPLM: case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_VIRTIO: - if (!(devstr =3D qemuBuildChrChardevStr(cmd, - cfg, - console->source, - console->info.alias, - qemuCaps))) + if (qemuBuildChardevCommand(cmd, + cfg, + console->source, + console->info.alias, + qemuCaps) < 0) return -1; - virCommandAddArg(cmd, "-chardev"); - virCommandAddArg(cmd, devstr); - VIR_FREE(devstr); if (qemuBuildChrDeviceCommandLine(cmd, def, console, qemuCaps)= < 0) return -1; @@ -9610,19 +9572,13 @@ qemuBuildRedirdevCommandLine(virCommand *cmd, for (i =3D 0; i < def->nredirdevs; i++) { virDomainRedirdevDef *redirdev =3D def->redirdevs[i]; g_autoptr(virJSONValue) devprops =3D NULL; - char *devstr; - if (!(devstr =3D qemuBuildChrChardevStr(cmd, - cfg, - redirdev->source, - redirdev->info.alias, - qemuCaps))) { + if (qemuBuildChardevCommand(cmd, + cfg, + redirdev->source, + redirdev->info.alias, + qemuCaps) < 0) return -1; - } - - virCommandAddArg(cmd, "-chardev"); - virCommandAddArg(cmd, devstr); - VIR_FREE(devstr); if (!(devprops =3D qemuBuildRedirdevDevProps(def, redirdev))) return -1; --=20 2.31.1 From nobody Fri May 3 00:24:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.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 170.10.133.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=1639053244; cv=none; d=zohomail.com; s=zohoarc; b=D8Ufe/GHVxnN84a0ihjxZMOyglrIoY7dkqjJ4ZvyWOr7NS2sc+DgEmxJVHd0l0x4vYzXKBx7LEvc5o9VUEyHOOJ1Pf/kTzmLZeRa8VDBwqwr2CJFwju8DeQ24PeLf6gX6RLfbOHAGGy/ZzhNu2MdFwpo9xXUSnm6xlETJxjrXU8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1639053244; 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=70SAtufOPdGjg44BPzS4K0qEFqtbGUKXGDErI5Vvozs=; b=YQ+VGI9mPRBLcZnYzkS76JHZisCgrXiJ7Njn4Zn+Mn8tf3ai0SqyyxlrD2h82y45zZ9fb0/lHPwcystPdRBRNV5GdEDwtkMClAyvw0DL+X9eoqV6Uyrv4egjo8xyFzTlmTAlutYaOQAZGcdZwMsAXRu1wDvBlUxTliiyK38vyW0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.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 [170.10.133.124]) by mx.zohomail.com with SMTPS id 1639053244466238.30967206757714; Thu, 9 Dec 2021 04:34:04 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-592-npQOtkboMyefk8o3xGtNbQ-1; Thu, 09 Dec 2021 07:33:59 -0500 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 800D6760DA; Thu, 9 Dec 2021 12:33:55 +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 6036160BF1; Thu, 9 Dec 2021 12:33:55 +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 06DEF4A709; Thu, 9 Dec 2021 12:33:55 +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 1B9CVGow017739 for ; Thu, 9 Dec 2021 07:31:16 -0500 Received: by smtp.corp.redhat.com (Postfix) id A1A161B472; Thu, 9 Dec 2021 12:31:16 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.10]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0391C60C25 for ; Thu, 9 Dec 2021 12:31:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1639053243; 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=70SAtufOPdGjg44BPzS4K0qEFqtbGUKXGDErI5Vvozs=; b=Z77AUABfgdpjBTHoVH0Awe7LMdbcGU+9Rbb/0SYB2UcC2y9xw722Yh3iVtuOQiVymFsrQg 7vR0fKq/cCAQKJjSXnibotyvWGf0/QnrBCg61nsIX72ArTrFHh1lViSlqNhPvsXEtlgJKu Q/RFvoWH8zHL9reQkBQRY5lAL/J7jRA= X-MC-Unique: npQOtkboMyefk8o3xGtNbQ-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 14/24] qemuBuildChardevCommand: Move earlier Date: Thu, 9 Dec 2021 13:30:49 +0100 Message-Id: <2a36e31369ffb34dc1c6c0e1037f5ecb3695a676.1639052639.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.12 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: 1639053245854100001 Content-Type: text/plain; charset="utf-8" Make it accessible sooner inside qemu_command.c Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_command.c | 442 ++++++++++++++++++++-------------------- 1 file changed, 221 insertions(+), 221 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index f6aab6a52c..874f875c5a 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -1306,6 +1306,227 @@ qemuBuildTLSx509CommandLine(virCommand *cmd, } +static void +qemuBuildChrChardevReconnectStr(virBuffer *buf, + const virDomainChrSourceReconnectDef *def) +{ + if (def->enabled =3D=3D VIR_TRISTATE_BOOL_YES) { + virBufferAsprintf(buf, ",reconnect=3D%u", def->timeout); + } else if (def->enabled =3D=3D VIR_TRISTATE_BOOL_NO) { + virBufferAddLit(buf, ",reconnect=3D0"); + } +} + + +static int +qemuBuildChardevCommand(virCommand *cmd, + virQEMUDriverConfig *cfg, + const virDomainChrSourceDef *dev, + const char *alias, + virQEMUCaps *qemuCaps) +{ + qemuDomainChrSourcePrivate *chrSourcePriv =3D QEMU_DOMAIN_CHR_SOURCE_P= RIVATE(dev); + g_auto(virBuffer) buf =3D VIR_BUFFER_INITIALIZER; + bool telnet; + g_autofree char *charAlias =3D NULL; + + if (!(charAlias =3D qemuAliasChardevFromDevAlias(alias))) + return -1; + + switch ((virDomainChrType) dev->type) { + case VIR_DOMAIN_CHR_TYPE_NULL: + virBufferAsprintf(&buf, "null,id=3D%s", charAlias); + break; + + case VIR_DOMAIN_CHR_TYPE_VC: + virBufferAsprintf(&buf, "vc,id=3D%s", charAlias); + break; + + case VIR_DOMAIN_CHR_TYPE_PTY: + virBufferAsprintf(&buf, "pty,id=3D%s", charAlias); + break; + + case VIR_DOMAIN_CHR_TYPE_DEV: + virBufferAsprintf(&buf, "%s,id=3D%s,path=3D", + STRPREFIX(alias, "parallel") ? "parport" : "tty", + charAlias); + virQEMUBuildBufferEscapeComma(&buf, dev->data.file.path); + break; + + case VIR_DOMAIN_CHR_TYPE_FILE: + virBufferAsprintf(&buf, "file,id=3D%s", charAlias); + + if (chrSourcePriv->fd !=3D -1) { + g_autofree char *fdset =3D NULL; + size_t idx; + + virCommandPassFDIndex(cmd, chrSourcePriv->fd, + VIR_COMMAND_PASS_FD_CLOSE_PARENT, &idx); + fdset =3D qemuBuildFDSet(chrSourcePriv->fd, idx); + chrSourcePriv->fd =3D -1; + + virCommandAddArg(cmd, "-add-fd"); + virCommandAddArg(cmd, fdset); + + virBufferAsprintf(&buf, ",path=3D/dev/fdset/%zu,append=3Don", = idx); + } else { + virBufferAddLit(&buf, ",path=3D"); + virQEMUBuildBufferEscapeComma(&buf, dev->data.file.path); + if (dev->data.file.append !=3D VIR_TRISTATE_SWITCH_ABSENT) { + virBufferAsprintf(&buf, ",append=3D%s", + virTristateSwitchTypeToString(dev->data.= file.append)); + } + } + break; + + case VIR_DOMAIN_CHR_TYPE_PIPE: + virBufferAsprintf(&buf, "pipe,id=3D%s,path=3D", charAlias); + virQEMUBuildBufferEscapeComma(&buf, dev->data.file.path); + break; + + case VIR_DOMAIN_CHR_TYPE_STDIO: + virBufferAsprintf(&buf, "stdio,id=3D%s", charAlias); + break; + + case VIR_DOMAIN_CHR_TYPE_UDP: { + const char *connectHost =3D dev->data.udp.connectHost; + const char *bindHost =3D dev->data.udp.bindHost; + const char *bindService =3D dev->data.udp.bindService; + + if (connectHost =3D=3D NULL) + connectHost =3D ""; + if (bindHost =3D=3D NULL) + bindHost =3D ""; + if (bindService =3D=3D NULL) + bindService =3D "0"; + + virBufferAsprintf(&buf, + "udp,id=3D%s,host=3D%s,port=3D%s,localaddr=3D%s," + "localport=3D%s", + charAlias, + connectHost, + dev->data.udp.connectService, + bindHost, bindService); + break; + } + case VIR_DOMAIN_CHR_TYPE_TCP: + telnet =3D dev->data.tcp.protocol =3D=3D VIR_DOMAIN_CHR_TCP_PROTOC= OL_TELNET; + virBufferAsprintf(&buf, + "socket,id=3D%s,host=3D%s,port=3D%s%s", + charAlias, + dev->data.tcp.host, + dev->data.tcp.service, + telnet ? ",telnet=3Don" : ""); + + if (dev->data.tcp.listen) { + virBufferAddLit(&buf, ",server=3Don"); + if (!chrSourcePriv->wait) + virBufferAddLit(&buf, ",wait=3Doff"); + } + + qemuBuildChrChardevReconnectStr(&buf, &dev->data.tcp.reconnect); + + if (dev->data.tcp.haveTLS =3D=3D VIR_TRISTATE_BOOL_YES) { + g_autofree char *objalias =3D NULL; + const char *tlsCertEncSecAlias =3D NULL; + + /* Add the secret object first if necessary. The + * secinfo is added only to a TCP serial device during + * qemuDomainSecretChardevPrepare. Subsequently called + * functions can just check the config fields */ + if (chrSourcePriv && chrSourcePriv->secinfo) { + if (qemuBuildObjectSecretCommandLine(cmd, + chrSourcePriv->secinf= o, + qemuCaps) < 0) + return -1; + + tlsCertEncSecAlias =3D chrSourcePriv->secinfo->alias; + } + + if (!(objalias =3D qemuAliasTLSObjFromSrcAlias(charAlias))) + return -1; + + if (qemuBuildTLSx509CommandLine(cmd, cfg->chardevTLSx509certdi= r, + dev->data.tcp.listen, + cfg->chardevTLSx509verify, + tlsCertEncSecAlias, + objalias, qemuCaps) < 0) { + return -1; + } + + virBufferAsprintf(&buf, ",tls-creds=3D%s", objalias); + } + break; + + case VIR_DOMAIN_CHR_TYPE_UNIX: + virBufferAsprintf(&buf, "socket,id=3D%s", charAlias); + if (chrSourcePriv->fd !=3D -1) { + virBufferAsprintf(&buf, ",fd=3D%d", chrSourcePriv->fd); + + virCommandPassFD(cmd, chrSourcePriv->fd, VIR_COMMAND_PASS_FD_C= LOSE_PARENT); + chrSourcePriv->fd =3D -1; + } else { + virBufferAddLit(&buf, ",path=3D"); + virQEMUBuildBufferEscapeComma(&buf, dev->data.nix.path); + } + if (dev->data.nix.listen) { + virBufferAddLit(&buf, ",server=3Don"); + if (!chrSourcePriv->wait) + virBufferAddLit(&buf, ",wait=3Doff"); + } + + qemuBuildChrChardevReconnectStr(&buf, &dev->data.nix.reconnect); + break; + + case VIR_DOMAIN_CHR_TYPE_SPICEVMC: + virBufferAsprintf(&buf, "spicevmc,id=3D%s,name=3D%s", charAlias, + virDomainChrSpicevmcTypeToString(dev->data.spice= vmc)); + break; + + case VIR_DOMAIN_CHR_TYPE_SPICEPORT: + virBufferAsprintf(&buf, "spiceport,id=3D%s,name=3D%s", charAlias, + dev->data.spiceport.channel); + break; + + case VIR_DOMAIN_CHR_TYPE_NMDM: + case VIR_DOMAIN_CHR_TYPE_LAST: + default: + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("unsupported chardev '%s'"), + virDomainChrTypeToString(dev->type)); + return -1; + } + + if (dev->logfile) { + if (chrSourcePriv->logfd !=3D -1) { + g_autofree char *fdset =3D NULL; + size_t idx; + + virCommandPassFDIndex(cmd, chrSourcePriv->logfd, + VIR_COMMAND_PASS_FD_CLOSE_PARENT, &idx); + fdset =3D qemuBuildFDSet(chrSourcePriv->logfd, idx); + chrSourcePriv->logfd =3D -1; + + virCommandAddArg(cmd, "-add-fd"); + virCommandAddArg(cmd, fdset); + + virBufferAsprintf(&buf, ",logfile=3D/dev/fdset/%zu,logappend= =3Don", idx); + } else { + virBufferAddLit(&buf, ",logfile=3D"); + virQEMUBuildBufferEscapeComma(&buf, dev->logfile); + if (dev->logappend !=3D VIR_TRISTATE_SWITCH_ABSENT) { + virBufferAsprintf(&buf, ",logappend=3D%s", + virTristateSwitchTypeToString(dev->logap= pend)); + } + } + } + + virCommandAddArgList(cmd, "-chardev", virBufferCurrentContent(&buf), N= ULL); + + return 0; +} + + static char * qemuBuildNetworkDriveURI(virStorageSource *src) { @@ -4967,18 +5188,6 @@ qemuBuildSCSIHostdevDevProps(const virDomainDef *def, return g_steal_pointer(&props); } -static void -qemuBuildChrChardevReconnectStr(virBuffer *buf, - const virDomainChrSourceReconnectDef *def) -{ - if (def->enabled =3D=3D VIR_TRISTATE_BOOL_YES) { - virBufferAsprintf(buf, ",reconnect=3D%u", def->timeout); - } else if (def->enabled =3D=3D VIR_TRISTATE_BOOL_NO) { - virBufferAddLit(buf, ",reconnect=3D0"); - } -} - - int qemuOpenChrChardevUNIXSocket(const virDomainChrSourceDef *dev) { @@ -5036,215 +5245,6 @@ qemuOpenChrChardevUNIXSocket(const virDomainChrSour= ceDef *dev) } -static int -qemuBuildChardevCommand(virCommand *cmd, - virQEMUDriverConfig *cfg, - const virDomainChrSourceDef *dev, - const char *alias, - virQEMUCaps *qemuCaps) -{ - qemuDomainChrSourcePrivate *chrSourcePriv =3D QEMU_DOMAIN_CHR_SOURCE_P= RIVATE(dev); - g_auto(virBuffer) buf =3D VIR_BUFFER_INITIALIZER; - bool telnet; - g_autofree char *charAlias =3D NULL; - - if (!(charAlias =3D qemuAliasChardevFromDevAlias(alias))) - return -1; - - switch ((virDomainChrType) dev->type) { - case VIR_DOMAIN_CHR_TYPE_NULL: - virBufferAsprintf(&buf, "null,id=3D%s", charAlias); - break; - - case VIR_DOMAIN_CHR_TYPE_VC: - virBufferAsprintf(&buf, "vc,id=3D%s", charAlias); - break; - - case VIR_DOMAIN_CHR_TYPE_PTY: - virBufferAsprintf(&buf, "pty,id=3D%s", charAlias); - break; - - case VIR_DOMAIN_CHR_TYPE_DEV: - virBufferAsprintf(&buf, "%s,id=3D%s,path=3D", - STRPREFIX(alias, "parallel") ? "parport" : "tty", - charAlias); - virQEMUBuildBufferEscapeComma(&buf, dev->data.file.path); - break; - - case VIR_DOMAIN_CHR_TYPE_FILE: - virBufferAsprintf(&buf, "file,id=3D%s", charAlias); - - if (chrSourcePriv->fd !=3D -1) { - g_autofree char *fdset =3D NULL; - size_t idx; - - virCommandPassFDIndex(cmd, chrSourcePriv->fd, - VIR_COMMAND_PASS_FD_CLOSE_PARENT, &idx); - fdset =3D qemuBuildFDSet(chrSourcePriv->fd, idx); - chrSourcePriv->fd =3D -1; - - virCommandAddArg(cmd, "-add-fd"); - virCommandAddArg(cmd, fdset); - - virBufferAsprintf(&buf, ",path=3D/dev/fdset/%zu,append=3Don", = idx); - } else { - virBufferAddLit(&buf, ",path=3D"); - virQEMUBuildBufferEscapeComma(&buf, dev->data.file.path); - if (dev->data.file.append !=3D VIR_TRISTATE_SWITCH_ABSENT) { - virBufferAsprintf(&buf, ",append=3D%s", - virTristateSwitchTypeToString(dev->data.= file.append)); - } - } - break; - - case VIR_DOMAIN_CHR_TYPE_PIPE: - virBufferAsprintf(&buf, "pipe,id=3D%s,path=3D", charAlias); - virQEMUBuildBufferEscapeComma(&buf, dev->data.file.path); - break; - - case VIR_DOMAIN_CHR_TYPE_STDIO: - virBufferAsprintf(&buf, "stdio,id=3D%s", charAlias); - break; - - case VIR_DOMAIN_CHR_TYPE_UDP: { - const char *connectHost =3D dev->data.udp.connectHost; - const char *bindHost =3D dev->data.udp.bindHost; - const char *bindService =3D dev->data.udp.bindService; - - if (connectHost =3D=3D NULL) - connectHost =3D ""; - if (bindHost =3D=3D NULL) - bindHost =3D ""; - if (bindService =3D=3D NULL) - bindService =3D "0"; - - virBufferAsprintf(&buf, - "udp,id=3D%s,host=3D%s,port=3D%s,localaddr=3D%s," - "localport=3D%s", - charAlias, - connectHost, - dev->data.udp.connectService, - bindHost, bindService); - break; - } - case VIR_DOMAIN_CHR_TYPE_TCP: - telnet =3D dev->data.tcp.protocol =3D=3D VIR_DOMAIN_CHR_TCP_PROTOC= OL_TELNET; - virBufferAsprintf(&buf, - "socket,id=3D%s,host=3D%s,port=3D%s%s", - charAlias, - dev->data.tcp.host, - dev->data.tcp.service, - telnet ? ",telnet=3Don" : ""); - - if (dev->data.tcp.listen) { - virBufferAddLit(&buf, ",server=3Don"); - if (!chrSourcePriv->wait) - virBufferAddLit(&buf, ",wait=3Doff"); - } - - qemuBuildChrChardevReconnectStr(&buf, &dev->data.tcp.reconnect); - - if (dev->data.tcp.haveTLS =3D=3D VIR_TRISTATE_BOOL_YES) { - g_autofree char *objalias =3D NULL; - const char *tlsCertEncSecAlias =3D NULL; - - /* Add the secret object first if necessary. The - * secinfo is added only to a TCP serial device during - * qemuDomainSecretChardevPrepare. Subsequently called - * functions can just check the config fields */ - if (chrSourcePriv && chrSourcePriv->secinfo) { - if (qemuBuildObjectSecretCommandLine(cmd, - chrSourcePriv->secinf= o, - qemuCaps) < 0) - return -1; - - tlsCertEncSecAlias =3D chrSourcePriv->secinfo->alias; - } - - if (!(objalias =3D qemuAliasTLSObjFromSrcAlias(charAlias))) - return -1; - - if (qemuBuildTLSx509CommandLine(cmd, cfg->chardevTLSx509certdi= r, - dev->data.tcp.listen, - cfg->chardevTLSx509verify, - tlsCertEncSecAlias, - objalias, qemuCaps) < 0) { - return -1; - } - - virBufferAsprintf(&buf, ",tls-creds=3D%s", objalias); - } - break; - - case VIR_DOMAIN_CHR_TYPE_UNIX: - virBufferAsprintf(&buf, "socket,id=3D%s", charAlias); - if (chrSourcePriv->fd !=3D -1) { - virBufferAsprintf(&buf, ",fd=3D%d", chrSourcePriv->fd); - - virCommandPassFD(cmd, chrSourcePriv->fd, VIR_COMMAND_PASS_FD_C= LOSE_PARENT); - chrSourcePriv->fd =3D -1; - } else { - virBufferAddLit(&buf, ",path=3D"); - virQEMUBuildBufferEscapeComma(&buf, dev->data.nix.path); - } - if (dev->data.nix.listen) { - virBufferAddLit(&buf, ",server=3Don"); - if (!chrSourcePriv->wait) - virBufferAddLit(&buf, ",wait=3Doff"); - } - - qemuBuildChrChardevReconnectStr(&buf, &dev->data.nix.reconnect); - break; - - case VIR_DOMAIN_CHR_TYPE_SPICEVMC: - virBufferAsprintf(&buf, "spicevmc,id=3D%s,name=3D%s", charAlias, - virDomainChrSpicevmcTypeToString(dev->data.spice= vmc)); - break; - - case VIR_DOMAIN_CHR_TYPE_SPICEPORT: - virBufferAsprintf(&buf, "spiceport,id=3D%s,name=3D%s", charAlias, - dev->data.spiceport.channel); - break; - - case VIR_DOMAIN_CHR_TYPE_NMDM: - case VIR_DOMAIN_CHR_TYPE_LAST: - default: - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unsupported chardev '%s'"), - virDomainChrTypeToString(dev->type)); - return -1; - } - - if (dev->logfile) { - if (chrSourcePriv->logfd !=3D -1) { - g_autofree char *fdset =3D NULL; - size_t idx; - - virCommandPassFDIndex(cmd, chrSourcePriv->logfd, - VIR_COMMAND_PASS_FD_CLOSE_PARENT, &idx); - fdset =3D qemuBuildFDSet(chrSourcePriv->logfd, idx); - chrSourcePriv->logfd =3D -1; - - virCommandAddArg(cmd, "-add-fd"); - virCommandAddArg(cmd, fdset); - - virBufferAsprintf(&buf, ",logfile=3D/dev/fdset/%zu,logappend= =3Don", idx); - } else { - virBufferAddLit(&buf, ",logfile=3D"); - virQEMUBuildBufferEscapeComma(&buf, dev->logfile); - if (dev->logappend !=3D VIR_TRISTATE_SWITCH_ABSENT) { - virBufferAsprintf(&buf, ",logappend=3D%s", - virTristateSwitchTypeToString(dev->logap= pend)); - } - } - } - - virCommandAddArgList(cmd, "-chardev", virBufferCurrentContent(&buf), N= ULL); - - return 0; -} - - static const char * qemuBuildHostdevMdevModelTypeString(virDomainHostdevSubsysMediatedDev *mde= v) { --=20 2.31.1 From nobody Fri May 3 00:24:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.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 170.10.133.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=1639053155; cv=none; d=zohomail.com; s=zohoarc; b=Lj9DM+E6l3nvnu9BfUxjmn6PswjQINefjkCWfSrF6/rnT3aeSLcPyiu84aLSg2aWSw6JEdjyouW2hSn/kd16QBNsCDMd65zSxMLXMk7rBUe9km0CTPRjU8dD1he4aFPZpqiHF3HpWCLGDME3sw8Ys460RgdjZI9M4Ousm2zOgvM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1639053155; 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=MrlTr2/JRTaupJshLlDpZ75Mb+d62lmh1wUmfZPQgwg=; b=iNG+dbQRRCV8NJ23hVML8x0BsiDD5TJzqYGhQss12vY6aOWQINNOR94CjZO1uwO+aO1DSsIFMw6dOnZmDIcCAKAZyTx3XDzwI+9x1ZosvSa3UfBOOhtxVn2w05a5j8yWiQlE2uR4Ltyc1RYDnzHscZ3V3WAVu1ZIWQrZw7otGz4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.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 [170.10.133.124]) by mx.zohomail.com with SMTPS id 1639053155494871.913307970634; Thu, 9 Dec 2021 04:32:35 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-558-EptPDEGvNRm5UiZP7OsuYg-1; Thu, 09 Dec 2021 07:32:33 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id A5C1E801AFC; Thu, 9 Dec 2021 12:32:28 +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 7F5D75D6CF; Thu, 9 Dec 2021 12:32:28 +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 470754A7C8; Thu, 9 Dec 2021 12:32:28 +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 1B9CVHaj017764 for ; Thu, 9 Dec 2021 07:31:17 -0500 Received: by smtp.corp.redhat.com (Postfix) id B20B41B472; Thu, 9 Dec 2021 12:31:17 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.10]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1D82760C25 for ; Thu, 9 Dec 2021 12:31:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1639053154; 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=MrlTr2/JRTaupJshLlDpZ75Mb+d62lmh1wUmfZPQgwg=; b=IOcnrtlIDUDTWrzwryjaJm7Dfap7Jswoh7+QbiAfhZOUIjRz/nxi9iey3F6M03S9pE55Yj TanMg1oKTN8aYmVm89cbUCwpruAjNIu7XHlRu7lbrOixjavtqBZD3ENXjd+4/oDUNKQ3uE rgVqcNCIxMSYs0PBBt2Q/ngzlEYRULg= X-MC-Unique: EptPDEGvNRm5UiZP7OsuYg-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 15/24] qemuBuildChardevCommand: Don't prefix alias Date: Thu, 9 Dec 2021 13:30:50 +0100 Message-Id: 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.15 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: 1639053156593100001 Content-Type: text/plain; charset="utf-8" Make the callers construct the alias for the chardev so that the function can be used also for code paths which use a different convention. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_command.c | 42 +++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 874f875c5a..26cb25a70c 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -1322,16 +1322,12 @@ static int qemuBuildChardevCommand(virCommand *cmd, virQEMUDriverConfig *cfg, const virDomainChrSourceDef *dev, - const char *alias, + const char *charAlias, virQEMUCaps *qemuCaps) { qemuDomainChrSourcePrivate *chrSourcePriv =3D QEMU_DOMAIN_CHR_SOURCE_P= RIVATE(dev); g_auto(virBuffer) buf =3D VIR_BUFFER_INITIALIZER; bool telnet; - g_autofree char *charAlias =3D NULL; - - if (!(charAlias =3D qemuAliasChardevFromDevAlias(alias))) - return -1; switch ((virDomainChrType) dev->type) { case VIR_DOMAIN_CHR_TYPE_NULL: @@ -1348,7 +1344,7 @@ qemuBuildChardevCommand(virCommand *cmd, case VIR_DOMAIN_CHR_TYPE_DEV: virBufferAsprintf(&buf, "%s,id=3D%s,path=3D", - STRPREFIX(alias, "parallel") ? "parport" : "tty", + STRPREFIX(charAlias, "charparallel") ? "parport"= : "tty", charAlias); virQEMUBuildBufferEscapeComma(&buf, dev->data.file.path); break; @@ -5519,7 +5515,7 @@ qemuBuildMonitorCommandLine(virCommand *cmd, if (qemuBuildChardevCommand(cmd, cfg, priv->monConfig, - "monitor", + "charmonitor", priv->qemuCaps) < 0) return -1; @@ -5642,6 +5638,8 @@ qemuBuildRNGBackendChrdev(virCommand *cmd, virDomainRNGDef *rng, virQEMUCaps *qemuCaps) { + g_autofree char *charAlias =3D qemuAliasChardevFromDevAlias(rng->info.= alias); + switch ((virDomainRNGBackend) rng->backend) { case VIR_DOMAIN_RNG_BACKEND_RANDOM: case VIR_DOMAIN_RNG_BACKEND_BUILTIN: @@ -5653,7 +5651,7 @@ qemuBuildRNGBackendChrdev(virCommand *cmd, if (qemuBuildChardevCommand(cmd, cfg, rng->source.chardev, - rng->info.alias, + charAlias, qemuCaps) < 0) return -1; break; @@ -8589,13 +8587,14 @@ qemuInterfaceVhostuserConnect(virQEMUDriver *driver, virQEMUCaps *qemuCaps) { g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(driver); + g_autofree char *charAlias =3D qemuAliasChardevFromDevAlias(net->info.= alias); switch ((virDomainChrType)net->data.vhostuser->type) { case VIR_DOMAIN_CHR_TYPE_UNIX: if (qemuBuildChardevCommand(cmd, cfg, net->data.vhostuser, - net->info.alias, + charAlias, qemuCaps) < 0) return -1; break; @@ -9029,18 +9028,18 @@ qemuBuildSmartcardCommandLine(virCommand *cmd, break; case VIR_DOMAIN_SMARTCARD_TYPE_PASSTHROUGH: { - g_autofree char *chardevalias =3D g_strdup_printf("char%s", smartc= ard->info.alias); + g_autofree char *charAlias =3D qemuAliasChardevFromDevAlias(smartc= ard->info.alias); if (qemuBuildChardevCommand(cmd, cfg, smartcard->data.passthru, - smartcard->info.alias, + charAlias, qemuCaps) < 0) return -1; if (virJSONValueObjectAdd(&props, "s:driver", "ccid-card-passthru", - "s:chardev", chardevalias, + "s:chardev", charAlias, NULL) < 0) return -1; } @@ -9243,10 +9242,12 @@ qemuBuildShmemCommandLine(virCommand *cmd, return -1; if (shmem->server.enabled) { + g_autofree char *charAlias =3D qemuAliasChardevFromDevAlias(shmem-= >info.alias); + if (qemuBuildChardevCommand(cmd, cfg, shmem->server.chr, - shmem->info.alias, + charAlias, qemuCaps) < 0) return -1; } @@ -9357,6 +9358,7 @@ qemuBuildSerialCommandLine(virCommand *cmd, for (i =3D 0; i < def->nserials; i++) { virDomainChrDef *serial =3D def->serials[i]; + g_autofree char *charAlias =3D qemuAliasChardevFromDevAlias(serial= ->info.alias); if (serial->source->type =3D=3D VIR_DOMAIN_CHR_TYPE_SPICEPORT && != havespice) continue; @@ -9364,7 +9366,7 @@ qemuBuildSerialCommandLine(virCommand *cmd, if (qemuBuildChardevCommand(cmd, cfg, serial->source, - serial->info.alias, + charAlias, qemuCaps) < 0) return -1; @@ -9403,11 +9405,12 @@ qemuBuildParallelsCommandLine(virCommand *cmd, for (i =3D 0; i < def->nparallels; i++) { virDomainChrDef *parallel =3D def->parallels[i]; + g_autofree char *charAlias =3D qemuAliasChardevFromDevAlias(parall= el->info.alias); if (qemuBuildChardevCommand(cmd, cfg, parallel->source, - parallel->info.alias, + charAlias, qemuCaps) < 0) return -1; @@ -9431,11 +9434,12 @@ qemuBuildChannelsCommandLine(virCommand *cmd, for (i =3D 0; i < def->nchannels; i++) { virDomainChrDef *channel =3D def->channels[i]; g_autoptr(virJSONValue) netdevprops =3D NULL; + g_autofree char *charAlias =3D qemuAliasChardevFromDevAlias(channe= l->info.alias); if (qemuBuildChardevCommand(cmd, cfg, channel->source, - channel->info.alias, + charAlias, qemuCaps) < 0) return -1; @@ -9475,6 +9479,7 @@ qemuBuildConsoleCommandLine(virCommand *cmd, /* Explicit console devices */ for (i =3D 0; i < def->nconsoles; i++) { virDomainChrDef *console =3D def->consoles[i]; + g_autofree char *charAlias =3D qemuAliasChardevFromDevAlias(consol= e->info.alias); switch (console->targetType) { case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SCLP: @@ -9483,7 +9488,7 @@ qemuBuildConsoleCommandLine(virCommand *cmd, if (qemuBuildChardevCommand(cmd, cfg, console->source, - console->info.alias, + charAlias, qemuCaps) < 0) return -1; @@ -9572,11 +9577,12 @@ qemuBuildRedirdevCommandLine(virCommand *cmd, for (i =3D 0; i < def->nredirdevs; i++) { virDomainRedirdevDef *redirdev =3D def->redirdevs[i]; g_autoptr(virJSONValue) devprops =3D NULL; + g_autofree char *charAlias =3D qemuAliasChardevFromDevAlias(redird= ev->info.alias); if (qemuBuildChardevCommand(cmd, cfg, redirdev->source, - redirdev->info.alias, + charAlias, qemuCaps) < 0) return -1; --=20 2.31.1 From nobody Fri May 3 00:24:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.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 170.10.129.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=1639053247; cv=none; d=zohomail.com; s=zohoarc; b=F1TuXtbX3+XV9DO3thTOQ3RxH+vZ07fLtq+UfU1ZyjV42PahrqIrWbm5bccJBb8TrxRCRIcBCHPVnPar4RWwm0WR+7hkn6Fwxsf5gCptv6vRwdcHLVVpC/wR3lRs0YZjtJ50+ziQ5Dn2ic/CfLHsc92JCww+oAQAAMjmN3QU9M0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1639053247; 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=DI4ONd8zjGKT3wf/vaUZgc1QmHf+tPRzfrsdHRyPBnY=; b=LqLsUnb+rojSsZu3/wNYjT+G+gK5fVXNfnsOBj7XwTKtQgG6wLGOEZkV0FOTYA6LLodqO67wwvVOZxFfzuM0VdmWg1M0sVWqNsgEnDNVbHm6trR6JDvni0F3HuCe2+EsIhzAOdyWUBXjb/tG9U2lGao7TCV1RcWsrDtcBmD73H4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.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 [170.10.129.124]) by mx.zohomail.com with SMTPS id 1639053247948651.66377995915; Thu, 9 Dec 2021 04:34:07 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-587-2ORboVFPMx2GPdIExSDRQg-1; Thu, 09 Dec 2021 07:34:05 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 3513A10144FC; Thu, 9 Dec 2021 12:33:58 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id EF12C5BE2C; Thu, 9 Dec 2021 12:33:57 +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 B536818218B8; Thu, 9 Dec 2021 12:33:57 +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 1B9CVITW017784 for ; Thu, 9 Dec 2021 07:31:18 -0500 Received: by smtp.corp.redhat.com (Postfix) id CAD4E4ABA1; Thu, 9 Dec 2021 12:31:18 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.10]) by smtp.corp.redhat.com (Postfix) with ESMTP id 249291B472 for ; Thu, 9 Dec 2021 12:31:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1639053246; 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=DI4ONd8zjGKT3wf/vaUZgc1QmHf+tPRzfrsdHRyPBnY=; b=gVymofYAkKEpKRkr95azKCn2YlHuZvUBZwWt+im3XEU4T5teG9KvLAGumuty7dkE3X/l96 /wVbeE8yyDtD00lrr+0RpPpWvVReS4Fs8N2P1mgzBBh7tYc2wKA7drnbJVFb+D5uHDr7Im JlopcHos1/orC9Ozh23zQCkSLUvIPXs= X-MC-Unique: 2ORboVFPMx2GPdIExSDRQg-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 16/24] qemuBuildChardevCommand: Split creation of the command and setup of other objects Date: Thu, 9 Dec 2021 13:30:51 +0100 Message-Id: <44e29c01b248267b5dad7430027014db16cd7884.1639052639.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.15 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: 1639053248501100001 Content-Type: text/plain; charset="utf-8" Completely seprate the creation of the commandline string from the setup of other objects instantiated on the commandline. 'qemuBuildChardevCommand' will aggregate the setup of individual parameters such as -add-fd and setup of TLS and the -chardev parameter itself while the code formatting the commandline will be moved into qemuBuildChardevStr. 'fdset' names are then stored in qemuDomainChrSourcePrivate. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_command.c | 204 ++++++++++++++++++++++++++-------------- src/qemu/qemu_domain.c | 6 ++ src/qemu/qemu_domain.h | 5 + 3 files changed, 145 insertions(+), 70 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 26cb25a70c..910508e725 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -1318,16 +1318,15 @@ qemuBuildChrChardevReconnectStr(virBuffer *buf, } -static int -qemuBuildChardevCommand(virCommand *cmd, - virQEMUDriverConfig *cfg, - const virDomainChrSourceDef *dev, - const char *charAlias, - virQEMUCaps *qemuCaps) +static char * +qemuBuildChardevStr(const virDomainChrSourceDef *dev, + const char *charAlias) { + qemuDomainChrSourcePrivate *chrSourcePriv =3D QEMU_DOMAIN_CHR_SOURCE_P= RIVATE(dev); g_auto(virBuffer) buf =3D VIR_BUFFER_INITIALIZER; - bool telnet; + const char *path; + virTristateSwitch append; switch ((virDomainChrType) dev->type) { case VIR_DOMAIN_CHR_TYPE_NULL: @@ -1351,27 +1350,19 @@ qemuBuildChardevCommand(virCommand *cmd, case VIR_DOMAIN_CHR_TYPE_FILE: virBufferAsprintf(&buf, "file,id=3D%s", charAlias); + path =3D dev->data.file.path; + append =3D dev->data.file.append; - if (chrSourcePriv->fd !=3D -1) { - g_autofree char *fdset =3D NULL; - size_t idx; - - virCommandPassFDIndex(cmd, chrSourcePriv->fd, - VIR_COMMAND_PASS_FD_CLOSE_PARENT, &idx); - fdset =3D qemuBuildFDSet(chrSourcePriv->fd, idx); - chrSourcePriv->fd =3D -1; - - virCommandAddArg(cmd, "-add-fd"); - virCommandAddArg(cmd, fdset); + if (chrSourcePriv->fdset) { + path =3D chrSourcePriv->fdset; + append =3D VIR_TRISTATE_SWITCH_ON; + } - virBufferAsprintf(&buf, ",path=3D/dev/fdset/%zu,append=3Don", = idx); - } else { - virBufferAddLit(&buf, ",path=3D"); - virQEMUBuildBufferEscapeComma(&buf, dev->data.file.path); - if (dev->data.file.append !=3D VIR_TRISTATE_SWITCH_ABSENT) { - virBufferAsprintf(&buf, ",append=3D%s", - virTristateSwitchTypeToString(dev->data.= file.append)); - } + virBufferAddLit(&buf, ",path=3D"); + virQEMUBuildBufferEscapeComma(&buf, path); + if (append !=3D VIR_TRISTATE_SWITCH_ABSENT) { + virBufferAsprintf(&buf, ",append=3D%s", + virTristateSwitchTypeToString(append)); } break; @@ -1405,14 +1396,16 @@ qemuBuildChardevCommand(virCommand *cmd, bindHost, bindService); break; } + case VIR_DOMAIN_CHR_TYPE_TCP: - telnet =3D dev->data.tcp.protocol =3D=3D VIR_DOMAIN_CHR_TCP_PROTOC= OL_TELNET; virBufferAsprintf(&buf, - "socket,id=3D%s,host=3D%s,port=3D%s%s", + "socket,id=3D%s,host=3D%s,port=3D%s", charAlias, dev->data.tcp.host, - dev->data.tcp.service, - telnet ? ",telnet=3Don" : ""); + dev->data.tcp.service); + + if (dev->data.tcp.protocol =3D=3D VIR_DOMAIN_CHR_TCP_PROTOCOL_TELN= ET) + virBufferAddLit(&buf, ",telnet=3Don"); if (dev->data.tcp.listen) { virBufferAddLit(&buf, ",server=3Don"); @@ -1422,6 +1415,77 @@ qemuBuildChardevCommand(virCommand *cmd, qemuBuildChrChardevReconnectStr(&buf, &dev->data.tcp.reconnect); + if (chrSourcePriv->tlsCredsAlias) + virBufferAsprintf(&buf, ",tls-creds=3D%s", chrSourcePriv->tlsC= redsAlias); + break; + + case VIR_DOMAIN_CHR_TYPE_UNIX: + virBufferAsprintf(&buf, "socket,id=3D%s", charAlias); + if (chrSourcePriv->passedFD !=3D -1) { + virBufferAsprintf(&buf, ",fd=3D%d", chrSourcePriv->passedFD); + } else { + virBufferAddLit(&buf, ",path=3D"); + virQEMUBuildBufferEscapeComma(&buf, dev->data.nix.path); + } + + if (dev->data.nix.listen) { + virBufferAddLit(&buf, ",server=3Don"); + if (!chrSourcePriv->wait) + virBufferAddLit(&buf, ",wait=3Doff"); + } + + qemuBuildChrChardevReconnectStr(&buf, &dev->data.nix.reconnect); + break; + + case VIR_DOMAIN_CHR_TYPE_SPICEVMC: + virBufferAsprintf(&buf, "spicevmc,id=3D%s,name=3D%s", charAlias, + virDomainChrSpicevmcTypeToString(dev->data.spice= vmc)); + break; + + case VIR_DOMAIN_CHR_TYPE_SPICEPORT: + virBufferAsprintf(&buf, "spiceport,id=3D%s,name=3D%s", charAlias, + dev->data.spiceport.channel); + break; + + case VIR_DOMAIN_CHR_TYPE_NMDM: + case VIR_DOMAIN_CHR_TYPE_LAST: + default: + break; + } + + if (dev->logfile) { + path =3D dev->logfile; + append =3D dev->logappend; + + if (chrSourcePriv->logFdset) { + path =3D chrSourcePriv->logFdset; + append =3D VIR_TRISTATE_SWITCH_ON; + } + + virBufferAddLit(&buf, ",logfile=3D"); + virQEMUBuildBufferEscapeComma(&buf, path); + if (append !=3D VIR_TRISTATE_SWITCH_ABSENT) { + virBufferAsprintf(&buf, ",logappend=3D%s", + virTristateSwitchTypeToString(append)); + } + } + + return virBufferContentAndReset(&buf); +} + + +static int +qemuBuildChardevCommand(virCommand *cmd, + virQEMUDriverConfig *cfg, + const virDomainChrSourceDef *dev, + const char *charAlias, + virQEMUCaps *qemuCaps) +{ + qemuDomainChrSourcePrivate *chrSourcePriv =3D QEMU_DOMAIN_CHR_SOURCE_P= RIVATE(dev); + g_autofree char *charstr =3D NULL; + + switch ((virDomainChrType) dev->type) { + case VIR_DOMAIN_CHR_TYPE_TCP: if (dev->data.tcp.haveTLS =3D=3D VIR_TRISTATE_BOOL_YES) { g_autofree char *objalias =3D NULL; const char *tlsCertEncSecAlias =3D NULL; @@ -1450,38 +1514,44 @@ qemuBuildChardevCommand(virCommand *cmd, return -1; } - virBufferAsprintf(&buf, ",tls-creds=3D%s", objalias); + chrSourcePriv->tlsCredsAlias =3D g_steal_pointer(&objalias); } break; - case VIR_DOMAIN_CHR_TYPE_UNIX: - virBufferAsprintf(&buf, "socket,id=3D%s", charAlias); + case VIR_DOMAIN_CHR_TYPE_FILE: if (chrSourcePriv->fd !=3D -1) { - virBufferAsprintf(&buf, ",fd=3D%d", chrSourcePriv->fd); + g_autofree char *fdset =3D NULL; + size_t idx; - virCommandPassFD(cmd, chrSourcePriv->fd, VIR_COMMAND_PASS_FD_C= LOSE_PARENT); + virCommandPassFDIndex(cmd, chrSourcePriv->fd, + VIR_COMMAND_PASS_FD_CLOSE_PARENT, &idx); + fdset =3D qemuBuildFDSet(chrSourcePriv->fd, idx); chrSourcePriv->fd =3D -1; - } else { - virBufferAddLit(&buf, ",path=3D"); - virQEMUBuildBufferEscapeComma(&buf, dev->data.nix.path); - } - if (dev->data.nix.listen) { - virBufferAddLit(&buf, ",server=3Don"); - if (!chrSourcePriv->wait) - virBufferAddLit(&buf, ",wait=3Doff"); - } - qemuBuildChrChardevReconnectStr(&buf, &dev->data.nix.reconnect); + virCommandAddArg(cmd, "-add-fd"); + virCommandAddArg(cmd, fdset); + + chrSourcePriv->fdset =3D g_strdup_printf("/dev/fdset/%zu", idx= ); + } break; - case VIR_DOMAIN_CHR_TYPE_SPICEVMC: - virBufferAsprintf(&buf, "spicevmc,id=3D%s,name=3D%s", charAlias, - virDomainChrSpicevmcTypeToString(dev->data.spice= vmc)); + case VIR_DOMAIN_CHR_TYPE_UNIX: + if (chrSourcePriv->fd !=3D -1) { + virCommandPassFD(cmd, chrSourcePriv->fd, VIR_COMMAND_PASS_FD_C= LOSE_PARENT); + chrSourcePriv->passedFD =3D chrSourcePriv->fd; + chrSourcePriv->fd =3D -1; + } break; + case VIR_DOMAIN_CHR_TYPE_NULL: + case VIR_DOMAIN_CHR_TYPE_VC: + case VIR_DOMAIN_CHR_TYPE_PTY: + case VIR_DOMAIN_CHR_TYPE_DEV: + case VIR_DOMAIN_CHR_TYPE_PIPE: + case VIR_DOMAIN_CHR_TYPE_STDIO: + case VIR_DOMAIN_CHR_TYPE_UDP: + case VIR_DOMAIN_CHR_TYPE_SPICEVMC: case VIR_DOMAIN_CHR_TYPE_SPICEPORT: - virBufferAsprintf(&buf, "spiceport,id=3D%s,name=3D%s", charAlias, - dev->data.spiceport.channel); break; case VIR_DOMAIN_CHR_TYPE_NMDM: @@ -1493,31 +1563,25 @@ qemuBuildChardevCommand(virCommand *cmd, return -1; } - if (dev->logfile) { - if (chrSourcePriv->logfd !=3D -1) { - g_autofree char *fdset =3D NULL; - size_t idx; + if (chrSourcePriv->logfd !=3D -1) { + g_autofree char *fdset =3D NULL; + size_t idx; - virCommandPassFDIndex(cmd, chrSourcePriv->logfd, - VIR_COMMAND_PASS_FD_CLOSE_PARENT, &idx); - fdset =3D qemuBuildFDSet(chrSourcePriv->logfd, idx); - chrSourcePriv->logfd =3D -1; + virCommandPassFDIndex(cmd, chrSourcePriv->logfd, + VIR_COMMAND_PASS_FD_CLOSE_PARENT, &idx); + fdset =3D qemuBuildFDSet(chrSourcePriv->logfd, idx); + chrSourcePriv->logfd =3D -1; - virCommandAddArg(cmd, "-add-fd"); - virCommandAddArg(cmd, fdset); + virCommandAddArg(cmd, "-add-fd"); + virCommandAddArg(cmd, fdset); - virBufferAsprintf(&buf, ",logfile=3D/dev/fdset/%zu,logappend= =3Don", idx); - } else { - virBufferAddLit(&buf, ",logfile=3D"); - virQEMUBuildBufferEscapeComma(&buf, dev->logfile); - if (dev->logappend !=3D VIR_TRISTATE_SWITCH_ABSENT) { - virBufferAsprintf(&buf, ",logappend=3D%s", - virTristateSwitchTypeToString(dev->logap= pend)); - } - } + chrSourcePriv->logFdset =3D g_strdup_printf("/dev/fdset/%zu", idx); } - virCommandAddArgList(cmd, "-chardev", virBufferCurrentContent(&buf), N= ULL); + if (!(charstr =3D qemuBuildChardevStr(dev, charAlias))) + return -1; + + virCommandAddArgList(cmd, "-chardev", charstr, NULL); return 0; } diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index e6d6bf10f1..a2ee160128 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -853,6 +853,8 @@ qemuDomainChrSourcePrivateNew(void) priv->fd =3D -1; priv->logfd =3D -1; + priv->passedFD =3D -1; + return (virObject *) priv; } @@ -865,6 +867,10 @@ qemuDomainChrSourcePrivateDispose(void *obj) VIR_FORCE_CLOSE(priv->fd); VIR_FORCE_CLOSE(priv->logfd); + g_free(priv->fdset); + g_free(priv->logFdset); + g_free(priv->tlsCredsAlias); + g_clear_pointer(&priv->secinfo, qemuDomainSecretInfoFree); } diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index 2d93cf2253..d07def3d85 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -345,6 +345,11 @@ struct _qemuDomainChrSourcePrivate { int fd; /* file descriptor of the chardev source */ int logfd; /* file descriptor of the logging source */ bool wait; /* wait for incomming connections on chardev */ + + char *fdset; /* fdset path corresponding to the passed filedescriptor = */ + char *logFdset; /* fdset path corresponding to the passed filedescript= or for logfile */ + int passedFD; /* filedescriptor number when fdset passing it directly = */ + char *tlsCredsAlias; /* alias of the x509 tls credentials object */ }; --=20 2.31.1 From nobody Fri May 3 00:24:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.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 170.10.129.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=1639053250; cv=none; d=zohomail.com; s=zohoarc; b=X8h0L4i0+9a9yFWEmn4cDr7mgkjGGLM4gH3yXpuTDKplm4DLizjpVBNzgbl3H3JpAqQMdmALkNzUgpgIaDZE8F3CPkAXCA2VVIU5py5o+Y+RceHrFX5BPUrcZcnAl34RZMw3PiRjCOJsIr1cZxE6qHohlNDVPQs6s3Ks3TZdQo0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1639053250; 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=aTWrbm0X2EtZmz72NVx/L9TE6HzP9qSWvTu+iWxPZyQ=; b=LhB/7hRF9eWmvxJ8UuQMwS90t8AnDSQg+hbeQyuGwcT/dXXyjSbGszJV790OqsgSmVDjZICG8iWe9HBUswgGBAcRuTnOU7HIbhV2Hhq+Kwuld6H3Od5pTCk6x5LvAcpa1YOLNElWQcdegQ1b6JDuEsNj/SRTzRZ815Rz9+M/n04= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.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 [170.10.129.124]) by mx.zohomail.com with SMTPS id 163905325066985.90782938463258; Thu, 9 Dec 2021 04:34:10 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-451-89ltI45hM9--xED0yCPwiA-1; Thu, 09 Dec 2021 07:34:08 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id BA11E9393A; Thu, 9 Dec 2021 12:34:00 +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 915025BE0E; Thu, 9 Dec 2021 12:34:00 +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 5D6A24A706; Thu, 9 Dec 2021 12:34:00 +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 1B9CVJdc017815 for ; Thu, 9 Dec 2021 07:31:19 -0500 Received: by smtp.corp.redhat.com (Postfix) id E10D5694C0; Thu, 9 Dec 2021 12:31:19 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.10]) by smtp.corp.redhat.com (Postfix) with ESMTP id 444D660C25 for ; Thu, 9 Dec 2021 12:31:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1639053249; 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=aTWrbm0X2EtZmz72NVx/L9TE6HzP9qSWvTu+iWxPZyQ=; b=a38gX8qCKFO+w4I5B5LwjWvl0O259nViRdxaKMnfy2ojWQs087eRZUSe5VvYX7WCB1RnCs +OoGozK8a1gr2ZkgkMUwwf5oX4c/dwfBUYigOM3PqYuboWhHkMUmNXEI5mEmy3Oin4KFcD 3sBLymWkOiOKKl/jzsG+LAOux58ZnSQ= X-MC-Unique: 89ltI45hM9--xED0yCPwiA-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 17/24] qemu: Store TLS config options for chardevs in qemuDomainChrSourcePrivate Date: Thu, 9 Dec 2021 13:30:52 +0100 Message-Id: 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.15 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: 1639053253010100001 Content-Type: text/plain; charset="utf-8" When setting up TLS options from config in qemuDomainPrepareChardevSourceOne we can also extract the x509 certificate path and default tlsVerify setting so that 'qemuBuildChardevCommand' doesn't need to access the config object any more. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_command.c | 6 +++--- src/qemu/qemu_domain.c | 7 +++++++ src/qemu/qemu_domain.h | 3 +++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 910508e725..583e311008 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -1476,7 +1476,7 @@ qemuBuildChardevStr(const virDomainChrSourceDef *dev, static int qemuBuildChardevCommand(virCommand *cmd, - virQEMUDriverConfig *cfg, + virQEMUDriverConfig *cfg G_GNUC_UNUSED, const virDomainChrSourceDef *dev, const char *charAlias, virQEMUCaps *qemuCaps) @@ -1506,9 +1506,9 @@ qemuBuildChardevCommand(virCommand *cmd, if (!(objalias =3D qemuAliasTLSObjFromSrcAlias(charAlias))) return -1; - if (qemuBuildTLSx509CommandLine(cmd, cfg->chardevTLSx509certdi= r, + if (qemuBuildTLSx509CommandLine(cmd, chrSourcePriv->tlsCertPat= h, dev->data.tcp.listen, - cfg->chardevTLSx509verify, + chrSourcePriv->tlsVerify, tlsCertEncSecAlias, objalias, qemuCaps) < 0) { return -1; diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index a2ee160128..d7751f731d 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -867,6 +867,8 @@ qemuDomainChrSourcePrivateDispose(void *obj) VIR_FORCE_CLOSE(priv->fd); VIR_FORCE_CLOSE(priv->logfd); + g_free(priv->tlsCertPath); + g_free(priv->fdset); g_free(priv->logFdset); g_free(priv->tlsCredsAlias); @@ -9754,6 +9756,11 @@ qemuDomainPrepareChardevSourceOne(virDomainDeviceDef= *dev, charsrc->data.tcp.haveTLS =3D virTristateBoolFromBool(data= ->cfg->chardevTLS); charsrc->data.tcp.tlsFromConfig =3D true; } + + if (charsrc->data.tcp.haveTLS =3D=3D VIR_TRISTATE_BOOL_YES) { + charpriv->tlsCertPath =3D g_strdup(data->cfg->chardevTLSx5= 09certdir); + charpriv->tlsVerify =3D data->cfg->chardevTLSx509verify; + } } break; diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index d07def3d85..5474d1dccc 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -346,6 +346,9 @@ struct _qemuDomainChrSourcePrivate { int logfd; /* file descriptor of the logging source */ bool wait; /* wait for incomming connections on chardev */ + char *tlsCertPath; /* path to certificates if TLS is requested */ + bool tlsVerify; /* whether server should verify client certificates */ + char *fdset; /* fdset path corresponding to the passed filedescriptor = */ char *logFdset; /* fdset path corresponding to the passed filedescript= or for logfile */ int passedFD; /* filedescriptor number when fdset passing it directly = */ --=20 2.31.1 From nobody Fri May 3 00:24:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.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 170.10.133.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=1639053162; cv=none; d=zohomail.com; s=zohoarc; b=Z+7JRQGnbdQ/7JWDm+ZaMof1W1vMY5FI+t7yvN/4yywQdv+481GS5kdxJvg4MdmXfnkZnRrCPT7RSbhdjV5+bcTKcAbUGwesQQ9lA07IsHCqYfAnGZDN10NrVuFfTz2Psljy1SbIugl6E784w3aYWx7v+b/ekXDEkpMNFPmbdGk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1639053162; 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=a84HAanqXggCE+r3y8rnkHZmxIrY+wBmPCxUexfvfX0=; b=eoJFXEMka+DcARRdwZSmmzjVJ/Wg0NQi6qK4F3M7ZSNuMsSFaauXccckPLeTj9b+gPGDkHt7yJQ6VFcXx/hHC8KmVsrYM5oUT0g7lozmaAFKs1E+7sK7LrmOoViGC2TzqsCSfxYYKRNzMhS5M1b5TWgUxRNICyoE1Ka+N2ZE3vQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.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 [170.10.133.124]) by mx.zohomail.com with SMTPS id 1639053162349459.0877362807016; Thu, 9 Dec 2021 04:32:42 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-598-uroTFYSnNiSiOMsNVYC_hw-1; Thu, 09 Dec 2021 07:32:37 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 3500D10144E2; Thu, 9 Dec 2021 12:32:33 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 17AD745D71; Thu, 9 Dec 2021 12:32:33 +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 D984B181844F; Thu, 9 Dec 2021 12:32:32 +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 1B9CVK7w017844 for ; Thu, 9 Dec 2021 07:31:20 -0500 Received: by smtp.corp.redhat.com (Postfix) id EB46F694D9; Thu, 9 Dec 2021 12:31:20 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.10]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4EECC60C25 for ; Thu, 9 Dec 2021 12:31:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1639053161; 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=a84HAanqXggCE+r3y8rnkHZmxIrY+wBmPCxUexfvfX0=; b=VPHJZKZuoGZbUaSAUAl6hdM3PhmNgGLylfgp0kKKHgewafvQRiYTZy9IZvh8k+BISqNU3Y JnjKJMFD/+dYdYPE6al61e1eCIF/7+wCSJhegtzhAnJhTs3cB6adqIJyzi/iLJitQ2evcY gWJuQBTo8Rm6sJl/MEZS5ugT9l+IBEY= X-MC-Unique: uroTFYSnNiSiOMsNVYC_hw-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 18/24] qemuBuildChardevCommand: Remove unused 'cfg' parameter Date: Thu, 9 Dec 2021 13:30:53 +0100 Message-Id: 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.11 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: 1639053163866100001 Content-Type: text/plain; charset="utf-8" Now that the parameter is unused we can remove it as well as from each caller that doesn't need it any more. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_command.c | 47 +++++++++++------------------------------ 1 file changed, 12 insertions(+), 35 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 583e311008..0fb7b83d3f 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -1476,7 +1476,6 @@ qemuBuildChardevStr(const virDomainChrSourceDef *dev, static int qemuBuildChardevCommand(virCommand *cmd, - virQEMUDriverConfig *cfg G_GNUC_UNUSED, const virDomainChrSourceDef *dev, const char *charAlias, virQEMUCaps *qemuCaps) @@ -5570,14 +5569,12 @@ qemuBuildHostdevCommandLine(virCommand *cmd, static int qemuBuildMonitorCommandLine(virCommand *cmd, - virQEMUDriverConfig *cfg, qemuDomainObjPrivate *priv) { if (!priv->monConfig) return 0; if (qemuBuildChardevCommand(cmd, - cfg, priv->monConfig, "charmonitor", priv->qemuCaps) < 0) @@ -5698,7 +5695,6 @@ qemuBuildSclpDevProps(virDomainChrDef *dev) static int qemuBuildRNGBackendChrdev(virCommand *cmd, - virQEMUDriverConfig *cfg, virDomainRNGDef *rng, virQEMUCaps *qemuCaps) { @@ -5713,7 +5709,6 @@ qemuBuildRNGBackendChrdev(virCommand *cmd, case VIR_DOMAIN_RNG_BACKEND_EGD: if (qemuBuildChardevCommand(cmd, - cfg, rng->source.chardev, charAlias, qemuCaps) < 0) @@ -5805,7 +5800,6 @@ qemuBuildRNGDevProps(const virDomainDef *def, static int qemuBuildRNGCommandLine(virCommand *cmd, - virQEMUDriverConfig *cfg, const virDomainDef *def, virQEMUCaps *qemuCaps) { @@ -5823,7 +5817,7 @@ qemuBuildRNGCommandLine(virCommand *cmd, } /* possibly add character device for backend */ - if (qemuBuildRNGBackendChrdev(cmd, cfg, rng, qemuCaps) < 0) + if (qemuBuildRNGBackendChrdev(cmd, rng, qemuCaps) < 0) return -1; if (qemuBuildRNGBackendProps(rng, &props) < 0) @@ -8645,18 +8639,15 @@ qemuBuildGraphicsCommandLine(virQEMUDriverConfig *c= fg, } static int -qemuInterfaceVhostuserConnect(virQEMUDriver *driver, - virCommand *cmd, +qemuInterfaceVhostuserConnect(virCommand *cmd, virDomainNetDef *net, virQEMUCaps *qemuCaps) { - g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(driver); g_autofree char *charAlias =3D qemuAliasChardevFromDevAlias(net->info.= alias); switch ((virDomainChrType)net->data.vhostuser->type) { case VIR_DOMAIN_CHR_TYPE_UNIX: if (qemuBuildChardevCommand(cmd, - cfg, net->data.vhostuser, charAlias, qemuCaps) < 0) @@ -8777,7 +8768,7 @@ qemuBuildInterfaceCommandLine(virQEMUDriver *driver, case VIR_DOMAIN_NET_TYPE_VHOSTUSER: requireNicdev =3D true; - if (qemuInterfaceVhostuserConnect(driver, cmd, net, qemuCaps) < 0) + if (qemuInterfaceVhostuserConnect(cmd, net, qemuCaps) < 0) goto cleanup; if (virNetDevOpenvswitchGetVhostuserIfname(net->data.vhostuser->da= ta.nix.path, @@ -9049,7 +9040,6 @@ qemuBuildNetCommandLine(virQEMUDriver *driver, static int qemuBuildSmartcardCommandLine(virCommand *cmd, - virQEMUDriverConfig *cfg, const virDomainDef *def, virQEMUCaps *qemuCaps) { @@ -9095,7 +9085,6 @@ qemuBuildSmartcardCommandLine(virCommand *cmd, g_autofree char *charAlias =3D qemuAliasChardevFromDevAlias(smartc= ard->info.alias); if (qemuBuildChardevCommand(cmd, - cfg, smartcard->data.passthru, charAlias, qemuCaps) < 0) @@ -9241,7 +9230,6 @@ qemuBuildShmemBackendMemProps(virDomainShmemDef *shme= m) static int qemuBuildShmemCommandLine(virCommand *cmd, - virQEMUDriverConfig *cfg, virDomainDef *def, virDomainShmemDef *shmem, virQEMUCaps *qemuCaps) @@ -9309,7 +9297,6 @@ qemuBuildShmemCommandLine(virCommand *cmd, g_autofree char *charAlias =3D qemuAliasChardevFromDevAlias(shmem-= >info.alias); if (qemuBuildChardevCommand(cmd, - cfg, shmem->server.chr, charAlias, qemuCaps) < 0) @@ -9406,7 +9393,6 @@ qemuChrIsPlatformDevice(const virDomainDef *def, static int qemuBuildSerialCommandLine(virCommand *cmd, - virQEMUDriverConfig *cfg, const virDomainDef *def, virQEMUCaps *qemuCaps) { @@ -9428,7 +9414,6 @@ qemuBuildSerialCommandLine(virCommand *cmd, continue; if (qemuBuildChardevCommand(cmd, - cfg, serial->source, charAlias, qemuCaps) < 0) @@ -9461,7 +9446,6 @@ qemuBuildSerialCommandLine(virCommand *cmd, static int qemuBuildParallelsCommandLine(virCommand *cmd, - virQEMUDriverConfig *cfg, const virDomainDef *def, virQEMUCaps *qemuCaps) { @@ -9472,7 +9456,6 @@ qemuBuildParallelsCommandLine(virCommand *cmd, g_autofree char *charAlias =3D qemuAliasChardevFromDevAlias(parall= el->info.alias); if (qemuBuildChardevCommand(cmd, - cfg, parallel->source, charAlias, qemuCaps) < 0) @@ -9489,7 +9472,6 @@ qemuBuildParallelsCommandLine(virCommand *cmd, static int qemuBuildChannelsCommandLine(virCommand *cmd, - virQEMUDriverConfig *cfg, const virDomainDef *def, virQEMUCaps *qemuCaps) { @@ -9501,7 +9483,6 @@ qemuBuildChannelsCommandLine(virCommand *cmd, g_autofree char *charAlias =3D qemuAliasChardevFromDevAlias(channe= l->info.alias); if (qemuBuildChardevCommand(cmd, - cfg, channel->source, charAlias, qemuCaps) < 0) @@ -9534,7 +9515,6 @@ qemuBuildChannelsCommandLine(virCommand *cmd, static int qemuBuildConsoleCommandLine(virCommand *cmd, - virQEMUDriverConfig *cfg, const virDomainDef *def, virQEMUCaps *qemuCaps) { @@ -9550,7 +9530,6 @@ qemuBuildConsoleCommandLine(virCommand *cmd, case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_SCLPLM: case VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_VIRTIO: if (qemuBuildChardevCommand(cmd, - cfg, console->source, charAlias, qemuCaps) < 0) @@ -9632,7 +9611,6 @@ qemuBuildRedirdevDevProps(const virDomainDef *def, static int qemuBuildRedirdevCommandLine(virCommand *cmd, - virQEMUDriverConfig *cfg, const virDomainDef *def, virQEMUCaps *qemuCaps) { @@ -9644,7 +9622,6 @@ qemuBuildRedirdevCommandLine(virCommand *cmd, g_autofree char *charAlias =3D qemuAliasChardevFromDevAlias(redird= ev->info.alias); if (qemuBuildChardevCommand(cmd, - cfg, redirdev->source, charAlias, qemuCaps) < 0) @@ -10614,7 +10591,7 @@ qemuBuildCommandLine(virQEMUDriver *driver, virCommandAddArg(cmd, "-no-user-config"); virCommandAddArg(cmd, "-nodefaults"); - if (qemuBuildMonitorCommandLine(cmd, cfg, priv) < 0) + if (qemuBuildMonitorCommandLine(cmd, priv) < 0) return NULL; if (qemuBuildClockCommandLine(cmd, def, qemuCaps) < 0) @@ -10653,19 +10630,19 @@ qemuBuildCommandLine(virQEMUDriver *driver, nnicindexes, nicindexes) < 0) return NULL; - if (qemuBuildSmartcardCommandLine(cmd, cfg, def, qemuCaps) < 0) + if (qemuBuildSmartcardCommandLine(cmd, def, qemuCaps) < 0) return NULL; - if (qemuBuildSerialCommandLine(cmd, cfg, def, qemuCaps) < 0) + if (qemuBuildSerialCommandLine(cmd, def, qemuCaps) < 0) return NULL; - if (qemuBuildParallelsCommandLine(cmd, cfg, def, qemuCaps) < 0) + if (qemuBuildParallelsCommandLine(cmd, def, qemuCaps) < 0) return NULL; - if (qemuBuildChannelsCommandLine(cmd, cfg, def, qemuCaps) < 0) + if (qemuBuildChannelsCommandLine(cmd, def, qemuCaps) < 0) return NULL; - if (qemuBuildConsoleCommandLine(cmd, cfg, def, qemuCaps) < 0) + if (qemuBuildConsoleCommandLine(cmd, def, qemuCaps) < 0) return NULL; if (qemuBuildTPMsCommandLine(cmd, def, qemuCaps) < 0) @@ -10689,7 +10666,7 @@ qemuBuildCommandLine(virQEMUDriver *driver, if (qemuBuildWatchdogCommandLine(cmd, def, qemuCaps) < 0) return NULL; - if (qemuBuildRedirdevCommandLine(cmd, cfg, def, qemuCaps) < 0) + if (qemuBuildRedirdevCommandLine(cmd, def, qemuCaps) < 0) return NULL; if (qemuBuildHostdevCommandLine(cmd, def, qemuCaps) < 0) @@ -10701,7 +10678,7 @@ qemuBuildCommandLine(virQEMUDriver *driver, if (qemuBuildMemballoonCommandLine(cmd, def, qemuCaps) < 0) return NULL; - if (qemuBuildRNGCommandLine(cmd, cfg, def, qemuCaps) < 0) + if (qemuBuildRNGCommandLine(cmd, def, qemuCaps) < 0) return NULL; if (qemuBuildNVRAMCommandLine(cmd, def) < 0) @@ -10735,7 +10712,7 @@ qemuBuildCommandLine(virQEMUDriver *driver, return NULL; for (i =3D 0; i < def->nshmems; i++) { - if (qemuBuildShmemCommandLine(cmd, cfg, def, def->shmems[i], qemuC= aps) < 0) + if (qemuBuildShmemCommandLine(cmd, def, def->shmems[i], qemuCaps) = < 0) return NULL; } --=20 2.31.1 From nobody Fri May 3 00:24:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.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 170.10.129.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=1639053164; cv=none; d=zohomail.com; s=zohoarc; b=ZQxjAP0jP2cZLWC2WWZu/HCwvNvN7+8Nkg8D1jtTBFBRJmD0E6WgUpXG3eTau7VoZGiB+rw8N1XKkCIjdnSPaLArUMa2gBKYGoR5IFQYvm4HLxdnl2EXjwB2+9URQJXA8REIKHqUGtDr3EBeUTf6AiwKRpjKXB+2EjWdlEdlK9w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1639053164; 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=GIxTiNUnCdnhnd8CdKA9b2JNnfXX2KeDrBnf/vZQKTM=; b=Mv0Rn1Fy9yMhuKnkw1TzmWVkpuTVCZlMx3C+ZDJefrPh8S/yECXBb+Xjt3mkr3ThRrR+j8Rew31uWY9KE3pv8x+o+DQkBztLtJrK1j9xSDVBuZvrSUnAo1V+sdxN9NRbdWZa/8hKXxurnEcF0aGDHC0DSYKWYsWHFgC5ylrpBdU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.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 [170.10.129.124]) by mx.zohomail.com with SMTPS id 1639053164377387.03020266114163; Thu, 9 Dec 2021 04:32:44 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-519-bsQJNDCHOLWXMLsbnf_hbA-1; Thu, 09 Dec 2021 07:32:41 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id CE64281CCBA; Thu, 9 Dec 2021 12:32:35 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id B209410114AE; Thu, 9 Dec 2021 12:32:35 +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 85B2F1802E27; Thu, 9 Dec 2021 12:32:35 +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 1B9CVM1Z017887 for ; Thu, 9 Dec 2021 07:31:22 -0500 Received: by smtp.corp.redhat.com (Postfix) id 036094ABA1; Thu, 9 Dec 2021 12:31:22 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.10]) by smtp.corp.redhat.com (Postfix) with ESMTP id 622AB60C25 for ; Thu, 9 Dec 2021 12:31:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1639053163; 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=GIxTiNUnCdnhnd8CdKA9b2JNnfXX2KeDrBnf/vZQKTM=; b=FxtMGrFmsdpQMdTAFerJ7O1XWs83mbXoKMRzIGu1OQ328fEAbbcJyx5lH6Pe9xF7mQZoJf MhcFp/YDYzLgdF+kbK+gGuZyVsn6dnnO1W0RbRx2z2P684d8bJgs12l/R1p7adgAcnGOI3 kW8O5rmomod5uIp2rR53PADn93HOctg= X-MC-Unique: bsQJNDCHOLWXMLsbnf_hbA-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 19/24] qemu: Implement chardev source setup for disk Date: Thu, 9 Dec 2021 13:30:54 +0100 Message-Id: <3946ea040af270c6996a81977ad2e75e2f6b7332.1639052639.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.84 on 10.5.11.22 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: 1639053166402100001 Content-Type: text/plain; charset="utf-8" Add handling to qemuDomainDeviceBackendChardevForeachOne and callbacks so that we can later use 'qemuBuildChardevCommand' for vhost-user disks instead of a custom formatter. Since we don't pass the FD for the vhost-user connection to qemu all of the setup can be skipped. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_domain.c | 7 ++++++- src/qemu/qemu_process.c | 4 ++++ tests/qemuxml2argvtest.c | 4 ++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index d7751f731d..475f2f536e 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -11494,6 +11494,12 @@ qemuDomainDeviceBackendChardevForeachOne(virDomain= DeviceDef *dev, void *opaque) { switch ((virDomainDeviceType) dev->type) { + case VIR_DOMAIN_DEVICE_DISK: + if (virStorageSourceGetActualType(dev->data.disk->src) !=3D VIR_ST= ORAGE_TYPE_VHOST_USER) + return 0; + + return cb(dev, dev->data.disk->src->vhostuser, opaque); + case VIR_DOMAIN_DEVICE_NET: if (virDomainNetGetActualType(dev->data.net) !=3D VIR_DOMAIN_NET_T= YPE_VHOSTUSER) return 0; @@ -11524,7 +11530,6 @@ qemuDomainDeviceBackendChardevForeachOne(virDomainD= eviceDef *dev, return cb(dev, dev->data.rng->source.chardev, opaque); - case VIR_DOMAIN_DEVICE_DISK: case VIR_DOMAIN_DEVICE_LEASE: case VIR_DOMAIN_DEVICE_FS: case VIR_DOMAIN_DEVICE_INPUT: diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index d31ab103cf..ed0b80be0b 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -6886,6 +6886,10 @@ qemuProcessPrepareHostBackendChardevOne(virDomainDev= iceDef *dev, /* this function is also called for the monitor backend which doesn't = have * a 'dev' */ if (dev) { + /* vhost-user disk doesn't use FD passing */ + if (dev->type =3D=3D VIR_DOMAIN_DEVICE_DISK) + return 0; + if (dev->type =3D=3D VIR_DOMAIN_DEVICE_NET) { /* due to a historical bug in qemu we don't use FD passtrhough= for * vhost-sockets for network devices */ diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index fa451b6b54..ac4b532ef1 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -385,6 +385,10 @@ testPrepareHostBackendChardevOne(virDomainDeviceDef *d= ev, qemuDomainChrSourcePrivate *charpriv =3D QEMU_DOMAIN_CHR_SOURCE_PRIVAT= E(chardev); if (dev) { + /* vhost-user disk doesn't use FD passing */ + if (dev->type =3D=3D VIR_DOMAIN_DEVICE_DISK) + return 0; + if (dev->type =3D=3D VIR_DOMAIN_DEVICE_NET) { /* due to a historical bug in qemu we don't use FD passtrhough= for * vhost-sockets for network devices */ --=20 2.31.1 From nobody Fri May 3 00:24:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.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 170.10.133.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=1639053166; cv=none; d=zohomail.com; s=zohoarc; b=oGezheibV3dlSfesr64S9YZ7Q0WuZkplHmcbYGwfUwPNRQ8D7dZfiAUeKll7vF5DV2jkGVVbMbJOWKEZCp/3QCjc69erJqtb++jMP8PwyFWE5l8fNAGmbC4ISj7etPGe25TpwmCU8ZowaruTSV6hce5z6OQazKW6UHIDlOTvv7c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1639053166; 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=c67X9Iavk/eQcmqGnPy63GvAXIYVQ1YKV8p5+ttyQL0=; b=OEwMlwzkw5ZytavWMg+NDLG4OYcHlQ3vOkuyOJh8nxzRV/MfH2J+Yg1M1U0/MvlFIj404KjAElQ1WTW+dCo48O0O+W9IUexB4YHlStxsu6LGDvU5hQy0e14HnsQjOBYzXFPBImTMNdJ0COLAfCYVggiemOIUwAo2vMusBo7GpHo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.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 [170.10.133.124]) by mx.zohomail.com with SMTPS id 1639053166922382.5008320395675; Thu, 9 Dec 2021 04:32:46 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-154-jmXCb3YEOfu5jbv7Mc7gqQ-1; Thu, 09 Dec 2021 07:32:42 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 56BF3801AFC; Thu, 9 Dec 2021 12:32:38 +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 373E3781FE; Thu, 9 Dec 2021 12:32:38 +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 04F4B4A705; Thu, 9 Dec 2021 12:32:38 +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 1B9CVNdX017924 for ; Thu, 9 Dec 2021 07:31:23 -0500 Received: by smtp.corp.redhat.com (Postfix) id 13B1760C25; Thu, 9 Dec 2021 12:31:23 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.10]) by smtp.corp.redhat.com (Postfix) with ESMTP id 64B22694C0 for ; Thu, 9 Dec 2021 12:31:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1639053165; 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=c67X9Iavk/eQcmqGnPy63GvAXIYVQ1YKV8p5+ttyQL0=; b=YNSX13kBjwsdOVQWNHLShD4mOTKHYbmD4bjCvbaY2SY2xjMt9820qzxLRo/bufPFigGXEp s2rI7ftGBRfCjSKK6kq0X//Sbsvh7H1wJ0nMSVtvDxzZuUjc0dNBHTfoooxdiyiIquFrk7 6OUGZMbhVHSAegGNhk3wSkpFIpwLALk= X-MC-Unique: jmXCb3YEOfu5jbv7Mc7gqQ-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 20/24] qemu: Use qemuBuildChrChardevCommand for vhost-user disk backend Date: Thu, 9 Dec 2021 13:30:55 +0100 Message-Id: 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.13 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: 1639053169093100001 Content-Type: text/plain; charset="utf-8" Now that the API for qemuBuildChrChardevCommand is sane enough, we can use it to centralize formatting of '-chardev' generally. For virtiofs we don't have a centrally stored chardev source so we allocate one inline for temporary use. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_block.c | 1 - src/qemu/qemu_block.h | 1 - src/qemu/qemu_command.c | 18 ++++-------------- 3 files changed, 4 insertions(+), 16 deletions(-) diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index f6a7f2b750..87dca40179 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -1655,7 +1655,6 @@ qemuBlockStorageSourceAttachDataFree(qemuBlockStorage= SourceAttachData *data) g_free(data->driveCmd); g_free(data->driveAlias); g_free(data->chardevAlias); - g_free(data->chardevCmd); g_free(data); } diff --git a/src/qemu/qemu_block.h b/src/qemu/qemu_block.h index 54601a48a9..184a549d5c 100644 --- a/src/qemu/qemu_block.h +++ b/src/qemu/qemu_block.h @@ -99,7 +99,6 @@ struct qemuBlockStorageSourceAttachData { virDomainChrSourceDef *chardevDef; char *chardevAlias; - char *chardevCmd; bool chardevAdded; virJSONValue *authsecretProps; diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 0fb7b83d3f..0bfe76c29c 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -2591,8 +2591,10 @@ qemuBuildBlockStorageSourceAttachDataCommandline(vir= Command *cmd, if (data->driveCmd) virCommandAddArgList(cmd, "-drive", data->driveCmd, NULL); - if (data->chardevCmd) - virCommandAddArgList(cmd, "-chardev", data->chardevCmd, NULL); + if (data->chardevDef) { + if (qemuBuildChardevCommand(cmd, data->chardevDef, data->chardevAl= ias, qemuCaps) < 0) + return -1; + } if (data->storageProps) { if (!(tmp =3D virJSONValueToString(data->storageProps, false))) @@ -10959,24 +10961,12 @@ static qemuBlockStorageSourceAttachData * qemuBuildStorageSourceAttachPrepareChardev(virDomainDiskDef *disk) { g_autoptr(qemuBlockStorageSourceAttachData) data =3D NULL; - g_auto(virBuffer) chardev =3D VIR_BUFFER_INITIALIZER; data =3D g_new0(qemuBlockStorageSourceAttachData, 1); data->chardevDef =3D disk->src->vhostuser; data->chardevAlias =3D qemuDomainGetVhostUserChrAlias(disk->info.alias= ); - virBufferAddLit(&chardev, "socket"); - virBufferAsprintf(&chardev, ",id=3D%s", data->chardevAlias); - virBufferAddLit(&chardev, ",path=3D"); - virQEMUBuildBufferEscapeComma(&chardev, disk->src->vhostuser->data.nix= .path); - - qemuBuildChrChardevReconnectStr(&chardev, - &disk->src->vhostuser->data.nix.reconn= ect); - - if (!(data->chardevCmd =3D virBufferContentAndReset(&chardev))) - return NULL; - return g_steal_pointer(&data); } --=20 2.31.1 From nobody Fri May 3 00:24:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.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 170.10.133.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=1639053170; cv=none; d=zohomail.com; s=zohoarc; b=ioboQdYmIaklaRes4HLLvOSzxzSvgioU54zgPhQeJWEg6xw9KUf7XSbPm4LCKcwAjP8A0N3hAEe6f8gPT6MVljpgToGlqSj1hIYr4yIx6tOScqWo+BFoB+VL8INs+rKZrmDwrM+6DMQi1ABg71W0lOTfuAivKB5SzG1Ydq4Vp8Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1639053170; 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=1t3K3SOJDM5t4PDEv/GkgJVTyIZsoig9IQ/OoOgSoHA=; b=dH+ehFASexHj9iAsKJn6DTPCvIsrVU32nlDVsUqcOgT40IvU14EmAOAs+8pTjU53uGWmQwjdB3O4CjTeQNlGdf5zv1TjJsFK9w3LaRRiMl6NFFqZxexwEDoACPnHjSKC+fxvhc1RlUOwcjMKlVwjkZzzlIg+NJYAY3Ju8thWcRg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.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 [170.10.133.124]) by mx.zohomail.com with SMTPS id 163905316991234.12330871467066; Thu, 9 Dec 2021 04:32:49 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-436-T1iuOp8SOvSvFwyk-EWFVQ-1; Thu, 09 Dec 2021 07:32:45 -0500 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 111E481CCBC; Thu, 9 Dec 2021 12:32:41 +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 E6A101ABE5; Thu, 9 Dec 2021 12:32:40 +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 B6EA34A70A; Thu, 9 Dec 2021 12:32:40 +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 1B9CVO0F017940 for ; Thu, 9 Dec 2021 07:31:24 -0500 Received: by smtp.corp.redhat.com (Postfix) id 2ABFE4ABB5; Thu, 9 Dec 2021 12:31:24 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.10]) by smtp.corp.redhat.com (Postfix) with ESMTP id 844831B472 for ; Thu, 9 Dec 2021 12:31:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1639053168; 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=1t3K3SOJDM5t4PDEv/GkgJVTyIZsoig9IQ/OoOgSoHA=; b=fUC+LfaHM2Qb1XX1NwlsUxZbQ9fO+1JK88bprXtkU0hqzVtONRz6bXmFjH4jCWoU8Yhwn7 vjQOcgnTqhkUmvQvelKzKwfUC142e5u9Z7eourrL4tgF+cXyDrhoEpMAYZhcISLlMnu02V AIYPi9+OY66bZ72LTbO+7RUzKchjU4w= X-MC-Unique: T1iuOp8SOvSvFwyk-EWFVQ-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 21/24] qemu: Use qemuBuildChrChardevCommand for virtiofs backend chardev Date: Thu, 9 Dec 2021 13:30:56 +0100 Message-Id: <5f652b7636b7f69610cf4a4c61b735514cc60ed8.1639052639.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.16 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: 1639053171606100001 Content-Type: text/plain; charset="utf-8" Now that the API for qemuBuildChrChardevCommand is sane enough, we can use it to centralize formatting of '-chardev' generally. The 'virDomainFSDef' doesn't use 'virDomainChrSourceDef' internally so we create it for this occasion manually. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_command.c | 31 +++++++++---------------------- 1 file changed, 9 insertions(+), 22 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 0bfe76c29c..3a5796fed8 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -2741,22 +2741,6 @@ qemuBuildDisksCommandLine(virCommand *cmd, } -static char * -qemuBuildVHostUserFsChardevStr(const virDomainFSDef *fs, - const char *chardev_alias, - qemuDomainObjPrivate *priv) -{ - g_auto(virBuffer) buf =3D VIR_BUFFER_INITIALIZER; - g_autofree char *socket_path =3D qemuDomainGetVHostUserFSSocketPath(pr= iv, fs); - - virBufferAddLit(&buf, "socket"); - virBufferAsprintf(&buf, ",id=3D%s", chardev_alias); - virBufferAddLit(&buf, ",path=3D"); - virQEMUBuildBufferEscapeComma(&buf, socket_path); - return virBufferContentAndReset(&buf); -} - - virJSONValue * qemuBuildVHostUserFsDevProps(virDomainFSDef *fs, const virDomainDef *def, @@ -2790,15 +2774,18 @@ qemuBuildVHostUserFsCommandLine(virCommand *cmd, const virDomainDef *def, qemuDomainObjPrivate *priv) { - g_autofree char *chardev_alias =3D NULL; - g_autofree char *chrdevstr =3D NULL; + g_autofree char *chardev_alias =3D qemuDomainGetVhostUserChrAlias(fs->= info.alias); g_autoptr(virJSONValue) devprops =3D NULL; + g_autoptr(virDomainChrSourceDef) chrsrc =3D virDomainChrSourceDefNew(p= riv->driver->xmlopt); - chardev_alias =3D qemuDomainGetVhostUserChrAlias(fs->info.alias); - chrdevstr =3D qemuBuildVHostUserFsChardevStr(fs, chardev_alias, priv); + if (!chrsrc) + return -1; + + chrsrc->type =3D VIR_DOMAIN_CHR_TYPE_UNIX; + chrsrc->data.nix.path =3D qemuDomainGetVHostUserFSSocketPath(priv, fs); - virCommandAddArg(cmd, "-chardev"); - virCommandAddArg(cmd, chrdevstr); + if (qemuBuildChardevCommand(cmd, chrsrc, chardev_alias, priv->qemuCaps= ) < 0) + return -1; if (qemuCommandAddExtDevice(cmd, &fs->info, priv->qemuCaps) < 0) return -1; --=20 2.31.1 From nobody Fri May 3 00:24:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.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 170.10.133.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=1639053172; cv=none; d=zohomail.com; s=zohoarc; b=PNvNOEENPLVTZ6n5+WFdRSrm2rrYNjeDKGk/C0IIyARqp/sT6hXjZBe8RrDG46XG6tQAnA4H6jOdL68EcrWEprz74iBDm7H2wCPFCXUir6bPxSVUiasORDzbJYFJj+BvXYoIEVgfvTOGr6gFFf95T8THWb5Pn2GPinFvLh5wbzI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1639053172; 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=hxJCjaQyzO8z8Qq0O/eYiBFpM2me4jGtKm3WV7Za4+Y=; b=Ns3i5xm5XH/B5VF9WmuB4Iktec+D0FYkmiKCg4k+2ZGZB69wmshAx6w1yUjjUqnesWa8gRzSt10vTI9RoN+H7m3tl8u0NAzAnmszhCwJkLAaWPxp0wtaCnWtMpLNZ/qKTGhpvdLcDCOjwIARqyI5iQG1+GqHmYnWGH2joX5KH7Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.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 [170.10.133.124]) by mx.zohomail.com with SMTPS id 1639053172920535.6745352260685; Thu, 9 Dec 2021 04:32:52 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-366-xSTSD5cROXiZVzZM5395vA-1; Thu, 09 Dec 2021 07:32:48 -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 039C510144E9; Thu, 9 Dec 2021 12:32:44 +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 DAF3E5E275; Thu, 9 Dec 2021 12:32:43 +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 A749C4A70D; Thu, 9 Dec 2021 12:32:43 +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 1B9CVPof017969 for ; Thu, 9 Dec 2021 07:31:25 -0500 Received: by smtp.corp.redhat.com (Postfix) id 383814ABB5; Thu, 9 Dec 2021 12:31:25 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.10]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8E1321B472 for ; Thu, 9 Dec 2021 12:31:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1639053171; 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=hxJCjaQyzO8z8Qq0O/eYiBFpM2me4jGtKm3WV7Za4+Y=; b=Df1hkeESjsUR9KtUBKTrZVFomMK7GpiCqU66lN0AnPEZ/waLfQqVany4VpJ2Oe+GuLgqrE kI9Ci7Wl61xjCKLuIe3FPXEU/L4+XTk69Bjnaj4MQcqnXnlXr7TZxc7a6PzTRYb4l3sPYz w+UWrmpoZuKNQHkmD0EX8riaiDnhlHs= X-MC-Unique: xSTSD5cROXiZVzZM5395vA-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 22/24] qemu: Use qemuBuildChrChardevCommand for vhost-user-gpu backend chardev Date: Thu, 9 Dec 2021 13:30:57 +0100 Message-Id: <23b7fe0e6710766de2788c633abe4c3d0ea78ea6.1639052639.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: 1639053174205100001 Content-Type: text/plain; charset="utf-8" Now that the API for qemuBuildChrChardevCommand is sane enough, we can use it to centralize formatting of '-chardev' generally. The 'virDomainVideoDef' doesn't use 'virDomainChrSourceDef' internally so we create it for this occasion manually. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_command.c | 57 ++++++------------- ...host-user-gpu-secondary.x86_64-latest.args | 2 +- ...irtio-options-video-ats.x86_64-latest.args | 2 +- ...tio-options-video-iommu.x86_64-latest.args | 2 +- ...io-options-video-packed.x86_64-latest.args | 2 +- 5 files changed, 21 insertions(+), 44 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 3a5796fed8..3ca7da9d5d 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -4939,60 +4939,37 @@ qemuBuildDeviceVideoCmd(virCommand *cmd, } -static char * -qemuBuildVhostUserChardevStr(const char *alias, - int *fd, - virCommand *cmd) -{ - g_autofree char *chardev_alias =3D qemuDomainGetVhostUserChrAlias(alia= s); - char *chardev =3D NULL; - - if (*fd =3D=3D -1) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("Attempt to pass closed vhostuser FD")); - return NULL; - } - - chardev =3D g_strdup_printf("socket,id=3D%s,fd=3D%d", chardev_alias, *= fd); - - virCommandPassFD(cmd, *fd, VIR_COMMAND_PASS_FD_CLOSE_PARENT); - *fd =3D -1; - - return chardev; -} - - static int qemuBuildVideoCommandLine(virCommand *cmd, const virDomainDef *def, - virQEMUCaps *qemuCaps) + qemuDomainObjPrivate *priv) { size_t i; for (i =3D 0; i < def->nvideos; i++) { - g_autofree char *chardev =3D NULL; virDomainVideoDef *video =3D def->videos[i]; + if (video->type =3D=3D VIR_DOMAIN_VIDEO_TYPE_NONE) + continue; + if (video->backend =3D=3D VIR_DOMAIN_VIDEO_BACKEND_TYPE_VHOSTUSER)= { - if (!(chardev =3D qemuBuildVhostUserChardevStr(video->info.ali= as, - &QEMU_DOMAIN_VIDEO_PRIVATE(video)->vhost_u= ser_fd, - cmd))) - return -1; + qemuDomainVideoPrivate *videopriv =3D QEMU_DOMAIN_VIDEO_PRIVAT= E(video); + g_autoptr(virDomainChrSourceDef) chrsrc =3D virDomainChrSource= DefNew(priv->driver->xmlopt); + g_autofree char *chrAlias =3D qemuDomainGetVhostUserChrAlias(v= ideo->info.alias); + qemuDomainChrSourcePrivate *chrsrcpriv =3D QEMU_DOMAIN_CHR_SOU= RCE_PRIVATE(chrsrc); - virCommandAddArgList(cmd, "-chardev", chardev, NULL); - } - } + chrsrc->type =3D VIR_DOMAIN_CHR_TYPE_UNIX; + chrsrcpriv->fd =3D videopriv->vhost_user_fd; + videopriv->vhost_user_fd =3D -1; - for (i =3D 0; i < def->nvideos; i++) { - virDomainVideoDef *video =3D def->videos[i]; - - if (video->type =3D=3D VIR_DOMAIN_VIDEO_TYPE_NONE) - continue; + if (qemuBuildChardevCommand(cmd, chrsrc, chrAlias, priv->qemuC= aps) < 0) + return -1; + } - if (qemuCommandAddExtDevice(cmd, &def->videos[i]->info, qemuCaps) = < 0) + if (qemuCommandAddExtDevice(cmd, &def->videos[i]->info, priv->qemu= Caps) < 0) return -1; - if (qemuBuildDeviceVideoCmd(cmd, def, video, qemuCaps) < 0) + if (qemuBuildDeviceVideoCmd(cmd, def, video, priv->qemuCaps) < 0) return -1; } @@ -10646,7 +10623,7 @@ qemuBuildCommandLine(virQEMUDriver *driver, if (qemuBuildGraphicsCommandLine(cfg, cmd, def, qemuCaps) < 0) return NULL; - if (qemuBuildVideoCommandLine(cmd, def, qemuCaps) < 0) + if (qemuBuildVideoCommandLine(cmd, def, priv) < 0) return NULL; if (qemuBuildSoundCommandLine(cmd, def, qemuCaps) < 0) diff --git a/tests/qemuxml2argvdata/vhost-user-gpu-secondary.x86_64-latest.= args b/tests/qemuxml2argvdata/vhost-user-gpu-secondary.x86_64-latest.args index 7f0db5fbce..43ae421715 100644 --- a/tests/qemuxml2argvdata/vhost-user-gpu-secondary.x86_64-latest.args +++ b/tests/qemuxml2argvdata/vhost-user-gpu-secondary.x86_64-latest.args @@ -34,8 +34,8 @@ XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ -device '{"driver":"ide-hd","bus":"ide.0","unit":0,"drive":"libvirt-1-form= at","id":"ide0-0-0","bootindex":1}' \ -audiodev '{"id":"audio1","driver":"none"}' \ -chardev socket,id=3Dchr-vu-video0,fd=3D1729 \ --chardev socket,id=3Dchr-vu-video1,fd=3D1729 \ -device '{"driver":"vhost-user-vga","id":"video0","max_outputs":1,"chardev= ":"chr-vu-video0","bus":"pci.0","addr":"0x2"}' \ +-chardev socket,id=3Dchr-vu-video1,fd=3D1729 \ -device '{"driver":"vhost-user-gpu-pci","id":"video1","max_outputs":1,"cha= rdev":"chr-vu-video1","bus":"pci.0","addr":"0x4"}' \ -device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x3"}' \ -sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ diff --git a/tests/qemuxml2argvdata/virtio-options-video-ats.x86_64-latest.= args b/tests/qemuxml2argvdata/virtio-options-video-ats.x86_64-latest.args index 4ec8d006e7..c0b5ad781a 100644 --- a/tests/qemuxml2argvdata/virtio-options-video-ats.x86_64-latest.args +++ b/tests/qemuxml2argvdata/virtio-options-video-ats.x86_64-latest.args @@ -30,8 +30,8 @@ XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ -device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ -audiodev '{"id":"audio1","driver":"none"}' \ -chardev socket,id=3Dchr-vu-video0,fd=3D1729 \ --chardev socket,id=3Dchr-vu-video1,fd=3D1729 \ -device '{"driver":"vhost-user-vga","id":"video0","max_outputs":1,"chardev= ":"chr-vu-video0","bus":"pci.0","addr":"0x2"}' \ +-chardev socket,id=3Dchr-vu-video1,fd=3D1729 \ -device '{"driver":"vhost-user-gpu-pci","ats":false,"id":"video1","max_out= puts":1,"chardev":"chr-vu-video1","bus":"pci.0","addr":"0x3"}' \ -device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x4"}' \ -sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ diff --git a/tests/qemuxml2argvdata/virtio-options-video-iommu.x86_64-lates= t.args b/tests/qemuxml2argvdata/virtio-options-video-iommu.x86_64-latest.ar= gs index d90b5c674f..48c7bcf7f6 100644 --- a/tests/qemuxml2argvdata/virtio-options-video-iommu.x86_64-latest.args +++ b/tests/qemuxml2argvdata/virtio-options-video-iommu.x86_64-latest.args @@ -30,8 +30,8 @@ XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ -device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ -audiodev '{"id":"audio1","driver":"none"}' \ -chardev socket,id=3Dchr-vu-video0,fd=3D1729 \ --chardev socket,id=3Dchr-vu-video1,fd=3D1729 \ -device '{"driver":"vhost-user-vga","id":"video0","max_outputs":1,"chardev= ":"chr-vu-video0","bus":"pci.0","addr":"0x2"}' \ +-chardev socket,id=3Dchr-vu-video1,fd=3D1729 \ -device '{"driver":"vhost-user-gpu-pci","iommu_platform":false,"id":"video= 1","max_outputs":1,"chardev":"chr-vu-video1","bus":"pci.0","addr":"0x3"}' \ -device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x4"}' \ -sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ diff --git a/tests/qemuxml2argvdata/virtio-options-video-packed.x86_64-late= st.args b/tests/qemuxml2argvdata/virtio-options-video-packed.x86_64-latest.= args index 532285eb85..f1b96b92d7 100644 --- a/tests/qemuxml2argvdata/virtio-options-video-packed.x86_64-latest.args +++ b/tests/qemuxml2argvdata/virtio-options-video-packed.x86_64-latest.args @@ -30,8 +30,8 @@ XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ -device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ -audiodev '{"id":"audio1","driver":"none"}' \ -chardev socket,id=3Dchr-vu-video0,fd=3D1729 \ --chardev socket,id=3Dchr-vu-video1,fd=3D1729 \ -device '{"driver":"vhost-user-vga","id":"video0","max_outputs":1,"chardev= ":"chr-vu-video0","bus":"pci.0","addr":"0x2"}' \ +-chardev socket,id=3Dchr-vu-video1,fd=3D1729 \ -device '{"driver":"vhost-user-gpu-pci","packed":false,"id":"video1","max_= outputs":1,"chardev":"chr-vu-video1","bus":"pci.0","addr":"0x3"}' \ -device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x4"}' \ -sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ --=20 2.31.1 From nobody Fri May 3 00:24:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.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 170.10.133.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=1639053251; cv=none; d=zohomail.com; s=zohoarc; b=U1ViV40aiM5N2p06a6WQNbvnmypDtKQ14uiA9lQzNrXE4aCZGtM7WHT1umvz7NyY/oxg+HudBbXufMtIs6zBUD0bFDzf+h1sOB9gKm+COW6AEibvqyyCvfvUb/Y5Ljvn3gvnahtRAnZbO+n4zaFxmgkrD2j9B8liAKLENAEqnT4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1639053251; 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=uJwD9sEI23VE+xPbUFE3VUNOsPHHDDuSOpHFme98mac=; b=GmZoVgMFAs4n2ZyTsNBJIEn0nZzuzsoKGIWqVS9hpD0UUaLEkOn0ySGdghvTQwxHzOkCq2/y1Kx9RXHoZjkKM+T3Oto9ExJuhYNe8zuG2sVUZcv5lFcppNOL/47/gi6jEC+nmQakUILdnVvWix+pwLWxXZdbB1Xd0lxzCpbrl3Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.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 [170.10.133.124]) by mx.zohomail.com with SMTPS id 1639053251024548.0567696522589; Thu, 9 Dec 2021 04:34:11 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-62-_ACkvfINPjeXYnj-dDEzDA-1; Thu, 09 Dec 2021 07:34:08 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 23781802928; Thu, 9 Dec 2021 12:34:04 +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 0329F100EBAD; Thu, 9 Dec 2021 12:34:04 +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 C75B84A709; Thu, 9 Dec 2021 12:34:03 +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 1B9CVQ83018000 for ; Thu, 9 Dec 2021 07:31:26 -0500 Received: by smtp.corp.redhat.com (Postfix) id 43F49694C0; Thu, 9 Dec 2021 12:31:26 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.10]) by smtp.corp.redhat.com (Postfix) with ESMTP id A21581B472 for ; Thu, 9 Dec 2021 12:31:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1639053250; 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=uJwD9sEI23VE+xPbUFE3VUNOsPHHDDuSOpHFme98mac=; b=Nt69i2hTUD7aPshgchmcTDXJ8iz2GkILBYe5ru1N15WV6FZY2hg7JNHDcxq5H4bs+Hr3pd ovuHpwlGs13oJTOXmbQwEOIIJgy3aFuk7UHHt/xt8Y/6bPGtXYrYpgj0jKm2Lmu8NYdOaX holtCuE+rmlyATaJTbVKPTB5bsVJmbY= X-MC-Unique: _ACkvfINPjeXYnj-dDEzDA-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 23/24] qemu: Implement chardev source setup for tpm Date: Thu, 9 Dec 2021 13:30:58 +0100 Message-Id: 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.84 on 10.5.11.22 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: 1639053253118100002 Content-Type: text/plain; charset="utf-8" Add handling to qemuDomainDeviceBackendChardevForeachOne and callbacks so that we can later use 'qemuBuildChardevCommand' for TPM devices. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_domain.c | 14 +++++++++++++- src/qemu/qemu_process.c | 4 ++++ tests/qemuxml2argvtest.c | 4 ++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 475f2f536e..5607d6f581 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -11530,6 +11530,19 @@ qemuDomainDeviceBackendChardevForeachOne(virDomain= DeviceDef *dev, return cb(dev, dev->data.rng->source.chardev, opaque); + case VIR_DOMAIN_DEVICE_TPM: + switch ((virDomainTPMBackendType) dev->data.tpm->type) { + case VIR_DOMAIN_TPM_TYPE_PASSTHROUGH: + return cb(dev, dev->data.tpm->data.passthrough.source, opaque); + + case VIR_DOMAIN_TPM_TYPE_EMULATOR: + return cb(dev, dev->data.tpm->data.emulator.source, opaque); + + case VIR_DOMAIN_TPM_TYPE_LAST: + return 0; + } + return 0; + case VIR_DOMAIN_DEVICE_LEASE: case VIR_DOMAIN_DEVICE_FS: case VIR_DOMAIN_DEVICE_INPUT: @@ -11543,7 +11556,6 @@ qemuDomainDeviceBackendChardevForeachOne(virDomainD= eviceDef *dev, case VIR_DOMAIN_DEVICE_NONE: case VIR_DOMAIN_DEVICE_MEMBALLOON: case VIR_DOMAIN_DEVICE_NVRAM: - case VIR_DOMAIN_DEVICE_TPM: case VIR_DOMAIN_DEVICE_PANIC: case VIR_DOMAIN_DEVICE_LAST: case VIR_DOMAIN_DEVICE_MEMORY: diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index ed0b80be0b..a8a8c4c54b 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -6895,6 +6895,10 @@ qemuProcessPrepareHostBackendChardevOne(virDomainDev= iceDef *dev, * vhost-sockets for network devices */ return 0; } + + /* TPMs FD passing setup is special and handled separately */ + if (dev->type =3D=3D VIR_DOMAIN_DEVICE_TPM) + return 0; } switch ((virDomainChrType) chardev->type) { diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index ac4b532ef1..615f45376c 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -394,6 +394,10 @@ testPrepareHostBackendChardevOne(virDomainDeviceDef *d= ev, * vhost-sockets for network devices */ return 0; } + + /* TPMs FD passing setup is special and handled separately */ + if (dev->type =3D=3D VIR_DOMAIN_DEVICE_TPM) + return 0; } switch ((virDomainChrType) chardev->type) { --=20 2.31.1 From nobody Fri May 3 00:24:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.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 170.10.133.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=1639053324; cv=none; d=zohomail.com; s=zohoarc; b=KMoKoQD7VzJ/WeT+qdD2irMFyTmJV/tgi4RjraBOBKrcACvaqnYlXv/VIrpSJdMeuUSqrV11HZHC3Xe3UM0l0JyzQ4mH02ndqch/tYfa90B5k2eRiqBAdtNvThUVIOCDE2kkCo/uHtyPHpTlXdmlL7REgcXNjsvur270P95kXb0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1639053324; 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=GECxPGjOIWEKG3lzui47iQOvSSLngj0dc6uFZ9dI2dA=; b=PhNLPIUZkIytVzLx3k0U/IkrWDAqW0spdJo/iHRiyj7ZA4QtPl4e8LBuIhgaGYSLosVlNsLtquy95TY7DAS0v3krABplF6NgYlDzGYCDpMoTv/Ni+QDs2flxY4I/JSH0GDTiF/9+mIWskpWRxkbqjBb9TizHqs+703R99Vuyods= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.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 [170.10.133.124]) by mx.zohomail.com with SMTPS id 1639053324584223.2159067197839; Thu, 9 Dec 2021 04:35:24 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-437-UGOb0SC6Ps-cSzBqKqg2aw-1; Thu, 09 Dec 2021 07:34:13 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 26BE6192CC62; Thu, 9 Dec 2021 12:34:07 +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 04BB35D6CF; Thu, 9 Dec 2021 12:34:07 +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 C295D4A70B; Thu, 9 Dec 2021 12:34:06 +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 1B9CVRP1018041 for ; Thu, 9 Dec 2021 07:31:27 -0500 Received: by smtp.corp.redhat.com (Postfix) id 5E6B34ABB5; Thu, 9 Dec 2021 12:31:27 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.10]) by smtp.corp.redhat.com (Postfix) with ESMTP id B42B41B472 for ; Thu, 9 Dec 2021 12:31:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1639053323; 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=GECxPGjOIWEKG3lzui47iQOvSSLngj0dc6uFZ9dI2dA=; b=fFA+eCwgMilOJlbmrO5H1bBHSULKSynLv/MKb7NRMT8f46XFvmW1VZ2ym9F6zGcIrfejbG Yh4YfC1IKJ3gmZfrb8CNI3Q6xf+mz1zGkKZktBf7G6haoCXVMsp0lHfnXfx9xTjD2Bi3pj 48aII5LxKmkvhhAisv6ADOw3wK3yPJs= X-MC-Unique: UGOb0SC6Ps-cSzBqKqg2aw-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 24/24] qemu: command: Use 'qemuBuildChrChardevCommand' to build TPM backend Date: Thu, 9 Dec 2021 13:30:59 +0100 Message-Id: <4c9eb8d57461cd35718068bdfd35c81b5ababb82.1639052639.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.15 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: 1639053326328100001 Content-Type: text/plain; charset="utf-8" Since the backend of the TPM is a chardev we can use the common helper to instantiate it. This commit also ensures proper ordering so that the backend chardev is formatted before it's being referenced. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_command.c | 25 +++++++------------ .../aarch64-tpm.aarch64-latest.args | 2 +- .../ppc64-tpmproxy-with-tpm.ppc64-latest.args | 2 +- .../tpm-emulator-spapr.ppc64-latest.args | 2 +- .../tpm-emulator-tpm2-enc.x86_64-latest.args | 2 +- ...pm-emulator-tpm2-pstate.x86_64-latest.args | 2 +- .../tpm-emulator-tpm2.x86_64-latest.args | 2 +- .../tpm-emulator.x86_64-latest.args | 2 +- 8 files changed, 16 insertions(+), 23 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 3ca7da9d5d..613f7a5d2a 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -9734,8 +9734,7 @@ static char * qemuBuildTPMBackendStr(virCommand *cmd, virDomainTPMDef *tpm, int *tpmfd, - int *cancelfd, - char **chardev) + int *cancelfd) { g_auto(virBuffer) buf =3D VIR_BUFFER_INITIALIZER; g_autofree char *cancel_path =3D NULL; @@ -9774,10 +9773,6 @@ qemuBuildTPMBackendStr(virCommand *cmd, break; case VIR_DOMAIN_TPM_TYPE_EMULATOR: virBufferAddLit(&buf, ",chardev=3Dchrtpm"); - - *chardev =3D g_strdup_printf("socket,id=3Dchrtpm,path=3D%s", - tpm->data.emulator.source->data.nix.pat= h); - break; case VIR_DOMAIN_TPM_TYPE_LAST: return NULL; @@ -9793,22 +9788,20 @@ qemuBuildTPMCommandLine(virCommand *cmd, virDomainTPMDef *tpm, virQEMUCaps *qemuCaps) { - char *optstr; - g_autofree char *chardev =3D NULL; + g_autofree char *tpmdevstr =3D NULL; int tpmfd =3D -1; int cancelfd =3D -1; char *fdset; - if (!(optstr =3D qemuBuildTPMBackendStr(cmd, tpm, - &tpmfd, &cancelfd, - &chardev))) - return -1; + if (tpm->type =3D=3D VIR_DOMAIN_TPM_TYPE_EMULATOR) { + if (qemuBuildChardevCommand(cmd, tpm->data.emulator.source, "chrtp= m", qemuCaps) < 0) + return -1; + } - virCommandAddArgList(cmd, "-tpmdev", optstr, NULL); - VIR_FREE(optstr); + if (!(tpmdevstr =3D qemuBuildTPMBackendStr(cmd, tpm, &tpmfd, &cancelfd= ))) + return -1; - if (chardev) - virCommandAddArgList(cmd, "-chardev", chardev, NULL); + virCommandAddArgList(cmd, "-tpmdev", tpmdevstr, NULL); if (tpmfd >=3D 0) { fdset =3D qemuVirCommandGetFDSet(cmd, tpmfd); diff --git a/tests/qemuxml2argvdata/aarch64-tpm.aarch64-latest.args b/tests= /qemuxml2argvdata/aarch64-tpm.aarch64-latest.args index 77687b1d05..3125460a95 100644 --- a/tests/qemuxml2argvdata/aarch64-tpm.aarch64-latest.args +++ b/tests/qemuxml2argvdata/aarch64-tpm.aarch64-latest.args @@ -27,8 +27,8 @@ XDG_CONFIG_HOME=3D/tmp/lib/domain--1-aarch64test/.config \ -no-shutdown \ -no-acpi \ -boot strict=3Don \ --tpmdev emulator,id=3Dtpm-tpm0,chardev=3Dchrtpm \ -chardev socket,id=3Dchrtpm,path=3D/dev/test \ +-tpmdev emulator,id=3Dtpm-tpm0,chardev=3Dchrtpm \ -device '{"driver":"tpm-tis-device","tpmdev":"tpm-tpm0","id":"tpm0"}' \ -audiodev '{"id":"audio1","driver":"none"}' \ -sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ diff --git a/tests/qemuxml2argvdata/ppc64-tpmproxy-with-tpm.ppc64-latest.ar= gs b/tests/qemuxml2argvdata/ppc64-tpmproxy-with-tpm.ppc64-latest.args index 104a5ef28c..90a27ca1a8 100644 --- a/tests/qemuxml2argvdata/ppc64-tpmproxy-with-tpm.ppc64-latest.args +++ b/tests/qemuxml2argvdata/ppc64-tpmproxy-with-tpm.ppc64-latest.args @@ -28,8 +28,8 @@ XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ -boot strict=3Don \ -device '{"driver":"pci-ohci","id":"usb","bus":"pci.0","addr":"0x1"}' \ -device '{"driver":"spapr-tpm-proxy","id":"tpm0","host-path":"/dev/tpmrm0"= }' \ --tpmdev emulator,id=3Dtpm-tpm1,chardev=3Dchrtpm \ -chardev socket,id=3Dchrtpm,path=3D/dev/test \ +-tpmdev emulator,id=3Dtpm-tpm1,chardev=3Dchrtpm \ -device '{"driver":"tpm-spapr","tpmdev":"tpm-tpm1","id":"tpm1","reg":16384= }' \ -audiodev '{"id":"audio1","driver":"none"}' \ -device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x6"}' \ diff --git a/tests/qemuxml2argvdata/tpm-emulator-spapr.ppc64-latest.args b/= tests/qemuxml2argvdata/tpm-emulator-spapr.ppc64-latest.args index 90c207d544..97d310d8dc 100644 --- a/tests/qemuxml2argvdata/tpm-emulator-spapr.ppc64-latest.args +++ b/tests/qemuxml2argvdata/tpm-emulator-spapr.ppc64-latest.args @@ -36,8 +36,8 @@ XDG_CONFIG_HOME=3D/tmp/lib/domain--1-TPM-VM/.config \ -device '{"driver":"spapr-vty","chardev":"charserial0","id":"serial0","reg= ":805306368}' \ -chardev pty,id=3Dcharserial1 \ -device '{"driver":"spapr-vty","chardev":"charserial1","id":"serial1","reg= ":805310464}' \ --tpmdev emulator,id=3Dtpm-tpm0,chardev=3Dchrtpm \ -chardev socket,id=3Dchrtpm,path=3D/dev/test \ +-tpmdev emulator,id=3Dtpm-tpm0,chardev=3Dchrtpm \ -device '{"driver":"tpm-spapr","tpmdev":"tpm-tpm0","id":"tpm0","reg":20480= }' \ -audiodev '{"id":"audio1","driver":"none"}' \ -global spapr-nvram.reg=3D0x4000 \ diff --git a/tests/qemuxml2argvdata/tpm-emulator-tpm2-enc.x86_64-latest.arg= s b/tests/qemuxml2argvdata/tpm-emulator-tpm2-enc.x86_64-latest.args index 89a577d657..3b418917f3 100644 --- a/tests/qemuxml2argvdata/tpm-emulator-tpm2-enc.x86_64-latest.args +++ b/tests/qemuxml2argvdata/tpm-emulator-tpm2-enc.x86_64-latest.args @@ -27,8 +27,8 @@ XDG_CONFIG_HOME=3D/tmp/lib/domain--1-TPM-VM/.config \ -no-shutdown \ -boot menu=3Don,strict=3Don \ -device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ --tpmdev emulator,id=3Dtpm-tpm0,chardev=3Dchrtpm \ -chardev socket,id=3Dchrtpm,path=3D/dev/test \ +-tpmdev emulator,id=3Dtpm-tpm0,chardev=3Dchrtpm \ -device '{"driver":"tpm-tis","tpmdev":"tpm-tpm0","id":"tpm0"}' \ -audiodev '{"id":"audio1","driver":"none"}' \ -device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x2"}' \ diff --git a/tests/qemuxml2argvdata/tpm-emulator-tpm2-pstate.x86_64-latest.= args b/tests/qemuxml2argvdata/tpm-emulator-tpm2-pstate.x86_64-latest.args index 89a577d657..3b418917f3 100644 --- a/tests/qemuxml2argvdata/tpm-emulator-tpm2-pstate.x86_64-latest.args +++ b/tests/qemuxml2argvdata/tpm-emulator-tpm2-pstate.x86_64-latest.args @@ -27,8 +27,8 @@ XDG_CONFIG_HOME=3D/tmp/lib/domain--1-TPM-VM/.config \ -no-shutdown \ -boot menu=3Don,strict=3Don \ -device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ --tpmdev emulator,id=3Dtpm-tpm0,chardev=3Dchrtpm \ -chardev socket,id=3Dchrtpm,path=3D/dev/test \ +-tpmdev emulator,id=3Dtpm-tpm0,chardev=3Dchrtpm \ -device '{"driver":"tpm-tis","tpmdev":"tpm-tpm0","id":"tpm0"}' \ -audiodev '{"id":"audio1","driver":"none"}' \ -device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x2"}' \ diff --git a/tests/qemuxml2argvdata/tpm-emulator-tpm2.x86_64-latest.args b/= tests/qemuxml2argvdata/tpm-emulator-tpm2.x86_64-latest.args index 89a577d657..3b418917f3 100644 --- a/tests/qemuxml2argvdata/tpm-emulator-tpm2.x86_64-latest.args +++ b/tests/qemuxml2argvdata/tpm-emulator-tpm2.x86_64-latest.args @@ -27,8 +27,8 @@ XDG_CONFIG_HOME=3D/tmp/lib/domain--1-TPM-VM/.config \ -no-shutdown \ -boot menu=3Don,strict=3Don \ -device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ --tpmdev emulator,id=3Dtpm-tpm0,chardev=3Dchrtpm \ -chardev socket,id=3Dchrtpm,path=3D/dev/test \ +-tpmdev emulator,id=3Dtpm-tpm0,chardev=3Dchrtpm \ -device '{"driver":"tpm-tis","tpmdev":"tpm-tpm0","id":"tpm0"}' \ -audiodev '{"id":"audio1","driver":"none"}' \ -device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x2"}' \ diff --git a/tests/qemuxml2argvdata/tpm-emulator.x86_64-latest.args b/tests= /qemuxml2argvdata/tpm-emulator.x86_64-latest.args index 89a577d657..3b418917f3 100644 --- a/tests/qemuxml2argvdata/tpm-emulator.x86_64-latest.args +++ b/tests/qemuxml2argvdata/tpm-emulator.x86_64-latest.args @@ -27,8 +27,8 @@ XDG_CONFIG_HOME=3D/tmp/lib/domain--1-TPM-VM/.config \ -no-shutdown \ -boot menu=3Don,strict=3Don \ -device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ --tpmdev emulator,id=3Dtpm-tpm0,chardev=3Dchrtpm \ -chardev socket,id=3Dchrtpm,path=3D/dev/test \ +-tpmdev emulator,id=3Dtpm-tpm0,chardev=3Dchrtpm \ -device '{"driver":"tpm-tis","tpmdev":"tpm-tpm0","id":"tpm0"}' \ -audiodev '{"id":"audio1","driver":"none"}' \ -device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x2"}' \ --=20 2.31.1