From nobody Fri May 10 19:14:05 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=1653311405; cv=none; d=zohomail.com; s=zohoarc; b=YEab93Mc0iYplYs18O5tTr1uaNYWjnNw/quqUOjuNBoVyKM9oDorCZtRNaQWL92/nnAdztBGEbzkL7dST0UVbQAbKZDZ0xrsLU+rYA6hw92onhuwRnOVtlwSY8YXP2++WzaOT7CcyWKMxQZNSnJfzTZeE2yNhMrKDA6iOUAgOLI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653311405; 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=SV1Tg3DRxI9OcJllpleL61eGUew7hBg0n0sndCX1HuE=; b=c+Vw/f5UaTBO+vVY76FxkgZRI2ig59xUx24O+ZumH7ilwIq2lA3mJTJ/zadh3AYdZJflyILNB1SyjpZWAt6l5tsRr1BpCOeXZ8QZmouE+a1VuVGXyIbswaeOhSaApPjzhRa9xHT+ODw6CqXD0CmzT5wFRLbOSAfHl10QHE3DWcc= 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 1653311405110165.97243645950834; Mon, 23 May 2022 06:10:05 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-173-z_5Pj2dVOnuX3H2Tdf2qdQ-1; Mon, 23 May 2022 09:09:10 -0400 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 500CE1C01B3D; Mon, 23 May 2022 13:08:58 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 39E06401E74; Mon, 23 May 2022 13:08:58 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id C9306194705A; Mon, 23 May 2022 13:08:57 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 252BE1947059 for ; Mon, 23 May 2022 13:08:56 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 18653400E115; Mon, 23 May 2022 13:08:56 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id B40FC40C1438 for ; Mon, 23 May 2022 13:08:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1653311404; 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=SV1Tg3DRxI9OcJllpleL61eGUew7hBg0n0sndCX1HuE=; b=AdJ5DumXhiWvYtksJr6Bgv8Ugz4/ATUD1wk98T4BB6DIWhuBzbJ5j1tjNgJ7F2M528hYyg QilXI5Csoz3z9LR7VoS5f8p0QeheHvgXY4/DjV7Z/KxHfvPoOKVZ5pZNgCINGS24SLAYIz c1+2F9fGPMe3wEtEgvlyIjjQSmMuhNE= X-MC-Unique: z_5Pj2dVOnuX3H2Tdf2qdQ-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 01/17] Drop needless typecast to virStorageType enum Date: Mon, 23 May 2022 15:08:36 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.85 on 10.11.54.10 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: 1653311406798100003 Content-Type: text/plain; charset="utf-8"; x-default="true" There are three places (two in domain_conf.c and one in qemu_migration.c) where a virStorageSource->type is typecasted to virStorageType (for the purpose of catching missing enum member in a switch() statement at compile time). This is needless, because as of v8.2.0-rc1~120 the struct member is of proper type. Signed-off-by: Michal Privoznik Reviewed-by: Boris Fiuczynski --- src/conf/domain_conf.c | 4 ++-- src/qemu/qemu_migration.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 0b30ebc96b..6ff994dd12 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -8659,7 +8659,7 @@ virDomainStorageSourceParse(xmlNodePtr node, =20 ctxt->node =3D node; =20 - switch ((virStorageType)src->type) { + switch (src->type) { case VIR_STORAGE_TYPE_FILE: src->path =3D virXMLPropString(node, "file"); break; @@ -23350,7 +23350,7 @@ virDomainDiskSourceFormat(virBuffer *buf, g_auto(virBuffer) attrBuf =3D VIR_BUFFER_INITIALIZER; g_auto(virBuffer) childBuf =3D VIR_BUFFER_INIT_CHILD(buf); =20 - switch ((virStorageType)src->type) { + switch (src->type) { case VIR_STORAGE_TYPE_FILE: virBufferEscapeString(&attrBuf, " file=3D'%s'", src->path); break; diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 38596fa4de..176c25cd11 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -182,7 +182,7 @@ qemuMigrationDstPrecreateDisk(virConnectPtr *conn, =20 VIR_DEBUG("Precreate disk type=3D%s", virStorageTypeToString(disk->src= ->type)); =20 - switch ((virStorageType)disk->src->type) { + switch (disk->src->type) { case VIR_STORAGE_TYPE_FILE: if (!virDomainDiskGetSource(disk)) { VIR_DEBUG("Dropping sourceless disk '%s'", --=20 2.35.1 From nobody Fri May 10 19:14:05 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=1653311411; cv=none; d=zohomail.com; s=zohoarc; b=MMrX+lwMldTes9lloiU+k2jseqzCPvG4ypn0r1kTOe9bFpeKj/+rF7HRxj43TdPAdThE2B0l5Y/oK1hmXBITbAeIQ0nrwHAUryi+zfcJyfv2epXRZobtwnrJFUQ50ymhsUea2iTBGSbBM/gVuTJYdN5xwBDn9cWvjGzcAERDHNA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653311411; 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=r59vj1lY19GSF0k8xXZsnKNxM3ZueyNlQfVA5rRw+Ls=; b=ZBwsL98JiXPyKnnkAP9rj3hbMRkJ4HkTy19tcgI2LX3wkUiHXeTmzGo7a6zTc2uBhLJR3CSzu6VZUDPizef+SgHsXCIP/fMDh782AWFpGaNKTl6ZMVzYA2dWkd2Rwm/hkTTy8X98vWEf0HqqAlQvBZ598gZOsw/98MRU0loIsmM= 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 1653311411681420.454688219677; Mon, 23 May 2022 06:10:11 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-629-kqenD-cdOuODlq8_0DEVGw-1; Mon, 23 May 2022 09:09:12 -0400 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 9B7CB100BAC9; Mon, 23 May 2022 13:09:00 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 83BCA401E9D; Mon, 23 May 2022 13:09:00 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 247D4194705A; Mon, 23 May 2022 13:09:00 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 00D9D1947059 for ; Mon, 23 May 2022 13:08:57 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id C8527400E13A; Mon, 23 May 2022 13:08:56 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5278C400E115 for ; Mon, 23 May 2022 13:08:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1653311408; 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=r59vj1lY19GSF0k8xXZsnKNxM3ZueyNlQfVA5rRw+Ls=; b=f9jgx9vFErXj1wMsH/cWC5S6wbwU+urIUrj0fb+8CfHVQLguLt4bu0wLbPQdA5XgTfq5g3 f40PR3KjxfwGe0SyRzna1pqAgqqQDqRsOnUpX4WIodJT84m3+wdOuvoA7nRHsoTiQtg/z+ /Myc6YsE0tfJztxBzLQ8hwaQO0UHaQs= X-MC-Unique: kqenD-cdOuODlq8_0DEVGw-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 02/17] virStorageSourceGetActualType: Change type of retval Date: Mon, 23 May 2022 15:08:37 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.85 on 10.11.54.10 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: 1653311412919100001 Content-Type: text/plain; charset="utf-8"; x-default="true" The virStorageSourceGetActualType() function returns either virStorageSource->type (which is of type virStorageType), or virStorageSourcePoolDef->type, which really stores a value of the same enum. Thus, the latter struct can be changed so that the virStorageSourceGetActualType() function can return correct type instead of generic int. Signed-off-by: Michal Privoznik Reviewed-by: Boris Fiuczynski --- src/conf/storage_source_conf.c | 2 +- src/conf/storage_source_conf.h | 4 ++-- src/libxl/libxl_conf.c | 2 +- src/libxl/libxl_domain.c | 2 +- src/libxl/xen_xl.c | 4 ++-- src/locking/domain_lock.c | 2 +- src/qemu/qemu_block.c | 12 ++++++------ src/qemu/qemu_command.c | 8 ++++---- src/qemu/qemu_domain.c | 4 ++-- src/qemu/qemu_driver.c | 2 +- src/qemu/qemu_migration.c | 4 ++-- src/qemu/qemu_snapshot.c | 16 ++++++++-------- src/storage_file/storage_source.c | 4 ++-- 13 files changed, 33 insertions(+), 33 deletions(-) diff --git a/src/conf/storage_source_conf.c b/src/conf/storage_source_conf.c index 1a7284ec12..2b4cf5e241 100644 --- a/src/conf/storage_source_conf.c +++ b/src/conf/storage_source_conf.c @@ -1004,7 +1004,7 @@ virStorageSourcePoolDefFree(virStorageSourcePoolDef *= def) * and virDomainDiskTranslateSourcePool was called on @def the actual type * of the storage volume is returned rather than VIR_STORAGE_TYPE_VOLUME. */ -int +virStorageType virStorageSourceGetActualType(const virStorageSource *def) { if (def->type =3D=3D VIR_STORAGE_TYPE_VOLUME && diff --git a/src/conf/storage_source_conf.h b/src/conf/storage_source_conf.h index 035ea7016d..f2440cec6a 100644 --- a/src/conf/storage_source_conf.h +++ b/src/conf/storage_source_conf.h @@ -199,7 +199,7 @@ struct _virStorageSourcePoolDef { char *volume; /* volume name */ int voltype; /* virStorageVolType, internal only */ int pooltype; /* virStoragePoolType from storage_conf.h, internal only= */ - int actualtype; /* virStorageType, internal only */ + virStorageType actualtype; /* internal only */ int mode; /* virStorageSourcePoolMode, currently makes sense only for = iscsi pool */ }; =20 @@ -469,7 +469,7 @@ virStorageSourcePoolDefFree(virStorageSourcePoolDef *de= f); void virStorageSourceClear(virStorageSource *def); =20 -int +virStorageType virStorageSourceGetActualType(const virStorageSource *def); =20 bool diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c index 726ecdc945..401e47344e 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -1067,7 +1067,7 @@ libxlMakeDisk(virDomainDiskDef *l_disk, libxl_device_= disk *x_disk) { const char *driver =3D virDomainDiskGetDriver(l_disk); int format =3D virDomainDiskGetFormat(l_disk); - int actual_type =3D virStorageSourceGetActualType(l_disk->src); + virStorageType actual_type =3D virStorageSourceGetActualType(l_disk->s= rc); =20 if (actual_type =3D=3D VIR_STORAGE_TYPE_NETWORK) { if (STRNEQ_NULLABLE(driver, "qemu")) { diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c index af938192a9..49ac09d8a4 100644 --- a/src/libxl/libxl_domain.c +++ b/src/libxl/libxl_domain.c @@ -330,7 +330,7 @@ libxlDomainDeviceDefPostParse(virDomainDeviceDef *dev, =20 if (dev->type =3D=3D VIR_DOMAIN_DEVICE_DISK) { virDomainDiskDef *disk =3D dev->data.disk; - int actual_type =3D virStorageSourceGetActualType(disk->src); + virStorageType actual_type =3D virStorageSourceGetActualType(disk-= >src); int format =3D virDomainDiskGetFormat(disk); =20 /* for network-based disks, set 'qemu' as the default driver */ diff --git a/src/libxl/xen_xl.c b/src/libxl/xen_xl.c index 6b7f638783..eb3b0b3718 100644 --- a/src/libxl/xen_xl.c +++ b/src/libxl/xen_xl.c @@ -1489,14 +1489,14 @@ xenFormatXLDiskSrcNet(virStorageSource *src) static int xenFormatXLDiskSrc(virStorageSource *src, char **srcstr) { - int actualType =3D virStorageSourceGetActualType(src); + virStorageType actualType =3D virStorageSourceGetActualType(src); =20 *srcstr =3D NULL; =20 if (virStorageSourceIsEmpty(src)) return 0; =20 - switch ((virStorageType)actualType) { + switch (actualType) { case VIR_STORAGE_TYPE_BLOCK: case VIR_STORAGE_TYPE_FILE: case VIR_STORAGE_TYPE_DIR: diff --git a/src/locking/domain_lock.c b/src/locking/domain_lock.c index 9934e91aa9..8966980532 100644 --- a/src/locking/domain_lock.c +++ b/src/locking/domain_lock.c @@ -72,7 +72,7 @@ static int virDomainLockManagerAddImage(virLockManager *l= ock, virStorageSource *src) { unsigned int diskFlags =3D 0; - int type =3D virStorageSourceGetActualType(src); + virStorageType type =3D virStorageSourceGetActualType(src); =20 if (!src->path) return 0; diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index 60e03d418e..877c66d62b 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -1128,7 +1128,7 @@ virJSONValue * qemuBlockStorageSourceGetBackendProps(virStorageSource *src, unsigned int flags) { - int actualType =3D virStorageSourceGetActualType(src); + virStorageType actualType =3D virStorageSourceGetActualType(src); g_autoptr(virJSONValue) fileprops =3D NULL; const char *driver =3D NULL; virTristateBool aro =3D VIR_TRISTATE_BOOL_ABSENT; @@ -1145,7 +1145,7 @@ qemuBlockStorageSourceGetBackendProps(virStorageSourc= e *src, ro =3D VIR_TRISTATE_BOOL_NO; } =20 - switch ((virStorageType)actualType) { + switch (actualType) { case VIR_STORAGE_TYPE_BLOCK: case VIR_STORAGE_TYPE_FILE: if (virStorageSourceIsBlockLocal(src)) { @@ -2200,7 +2200,7 @@ char * qemuBlockGetBackingStoreString(virStorageSource *src, bool pretty) { - int actualType =3D virStorageSourceGetActualType(src); + virStorageType actualType =3D virStorageSourceGetActualType(src); g_autoptr(virJSONValue) backingProps =3D NULL; g_autoptr(virJSONValue) sliceProps =3D NULL; virJSONValue *props =3D NULL; @@ -2599,12 +2599,12 @@ int qemuBlockStorageSourceCreateGetStorageProps(virStorageSource *src, virJSONValue **props) { - int actualType =3D virStorageSourceGetActualType(src); + virStorageType actualType =3D virStorageSourceGetActualType(src); g_autoptr(virJSONValue) location =3D NULL; const char *driver =3D NULL; const char *filename =3D NULL; =20 - switch ((virStorageType) actualType) { + switch (actualType) { case VIR_STORAGE_TYPE_FILE: driver =3D "file"; filename =3D src->path; @@ -2745,7 +2745,7 @@ qemuBlockStorageSourceCreateStorage(virDomainObj *vm, virStorageSource *chain, virDomainAsyncJob asyncJob) { - int actualType =3D virStorageSourceGetActualType(src); + virStorageType actualType =3D virStorageSourceGetActualType(src); g_autoptr(virJSONValue) createstorageprops =3D NULL; int ret; =20 diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 34dffb0615..33069ea131 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -1736,7 +1736,7 @@ qemuGetDriveSourceString(virStorageSource *src, qemuDomainSecretInfo *secinfo, char **source) { - int actualType =3D virStorageSourceGetActualType(src); + virStorageType actualType =3D virStorageSourceGetActualType(src); =20 *source =3D NULL; =20 @@ -1744,7 +1744,7 @@ qemuGetDriveSourceString(virStorageSource *src, if (virStorageSourceIsEmpty(src)) return 1; =20 - switch ((virStorageType)actualType) { + switch (actualType) { case VIR_STORAGE_TYPE_BLOCK: case VIR_STORAGE_TYPE_FILE: case VIR_STORAGE_TYPE_DIR: @@ -1803,7 +1803,7 @@ qemuDiskBusIsSD(int bus) static bool qemuDiskSourceNeedsProps(virStorageSource *src) { - int actualType =3D virStorageSourceGetActualType(src); + virStorageType actualType =3D virStorageSourceGetActualType(src); =20 if (actualType =3D=3D VIR_STORAGE_TYPE_NETWORK && src->protocol =3D=3D VIR_STORAGE_NET_PROTOCOL_GLUSTER && @@ -1879,7 +1879,7 @@ static int qemuBuildDriveSourceStr(virDomainDiskDef *disk, virBuffer *buf) { - int actualType =3D virStorageSourceGetActualType(disk->src); + virStorageType actualType =3D virStorageSourceGetActualType(disk->src); qemuDomainStorageSourcePrivate *srcpriv =3D QEMU_DOMAIN_STORAGE_SOURCE= _PRIVATE(disk->src); qemuDomainSecretInfo *secinfo =3D NULL; qemuDomainSecretInfo *encinfo =3D NULL; diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 31e60c7359..948ab76304 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -4809,7 +4809,7 @@ qemuDomainValidateStorageSource(virStorageSource *src, virQEMUCaps *qemuCaps, bool maskBlockdev) { - int actualType =3D virStorageSourceGetActualType(src); + virStorageType actualType =3D virStorageSourceGetActualType(src); bool blockdev =3D virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV); =20 if (maskBlockdev) @@ -10932,7 +10932,7 @@ qemuDomainPrepareDiskSource(virDomainDiskDef *disk, /* set default format for storage pool based disks */ if (disk->src->type =3D=3D VIR_STORAGE_TYPE_VOLUME && disk->src->format <=3D VIR_STORAGE_FILE_NONE) { - int actualType =3D virStorageSourceGetActualType(disk->src); + virStorageType actualType =3D virStorageSourceGetActualType(disk->= src); =20 if (actualType =3D=3D VIR_STORAGE_TYPE_DIR) disk->src->format =3D VIR_STORAGE_FILE_FAT; diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 6631edb9d6..1d50aa5271 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -14790,7 +14790,7 @@ qemuDomainBlockCopyValidateMirror(virStorageSource = *mirror, const char *dst, bool *reuse) { - int desttype =3D virStorageSourceGetActualType(mirror); + virStorageType desttype =3D virStorageSourceGetActualType(mirror); struct stat st; =20 if (!virStorageSourceIsLocalStorage(mirror)) diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 176c25cd11..97ce9ac27e 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -1504,7 +1504,7 @@ qemuMigrationSrcIsSafe(virDomainDef *def, for (i =3D 0; i < def->ndisks; i++) { virDomainDiskDef *disk =3D def->disks[i]; const char *src =3D virDomainDiskGetSource(disk); - int actualType =3D virStorageSourceGetActualType(disk->src); + virStorageType actualType =3D virStorageSourceGetActualType(disk->= src); bool unsafe =3D false; =20 /* Disks without any source (i.e. floppies and CD-ROMs) @@ -1519,7 +1519,7 @@ qemuMigrationSrcIsSafe(virDomainDef *def, continue; =20 /* However, disks on local FS (e.g. ext4) are not safe. */ - switch ((virStorageType) actualType) { + switch (actualType) { case VIR_STORAGE_TYPE_FILE: if ((rc =3D virFileIsSharedFS(src)) < 0) { return false; diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c index b62fab7bb3..c6beeda1d0 100644 --- a/src/qemu/qemu_snapshot.c +++ b/src/qemu/qemu_snapshot.c @@ -380,10 +380,10 @@ static int qemuSnapshotPrepareDiskExternalInactive(virDomainSnapshotDiskDef *snapdisk, virDomainDiskDef *domdisk) { - int domDiskType =3D virStorageSourceGetActualType(domdisk->src); - int snapDiskType =3D virStorageSourceGetActualType(snapdisk->src); + virStorageType domDiskType =3D virStorageSourceGetActualType(domdisk->= src); + virStorageType snapDiskType =3D virStorageSourceGetActualType(snapdisk= ->src); =20 - switch ((virStorageType)domDiskType) { + switch (domDiskType) { case VIR_STORAGE_TYPE_BLOCK: case VIR_STORAGE_TYPE_FILE: break; @@ -425,7 +425,7 @@ qemuSnapshotPrepareDiskExternalInactive(virDomainSnapsh= otDiskDef *snapdisk, return -1; } =20 - switch ((virStorageType)snapDiskType) { + switch (snapDiskType) { case VIR_STORAGE_TYPE_BLOCK: case VIR_STORAGE_TYPE_FILE: break; @@ -456,7 +456,7 @@ qemuSnapshotPrepareDiskExternalActive(virDomainObj *vm, virDomainDiskDef *domdisk, bool blockdev) { - int actualType =3D virStorageSourceGetActualType(snapdisk->src); + virStorageType actualType =3D virStorageSourceGetActualType(snapdisk->= src); =20 if (snapdisk->snapshot =3D=3D VIR_DOMAIN_SNAPSHOT_LOCATION_MANUAL) return 0; @@ -471,7 +471,7 @@ qemuSnapshotPrepareDiskExternalActive(virDomainObj *vm, if (!qemuDomainDiskBlockJobIsSupported(vm, domdisk)) return -1; =20 - switch ((virStorageType)actualType) { + switch (actualType) { case VIR_STORAGE_TYPE_BLOCK: case VIR_STORAGE_TYPE_FILE: break; @@ -620,7 +620,7 @@ static int qemuSnapshotPrepareDiskInternal(virDomainDiskDef *disk, bool active) { - int actualType; + virStorageType actualType; =20 /* active disks are handled by qemu itself so no need to worry about t= hose */ if (active) @@ -631,7 +631,7 @@ qemuSnapshotPrepareDiskInternal(virDomainDiskDef *disk, =20 actualType =3D virStorageSourceGetActualType(disk->src); =20 - switch ((virStorageType)actualType) { + switch (actualType) { case VIR_STORAGE_TYPE_BLOCK: case VIR_STORAGE_TYPE_FILE: return 0; diff --git a/src/storage_file/storage_source.c b/src/storage_file/storage_s= ource.c index 698b9eb79d..dd2bb2641d 100644 --- a/src/storage_file/storage_source.c +++ b/src/storage_file/storage_source.c @@ -807,7 +807,7 @@ static int virStorageSourceGetBackendForSupportCheck(const virStorageSource *src, virStorageFileBackend **backend) { - int actualType; + virStorageType actualType; =20 =20 if (!src) { @@ -944,7 +944,7 @@ int virStorageSourceInitAs(virStorageSource *src, uid_t uid, gid_t gid) { - int actualType =3D virStorageSourceGetActualType(src); + virStorageType actualType =3D virStorageSourceGetActualType(src); virStorageDriverData *drv =3D g_new0(virStorageDriverData, 1); =20 src->drv =3D drv; --=20 2.35.1 From nobody Fri May 10 19:14:05 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=1653311351; cv=none; d=zohomail.com; s=zohoarc; b=HAImZgOqtJEoVfYr5u5wxATUpPp35eNlDObCYy81pwSQQYu67Ye4HLvNiB4NJ/4q9FjCNFHsx8AkcOweckGXnKEeKKDXe17Dicc8kGgxmOu5dQxUaF047b6Z3ZZN7go5RYvUYcQBaYyRmP+GyyOzjRyDa2Bhoj6uUs+hypozMjQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653311351; 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=onUA+Q1Kl4uGTPpAucpEk7K7yJUl5y+k9F6OX9h1xD0=; b=k8AGklYTb9DUy3IcLXw1Kc3EMtMVMwcN0v8n0VEA2w1FI6nqwa9IU3MJi9b5lcH6BWE8BtFblp40HmjeM7O8IGMaCJfm3PUsGYTQeMY3fMQVfEn6Uh3yYEcUDMdscrZPWeLhZLqx76YO9XmQMn0VLDpxqfClbDmm4M5IxCOHvtU= 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 1653311351479777.7189371112537; Mon, 23 May 2022 06:09:11 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-641-aKY77S_tPD2HUJU-TRCXlA-1; Mon, 23 May 2022 09:09:08 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id CEB1C101A52C; Mon, 23 May 2022 13:08:59 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id BA5D91121319; Mon, 23 May 2022 13:08:59 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 85749194705A; Mon, 23 May 2022 13:08:59 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 84B761947059 for ; Mon, 23 May 2022 13:08:57 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 66A65400E115; Mon, 23 May 2022 13:08:57 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0DD9A40C1438 for ; Mon, 23 May 2022 13:08:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1653311350; 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=onUA+Q1Kl4uGTPpAucpEk7K7yJUl5y+k9F6OX9h1xD0=; b=F/buaSmbBlLc/BAtgOCHLfndmP4n+yM4OpOyzHZ3+sqwplVZgKlG42+xSFOgcf8nWQ1Bep O8G5pMml8q3keribDPQ8cl1LaWm6TIiKYwUb2xroxtFZs8h1ejFVv8KXksyXuYR883uoMn ZgdejyrpvdVOZXKHYeXqIUrELiH2nR4= X-MC-Unique: aKY77S_tPD2HUJU-TRCXlA-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 03/17] virDomainBackupDefParse: Switch to virXMLPropEnumDefault() Date: Mon, 23 May 2022 15:08:38 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 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: 1653311352616100001 Content-Type: text/plain; charset="utf-8"; x-default="true" The virDomainBackupDefParse() function uses old style of parsing XML (virXMLPropString + str2enum conversion). Use virXMLPropEnumDefault() which encapsulates those steps. Signed-off-by: Michal Privoznik Reviewed-by: Boris Fiuczynski --- src/conf/backup_conf.c | 16 ++++++---------- src/conf/backup_conf.h | 2 +- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/src/conf/backup_conf.c b/src/conf/backup_conf.c index 2a7fa95e0c..11d533a905 100644 --- a/src/conf/backup_conf.c +++ b/src/conf/backup_conf.c @@ -201,22 +201,18 @@ virDomainBackupDefParse(xmlXPathContextPtr ctxt, g_autoptr(virDomainBackupDef) def =3D NULL; g_autofree xmlNodePtr *nodes =3D NULL; xmlNodePtr node =3D NULL; - g_autofree char *mode =3D NULL; bool push; size_t i; int n; =20 def =3D g_new0(virDomainBackupDef, 1); =20 - def->type =3D VIR_DOMAIN_BACKUP_TYPE_PUSH; - - if ((mode =3D virXMLPropString(ctxt->node, "mode"))) { - if ((def->type =3D virDomainBackupTypeFromString(mode)) <=3D 0) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unknown backup mode '%s'"), mode); - return NULL; - } - } + if (virXMLPropEnumDefault(ctxt->node, "mode", + virDomainBackupTypeFromString, + VIR_XML_PROP_NONZERO, + &def->type, + VIR_DOMAIN_BACKUP_TYPE_PUSH) < 0) + return NULL; =20 push =3D def->type =3D=3D VIR_DOMAIN_BACKUP_TYPE_PUSH; =20 diff --git a/src/conf/backup_conf.h b/src/conf/backup_conf.h index dc66b75892..413488e123 100644 --- a/src/conf/backup_conf.h +++ b/src/conf/backup_conf.h @@ -76,7 +76,7 @@ struct _virDomainBackupDiskDef { typedef struct _virDomainBackupDef virDomainBackupDef; struct _virDomainBackupDef { /* Public XML. */ - int type; /* virDomainBackupType */ + virDomainBackupType type; char *incremental; virStorageNetHostDef *server; /* only when type =3D=3D PULL */ virTristateBool tls; /* use TLS for NBD */ --=20 2.35.1 From nobody Fri May 10 19:14:05 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=1653311356; cv=none; d=zohomail.com; s=zohoarc; b=Ll86aYyF5hNF5xWI2yG0SEL5qWgalnTo8VyiImKdX5YaPqHqNUcmGpXhQTYF/P7D9Fcx414LnPnvoJKPkT60YKvfWmUe6/TG9CsZwG0fCea8iOp054bJzqdSJ35SfUkG255jiXo9JE9ekQfY0lupNRTjGRbZdcAg2BG41EIwzGo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653311356; 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=nGnjNWTJtfTaBqKV1PsmpsJF6QHOu/uKgVJYM0HdKRQ=; b=ZPIVAKk98OHmmGOaTKR7Rfq3oRqWM8lGc5ixxQqUSLw8RuukyXpNGG4QIv+1ebZt14huAQEgfF0v78akih0n4tH6xYu0r6QQDZYh+hvy780Dv03jwyv4hKF/bLxCrwe8AWSMcG4nQ+6Y0OrJHJGP1hC7mzC9Z53HKvdgccqLxRg= 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 165331135681055.53394532452751; Mon, 23 May 2022 06:09:16 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-624-VRTOGh_CN5qgwuNXUCGgKA-1; Mon, 23 May 2022 09:09:09 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id E978C38149B0; Mon, 23 May 2022 13:09:00 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id CE884111F3C7; Mon, 23 May 2022 13:09:00 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 69A1C194706F; Mon, 23 May 2022 13:09:00 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 2CF3D1947060 for ; Mon, 23 May 2022 13:08:58 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 0829C40D1B9F; Mon, 23 May 2022 13:08:58 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id A0C1F40C1438 for ; Mon, 23 May 2022 13:08:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1653311355; 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=nGnjNWTJtfTaBqKV1PsmpsJF6QHOu/uKgVJYM0HdKRQ=; b=adPw61Fnqh619N56/6o6uK0VJ0pCkP/4rwkYQSGwg7lgWCDZMXR12u9ePpd+N9pXrU0oOo i5KU1+m7o+m1x491bWkD+eEyScvOWTcU60NENUwyBlyXd0DV8Zsf1tpasuYG7T5SQ8/dhm Syvwc55kxJuMBWIcScq4aLp9d/o2H1k= X-MC-Unique: VRTOGh_CN5qgwuNXUCGgKA-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 04/17] virDomainDeviceAddressParseXML: Switch to virXMLPropEnumDefault() Date: Mon, 23 May 2022 15:08:39 +0200 Message-Id: <68148d77b86c219273da400023dc256c86ad5d4f.1653311261.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 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: 1653311358599100005 Content-Type: text/plain; charset="utf-8"; x-default="true" The virDomainDeviceAddressParseXML() function uses old style of parsing XML (virXMLPropString + str2enum conversion). Use virXMLPropEnumDefault() which encapsulates those steps. Signed-off-by: Michal Privoznik --- src/conf/device_conf.c | 12 ++++++++- src/conf/device_conf.h | 4 +-- src/conf/domain_conf.c | 22 +++++----------- src/conf/domain_validate.c | 2 +- src/qemu/qemu_command.c | 4 +-- src/qemu/qemu_monitor.c | 54 +++++++++++++++++++++++--------------- src/qemu/qemu_validate.c | 2 +- 7 files changed, 57 insertions(+), 43 deletions(-) diff --git a/src/conf/device_conf.c b/src/conf/device_conf.c index cb523d3a0d..f5270a54ea 100644 --- a/src/conf/device_conf.c +++ b/src/conf/device_conf.c @@ -100,7 +100,7 @@ virDomainDeviceInfoAddressIsEqual(const virDomainDevice= Info *a, if (a->type !=3D b->type) return false; =20 - switch ((virDomainDeviceAddressType) a->type) { + switch (a->type) { case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE: case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_LAST: /* address types below don't have any specific data */ @@ -457,6 +457,16 @@ virDomainDeviceAddressIsValid(virDomainDeviceInfo *inf= o, =20 case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_USB: return true; + + case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE: + case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_SERIAL: + case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCID: + case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_SPAPRVIO: + case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_ISA: + case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DIMM: + case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_UNASSIGNED: + case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_LAST: + return false; } =20 return false; diff --git a/src/conf/device_conf.h b/src/conf/device_conf.h index b6b710d313..d8f4ca4f17 100644 --- a/src/conf/device_conf.h +++ b/src/conf/device_conf.h @@ -32,7 +32,7 @@ #include "virenum.h" =20 typedef enum { - VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE, + VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE =3D 0, VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI, VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE, VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_SERIAL, @@ -128,7 +128,7 @@ struct _virDomainDeviceDimmAddress { typedef struct _virDomainDeviceInfo virDomainDeviceInfo; struct _virDomainDeviceInfo { char *alias; - int type; /* virDomainDeviceAddressType */ + virDomainDeviceAddressType type; union { virPCIDeviceAddress pci; virDomainDeviceDriveAddress drive; diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 6ff994dd12..a9c424e71d 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -6536,7 +6536,7 @@ virDomainDeviceInfoFormat(virBuffer *buf, virBufferAsprintf(&attrBuf, " type=3D'%s'", virDomainDeviceAddressTypeToString(info->type)); =20 - switch ((virDomainDeviceAddressType) info->type) { + switch (info->type) { case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI: if (!virPCIDeviceAddressIsEmpty(&info->addr.pci)) { virBufferAsprintf(&attrBuf, " domain=3D'0x%04x' bus=3D'0x%02x'= " @@ -6709,21 +6709,13 @@ static int virDomainDeviceAddressParseXML(xmlNodePtr address, virDomainDeviceInfo *info) { - g_autofree char *type =3D virXMLPropString(address, "type"); - - if (type) { - if ((info->type =3D virDomainDeviceAddressTypeFromString(type)) <= =3D 0) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unknown address type '%s'"), type); - return -1; - } - } else { - virReportError(VIR_ERR_INTERNAL_ERROR, - "%s", _("No type specified for device address")); + if (virXMLPropEnum(address, "type", + virDomainDeviceAddressTypeFromString, + VIR_XML_PROP_NONZERO | VIR_XML_PROP_REQUIRED, + &info->type) < 0) return -1; - } =20 - switch ((virDomainDeviceAddressType) info->type) { + switch (info->type) { case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI: if (virPCIDeviceAddressParseXML(address, &info->addr.pci) < 0) return -1; @@ -20658,7 +20650,7 @@ virDomainDeviceInfoCheckABIStability(virDomainDevic= eInfo *src, return false; } =20 - switch ((virDomainDeviceAddressType) src->type) { + switch (src->type) { case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI: if (src->addr.pci.domain !=3D dst->addr.pci.domain || src->addr.pci.bus !=3D dst->addr.pci.bus || diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c index 627c366fe9..28234f910d 100644 --- a/src/conf/domain_validate.c +++ b/src/conf/domain_validate.c @@ -2459,7 +2459,7 @@ virDomainDeviceInfoValidate(const virDomainDeviceDef = *dev) if (!(info =3D virDomainDeviceGetInfo(dev))) return 0; =20 - switch ((virDomainDeviceAddressType) info->type) { + switch (info->type) { case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI: case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE: case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_SPAPRVIO: diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 33069ea131..7eb7def747 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -543,7 +543,7 @@ qemuBuildDeviceAddressProps(virJSONValue *props, const virDomainDef *domainDef, const virDomainDeviceInfo *info) { - switch ((virDomainDeviceAddressType) info->type) { + switch (info->type) { case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI: { g_autofree char *pciaddr =3D NULL; g_autofree char *bus =3D qemuBuildDeviceAddressPCIGetBus(domainDef= , info); @@ -982,7 +982,7 @@ qemuBuildVirtioDevGetConfig(const virDomainDeviceDef *d= evice, =20 virBufferAdd(&buf, baseName, -1); =20 - switch ((virDomainDeviceAddressType) info->type) { + switch (info->type) { case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI: implName =3D "pci"; break; diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index d44c7f0c60..3e4dd0d504 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -946,7 +946,7 @@ qemuMonitorInitBalloonObjectPath(qemuMonitor *mon, { ssize_t i, nprops =3D 0; char *path =3D NULL; - const char *name; + const char *name =3D NULL; qemuMonitorJSONListPath **bprops =3D NULL; =20 if (mon->balloonpath) { @@ -961,31 +961,43 @@ qemuMonitorInitBalloonObjectPath(qemuMonitor *mon, switch (balloon->info.type) { case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI: switch (balloon->model) { - case VIR_DOMAIN_MEMBALLOON_MODEL_VIRTIO: - name =3D "virtio-balloon-pci"; - break; - case VIR_DOMAIN_MEMBALLOON_MODEL_VIRTIO_TRANSITIONAL: - name =3D "virtio-balloon-pci-transitional"; - break; - case VIR_DOMAIN_MEMBALLOON_MODEL_VIRTIO_NON_TRANSITIONAL: - name =3D "virtio-balloon-pci-non-transitional"; - break; - case VIR_DOMAIN_MEMBALLOON_MODEL_XEN: - case VIR_DOMAIN_MEMBALLOON_MODEL_NONE: - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("invalid model for virtio-balloon-pci")); - return; - case VIR_DOMAIN_MEMBALLOON_MODEL_LAST: - default: - virReportEnumRangeError(virDomainMemballoonModel, - balloon->model); - return; + case VIR_DOMAIN_MEMBALLOON_MODEL_VIRTIO: + name =3D "virtio-balloon-pci"; + break; + case VIR_DOMAIN_MEMBALLOON_MODEL_VIRTIO_TRANSITIONAL: + name =3D "virtio-balloon-pci-transitional"; + break; + case VIR_DOMAIN_MEMBALLOON_MODEL_VIRTIO_NON_TRANSITIONAL: + name =3D "virtio-balloon-pci-non-transitional"; + break; + case VIR_DOMAIN_MEMBALLOON_MODEL_XEN: + case VIR_DOMAIN_MEMBALLOON_MODEL_NONE: + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("invalid model for virtio-balloon-pci")); + return; + case VIR_DOMAIN_MEMBALLOON_MODEL_LAST: + default: + virReportEnumRangeError(virDomainMemballoonModel, + balloon->model); + return; } break; case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW: name =3D "virtio-balloon-ccw"; break; - default: + + case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE: + case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE: + case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_SERIAL: + case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCID: + case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_USB: + case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_SPAPRVIO: + case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_S390: + case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_MMIO: + case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_ISA: + case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DIMM: + case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_UNASSIGNED: + case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_LAST: return; } =20 diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 9b6245e6d7..e8830c4cd3 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -1399,7 +1399,7 @@ qemuValidateDomainDeviceDefAddress(const virDomainDev= iceDef *dev, const virDomainDef *def, virQEMUCaps *qemuCaps) { - switch ((virDomainDeviceAddressType) info->type) { + switch (info->type) { case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI: if (qemuValidateDomainDeviceDefZPCIAddress(info, qemuCaps) < 0) return -1; --=20 2.35.1 From nobody Fri May 10 19:14:05 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=1653311404; cv=none; d=zohomail.com; s=zohoarc; b=W4cYqs+30fhSlmY+TIEA8gDj52sBnMWKwo+NagnUmt6hlz2e7FqalAn1LpcIxZnGZysFYKT3+mTos/bZC3wJcHHe8dtLGp5JpX0Pg/94xZceM9ExZf/EPVwUCExnFYrcruxwchSSgwTLPUl01unFvEOECJMJ3bZFain3IPmYv8E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653311404; 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=6HZKy7gq+To0B+faxkCxFdREEW75TiPCX9f5QkK8l9w=; b=Zh3eHp/Yee3Kmuc1SkTDg/KOpBeldf2um/4oo/taZbCrQeMJKKbyq9ySpKzNB688JyI6Lzk3hEwvkc+mRE1ApmQ7TCbcTTmeuKu+s5MwshcZK9hum5geQ6gMJYG16dtEELYSFRl/GOF553X9nd5nLGnl6n6xb/cfaQgMwsNV15g= 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 1653311404188662.3293041292536; Mon, 23 May 2022 06:10:04 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-139-dLew05phNMGue4TSf5yXDg-1; Mon, 23 May 2022 09:09:18 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id E05AC101AA4D; Mon, 23 May 2022 13:09:08 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id CCC0AC50941; Mon, 23 May 2022 13:09:08 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 8927F194705C; Mon, 23 May 2022 13:09:08 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id B52DE1947059 for ; Mon, 23 May 2022 13:08:58 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 985A7400E115; Mon, 23 May 2022 13:08:58 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3FB154010E2C for ; Mon, 23 May 2022 13:08:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1653311403; 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=6HZKy7gq+To0B+faxkCxFdREEW75TiPCX9f5QkK8l9w=; b=NR9LuyUbMvUQE9Pmmbx4AcW2Y/GyUjaC9dGefSh8kLF7xNejPVnBjbBlvVnz/QgeBYTzh0 B3hd7QnH1PjrdGJ9UrUtFU2mAVlNbJLFA0/yJ7AGv33TmpgCwN8P1Q5UmjpFU+Tutu32RW UJvweUGZ9PavdZesYh1iG/tFyZtiPaY= X-MC-Unique: dLew05phNMGue4TSf5yXDg-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 05/17] virDomainStorageNetworkParseHost: Switch to virXMLPropEnumDefault() Date: Mon, 23 May 2022 15:08:40 +0200 Message-Id: <03dd43ef98ba08b743dea98f1c5bcf8d7849746f.1653311261.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.85 on 10.11.54.8 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: 1653311404821100001 Content-Type: text/plain; charset="utf-8"; x-default="true" The virDomainStorageNetworkParseHost() function uses old style of parsing XML (virXMLPropString + str2enum conversion). Use virXMLPropEnumDefault() which encapsulates those steps. Signed-off-by: Michal Privoznik Reviewed-by: Boris Fiuczynski --- src/conf/domain_conf.c | 19 +++++++------------ src/conf/storage_source_conf.h | 2 +- src/qemu/qemu_backup.c | 2 +- src/qemu/qemu_block.c | 2 +- src/qemu/qemu_command.c | 2 ++ src/qemu/qemu_monitor_json.c | 2 +- .../storage_file_backend_gluster.c | 2 +- .../storage_source_backingstore.c | 16 ++++++++++------ 8 files changed, 24 insertions(+), 23 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index a9c424e71d..17ac74abcd 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -7006,22 +7006,17 @@ virDomainStorageNetworkParseHost(xmlNodePtr hostnod= e, virStorageNetHostDef *host) { int ret =3D -1; - g_autofree char *transport =3D NULL; g_autofree char *port =3D NULL; =20 memset(host, 0, sizeof(*host)); - host->transport =3D VIR_STORAGE_NET_HOST_TRANS_TCP; =20 /* transport can be tcp (default), unix or rdma. */ - if ((transport =3D virXMLPropString(hostnode, "transport"))) { - host->transport =3D virStorageNetHostTransportTypeFromString(trans= port); - if (host->transport < 0) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unknown protocol transport type '%s'"), - transport); - goto cleanup; - } - } + if (virXMLPropEnumDefault(hostnode, "transport", + virStorageNetHostTransportTypeFromString, + VIR_XML_PROP_NONE, + &host->transport, + VIR_STORAGE_NET_HOST_TRANS_TCP) < 0) + goto cleanup; =20 host->socket =3D virXMLPropString(hostnode, "socket"); =20 @@ -7037,7 +7032,7 @@ virDomainStorageNetworkParseHost(xmlNodePtr hostnode, virReportError(VIR_ERR_XML_ERROR, _("transport '%s' does not support " "socket attribute"), - transport); + virStorageNetHostTransportTypeToString(host->transp= ort)); goto cleanup; } =20 diff --git a/src/conf/storage_source_conf.h b/src/conf/storage_source_conf.h index f2440cec6a..3afad96bdb 100644 --- a/src/conf/storage_source_conf.h +++ b/src/conf/storage_source_conf.h @@ -150,7 +150,7 @@ typedef struct _virStorageNetHostDef virStorageNetHostD= ef; struct _virStorageNetHostDef { char *name; unsigned int port; - int transport; /* virStorageNetHostTransport */ + virStorageNetHostTransport transport; char *socket; /* path to unix socket */ }; =20 diff --git a/src/qemu/qemu_backup.c b/src/qemu/qemu_backup.c index 427c090dd8..ef87f99177 100644 --- a/src/qemu/qemu_backup.c +++ b/src/qemu/qemu_backup.c @@ -73,7 +73,7 @@ qemuBackupPrepare(virDomainBackupDef *def) def->server->name =3D g_strdup("localhost"); } =20 - switch ((virStorageNetHostTransport) def->server->transport) { + switch (def->server->transport) { case VIR_STORAGE_NET_HOST_TRANS_TCP: /* TODO: Update qemu.conf to provide a port range, * probably starting at 10809, for obtaining automatic diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index 877c66d62b..ba5e5ef625 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -452,7 +452,7 @@ qemuBlockStorageSourceBuildJSONSocketAddress(virStorage= NetHostDef *host, const char *field; g_autofree char *port =3D NULL; =20 - switch ((virStorageNetHostTransport) host->transport) { + switch (host->transport) { case VIR_STORAGE_NET_HOST_TRANS_TCP: if (legacy) transport =3D "tcp"; diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 7eb7def747..dac8aabad4 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -1619,6 +1619,8 @@ qemuBuildNetworkDriveStr(virStorageSource *src, virBufferAsprintf(&buf, "unix:%s", src->hosts->socket); break; =20 + case VIR_STORAGE_NET_HOST_TRANS_RDMA: + case VIR_STORAGE_NET_HOST_TRANS_LAST: default: virReportError(VIR_ERR_INTERNAL_ERROR, _("nbd does not support transport '%s'"= ), diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index dc05dfd047..afe45c415b 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -6499,7 +6499,7 @@ qemuMonitorJSONNBDServerStart(qemuMonitor *mon, g_autoptr(virJSONValue) addr =3D NULL; g_autofree char *port_str =3D NULL; =20 - switch ((virStorageNetHostTransport)server->transport) { + switch (server->transport) { case VIR_STORAGE_NET_HOST_TRANS_TCP: port_str =3D g_strdup_printf("%u", server->port); addr =3D qemuMonitorJSONBuildInetSocketAddress(server->name, port_= str); diff --git a/src/storage_file/storage_file_backend_gluster.c b/src/storage_= file/storage_file_backend_gluster.c index 2aee61bf33..cd16a6c40c 100644 --- a/src/storage_file/storage_file_backend_gluster.c +++ b/src/storage_file/storage_file_backend_gluster.c @@ -65,7 +65,7 @@ virStorageFileBackendGlusterInitServer(virStorageFileBack= endGlusterPriv *priv, const char *hoststr =3D NULL; int port =3D 0; =20 - switch ((virStorageNetHostTransport) host->transport) { + switch (host->transport) { case VIR_STORAGE_NET_HOST_TRANS_RDMA: case VIR_STORAGE_NET_HOST_TRANS_TCP: hoststr =3D host->name; diff --git a/src/storage_file/storage_source_backingstore.c b/src/storage_f= ile/storage_source_backingstore.c index e48ae725ab..71c5eca13c 100644 --- a/src/storage_file/storage_source_backingstore.c +++ b/src/storage_file/storage_source_backingstore.c @@ -65,12 +65,16 @@ virStorageSourceParseBackingURI(virStorageSource *src, return -1; } =20 - if (scheme[1] && - (src->hosts->transport =3D virStorageNetHostTransportTypeFromStrin= g(scheme[1])) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, - _("invalid protocol transport type '%s'"), - scheme[1]); - return -1; + if (scheme[1]) { + int transport; + if ((transport =3D virStorageNetHostTransportTypeFromString(scheme= [1])) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("invalid protocol transport type '%s'"), + scheme[1]); + return -1; + } + + src->hosts->transport =3D transport; } =20 if (uri->query) { --=20 2.35.1 From nobody Fri May 10 19:14:05 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=1653311404; cv=none; d=zohomail.com; s=zohoarc; b=UXHeeB6vUHYC/1SPLQN03nBYFAO8v+0QGs+tIuO/nc9+8ZkSHSAIu8VNPUVbCsek6bns8ARJiM2AjzxdMOqPDNwvMIl+/m1o6NevAlq634MRFQPfEWPhOEBRQRb0cNnWXZtoBrZe5OnSyogTneojt9qsCbNmgBOqg+Q1QFqmgW4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653311404; 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=DM3YKULO/P0CirJRPohfR1ZS9hDglpXzr8gB2tELjkg=; b=QGuebxu8v+fE2+MrfMkfLjRtLn3PcPj53FNZzkf17/iK3JMLOspayF6pW5dsmLQBp/5T5qPieY2GPnLBQfkQvvYDcngVxYDzUmt3Ba7pyWPM1WYvs36glHcQ3iPvhPo2sCwqojYcGGvaRrVEQJoOx5O/TK6BcnmVrm+BDrVjptY= 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 1653311404668459.73377415726554; Mon, 23 May 2022 06:10:04 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-650-yXAMFaF3OXesSnzkjPEySA-1; Mon, 23 May 2022 09:09:12 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 88C0D8564E6; Mon, 23 May 2022 13:09:02 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 71C3340C1438; Mon, 23 May 2022 13:09:02 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 4C80E194705B; Mon, 23 May 2022 13:09:02 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 420C51947059 for ; Mon, 23 May 2022 13:08:59 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 371F6400E122; Mon, 23 May 2022 13:08:59 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id D2160400E115 for ; Mon, 23 May 2022 13:08:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1653311403; 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=DM3YKULO/P0CirJRPohfR1ZS9hDglpXzr8gB2tELjkg=; b=RNpRlQgaWRoZ5miAZLV+/1U/466fRyLNA5vxgrGbzH3/2qVASuUSSzkRfp7Y7FpQUaSf/K 1U4znJRVyE3LXo/RnOTBXa7JPnV8B9QvpBtP3H0x2DL+u8ECmSokpUDe5EheMra7+Siir7 M4a0sb5aNivD/tw1P+/C2mNrwh1BUx8= X-MC-Unique: yXAMFaF3OXesSnzkjPEySA-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 06/17] virDomainHostdevSubsysSCSIDefParseXML: Switch to virXMLPropEnumDefault() Date: Mon, 23 May 2022 15:08:41 +0200 Message-Id: <0af289d74bbc77cbd06e3fe9e87ba75be3c8a9cf.1653311261.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 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: 1653311406803100004 Content-Type: text/plain; charset="utf-8"; x-default="true" The virDomainHostdevSubsysSCSIDefParseXML() function uses old style of parsing XML (virXMLPropString + str2enum conversion). Use virXMLPropEnumDefault() which encapsulates those steps. Signed-off-by: Michal Privoznik Reviewed-by: Boris Fiuczynski --- src/conf/domain_conf.c | 19 ++++++------------- src/conf/domain_conf.h | 2 +- src/qemu/qemu_command.c | 4 ++-- src/qemu/qemu_domain.c | 4 ++-- src/qemu/qemu_driver.c | 2 +- src/qemu/qemu_process.c | 2 +- tests/qemuxml2argvtest.c | 2 +- 7 files changed, 14 insertions(+), 21 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 17ac74abcd..ded2c4aacf 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -7233,20 +7233,13 @@ virDomainHostdevSubsysSCSIDefParseXML(xmlNodePtr so= urcenode, unsigned int flags, virDomainXMLOption *xmlopt) { - g_autofree char *protocol =3D NULL; + if (virXMLPropEnum(sourcenode, "protocol", + virDomainHostdevSubsysSCSIProtocolTypeFromString, + VIR_XML_PROP_NONE, + &scsisrc->protocol) < 0) + return -1; =20 - if ((protocol =3D virXMLPropString(sourcenode, "protocol"))) { - scsisrc->protocol =3D - virDomainHostdevSubsysSCSIProtocolTypeFromString(protocol); - if (scsisrc->protocol < 0) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("Unknown SCSI subsystem protocol '%s'"), - protocol); - return -1; - } - } - - switch ((virDomainHostdevSCSIProtocolType) scsisrc->protocol) { + switch (scsisrc->protocol) { case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_NONE: return virDomainHostdevSubsysSCSIHostDefParseXML(sourcenode, ctxt,= scsisrc, flags, xmlopt); diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index f325bfb51e..667845ac10 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -270,7 +270,7 @@ typedef enum { } virDomainDeviceSGIO; =20 struct _virDomainHostdevSubsysSCSI { - int protocol; /* enum virDomainHostdevSCSIProtocolType */ + virDomainHostdevSCSIProtocolType protocol; virDomainDeviceSGIO sgio; virTristateBool rawio; union { diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index dac8aabad4..5ea88bf239 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -5284,7 +5284,7 @@ qemuBuildHostdevSCSIDetachPrepare(virDomainHostdevDef= *hostdev, virStorageSource *src; qemuDomainStorageSourcePrivate *srcpriv; =20 - switch ((virDomainHostdevSCSIProtocolType) scsisrc->protocol) { + switch (scsisrc->protocol) { case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_NONE: src =3D scsisrc->u.host.src; break; @@ -5325,7 +5325,7 @@ qemuBuildHostdevSCSIAttachPrepare(virDomainHostdevDef= *hostdev, virStorageSource *src =3D NULL; =20 if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV_HOSTDEV_SCSI)) { - switch ((virDomainHostdevSCSIProtocolType) scsisrc->protocol) { + switch (scsisrc->protocol) { case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_NONE: src =3D scsisrc->u.host.src; break; diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 948ab76304..30ef5b7550 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -5731,7 +5731,7 @@ qemuDomainDeviceHostdevDefPostParseRestoreBackendAlia= s(virDomainHostdevDef *host !virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV_HOSTDEV_SCSI)) return 0; =20 - switch ((virDomainHostdevSCSIProtocolType) scsisrc->protocol) { + switch (scsisrc->protocol) { case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_NONE: if (!scsisrc->u.host.src) scsisrc->u.host.src =3D virStorageSourceNew(); @@ -10961,7 +10961,7 @@ qemuDomainPrepareHostdev(virDomainHostdevDef *hostd= ev, virDomainHostdevSubsysSCSI *scsisrc =3D &hostdev->source.subsys.u.= scsi; virStorageSource *src =3D NULL; =20 - switch ((virDomainHostdevSCSIProtocolType) scsisrc->protocol) { + switch (scsisrc->protocol) { case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_NONE: virObjectUnref(scsisrc->u.host.src); scsisrc->u.host.src =3D virStorageSourceNew(); diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 1d50aa5271..f0be25a12d 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -6284,7 +6284,7 @@ qemuConnectDomainXMLToNativePrepareHostHostdev(virDom= ainHostdevDef *hostdev) if (virHostdevIsSCSIDevice(hostdev)) { virDomainHostdevSubsysSCSI *scsisrc =3D &hostdev->source.subsys.u.= scsi; =20 - switch ((virDomainHostdevSCSIProtocolType) scsisrc->protocol) { + switch (scsisrc->protocol) { case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_NONE: { virDomainHostdevSubsysSCSIHost *scsihostsrc =3D &scsisrc->u.ho= st; virStorageSource *src =3D scsisrc->u.host.src; diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 033d3d5bc6..929986745e 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -6368,7 +6368,7 @@ qemuProcessPrepareHostHostdev(virDomainHostdevDef *ho= stdev) if (virHostdevIsSCSIDevice(hostdev)) { virDomainHostdevSubsysSCSI *scsisrc =3D &hostdev->source.subsys.u.= scsi; =20 - switch ((virDomainHostdevSCSIProtocolType) scsisrc->protocol) { + switch (scsisrc->protocol) { case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_NONE: { virDomainHostdevSubsysSCSIHost *scsihostsrc =3D &scsisrc->u.ho= st; virStorageSource *src =3D scsisrc->u.host.src; diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index aadfaddc17..4a5da784fa 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -425,7 +425,7 @@ testCompareXMLToArgvCreateArgs(virQEMUDriver *drv, if (virHostdevIsSCSIDevice(hostdev)) { virDomainHostdevSubsysSCSI *scsisrc =3D &hostdev->source.subsy= s.u.scsi; =20 - switch ((virDomainHostdevSCSIProtocolType) scsisrc->protocol) { + switch (scsisrc->protocol) { case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_NONE: scsisrc->u.host.src->path =3D g_strdup("/dev/sg0"); break; --=20 2.35.1 From nobody Fri May 10 19:14:05 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=1653311469; cv=none; d=zohomail.com; s=zohoarc; b=RsFKzyHTsrKk6ZbbQ//ZY/rt5hdMDGgUY3UkqWSjUQB62VAXmSg3MEHZDytMJ4H1i5v/xW5tvcWRSTfyNp9b0GWpvz8uvdRoOxka3odH76dz3FfFizow9g+Qw78fnftbdcCJF+ypVhk4DUAGbCk+E3OXTLPMBI4S/3jYTPDoxRQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653311469; 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=R6GaKwTnfzCCq8UE8QhLMwphZ4r8jd8ds4+/zMVQJH0=; b=CB4IL5TdufxU4wOCOtJC0CAPkQedso9J37IV3y8aDpAOvkl4iNumdwajiLcM8m+3L+XYGk6x0ce4wGrM11fnjRYHcm4+74ap5PYct+Wq37FL97FMzkHM6jLD++cv31rf6/VdAfEOKZrcNHsJY4vLfD511NSvR7xfpDjLBwljDow= 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 1653311469875676.4813543924366; Mon, 23 May 2022 06:11:09 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-595-9ezNYx4tNLGouKMD7n1S2g-1; Mon, 23 May 2022 09:09:16 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 5866B810BCF; Mon, 23 May 2022 13:09:01 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 40522C50943; Mon, 23 May 2022 13:09:01 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id D74AE1947074; Mon, 23 May 2022 13:09:00 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id E71C0194705A for ; Mon, 23 May 2022 13:08:59 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id CB0E940C1257; Mon, 23 May 2022 13:08:59 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id 70571400E115 for ; Mon, 23 May 2022 13:08:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1653311468; 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=R6GaKwTnfzCCq8UE8QhLMwphZ4r8jd8ds4+/zMVQJH0=; b=dWtL/QHKBKJhjWXB2FPilkLUrEeGEKex9ik2SEhBe2WyteLT8cMf6Qp9sCusG/x/HSq6HG zH7xySCoDvRzoO1dk/P5gZinkVg/cCpa+QL4bcUw+Fx38BQd6xtmPRaeTIgE/ryhR9YxPc X1qwJAsFvzURsY+kBhwdO5dkuFE52us= X-MC-Unique: 9ezNYx4tNLGouKMD7n1S2g-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 07/17] virDomainHostdevSubsysSCSIVHostDefParseXML: Switch to virXMLPropEnumDefault() Date: Mon, 23 May 2022 15:08:42 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.85 on 10.11.54.8 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: 1653311471173100001 Content-Type: text/plain; charset="utf-8"; x-default="true" The virDomainHostdevSubsysSCSIVHostDefParseXML() function uses old style of parsing XML (virXMLPropString + str2enum conversion). Use virXMLPropEnumDefault() which encapsulates those steps. Signed-off-by: Michal Privoznik Reviewed-by: Boris Fiuczynski --- src/conf/domain_conf.c | 19 +++++-------------- src/conf/domain_conf.h | 4 ++-- 2 files changed, 7 insertions(+), 16 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index ded2c4aacf..561af84eed 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -7262,24 +7262,15 @@ virDomainHostdevSubsysSCSIVHostDefParseXML(xmlNodeP= tr sourcenode, virDomainHostdevDef *def) { virDomainHostdevSubsysSCSIVHost *hostsrc =3D &def->source.subsys.u.scs= i_host; - g_autofree char *protocol =3D NULL; g_autofree char *wwpn =3D NULL; =20 - if (!(protocol =3D virXMLPropString(sourcenode, "protocol"))) { - virReportError(VIR_ERR_XML_ERROR, "%s", - _("Missing scsi_host subsystem protocol")); + if (virXMLPropEnum(sourcenode, "protocol", + virDomainHostdevSubsysSCSIHostProtocolTypeFromStrin= g, + VIR_XML_PROP_NONZERO | VIR_XML_PROP_REQUIRED, + &hostsrc->protocol) < 0) return -1; - } =20 - if ((hostsrc->protocol =3D - virDomainHostdevSubsysSCSIHostProtocolTypeFromString(protocol)) <= =3D 0) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("Unknown scsi_host subsystem protocol '%s'"), - protocol); - return -1; - } - - switch ((virDomainHostdevSubsysSCSIHostProtocolType) hostsrc->protocol= ) { + switch (hostsrc->protocol) { case VIR_DOMAIN_HOSTDEV_SUBSYS_SCSI_HOST_PROTOCOL_TYPE_VHOST: if (!(wwpn =3D virXMLPropString(sourcenode, "wwpn"))) { virReportError(VIR_ERR_XML_ERROR, "%s", diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 667845ac10..2f00cc7f79 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -287,7 +287,7 @@ struct _virDomainHostdevSubsysMediatedDev { }; =20 typedef enum { - VIR_DOMAIN_HOSTDEV_SUBSYS_SCSI_HOST_PROTOCOL_TYPE_NONE, + VIR_DOMAIN_HOSTDEV_SUBSYS_SCSI_HOST_PROTOCOL_TYPE_NONE =3D 0, VIR_DOMAIN_HOSTDEV_SUBSYS_SCSI_HOST_PROTOCOL_TYPE_VHOST, =20 VIR_DOMAIN_HOSTDEV_SUBSYS_SCSI_HOST_PROTOCOL_TYPE_LAST, @@ -307,7 +307,7 @@ typedef enum { VIR_ENUM_DECL(virDomainHostdevSubsysSCSIVHostModel); =20 struct _virDomainHostdevSubsysSCSIVHost { - int protocol; /* enum virDomainHostdevSubsysSCSIHostProtocolType */ + virDomainHostdevSubsysSCSIHostProtocolType protocol; char *wwpn; virDomainHostdevSubsysSCSIVHostModelType model; }; --=20 2.35.1 From nobody Fri May 10 19:14:05 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=1653311355; cv=none; d=zohomail.com; s=zohoarc; b=helLImHbI2IqnELBBdJcZQYGdQCqQwN8oObxAi1EL68w2Cs7pGhaVURd0VZtftprvbI4BtttIexwVgWbFlOkwND22YS1NkNJ0gaUFwDGT0k8+tWj24Bc8F4sdLw0WwdOAFK2oR5dMPkzgXHPeFZ/pRv/mAHO8x7HUcU0OyCxo90= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653311355; 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=cnjV9kgJEPjDW/iFM/8o9YxrQCZgXAYq3Xys9ibrM9o=; b=GE9s8EBlYYKJaLSPppfCOnNoIiCYpw+R9DxfXZCHUW0RZSTKwvs4bQ/FB0vkLv4u2cJ1sm4TbCGmWcbh84gLf2Ik0naCGsEVcmss65xdmkqLpydlHw4VzSn5rZ3RNOP+KI+BMXCp4eK5o4xLE5s6uHEw24U8euC32R0r2Nu10vs= 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 1653311355348115.03291443952412; Mon, 23 May 2022 06:09:15 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-546-h-nMRAEsNJCpTSrvW3sRIQ-1; Mon, 23 May 2022 09:09:12 -0400 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 531561044560; Mon, 23 May 2022 13:09:01 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3F6BC492C14; Mon, 23 May 2022 13:09:01 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id D07191947073; Mon, 23 May 2022 13:09:00 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 783EA1947071 for ; Mon, 23 May 2022 13:09:00 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 66D68400E115; Mon, 23 May 2022 13:09:00 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0E6CB40D1B98 for ; Mon, 23 May 2022 13:08:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1653311354; 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=cnjV9kgJEPjDW/iFM/8o9YxrQCZgXAYq3Xys9ibrM9o=; b=NXYq3PX50UrfIB2gCBaP9rPlmlzGYufix+lyWoTUIrsFwp6WZ0Aj9UMUr7YU2twoQPPRrl TjJVZEl1LjY2kquY2xJAsi4YhXN3MxfFGFYRC3XtjtkPDACyA/pVtoEKIOuhc8nkHGwde7 EQrlJDErjVH7PUiGk4FokdDw/9ZbyrY= X-MC-Unique: h-nMRAEsNJCpTSrvW3sRIQ-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 08/17] virDomainDiskSourceNVMeParse: Switch to virXMLPropEnumDefault() Date: Mon, 23 May 2022 15:08:43 +0200 Message-Id: <1656e91dbd1752e80f370bc70f3aebc53cd95904.1653311261.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.85 on 10.11.54.10 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: 1653311356603100002 Content-Type: text/plain; charset="utf-8"; x-default="true" The virDomainDiskSourceNVMeParse() function uses old style of parsing XML (virXMLPropString + str2enum conversion). Use virXMLPropEnumDefault() which encapsulates those steps. Signed-off-by: Michal Privoznik Reviewed-by: Boris Fiuczynski --- src/conf/domain_conf.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 561af84eed..bf9db38340 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -8405,7 +8405,6 @@ virDomainDiskSourceNVMeParse(xmlNodePtr node, { g_autoptr(virStorageSourceNVMeDef) nvme =3D NULL; g_autofree char *type =3D NULL; - g_autofree char *namespc =3D NULL; xmlNodePtr address; =20 nvme =3D g_new0(virStorageSourceNVMeDef, 1); @@ -8423,18 +8422,10 @@ virDomainDiskSourceNVMeParse(xmlNodePtr node, return -1; } =20 - if (!(namespc =3D virXMLPropString(node, "namespace"))) { - virReportError(VIR_ERR_XML_ERROR, "%s", - _("missing 'namespace' attribute to disk source")); + if (virXMLPropULongLong(node, "namespace", 10, + VIR_XML_PROP_REQUIRED, + &nvme->namespc) < 0) return -1; - } - - if (virStrToLong_ull(namespc, NULL, 10, &nvme->namespc) < 0) { - virReportError(VIR_ERR_XML_ERROR, - _("malformed namespace '%s'"), - namespc); - return -1; - } =20 if (virXMLPropTristateBool(node, "managed", VIR_XML_PROP_NONE, &nvme->managed) < 0) --=20 2.35.1 From nobody Fri May 10 19:14:05 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=1653311413; cv=none; d=zohomail.com; s=zohoarc; b=hmfHVa3RleKHpB1NhuRfXC9SMvM4yikOLR7UqG6hiURAouCNUKNYEyrcdQd7w1y02eodDR0dO5D8+qYzasV3F4BsBXh1B0vCkDREfStuQKvk7NkS3lhL6RgrX9L8+8KYQd/zl+zMcBOWbIAjTXoHPcVpWJnTx8q/VsRfShOf+7s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653311413; 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=C0Giu7Wl78DkQ38sQjR8G33hHztKUx5471REcAzn124=; b=NAojUkSphJw5m2gOwz9EAhHoLQONamFQOP0KDQQn/mFm04erOO2LuMinstDZud/1Cv+exJ2rp8vzd2hhwJRiwu5bV5iaPxApX8quqACv7uZo427ptcSuTRFxlGluokEvu5SKS0g8CkU/UpqTRmsfZKg++Wdg8HPbpA/gfUmy66I= 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 1653311413314233.48470947585622; Mon, 23 May 2022 06:10:13 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-439-0dJbK3ITNI6IU0D7dWiJHA-1; Mon, 23 May 2022 09:09:14 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 0416880419D; Mon, 23 May 2022 13:09:03 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id E28EF40D1B98; Mon, 23 May 2022 13:09:02 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id A0A041947064; Mon, 23 May 2022 13:09:02 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 300BA1947063 for ; Mon, 23 May 2022 13:09:01 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 0EF3040C1438; Mon, 23 May 2022 13:09:01 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id A070C400E115 for ; Mon, 23 May 2022 13:09:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1653311411; 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=C0Giu7Wl78DkQ38sQjR8G33hHztKUx5471REcAzn124=; b=RAVK8/9Njy0S5bt3jbiApF7w9DrVn0/acTDl2zkQz3qBcNASjdv5k1UTEaiiyC8mxoqJqF 2nFIy+8brJF8A4365i7qA1trB6ZQnhAwXGibiL5fVjq8fCh8TNVAa9o1atXNkJmjYEOyLf 97hAccrrp0Z+QVPwDjEeiwdJNS/oo4k= X-MC-Unique: 0dJbK3ITNI6IU0D7dWiJHA-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 09/17] virDomainDiskDefMirrorParse: Switch to virXMLPropEnumDefault() Date: Mon, 23 May 2022 15:08:44 +0200 Message-Id: <11b40235718a5d95445c051cfa0fd785cca9c458.1653311261.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 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: 1653311414857100003 Content-Type: text/plain; charset="utf-8"; x-default="true" The virDomainDiskDefMirrorParse() function uses old style of parsing XML (virXMLPropString + str2enum conversion). Use virXMLPropEnumDefault() which encapsulates those steps. Signed-off-by: Michal Privoznik Reviewed-by: Boris Fiuczynski --- src/conf/domain_conf.c | 26 ++++++++++---------------- src/conf/domain_conf.h | 4 ++-- src/qemu/qemu_process.c | 6 ++++-- 3 files changed, 16 insertions(+), 20 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index bf9db38340..4e1835fd34 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -8804,21 +8804,16 @@ virDomainDiskDefMirrorParse(virDomainDiskDef *def, VIR_XPATH_NODE_AUTORESTORE(ctxt) g_autofree char *mirrorFormat =3D NULL; g_autofree char *mirrorType =3D NULL; - g_autofree char *ready =3D NULL; - g_autofree char *blockJob =3D NULL; g_autofree char *index =3D NULL; =20 ctxt->node =3D cur; =20 - if ((blockJob =3D virXMLPropString(cur, "job"))) { - if ((def->mirrorJob =3D virDomainBlockJobTypeFromString(blockJob))= <=3D 0) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unknown mirror job type '%s'"), blockJob); - return -1; - } - } else { - def->mirrorJob =3D VIR_DOMAIN_BLOCK_JOB_TYPE_COPY; - } + if (virXMLPropEnumDefault(cur, "job", + virDomainBlockJobTypeFromString, + VIR_XML_PROP_NONZERO, + &def->mirrorJob, + VIR_DOMAIN_BLOCK_JOB_TYPE_COPY) < 0) + return -1; =20 if ((mirrorType =3D virXMLPropString(cur, "type"))) { mirrorFormat =3D virXPathString("string(./format/@type)", ctxt); @@ -8860,12 +8855,11 @@ virDomainDiskDefMirrorParse(virDomainDiskDef *def, } } =20 - if ((ready =3D virXMLPropString(cur, "ready")) && - (def->mirrorState =3D virDomainDiskMirrorStateTypeFromString(ready= )) < 0) { - virReportError(VIR_ERR_XML_ERROR, - _("unknown mirror ready state %s"), ready); + if (virXMLPropEnum(cur, "ready", + virDomainDiskMirrorStateTypeFromString, + VIR_XML_PROP_NONE, + &def->mirrorState) < 0) return -1; - } =20 if (virParseScaledValue("./format/metadata_cache/max_size", NULL, ctxt, diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 2f00cc7f79..30aa0ed8d3 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -564,8 +564,8 @@ struct _virDomainDiskDef { unsigned int rotation_rate; =20 virStorageSource *mirror; - int mirrorState; /* enum virDomainDiskMirrorState */ - int mirrorJob; /* virDomainBlockJobType */ + virDomainDiskMirrorState mirrorState; + virDomainBlockJobType mirrorJob; =20 struct { unsigned int cylinders; diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 929986745e..85bf452a59 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -8660,8 +8660,10 @@ qemuProcessRefreshLegacyBlockjob(void *payload, } =20 if (jobtype =3D=3D QEMU_BLOCKJOB_TYPE_COMMIT && - disk->mirrorJob =3D=3D VIR_DOMAIN_BLOCK_JOB_TYPE_ACTIVE_COMMIT) - jobtype =3D disk->mirrorJob; + disk->mirrorJob =3D=3D VIR_DOMAIN_BLOCK_JOB_TYPE_ACTIVE_COMMIT) { + /* This typecast is safe because of how the enum is declared. */ + jobtype =3D (qemuBlockJobType) disk->mirrorJob; + } =20 if (!(job =3D qemuBlockJobDiskNew(vm, disk, jobtype, jobname))) return -1; --=20 2.35.1 From nobody Fri May 10 19:14:05 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=1653311354; cv=none; d=zohomail.com; s=zohoarc; b=f15uSJG9l/uRMYkvvar2P7mCXjr8TBjaoGsdUnecZxdTdcVcxjomY48EoOGxSnLsoYFPoKGMQURm4pJgtmZFkomv/gFAC/wEQqIa8a1EdKTtyPM4m//Q3r6tM9/wEXkGZ8COqYv0w4wxMilhUGTFxLH5EfBcd57+TQZo3DfZmAg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653311354; 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=09pdgaoswjtwuhjUgwJhOKP0xknKPiYvljAEEx++bMA=; b=n1HRloGBKuvFFhlv7VkYl082pYdMYwavTsvUnz0PCiwXKgKSyIhpBQ0Xj2sxRnin4ldoXZpPDTz76smu8bK1pszv3NtTrkFP4C6QSNugKHGSfd5RomuqaN0TpljEFlZZRkTkBfvZhTWFqS/c7loLGIgmi53Aua6a5PLl0XHjMA8= 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 1653311354964526.849046945238; Mon, 23 May 2022 06:09:14 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-437-TqVgg0ikN0W191F2pZp9bA-1; Mon, 23 May 2022 09:09:11 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 9F85418A0180; Mon, 23 May 2022 13:09:03 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8B7B72166B25; Mon, 23 May 2022 13:09:03 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 57591194705A; Mon, 23 May 2022 13:09:03 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id B1F31194705A for ; Mon, 23 May 2022 13:09:01 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id A1E17400E115; Mon, 23 May 2022 13:09:01 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id 48A4F40D2828 for ; Mon, 23 May 2022 13:09:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1653311354; 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=09pdgaoswjtwuhjUgwJhOKP0xknKPiYvljAEEx++bMA=; b=YpkPM0tYvxIKQ7YDlKCilaDK3yRC95a3EagdtMHzJv0esBk/oR9POBliW+sZ0r32hIwF2+ +P8JLWABOZJtjKkMRb/X9ECwpjKO0LtHsYidoshs34GvF2c1fwk9O2f6IouEQO/zo93Lwa Ib5UqqbTSX7Gwu28U6A+N0Dl3AnLL58= X-MC-Unique: TqVgg0ikN0W191F2pZp9bA-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 10/17] virDomainDiskSourcePoolDefParse: Switch to virXMLPropEnumDefault() Date: Mon, 23 May 2022 15:08:45 +0200 Message-Id: <0167f0b0536a09de7b01f4920b3b274e18f5f2e6.1653311261.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 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: 1653311356596100001 Content-Type: text/plain; charset="utf-8"; x-default="true" The virDomainDiskSourcePoolDefParse() function uses old style of parsing XML (virXMLPropString + str2enum conversion). Use virXMLPropEnumDefault() which encapsulates those steps. Signed-off-by: Michal Privoznik Reviewed-by: Boris Fiuczynski --- src/conf/domain_conf.c | 12 ++++-------- src/conf/storage_source_conf.h | 2 +- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 4e1835fd34..c42ac9c0c9 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -8193,7 +8193,6 @@ virDomainDiskSourcePoolDefParse(xmlNodePtr node, { virStorageSourcePoolDef *source; int ret =3D -1; - g_autofree char *mode =3D NULL; =20 *srcpool =3D NULL; =20 @@ -8201,7 +8200,6 @@ virDomainDiskSourcePoolDefParse(xmlNodePtr node, =20 source->pool =3D virXMLPropString(node, "pool"); source->volume =3D virXMLPropString(node, "volume"); - mode =3D virXMLPropString(node, "mode"); =20 /* CD-ROM and Floppy allows no source */ if (!source->pool && !source->volume) { @@ -8216,13 +8214,11 @@ virDomainDiskSourcePoolDefParse(xmlNodePtr node, goto cleanup; } =20 - if (mode && - (source->mode =3D virStorageSourcePoolModeTypeFromString(mode)) <= =3D 0) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unknown source mode '%s' for volume type disk"), - mode); + if (virXMLPropEnum(node, "mode", + virStorageSourcePoolModeTypeFromString, + VIR_XML_PROP_NONZERO, + &source->mode) < 0) goto cleanup; - } =20 *srcpool =3D g_steal_pointer(&source); ret =3D 0; diff --git a/src/conf/storage_source_conf.h b/src/conf/storage_source_conf.h index 3afad96bdb..b99a952702 100644 --- a/src/conf/storage_source_conf.h +++ b/src/conf/storage_source_conf.h @@ -200,7 +200,7 @@ struct _virStorageSourcePoolDef { int voltype; /* virStorageVolType, internal only */ int pooltype; /* virStoragePoolType from storage_conf.h, internal only= */ virStorageType actualtype; /* internal only */ - int mode; /* virStorageSourcePoolMode, currently makes sense only for = iscsi pool */ + virStorageSourcePoolMode mode; /* currently makes sense only for iscsi= pool */ }; =20 =20 --=20 2.35.1 From nobody Fri May 10 19:14:05 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=1653311413; cv=none; d=zohomail.com; s=zohoarc; b=GUE91KyM08F8zjUU92KRpzXc/1tiDMCI5rKTdvLbUdZljP8kW/7h1fDmyYgrryTaX2yx3Vgo+LCG0fNkAJU/kii+uTemducBBRdAVyo6Tl+B+wo3O1VNOMptqSA9EUXmCT+1QSDQIjLpWLa4eHyr5/Pi5Lir9zEvOJS8oxGtzJc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653311413; 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=xEtlCon82zvVJLlcjnsOSQuLEdxz3j/Fmp5eC4gb/BQ=; b=FKa5xTXQ8uzmA4H0kDfmetSLxT+9kmW8o0Pz3uDjOP3D93x/MEj2RCqRYnogZqEhry8qZwt8745nmcV5UkOCe+s5MN8EHDt1iK2LVP7Ca1T2QD7f8Z0XCd4AO72GKKnLTRE937IbqQONZOvuJevDFUMZOEEKiSAr31xOCdJIorA= 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 1653311413798885.8904884105735; Mon, 23 May 2022 06:10:13 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-330--WFnZ39hMHaXCoyhZJfSKg-1; Mon, 23 May 2022 09:09:14 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 055CB803B42; Mon, 23 May 2022 13:09:06 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id E4B482166B2D; Mon, 23 May 2022 13:09:05 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 9EF58194705A; Mon, 23 May 2022 13:09:05 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 4BDB9194705A for ; Mon, 23 May 2022 13:09:02 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 3FC5B400E122; Mon, 23 May 2022 13:09:02 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id DABCD4010E22 for ; Mon, 23 May 2022 13:09:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1653311412; 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=xEtlCon82zvVJLlcjnsOSQuLEdxz3j/Fmp5eC4gb/BQ=; b=VCCyesIRgXSiNGr/cKtaCF+/JxaueTz21wUR1CsURMjcsg8B2IHrtTQK6EpZzEzEfa/xMj /AP25MnL+ctpX416x4ey/rf/PS6h9MD790rJN7CnTRQ3AVO0G7WFmYDZRSlVSgGjQuVlCt H0hg3UzH2yLHxTyfqvGCEkkfmPeaTqQ= X-MC-Unique: -WFnZ39hMHaXCoyhZJfSKg-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 11/17] virDomainDiskDefParseSourceXML: Switch to virXMLPropEnumDefault() Date: Mon, 23 May 2022 15:08:46 +0200 Message-Id: <712c1fa50b64b3781d7dbab9be0bbf8ff089c00d.1653311261.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 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: 1653311414859100004 Content-Type: text/plain; charset="utf-8"; x-default="true" The virDomainDiskDefParseSourceXML() function uses old style of parsing XML (virXMLPropString + str2enum conversion). Use virXMLPropEnumDefault() which encapsulates those steps. Signed-off-by: Michal Privoznik Reviewed-by: Boris Fiuczynski --- src/conf/domain_conf.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index c42ac9c0c9..44b507b74d 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -9039,15 +9039,11 @@ virDomainDiskDefParseSourceXML(virDomainXMLOption *= xmlopt, if (virDomainStorageSourceParse(tmp, ctxt, src, flags, xmlopt) < 0) return NULL; =20 - if (!(flags & VIR_DOMAIN_DEF_PARSE_INACTIVE)) { - g_autofree char *sourceindex =3D NULL; - - if ((sourceindex =3D virXMLPropString(tmp, "index")) && - virStrToLong_uip(sourceindex, NULL, 10, &src->id) < 0) { - virReportError(VIR_ERR_XML_ERROR, - _("invalid disk index '%s'"), sourceindex); - return NULL; - } + if (!(flags & VIR_DOMAIN_DEF_PARSE_INACTIVE) && + virXMLPropUInt(tmp, "index", 10, + VIR_XML_PROP_NONE, + &src->id) < 0) { + return NULL; } } else { /* Reset src->type in case when 'source' was not present */ --=20 2.35.1 From nobody Fri May 10 19:14:05 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=1653311474; cv=none; d=zohomail.com; s=zohoarc; b=EgpT+38noVrxC8WYWAxeaLzWh4vnSL+NBIbXt/7JGfFOfEhVC8PSEwlCSNrcGEZsQyfUnfTWVzO417Chr1dtrAF9QKsn8fkTLOvFzV/lWFzumlIPkClyAI9efmiIz4oejrPo2qV71ok/BIvlHlYts6g3IXHnYb0xHcg9vP7xpDc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653311474; 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=FHBLEucmXfPEaR+jUEaCCbSOX6xXepJqN3xFX0LSRXc=; b=Ja5rOI0ZsP/qLlEGYguQsG5DbyrmdtMsIMIwWE8my5I/WlEnPmdjXrIjcR5HwrlQKBKBA/9YGKwPuchrzaRckU11wbfGQRRn/JnNwPvk1VbaLADjEDWCIqPfMTx6NLs3UBUDHO6+n8rAWiqTVmJPV94DCzD9NqS7Y5BORc9Wldk= 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 165331147448933.39481262516904; Mon, 23 May 2022 06:11:14 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-241-HYnGZLFVPJGCMdjAPfHOUw-1; Mon, 23 May 2022 09:09:18 -0400 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id E08DF101AA52; Mon, 23 May 2022 13:09:08 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id CB72C492C14; Mon, 23 May 2022 13:09:08 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 948EA194705E; Mon, 23 May 2022 13:09:08 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 172A41947059 for ; Mon, 23 May 2022 13:09:03 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id ED9AA40D1B9A; Mon, 23 May 2022 13:09:02 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id 78EF440C1257 for ; Mon, 23 May 2022 13:09:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1653311473; 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=FHBLEucmXfPEaR+jUEaCCbSOX6xXepJqN3xFX0LSRXc=; b=XUokwhicqd8Cr2+7iwY18Snpnm8XoaazBubZnFUL7297CuJqwxwiN+vhY6BIZ+amVYEDAf PIBEPZMezrhb1Qs8bi2iGlKbF1LFM3GjblkiVOEIVEM+Ye4UJIPakZ0iD8Xhs3EsRnBWmy gpKWS9Jy5BLMIuSXJRRNmqPudvlsEQo= X-MC-Unique: HYnGZLFVPJGCMdjAPfHOUw-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 12/17] virDomainChrDefParseXML: Switch to virXMLPropEnumDefault() Date: Mon, 23 May 2022 15:08:47 +0200 Message-Id: <77ecda132358f3742134cca3338a2ae78d718a8c.1653311261.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.85 on 10.11.54.10 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: 1653311476751100001 Content-Type: text/plain; charset="utf-8"; x-default="true" The virDomainChrDefParseXML() function uses old style of parsing XML (virXMLPropString + str2enum conversion). Use virXMLPropEnumDefault() which encapsulates those steps. Signed-off-by: Michal Privoznik Reviewed-by: Boris Fiuczynski --- src/ch/ch_monitor.c | 2 +- src/conf/domain_conf.c | 82 +++++++++++--------------------- src/conf/domain_conf.h | 2 +- src/conf/domain_validate.c | 2 +- src/conf/virchrdev.c | 29 +++++++++++ src/libxl/libxl_conf.c | 20 ++++++++ src/libxl/xen_common.c | 23 ++++++++- src/qemu/qemu_command.c | 6 +-- src/qemu/qemu_domain.c | 34 ++++++++++++- src/qemu/qemu_monitor_json.c | 2 +- src/qemu/qemu_process.c | 2 +- src/qemu/qemu_validate.c | 2 +- src/security/security_apparmor.c | 4 +- src/security/security_dac.c | 4 +- src/security/security_selinux.c | 24 ++++++++++ src/vmx/vmx.c | 26 ++++++++++ tests/testutilsqemu.c | 2 +- 17 files changed, 197 insertions(+), 69 deletions(-) diff --git a/src/ch/ch_monitor.c b/src/ch/ch_monitor.c index 2c6b83a1b5..d6fac642da 100644 --- a/src/ch/ch_monitor.c +++ b/src/ch/ch_monitor.c @@ -281,7 +281,7 @@ virCHMonitorBuildNetJson(virJSONValue *nets, } break; case VIR_DOMAIN_NET_TYPE_VHOSTUSER: - if ((virDomainChrType)netdef->data.vhostuser->type !=3D VIR_DO= MAIN_CHR_TYPE_UNIX) { + if (netdef->data.vhostuser->type !=3D VIR_DOMAIN_CHR_TYPE_UNIX= ) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("vhost_user type support UNIX socket in this = CH")); return -1; diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 44b507b74d..b5ce80eb76 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -2694,7 +2694,7 @@ virDomainChrSourceDefGetPath(virDomainChrSourceDef *c= hr) if (!chr) return NULL; =20 - switch ((virDomainChrType) chr->type) { + switch (chr->type) { case VIR_DOMAIN_CHR_TYPE_PTY: case VIR_DOMAIN_CHR_TYPE_DEV: case VIR_DOMAIN_CHR_TYPE_FILE: @@ -2761,6 +2761,13 @@ virDomainChrSourceDefClear(virDomainChrSourceDef *de= f) case VIR_DOMAIN_CHR_TYPE_DBUS: VIR_FREE(def->data.dbus.channel); break; + case VIR_DOMAIN_CHR_TYPE_NULL: + case VIR_DOMAIN_CHR_TYPE_VC: + case VIR_DOMAIN_CHR_TYPE_STDIO: + case VIR_DOMAIN_CHR_TYPE_SPICEVMC: + case VIR_DOMAIN_CHR_TYPE_QEMU_VDAGENT: + case VIR_DOMAIN_CHR_TYPE_LAST: + break; } =20 VIR_FREE(def->logfile); @@ -2778,7 +2785,7 @@ virDomainChrSourceDefCopy(virDomainChrSourceDef *dest, dest->logfile =3D g_strdup(src->logfile); dest->logappend =3D src->logappend; =20 - switch ((virDomainChrType)src->type) { + switch (src->type) { case VIR_DOMAIN_CHR_TYPE_FILE: case VIR_DOMAIN_CHR_TYPE_PTY: case VIR_DOMAIN_CHR_TYPE_DEV: @@ -2875,7 +2882,7 @@ virDomainChrSourceDefIsEqual(const virDomainChrSource= Def *src, if (tgt->type !=3D src->type) return false; =20 - switch ((virDomainChrType)src->type) { + switch (src->type) { case VIR_DOMAIN_CHR_TYPE_FILE: return src->data.file.append =3D=3D tgt->data.file.append && STREQ_NULLABLE(src->data.file.path, tgt->data.file.path); @@ -11270,7 +11277,7 @@ virDomainChrSourceDefParseXML(virDomainChrSourceDef= *def, goto error; } =20 - switch ((virDomainChrType) def->type) { + switch (def->type) { case VIR_DOMAIN_CHR_TYPE_FILE: if (virDomainChrSourceDefParseFile(def, sources[0]) < 0) goto error; @@ -11477,7 +11484,6 @@ virDomainChrDefParseXML(virDomainXMLOption *xmlopt, xmlNodePtr target; const char *nodeName; virDomainChrDef *def; - g_autofree char *type =3D NULL; VIR_XPATH_NODE_AUTORESTORE(ctxt) =20 ctxt->node =3D node; @@ -11485,15 +11491,12 @@ virDomainChrDefParseXML(virDomainXMLOption *xmlop= t, if (!(def =3D virDomainChrDefNew(xmlopt))) return NULL; =20 - type =3D virXMLPropString(node, "type"); - if (type =3D=3D NULL) { - def->source->type =3D VIR_DOMAIN_CHR_TYPE_PTY; - } else if ((def->source->type =3D virDomainChrTypeFromString(type)) < = 0) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unknown type presented to host for character dev= ice: %s"), - type); + if (virXMLPropEnumDefault(node, "type", + virDomainChrTypeFromString, + VIR_XML_PROP_NONE, + &def->source->type, + VIR_DOMAIN_CHR_TYPE_PTY) < 0) goto error; - } =20 nodeName =3D (const char *) node->name; if ((def->deviceType =3D virDomainChrDeviceTypeFromString(nodeName)) <= 0) { @@ -11551,7 +11554,6 @@ virDomainSmartcardDefParseXML(virDomainXMLOption *x= mlopt, unsigned int flags) { g_autoptr(virDomainSmartcardDef) def =3D NULL; - g_autofree char *type =3D NULL; g_autofree xmlNodePtr *certificates =3D NULL; int n =3D 0; VIR_XPATH_NODE_AUTORESTORE(ctxt) @@ -11597,23 +11599,14 @@ virDomainSmartcardDefParseXML(virDomainXMLOption = *xmlopt, break; =20 case VIR_DOMAIN_SMARTCARD_TYPE_PASSTHROUGH: - type =3D virXMLPropString(node, "type"); - if (type =3D=3D NULL) { - virReportError(VIR_ERR_XML_ERROR, "%s", - _("passthrough mode requires a character " - "device type attribute")); - return NULL; - } - if (!(def->data.passthru =3D virDomainChrSourceDefNew(xmlopt))) return NULL; =20 - if ((def->data.passthru->type =3D virDomainChrTypeFromString(type)= ) < 0) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unknown type presented to host for " - "character device: %s"), type); + if (virXMLPropEnum(node, "type", + virDomainChrTypeFromString, + VIR_XML_PROP_REQUIRED, + &def->data.passthru->type) < 0) return NULL; - } =20 if (virDomainChrSourceDefParseXML(def->data.passthru, node, flags, NULL, ctxt) < 0) @@ -13349,7 +13342,6 @@ virDomainRNGDefParseXML(virDomainXMLOption *xmlopt, g_autofree xmlNodePtr *backends =3D NULL; g_autofree char *model =3D NULL; g_autofree char *backend =3D NULL; - g_autofree char *type =3D NULL; =20 def =3D g_new0(virDomainRNGDef, 1); =20 @@ -13405,22 +13397,14 @@ virDomainRNGDefParseXML(virDomainXMLOption *xmlop= t, break; =20 case VIR_DOMAIN_RNG_BACKEND_EGD: - if (!(type =3D virXMLPropString(backends[0], "type"))) { - virReportError(VIR_ERR_XML_ERROR, "%s", - _("missing EGD backend type")); - goto error; - } - if (!(def->source.chardev =3D virDomainChrSourceDefNew(xmlopt))) goto error; =20 - def->source.chardev->type =3D virDomainChrTypeFromString(type); - if (def->source.chardev->type < 0) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unknown backend type '%s' for egd"), - type); + if (virXMLPropEnum(backends[0], "type", + virDomainChrTypeFromString, + VIR_XML_PROP_REQUIRED, + &def->source.chardev->type) < 0) goto error; - } =20 if (virDomainChrSourceDefParseXML(def->source.chardev, backends[0], flags, @@ -14320,7 +14304,6 @@ virDomainRedirdevDefParseXML(virDomainXMLOption *xm= lopt, { virDomainRedirdevDef *def; g_autofree char *bus =3D NULL; - g_autofree char *type =3D NULL; =20 def =3D g_new0(virDomainRedirdevDef, 1); =20 @@ -14338,18 +14321,11 @@ virDomainRedirdevDefParseXML(virDomainXMLOption *= xmlopt, def->bus =3D VIR_DOMAIN_REDIRDEV_BUS_USB; } =20 - type =3D virXMLPropString(node, "type"); - if (type) { - if ((def->source->type =3D virDomainChrTypeFromString(type)) < 0) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unknown redirdev character device type '%s'"= ), type); - goto error; - } - } else { - virReportError(VIR_ERR_INTERNAL_ERROR, - "%s", _("missing type in redirdev")); + if (virXMLPropEnum(node, "type", + virDomainChrTypeFromString, + VIR_XML_PROP_REQUIRED, + &def->source->type) < 0) goto error; - } =20 /* boot gets parsed in virDomainDeviceInfoParseXML * source gets parsed in virDomainChrSourceDefParseXML */ @@ -25070,7 +25046,7 @@ virDomainChrSourceDefFormat(virBuffer *buf, g_auto(virBuffer) attrBuf =3D VIR_BUFFER_INITIALIZER; g_auto(virBuffer) childBuf =3D VIR_BUFFER_INIT_CHILD(buf); =20 - switch ((virDomainChrType)def->type) { + switch (def->type) { case VIR_DOMAIN_CHR_TYPE_NULL: case VIR_DOMAIN_CHR_TYPE_VC: case VIR_DOMAIN_CHR_TYPE_STDIO: diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 30aa0ed8d3..a81fb09678 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -1281,7 +1281,7 @@ typedef enum { /* The host side information for a character device. */ struct _virDomainChrSourceDef { virObject parent; - int type; /* virDomainChrType */ + virDomainChrType type; virObject *privateData; union { /* no for null, vc, stdio */ diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c index 28234f910d..4fce7059dc 100644 --- a/src/conf/domain_validate.c +++ b/src/conf/domain_validate.c @@ -932,7 +932,7 @@ virDomainChrSourceDefValidate(const virDomainChrSourceD= ef *src_def, const virDomainChrDef *chr_def, const virDomainDef *def) { - switch ((virDomainChrType) src_def->type) { + switch (src_def->type) { case VIR_DOMAIN_CHR_TYPE_NULL: case VIR_DOMAIN_CHR_TYPE_PTY: case VIR_DOMAIN_CHR_TYPE_VC: diff --git a/src/conf/virchrdev.c b/src/conf/virchrdev.c index 8610f0ac5c..730e4e23b4 100644 --- a/src/conf/virchrdev.c +++ b/src/conf/virchrdev.c @@ -339,6 +339,21 @@ int virChrdevOpen(virChrdevs *devs, case VIR_DOMAIN_CHR_TYPE_UNIX: path =3D source->data.nix.path; break; + case VIR_DOMAIN_CHR_TYPE_NULL: + case VIR_DOMAIN_CHR_TYPE_VC: + case VIR_DOMAIN_CHR_TYPE_DEV: + case VIR_DOMAIN_CHR_TYPE_FILE: + 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: + case VIR_DOMAIN_CHR_TYPE_NMDM: + case VIR_DOMAIN_CHR_TYPE_QEMU_VDAGENT: + case VIR_DOMAIN_CHR_TYPE_DBUS: + case VIR_DOMAIN_CHR_TYPE_LAST: + default: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Unsupported device type '%s'"), @@ -404,6 +419,20 @@ int virChrdevOpen(virChrdevs *devs, if (virFDStreamConnectUNIX(st, path, false) < 0) goto error; break; + case VIR_DOMAIN_CHR_TYPE_NULL: + case VIR_DOMAIN_CHR_TYPE_VC: + case VIR_DOMAIN_CHR_TYPE_DEV: + case VIR_DOMAIN_CHR_TYPE_FILE: + 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: + case VIR_DOMAIN_CHR_TYPE_NMDM: + case VIR_DOMAIN_CHR_TYPE_QEMU_VDAGENT: + case VIR_DOMAIN_CHR_TYPE_DBUS: + case VIR_DOMAIN_CHR_TYPE_LAST: default: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Unsupported device type '%s'"), diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c index 401e47344e..0cfd49ebcf 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -273,6 +273,12 @@ libxlMakeChrdevStr(virDomainChrDef *def, char **buf) srcdef->data.nix.listen ? ",server,nowait" = : ""); break; =20 + case VIR_DOMAIN_CHR_TYPE_SPICEVMC: + case VIR_DOMAIN_CHR_TYPE_SPICEPORT: + case VIR_DOMAIN_CHR_TYPE_NMDM: + case VIR_DOMAIN_CHR_TYPE_QEMU_VDAGENT: + case VIR_DOMAIN_CHR_TYPE_DBUS: + case VIR_DOMAIN_CHR_TYPE_LAST: default: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("unsupported chardev '%s'"), type); @@ -1972,6 +1978,20 @@ libxlMakeChannel(virDomainChrDef *l_channel, x_channel->connection =3D LIBXL_CHANNEL_CONNECTION_SOCKET; x_channel->u.socket.path =3D g_strdup(l_channel->source->data.nix.= path); break; + case VIR_DOMAIN_CHR_TYPE_NULL: + case VIR_DOMAIN_CHR_TYPE_VC: + case VIR_DOMAIN_CHR_TYPE_DEV: + case VIR_DOMAIN_CHR_TYPE_FILE: + 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: + case VIR_DOMAIN_CHR_TYPE_NMDM: + case VIR_DOMAIN_CHR_TYPE_QEMU_VDAGENT: + case VIR_DOMAIN_CHR_TYPE_DBUS: + case VIR_DOMAIN_CHR_TYPE_LAST: default: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("channel source type not supported")); diff --git a/src/libxl/xen_common.c b/src/libxl/xen_common.c index b97ba0a199..6487cb63df 100644 --- a/src/libxl/xen_common.c +++ b/src/libxl/xen_common.c @@ -824,11 +824,14 @@ xenParseSxprChar(const char *value, def->source->type =3D VIR_DOMAIN_CHR_TYPE_TCP; def->source->data.tcp.protocol =3D VIR_DOMAIN_CHR_TCP_PROTOCOL= _TELNET; } else { - if ((def->source->type =3D virDomainChrTypeFromString(prefix))= < 0) { + int type =3D virDomainChrTypeFromString(prefix); + + if (type < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("unknown chr device type '%s'"), prefix); goto error; } + def->source->type =3D type; } } =20 @@ -920,6 +923,18 @@ xenParseSxprChar(const char *value, def->source->data.nix.listen =3D true; } break; + + case VIR_DOMAIN_CHR_TYPE_NULL: + case VIR_DOMAIN_CHR_TYPE_VC: + case VIR_DOMAIN_CHR_TYPE_DEV: + case VIR_DOMAIN_CHR_TYPE_STDIO: + case VIR_DOMAIN_CHR_TYPE_SPICEVMC: + case VIR_DOMAIN_CHR_TYPE_SPICEPORT: + case VIR_DOMAIN_CHR_TYPE_NMDM: + case VIR_DOMAIN_CHR_TYPE_QEMU_VDAGENT: + case VIR_DOMAIN_CHR_TYPE_DBUS: + case VIR_DOMAIN_CHR_TYPE_LAST: + break; } =20 return def; @@ -1525,6 +1540,12 @@ xenFormatSxprChr(virDomainChrDef *def, virBufferAddLit(buf, ",server,nowait"); break; =20 + case VIR_DOMAIN_CHR_TYPE_SPICEVMC: + case VIR_DOMAIN_CHR_TYPE_SPICEPORT: + case VIR_DOMAIN_CHR_TYPE_NMDM: + case VIR_DOMAIN_CHR_TYPE_QEMU_VDAGENT: + case VIR_DOMAIN_CHR_TYPE_DBUS: + case VIR_DOMAIN_CHR_TYPE_LAST: default: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("unsupported chr device type '%s'"), type); diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 5ea88bf239..365b7d8292 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -1304,7 +1304,7 @@ qemuBuildChardevStr(const virDomainChrSourceDef *dev, const char *path; virTristateSwitch append; =20 - switch ((virDomainChrType) dev->type) { + switch (dev->type) { case VIR_DOMAIN_CHR_TYPE_NULL: virBufferAsprintf(&buf, "null,id=3D%s", charAlias); break; @@ -1484,7 +1484,7 @@ qemuBuildChardevCommand(virCommand *cmd, qemuDomainChrSourcePrivate *chrSourcePriv =3D QEMU_DOMAIN_CHR_SOURCE_P= RIVATE(dev); g_autofree char *charstr =3D NULL; =20 - switch ((virDomainChrType) dev->type) { + switch (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; @@ -8670,7 +8670,7 @@ qemuInterfaceVhostuserConnect(virCommand *cmd, { g_autofree char *charAlias =3D qemuAliasChardevFromDevAlias(net->info.= alias); =20 - switch ((virDomainChrType)net->data.vhostuser->type) { + switch (net->data.vhostuser->type) { case VIR_DOMAIN_CHR_TYPE_UNIX: if (qemuBuildChardevCommand(cmd, net->data.vhostuser, diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 30ef5b7550..3432c83153 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -2310,10 +2310,28 @@ qemuDomainObjPrivateXMLFormat(virBuffer *buf, case VIR_DOMAIN_CHR_TYPE_UNIX: monitorpath =3D priv->monConfig->data.nix.path; break; - default: case VIR_DOMAIN_CHR_TYPE_PTY: monitorpath =3D priv->monConfig->data.file.path; break; + case VIR_DOMAIN_CHR_TYPE_NULL: + case VIR_DOMAIN_CHR_TYPE_VC: + case VIR_DOMAIN_CHR_TYPE_DEV: + case VIR_DOMAIN_CHR_TYPE_FILE: + 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: + case VIR_DOMAIN_CHR_TYPE_NMDM: + case VIR_DOMAIN_CHR_TYPE_QEMU_VDAGENT: + case VIR_DOMAIN_CHR_TYPE_DBUS: + case VIR_DOMAIN_CHR_TYPE_LAST: + default: + virReportError(VIR_ERR_INTERNAL_ERROR, + _("unsupported monitor type '%s'"), + virDomainChrTypeToString(priv->monConfig->type)= ); + return -1; } =20 virBufferEscapeString(buf, "monConfig->data.nix.path =3D monitorpath; break; + case VIR_DOMAIN_CHR_TYPE_NULL: + case VIR_DOMAIN_CHR_TYPE_VC: + case VIR_DOMAIN_CHR_TYPE_DEV: + case VIR_DOMAIN_CHR_TYPE_FILE: + 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: + case VIR_DOMAIN_CHR_TYPE_NMDM: + case VIR_DOMAIN_CHR_TYPE_QEMU_VDAGENT: + case VIR_DOMAIN_CHR_TYPE_DBUS: + case VIR_DOMAIN_CHR_TYPE_LAST: default: VIR_FREE(monitorpath); virReportError(VIR_ERR_INTERNAL_ERROR, diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index afe45c415b..f6294e4ed5 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -6651,7 +6651,7 @@ qemuMonitorJSONAttachCharDevGetProps(const char *chrI= D, g_autoptr(virJSONValue) backendData =3D virJSONValueNewObject(); const char *backendType =3D NULL; =20 - switch ((virDomainChrType)chr->type) { + switch (chr->type) { case VIR_DOMAIN_CHR_TYPE_NULL: case VIR_DOMAIN_CHR_TYPE_VC: case VIR_DOMAIN_CHR_TYPE_PTY: diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 85bf452a59..f25cc0acf9 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -6878,7 +6878,7 @@ qemuProcessPrepareHostBackendChardevOne(virDomainDevi= ceDef *dev, devalias =3D data->fdprefix; } =20 - switch ((virDomainChrType) chardev->type) { + switch (chardev->type) { case VIR_DOMAIN_CHR_TYPE_NULL: case VIR_DOMAIN_CHR_TYPE_VC: case VIR_DOMAIN_CHR_TYPE_PTY: diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index e8830c4cd3..4d6355741e 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -1968,7 +1968,7 @@ qemuValidateDomainChrSourceDef(const virDomainChrSour= ceDef *def, const virDomainDef *vmdef, virQEMUCaps *qemuCaps) { - switch ((virDomainChrType)def->type) { + switch (def->type) { case VIR_DOMAIN_CHR_TYPE_TCP: if (qemuValidateDomainChrSourceReconnectDef(&def->data.tcp.reconne= ct) < 0) return -1; diff --git a/src/security/security_apparmor.c b/src/security/security_appar= mor.c index 008384dee8..c05a2fbaac 100644 --- a/src/security/security_apparmor.c +++ b/src/security/security_apparmor.c @@ -991,7 +991,7 @@ AppArmorSetChardevLabel(virSecurityManager *mgr, if (!secdef) return 0; =20 - switch ((virDomainChrType)dev_source->type) { + switch (dev_source->type) { case VIR_DOMAIN_CHR_TYPE_DEV: case VIR_DOMAIN_CHR_TYPE_FILE: case VIR_DOMAIN_CHR_TYPE_UNIX: @@ -1068,7 +1068,7 @@ AppArmorSetNetdevLabel(virSecurityManager *mgr, return 0; =20 dev_source =3D net->data.vhostuser; - switch ((virDomainChrType)dev_source->type) { + switch (dev_source->type) { case VIR_DOMAIN_CHR_TYPE_UNIX: ret =3D reload_profile(mgr, def, dev_source->data.file.path, true); break; diff --git a/src/security/security_dac.c b/src/security/security_dac.c index 69c462de8b..211f5cf9a2 100644 --- a/src/security/security_dac.c +++ b/src/security/security_dac.c @@ -1506,7 +1506,7 @@ virSecurityDACSetChardevLabelHelper(virSecurityManage= r *mgr, return -1; } =20 - switch ((virDomainChrType)dev_source->type) { + switch (dev_source->type) { case VIR_DOMAIN_CHR_TYPE_DEV: case VIR_DOMAIN_CHR_TYPE_FILE: if (virSecurityDACSetOwnership(mgr, NULL, @@ -1598,7 +1598,7 @@ virSecurityDACRestoreChardevLabelHelper(virSecurityMa= nager *mgr, chardevStdioLogd) return 0; =20 - switch ((virDomainChrType)dev_source->type) { + switch (dev_source->type) { case VIR_DOMAIN_CHR_TYPE_DEV: case VIR_DOMAIN_CHR_TYPE_FILE: if (virSecurityDACRestoreFileLabelInternal(mgr, NULL, diff --git a/src/security/security_selinux.c b/src/security/security_selinu= x.c index 6f02baf2ce..9d9e308a38 100644 --- a/src/security/security_selinux.c +++ b/src/security/security_selinux.c @@ -2570,6 +2570,18 @@ virSecuritySELinuxSetChardevLabel(virSecurityManager= *mgr, ret =3D 0; break; =20 + case VIR_DOMAIN_CHR_TYPE_NULL: + case VIR_DOMAIN_CHR_TYPE_VC: + case VIR_DOMAIN_CHR_TYPE_PTY: + 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: + case VIR_DOMAIN_CHR_TYPE_NMDM: + case VIR_DOMAIN_CHR_TYPE_QEMU_VDAGENT: + case VIR_DOMAIN_CHR_TYPE_DBUS: + case VIR_DOMAIN_CHR_TYPE_LAST: default: ret =3D 0; break; @@ -2643,6 +2655,18 @@ virSecuritySELinuxRestoreChardevLabel(virSecurityMan= ager *mgr, ret =3D 0; break; =20 + case VIR_DOMAIN_CHR_TYPE_NULL: + case VIR_DOMAIN_CHR_TYPE_VC: + case VIR_DOMAIN_CHR_TYPE_PTY: + 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: + case VIR_DOMAIN_CHR_TYPE_NMDM: + case VIR_DOMAIN_CHR_TYPE_QEMU_VDAGENT: + case VIR_DOMAIN_CHR_TYPE_DBUS: + case VIR_DOMAIN_CHR_TYPE_LAST: default: ret =3D 0; break; diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c index c391caa910..9c63d48c59 100644 --- a/src/vmx/vmx.c +++ b/src/vmx/vmx.c @@ -4117,6 +4117,18 @@ virVMXFormatSerial(virVMXContext *ctx, virDomainChrD= ef *def, def->source->data.tcp.listen ? "server" : "clien= t"); break; =20 + case VIR_DOMAIN_CHR_TYPE_NULL: + case VIR_DOMAIN_CHR_TYPE_VC: + case VIR_DOMAIN_CHR_TYPE_PTY: + case VIR_DOMAIN_CHR_TYPE_STDIO: + case VIR_DOMAIN_CHR_TYPE_UDP: + case VIR_DOMAIN_CHR_TYPE_UNIX: + case VIR_DOMAIN_CHR_TYPE_SPICEVMC: + case VIR_DOMAIN_CHR_TYPE_SPICEPORT: + case VIR_DOMAIN_CHR_TYPE_NMDM: + case VIR_DOMAIN_CHR_TYPE_QEMU_VDAGENT: + case VIR_DOMAIN_CHR_TYPE_DBUS: + case VIR_DOMAIN_CHR_TYPE_LAST: default: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Unsupported character device type '%s'"), @@ -4174,6 +4186,20 @@ virVMXFormatParallel(virVMXContext *ctx, virDomainCh= rDef *def, VIR_FREE(fileName); break; =20 + case VIR_DOMAIN_CHR_TYPE_NULL: + case VIR_DOMAIN_CHR_TYPE_VC: + case VIR_DOMAIN_CHR_TYPE_PTY: + 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_UNIX: + case VIR_DOMAIN_CHR_TYPE_SPICEVMC: + case VIR_DOMAIN_CHR_TYPE_SPICEPORT: + case VIR_DOMAIN_CHR_TYPE_NMDM: + case VIR_DOMAIN_CHR_TYPE_LAST: + case VIR_DOMAIN_CHR_TYPE_QEMU_VDAGENT: + case VIR_DOMAIN_CHR_TYPE_DBUS: default: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Unsupported character device type '%s'"), diff --git a/tests/testutilsqemu.c b/tests/testutilsqemu.c index 004c7cf1d6..7fd3c94f5e 100644 --- a/tests/testutilsqemu.c +++ b/tests/testutilsqemu.c @@ -1044,7 +1044,7 @@ testQemuPrepareHostBackendChardevOne(virDomainDeviceD= ef *dev, devalias =3D "monitor"; } =20 - switch ((virDomainChrType) chardev->type) { + switch (chardev->type) { case VIR_DOMAIN_CHR_TYPE_NULL: case VIR_DOMAIN_CHR_TYPE_VC: case VIR_DOMAIN_CHR_TYPE_PTY: --=20 2.35.1 From nobody Fri May 10 19:14:05 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=1653311416; cv=none; d=zohomail.com; s=zohoarc; b=ONg1CCFu0cIOIf9NgliYZ6b01fRKVoJoRkxaefZ+cpspihCnUrEh7N38n8yKF4nYcygdGdnBVJozU6sQ9OYTDeX74QO8VrWnHhdOBk9N69ik4o1ozrsLuGGZ9aEV+M8EidrCzUDoIIhMV3ei6QVA2P7oVuNrLdDOtAFqC/tcFQY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653311416; 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=On60W87MksOzU9YNb/g4HE/s6kizFEtH2OxmVJv1/JQ=; b=N/tDHep/vkaoh/YVhrQ1jR5x+KAyyEN8FcvPq8SUC1cYxCfpGIkRgIU9en/WQRncHI+l/tep1CQ6a8/j0wmwBlaQnwNQOaZPEjE72EekXHnBoO9+8Eo1lN1qeftJ/I7YGmnhS2M3BRR4g3o3LCrSElPGno/itUDYaOIArOVY82A= 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 1653311416645805.5551786544747; Mon, 23 May 2022 06:10:16 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-62-ssTfLIl_MiGTDe0DdCiewA-1; Mon, 23 May 2022 09:09:14 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 90D2B106669C; Mon, 23 May 2022 13:09:06 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7D1A71415101; Mon, 23 May 2022 13:09:06 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id ECDA71947067; Mon, 23 May 2022 13:09:05 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 9B73B1947069 for ; Mon, 23 May 2022 13:09:03 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 8BE6840D1B98; Mon, 23 May 2022 13:09:03 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id 32EC440C1438 for ; Mon, 23 May 2022 13:09:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1653311415; 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=On60W87MksOzU9YNb/g4HE/s6kizFEtH2OxmVJv1/JQ=; b=Ygj40ud4v7/2X71Wo/nsUNULqfbUhpR7cc6dunD/PwF2hu/pp8zS02Pw5dLEhofimHkVZq SlukSMb3fwcEFFXH1iaU7sdqYE2LqbhhzniG+O8sworM1EtYNkOjWpnur4KKQIk4jCSR7Y xbc/O3vkBLfvtpCRzI9JBvgI6vLdhpM= X-MC-Unique: ssTfLIl_MiGTDe0DdCiewA-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 13/17] virDomainTPMDefParseXML: Switch to virXMLPropEnumDefault() Date: Mon, 23 May 2022 15:08:48 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.85 on 10.11.54.7 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: 1653311416974100001 Content-Type: text/plain; charset="utf-8"; x-default="true" The virDomainTPMDefParseXML() function uses old style of parsing XML (virXMLPropString + str2enum conversion). Use virXMLPropEnumDefault() which encapsulates those steps. Signed-off-by: Michal Privoznik Reviewed-by: Boris Fiuczynski --- src/conf/domain_conf.c | 43 ++++++++++++---------------------------- src/conf/domain_conf.h | 6 +++--- src/qemu/qemu_command.c | 2 +- src/qemu/qemu_domain.c | 2 +- src/qemu/qemu_validate.c | 1 + 5 files changed, 19 insertions(+), 35 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index b5ce80eb76..4044515bdc 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -11677,9 +11677,6 @@ virDomainTPMDefParseXML(virDomainXMLOption *xmlopt, int nnodes; size_t i; g_autofree char *path =3D NULL; - g_autofree char *model =3D NULL; - g_autofree char *backend =3D NULL; - g_autofree char *version =3D NULL; g_autofree char *secretuuid =3D NULL; g_autofree char *persistent_state =3D NULL; g_autofree xmlNodePtr *backends =3D NULL; @@ -11688,13 +11685,11 @@ virDomainTPMDefParseXML(virDomainXMLOption *xmlop= t, =20 def =3D g_new0(virDomainTPMDef, 1); =20 - model =3D virXMLPropString(node, "model"); - if (model !=3D NULL && - (def->model =3D virDomainTPMModelTypeFromString(model)) < 0) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("Unknown TPM frontend model '%s'"), model); + if (virXMLPropEnum(node, "model", + virDomainTPMModelTypeFromString, + VIR_XML_PROP_NONE, + &def->model) < 0) goto error; - } =20 ctxt->node =3D node; =20 @@ -11713,30 +11708,18 @@ virDomainTPMDefParseXML(virDomainXMLOption *xmlop= t, goto error; } =20 - if (!(backend =3D virXMLPropString(backends[0], "type"))) { - virReportError(VIR_ERR_XML_ERROR, "%s", - _("missing TPM device backend type")); + if (virXMLPropEnum(backends[0], "type", + virDomainTPMBackendTypeFromString, + VIR_XML_PROP_REQUIRED, + &def->type) < 0) goto error; - } =20 - if ((def->type =3D virDomainTPMBackendTypeFromString(backend)) < 0) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("Unknown TPM backend type '%s'"), - backend); + if (virXMLPropEnumDefault(backends[0], "version", + virDomainTPMVersionTypeFromString, + VIR_XML_PROP_NONE, + &def->version, + VIR_DOMAIN_TPM_VERSION_DEFAULT) < 0) goto error; - } - - version =3D virXMLPropString(backends[0], "version"); - if (!version) { - def->version =3D VIR_DOMAIN_TPM_VERSION_DEFAULT; - } else { - if ((def->version =3D virDomainTPMVersionTypeFromString(version)) = < 0) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("Unsupported TPM version '%s'"), - version); - goto error; - } - } =20 switch (def->type) { case VIR_DOMAIN_TPM_TYPE_PASSTHROUGH: diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index a81fb09678..13ffdbfe88 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -1423,10 +1423,10 @@ typedef enum { #define VIR_DOMAIN_TPM_DEFAULT_DEVICE "/dev/tpm0" =20 struct _virDomainTPMDef { - int type; /* virDomainTPMBackendType */ + virDomainTPMBackendType type; virDomainDeviceInfo info; - int model; /* virDomainTPMModel */ - int version; /* virDomainTPMVersion */ + virDomainTPMModel model; + virDomainTPMVersion version; union { struct { virDomainChrSourceDef *source; diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 365b7d8292..6f716c63a0 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -9805,7 +9805,7 @@ qemuBuildTPMCommandLine(virCommand *cmd, g_autoptr(qemuFDPass) passtpm =3D NULL; g_autoptr(qemuFDPass) passcancel =3D NULL; =20 - switch ((virDomainTPMBackendType) tpm->type) { + switch (tpm->type) { case VIR_DOMAIN_TPM_TYPE_PASSTHROUGH: { VIR_AUTOCLOSE fdtpm =3D -1; VIR_AUTOCLOSE fdcancel =3D -1; diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 3432c83153..d3da566bae 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -11737,7 +11737,7 @@ qemuDomainDeviceBackendChardevForeachOne(virDomainD= eviceDef *dev, return cb(dev, dev->data.rng->source.chardev, opaque); =20 case VIR_DOMAIN_DEVICE_TPM: - switch ((virDomainTPMBackendType) dev->data.tpm->type) { + switch (dev->data.tpm->type) { case VIR_DOMAIN_TPM_TYPE_PASSTHROUGH: return cb(dev, dev->data.tpm->data.passthrough.source, opaque); =20 diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 4d6355741e..8842e2f837 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -4728,6 +4728,7 @@ qemuValidateDomainDeviceDefTPM(virDomainTPMDef *tpm, =20 flag =3D QEMU_CAPS_DEVICE_SPAPR_TPM_PROXY; break; + case VIR_DOMAIN_TPM_MODEL_DEFAULT: case VIR_DOMAIN_TPM_MODEL_LAST: default: virReportEnumRangeError(virDomainTPMModel, tpm->model); --=20 2.35.1 From nobody Fri May 10 19:14:05 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=1653311360; cv=none; d=zohomail.com; s=zohoarc; b=Viv4tXclNQad/2iT9ghJNVy44LO53WsgUWmBtRxy5eq0hkBZqthgQVLAazLhcK9Njhez0ZuAUb4mPmJ3OuwGco4O2Z8AalRw4cKqP3YwPUUSTfWRTt+pP0ikBoKTT4QmOxDasoqDoOwX9G6sD1NYTlfIj2VzD5UgHhDdpmBUDPs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653311360; 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=3qxv2RWdA7lc/1ULBusC5PoI8vWouwha2G7SJgmI31U=; b=MMv1fCNQXsVXHlaQs1Kd6IZx5V+BFSDX0fZbw0R4HQTUT0yIm2vnoYk3KZwc4kc20o45gZOeNjaDJz5PzdHMdHIsim76YJbhImazzX8rX4Vig/ozFB+VBBrQwCED/hsTZ8DF/adUvILgZxdymC5Fq2QQ/0fNgpOiyclsuMUIXcU= 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 1653311360046794.0433491999124; Mon, 23 May 2022 06:09:20 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-503-3eMoLAM3NySIw08W-vMz2Q-1; Mon, 23 May 2022 09:09:17 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 1DF463C60523; Mon, 23 May 2022 13:09:12 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0A25C2026D6A; Mon, 23 May 2022 13:09:12 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id D8B4A194705B; Mon, 23 May 2022 13:09:11 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 359191947059 for ; Mon, 23 May 2022 13:09:04 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 29E8440D2821; Mon, 23 May 2022 13:09:04 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id C52A340D2820 for ; Mon, 23 May 2022 13:09:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1653311359; 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=3qxv2RWdA7lc/1ULBusC5PoI8vWouwha2G7SJgmI31U=; b=O/YjY6TA3XsDqSkZVQTyIwakQaxo+XRPxLaqX/6kbGNQUdqvuLIFu0+la8NWTqNrDBrngf mRII+2zPLpLEuhXZmmQsJNh1vk2IdbWnPIrRqVnWT7UMSrdfiPUT9Etbiv5dZm7qfLsDyG gmRCuvwUgvZm7RXumHoSzYsmKP73IOA= X-MC-Unique: 3eMoLAM3NySIw08W-vMz2Q-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 14/17] virDomainPanicDefParseXML: Switch to virXMLPropEnumDefault() Date: Mon, 23 May 2022 15:08:49 +0200 Message-Id: <0200e7d680be34ba3c47f5bcaa325e87edee7ae0.1653311261.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 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: 1653311360609100007 Content-Type: text/plain; charset="utf-8"; x-default="true" The virDomainPanicDefParseXML() function uses old style of parsing XML (virXMLPropString + str2enum conversion). Use virXMLPropEnumDefault() which encapsulates those steps. Signed-off-by: Michal Privoznik Reviewed-by: Boris Fiuczynski --- src/conf/domain_conf.c | 11 ++++------- src/conf/domain_conf.h | 2 +- src/qemu/qemu_command.c | 2 +- src/qemu/qemu_validate.c | 2 +- 4 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 4044515bdc..85aae73873 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -11788,7 +11788,6 @@ virDomainPanicDefParseXML(virDomainXMLOption *xmlop= t, unsigned int flags) { virDomainPanicDef *panic; - g_autofree char *model =3D NULL; =20 panic =3D g_new0(virDomainPanicDef, 1); =20 @@ -11796,13 +11795,11 @@ virDomainPanicDefParseXML(virDomainXMLOption *xml= opt, &panic->info, flags) < 0) goto error; =20 - model =3D virXMLPropString(node, "model"); - if (model !=3D NULL && - (panic->model =3D virDomainPanicModelTypeFromString(model)) < 0) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unknown panic model '%s'"), model); + if (virXMLPropEnum(node, "model", + virDomainPanicModelTypeFromString, + VIR_XML_PROP_NONE, + &panic->model) < 0) goto error; - } =20 return panic; =20 diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 13ffdbfe88..3abc1dba36 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -2619,7 +2619,7 @@ typedef enum { } virDomainPanicModel; =20 struct _virDomainPanicDef { - int model; /* virDomainPanicModel */ + virDomainPanicModel model; virDomainDeviceInfo info; }; =20 diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 6f716c63a0..d3d69fed4f 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -9995,7 +9995,7 @@ qemuBuildPanicCommandLine(virCommand *cmd, size_t i; =20 for (i =3D 0; i < def->npanics; i++) { - switch ((virDomainPanicModel) def->panics[i]->model) { + switch (def->panics[i]->model) { case VIR_DOMAIN_PANIC_MODEL_ISA: { g_autoptr(virJSONValue) props =3D NULL; =20 diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 8842e2f837..3a82a2adfa 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -927,7 +927,7 @@ qemuValidateDomainDefPanic(const virDomainDef *def, size_t i; =20 for (i =3D 0; i < def->npanics; i++) { - switch ((virDomainPanicModel) def->panics[i]->model) { + switch (def->panics[i]->model) { case VIR_DOMAIN_PANIC_MODEL_S390: /* For s390 guests, the hardware provides the same * functionality as the pvpanic device. The address --=20 2.35.1 From nobody Fri May 10 19:14:05 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=1653311359; cv=none; d=zohomail.com; s=zohoarc; b=h/QD4ft4c32W/rsDo6ymsuevqU1oelgbrdprnGqei1tisGQwHozGgGn6C87OHTy/M8IhlZIVNuSlClpOZnc1qyzW5tRjIxjjxdyFCqrOhEWQ9CoxG2JoUALOy8meDviEqVfIa8fsmcP0RldHMPpz9y1MTBnVsdOLQfAKNmnjM5Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653311359; 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=4DMzNMk6R1Gvjlf5jlmDVw6OVGNSaTQ7+vzYdUQBea8=; b=UyrjR55Ny+N7x7eDu9kBW8sZ13qgpX5XhYyDxErxNrn+Xf4fm9wL+Pk4LIX3d1iF3jfFlagjv/etnwMe3HAEAIW7s0GnRFKB60j0+5F9v4UgkH6Q3fF7wxYK1RlBWCWOYcm21wCvI/9EJwb7jRbS8o1II5v3/Y+xW1MWEYnGPAA= 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 1653311359531116.19527942276557; Mon, 23 May 2022 06:09:19 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-414-QCfYoDfiNnG77xkB_I3LGw-1; Mon, 23 May 2022 09:09:14 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 79BB7811E81; Mon, 23 May 2022 13:09:06 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 60459141510B; Mon, 23 May 2022 13:09:06 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id F1AA4194706A; Mon, 23 May 2022 13:09:05 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id CA5881947059 for ; Mon, 23 May 2022 13:09:04 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id BCC1540D2822; Mon, 23 May 2022 13:09:04 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6306F40D2821 for ; Mon, 23 May 2022 13:09:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1653311358; 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=4DMzNMk6R1Gvjlf5jlmDVw6OVGNSaTQ7+vzYdUQBea8=; b=d4H1APaZPfaM5rxCdf3hQgwlQDPY5BbjqP2iBM8++kJlM9Whaap0FYMrVJXdvPmJWt6KOi sxJBW0GL4peFcobbXBDJ9N6WGSFTpPuZkJqZT/UaYAMwYbuH5Pzi8ze/kEoz1N1lfWS7yK EofDJAro/ZYE+SXdxJY1/7YxofZA6GQ= X-MC-Unique: QCfYoDfiNnG77xkB_I3LGw-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 15/17] virDomainInputDefParseXML: Switch to virXMLPropEnumDefault() Date: Mon, 23 May 2022 15:08:50 +0200 Message-Id: <9b5d70775d32e8a6192502edb1d884a01f06143d.1653311262.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.85 on 10.11.54.7 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: 1653311360628100008 Content-Type: text/plain; charset="utf-8"; x-default="true" The virDomainInputDefParseXML() function uses old style of parsing XML (virXMLPropString + str2enum conversion). Use virXMLPropEnumDefault() which encapsulates those steps. Signed-off-by: Michal Privoznik Reviewed-by: Boris Fiuczynski --- src/conf/domain_audit.c | 2 +- src/conf/domain_conf.c | 86 +++++++++++++------------------- src/conf/domain_conf.h | 6 +-- src/conf/domain_validate.c | 2 +- src/libxl/libxl_conf.c | 4 ++ src/libxl/xen_xl.c | 3 ++ src/libxl/xen_xm.c | 3 ++ src/qemu/qemu_cgroup.c | 12 +++++ src/qemu/qemu_command.c | 10 ++-- src/qemu/qemu_domain_address.c | 4 +- src/qemu/qemu_hotplug.c | 4 +- src/qemu/qemu_validate.c | 4 +- src/security/security_apparmor.c | 2 +- src/security/security_dac.c | 4 +- src/security/security_selinux.c | 4 +- 15 files changed, 80 insertions(+), 70 deletions(-) diff --git a/src/conf/domain_audit.c b/src/conf/domain_audit.c index 17a01c51ba..9ce14de80b 100644 --- a/src/conf/domain_audit.c +++ b/src/conf/domain_audit.c @@ -949,7 +949,7 @@ virDomainAuditInput(virDomainObj *vm, if (!(vmname =3D virAuditEncode("vm", vm->def->name))) return; =20 - switch ((virDomainInputType) input->type) { + switch (input->type) { case VIR_DOMAIN_INPUT_TYPE_MOUSE: case VIR_DOMAIN_INPUT_TYPE_TABLET: case VIR_DOMAIN_INPUT_TYPE_KBD: diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 85aae73873..44ab79c1f0 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -1942,7 +1942,7 @@ void virDomainGraphicsDefFree(virDomainGraphicsDef *d= ef) =20 const char *virDomainInputDefGetPath(virDomainInputDef *input) { - switch ((virDomainInputType) input->type) { + switch (input->type) { case VIR_DOMAIN_INPUT_TYPE_MOUSE: case VIR_DOMAIN_INPUT_TYPE_TABLET: case VIR_DOMAIN_INPUT_TYPE_KBD: @@ -11818,70 +11818,54 @@ virDomainInputDefParseXML(virDomainXMLOption *xml= opt, { VIR_XPATH_NODE_AUTORESTORE(ctxt) virDomainInputDef *def; - g_autofree char *type =3D NULL; - g_autofree char *bus =3D NULL; - g_autofree char *model =3D NULL; + virDomainInputBus bus =3D VIR_DOMAIN_INPUT_BUS_PS2; xmlNodePtr source =3D NULL; =20 def =3D g_new0(virDomainInputDef, 1); =20 ctxt->node =3D node; =20 - type =3D virXMLPropString(node, "type"); - bus =3D virXMLPropString(node, "bus"); - model =3D virXMLPropString(node, "model"); - - if (!type) { - virReportError(VIR_ERR_INTERNAL_ERROR, - "%s", _("missing input device type")); - goto error; - } - - if ((def->type =3D virDomainInputTypeFromString(type)) < 0) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unknown input device type '%s'"), type); + if (virXMLPropEnum(node, "type", + virDomainInputTypeFromString, + VIR_XML_PROP_REQUIRED, + &def->type) < 0) goto error; - } =20 - if (model && - ((def->model =3D virDomainInputModelTypeFromString(model)) < 0 || - def->model =3D=3D VIR_DOMAIN_INPUT_MODEL_DEFAULT)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unknown input model '%s'"), model); + if (virXMLPropEnum(node, "model", + virDomainInputModelTypeFromString, + VIR_XML_PROP_NONZERO, + &def->model) < 0) goto error; - } - - if (bus) { - if ((def->bus =3D virDomainInputBusTypeFromString(bus)) < 0) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unknown input bus type '%s'"), bus); - goto error; - } =20 - } else { - if (dom->os.type =3D=3D VIR_DOMAIN_OSTYPE_HVM) { - if ((def->type =3D=3D VIR_DOMAIN_INPUT_TYPE_MOUSE || - def->type =3D=3D VIR_DOMAIN_INPUT_TYPE_KBD) && - (ARCH_IS_X86(dom->os.arch) || dom->os.arch =3D=3D VIR_ARCH= _NONE)) { - def->bus =3D VIR_DOMAIN_INPUT_BUS_PS2; - } else if (ARCH_IS_S390(dom->os.arch) || - def->type =3D=3D VIR_DOMAIN_INPUT_TYPE_PASSTHROUGH)= { - def->bus =3D VIR_DOMAIN_INPUT_BUS_VIRTIO; - } else if (def->type =3D=3D VIR_DOMAIN_INPUT_TYPE_EVDEV) { - def->bus =3D VIR_DOMAIN_INPUT_BUS_NONE; - } else { - def->bus =3D VIR_DOMAIN_INPUT_BUS_USB; - } - } else if (dom->os.type =3D=3D VIR_DOMAIN_OSTYPE_XEN || - dom->os.type =3D=3D VIR_DOMAIN_OSTYPE_XENPVH) { - def->bus =3D VIR_DOMAIN_INPUT_BUS_XEN; + if (dom->os.type =3D=3D VIR_DOMAIN_OSTYPE_HVM) { + if ((def->type =3D=3D VIR_DOMAIN_INPUT_TYPE_MOUSE || + def->type =3D=3D VIR_DOMAIN_INPUT_TYPE_KBD) && + (ARCH_IS_X86(dom->os.arch) || dom->os.arch =3D=3D VIR_ARCH_NON= E)) { + bus =3D VIR_DOMAIN_INPUT_BUS_PS2; + } else if (ARCH_IS_S390(dom->os.arch) || + def->type =3D=3D VIR_DOMAIN_INPUT_TYPE_PASSTHROUGH) { + bus =3D VIR_DOMAIN_INPUT_BUS_VIRTIO; + } else if (def->type =3D=3D VIR_DOMAIN_INPUT_TYPE_EVDEV) { + bus =3D VIR_DOMAIN_INPUT_BUS_NONE; } else { - if ((dom->virtType =3D=3D VIR_DOMAIN_VIRT_VZ || - dom->virtType =3D=3D VIR_DOMAIN_VIRT_PARALLELS)) - def->bus =3D VIR_DOMAIN_INPUT_BUS_PARALLELS; + bus =3D VIR_DOMAIN_INPUT_BUS_USB; } + } else if (dom->os.type =3D=3D VIR_DOMAIN_OSTYPE_XEN || + dom->os.type =3D=3D VIR_DOMAIN_OSTYPE_XENPVH) { + bus =3D VIR_DOMAIN_INPUT_BUS_XEN; + } else { + if ((dom->virtType =3D=3D VIR_DOMAIN_VIRT_VZ || + dom->virtType =3D=3D VIR_DOMAIN_VIRT_PARALLELS)) + bus =3D VIR_DOMAIN_INPUT_BUS_PARALLELS; } =20 + if (virXMLPropEnumDefault(node, "bus", + virDomainInputBusTypeFromString, + VIR_XML_PROP_NONE, + &def->bus, bus) < 0) + goto error; + + if (virDomainDeviceInfoParseXML(xmlopt, node, ctxt, &def->info, flags)= < 0) goto error; =20 diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 3abc1dba36..b3d51565e3 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -1493,9 +1493,9 @@ typedef enum { } virDomainInputSourceGrabToggle; =20 struct _virDomainInputDef { - int type; - int bus; - int model; /* virDomainInputModel */ + virDomainInputType type; + virDomainInputBus bus; + virDomainInputModel model; struct { char *evdev; virDomainInputSourceGrab grab; diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c index 4fce7059dc..5205834d12 100644 --- a/src/conf/domain_validate.c +++ b/src/conf/domain_validate.c @@ -2276,7 +2276,7 @@ virDomainInputDefValidate(const virDomainInputDef *in= put, } } =20 - switch ((virDomainInputType) input->type) { + switch (input->type) { case VIR_DOMAIN_INPUT_TYPE_MOUSE: case VIR_DOMAIN_INPUT_TYPE_TABLET: case VIR_DOMAIN_INPUT_TYPE_KBD: diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c index 0cfd49ebcf..82af406e2d 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -725,6 +725,10 @@ libxlMakeDomBuildInfo(virDomainDef *def, VIR_FREE(*usbdevice); *usbdevice =3D g_strdup("tablet"); break; + case VIR_DOMAIN_INPUT_TYPE_KBD: + case VIR_DOMAIN_INPUT_TYPE_PASSTHROUGH: + case VIR_DOMAIN_INPUT_TYPE_EVDEV: + case VIR_DOMAIN_INPUT_TYPE_LAST: default: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("Unknown input device type")); diff --git a/src/libxl/xen_xl.c b/src/libxl/xen_xl.c index eb3b0b3718..76237dfa25 100644 --- a/src/libxl/xen_xl.c +++ b/src/libxl/xen_xl.c @@ -1757,6 +1757,9 @@ xenFormatXLInputDevs(virConf *conf, virDomainDef *def) case VIR_DOMAIN_INPUT_TYPE_KBD: devtype =3D "keyboard"; break; + case VIR_DOMAIN_INPUT_TYPE_PASSTHROUGH: + case VIR_DOMAIN_INPUT_TYPE_EVDEV: + case VIR_DOMAIN_INPUT_TYPE_LAST: default: continue; } diff --git a/src/libxl/xen_xm.c b/src/libxl/xen_xm.c index a962da9cad..31d2d2e6a1 100644 --- a/src/libxl/xen_xm.c +++ b/src/libxl/xen_xm.c @@ -521,6 +521,9 @@ xenFormatXMInputDevs(virConf *conf, virDomainDef *def) case VIR_DOMAIN_INPUT_TYPE_KBD: devtype =3D "keyboard"; break; + case VIR_DOMAIN_INPUT_TYPE_PASSTHROUGH: + case VIR_DOMAIN_INPUT_TYPE_EVDEV: + case VIR_DOMAIN_INPUT_TYPE_LAST: default: continue; } diff --git a/src/qemu/qemu_cgroup.c b/src/qemu/qemu_cgroup.c index aa0c927578..7c24e187c9 100644 --- a/src/qemu/qemu_cgroup.c +++ b/src/qemu/qemu_cgroup.c @@ -384,6 +384,12 @@ qemuSetupInputCgroup(virDomainObj *vm, return qemuCgroupAllowDevicePath(vm, dev->source.evdev, VIR_CGROUP_DEVICE_RW, false); break; + + case VIR_DOMAIN_INPUT_TYPE_MOUSE: + case VIR_DOMAIN_INPUT_TYPE_TABLET: + case VIR_DOMAIN_INPUT_TYPE_KBD: + case VIR_DOMAIN_INPUT_TYPE_LAST: + break; } =20 return ret; @@ -405,6 +411,12 @@ qemuTeardownInputCgroup(virDomainObj *vm, return qemuCgroupDenyDevicePath(vm, dev->source.evdev, VIR_CGROUP_DEVICE_RWM, false); break; + + case VIR_DOMAIN_INPUT_TYPE_MOUSE: + case VIR_DOMAIN_INPUT_TYPE_TABLET: + case VIR_DOMAIN_INPUT_TYPE_KBD: + case VIR_DOMAIN_INPUT_TYPE_LAST: + break; } =20 return 0; diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index d3d69fed4f..b863fd1c32 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -873,7 +873,7 @@ qemuBuildVirtioDevGetConfigDev(const virDomainDeviceDef= *device, case VIR_DOMAIN_DEVICE_INPUT: *virtioOptions =3D device->data.input->virtio; =20 - switch ((virDomainInputType) device->data.input->type) { + switch (device->data.input->type) { case VIR_DOMAIN_INPUT_TYPE_MOUSE: *baseName =3D "virtio-mouse"; break; @@ -4510,7 +4510,7 @@ qemuBuildInputVirtioDevProps(const virDomainDef *def, g_autoptr(virJSONValue) props =3D NULL; const char *evdev =3D NULL; =20 - switch ((virDomainInputType)dev->type) { + switch (dev->type) { case VIR_DOMAIN_INPUT_TYPE_MOUSE: case VIR_DOMAIN_INPUT_TYPE_TABLET: case VIR_DOMAIN_INPUT_TYPE_KBD: @@ -4559,6 +4559,10 @@ qemuBuildInputUSBDevProps(const virDomainDef *def, case VIR_DOMAIN_INPUT_TYPE_KBD: driver =3D "usb-kbd"; break; + case VIR_DOMAIN_INPUT_TYPE_PASSTHROUGH: + case VIR_DOMAIN_INPUT_TYPE_EVDEV: + case VIR_DOMAIN_INPUT_TYPE_LAST: + break; } =20 if (virJSONValueObjectAdd(&props, @@ -4623,7 +4627,7 @@ qemuBuildInputCommandLine(virCommand *cmd, } else { g_autoptr(virJSONValue) props =3D NULL; =20 - switch ((virDomainInputBus) input->bus) { + switch (input->bus) { case VIR_DOMAIN_INPUT_BUS_USB: if (!(props =3D qemuBuildInputUSBDevProps(def, input))) return -1; diff --git a/src/qemu/qemu_domain_address.c b/src/qemu/qemu_domain_address.c index 753733d1b9..3b1139d975 100644 --- a/src/qemu/qemu_domain_address.c +++ b/src/qemu/qemu_domain_address.c @@ -960,9 +960,9 @@ qemuDomainDeviceCalculatePCIConnectFlags(virDomainDevic= eDef *dev, return pciFlags; =20 case VIR_DOMAIN_DEVICE_INPUT: - switch ((virDomainInputBus) dev->data.input->bus) { + switch (dev->data.input->bus) { case VIR_DOMAIN_INPUT_BUS_VIRTIO: - switch ((virDomainInputModel) dev->data.input->model) { + switch (dev->data.input->model) { case VIR_DOMAIN_INPUT_MODEL_VIRTIO_TRANSITIONAL: /* Transitional devices only work in conventional PCI slot= s */ return pciFlags; diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 24df66cc9f..48dfac3f07 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -3139,7 +3139,7 @@ qemuDomainAttachInputDevice(virQEMUDriver *driver, =20 qemuAssignDeviceInputAlias(vm->def, input, -1); =20 - switch ((virDomainInputBus) input->bus) { + switch (input->bus) { case VIR_DOMAIN_INPUT_BUS_USB: if (virDomainUSBAddressEnsure(priv->usbaddrs, &input->info) < 0) return -1; @@ -5882,7 +5882,7 @@ qemuDomainDetachPrepInput(virDomainObj *vm, } *detach =3D input =3D vm->def->inputs[idx]; =20 - switch ((virDomainInputBus) input->bus) { + switch (input->bus) { case VIR_DOMAIN_INPUT_BUS_PS2: case VIR_DOMAIN_INPUT_BUS_XEN: case VIR_DOMAIN_INPUT_BUS_PARALLELS: diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 3a82a2adfa..f54b4587c0 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -4786,7 +4786,7 @@ qemuValidateDomainDeviceDefInput(const virDomainInput= Def *input, return 0; =20 /* model=3Dvirtio-(non-)transitional is unsupported */ - switch ((virDomainInputModel)input->model) { + switch (input->model) { case VIR_DOMAIN_INPUT_MODEL_VIRTIO_TRANSITIONAL: case VIR_DOMAIN_INPUT_MODEL_VIRTIO_NON_TRANSITIONAL: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, @@ -4804,7 +4804,7 @@ qemuValidateDomainDeviceDefInput(const virDomainInput= Def *input, return -1; } =20 - switch ((virDomainInputType)input->type) { + switch (input->type) { case VIR_DOMAIN_INPUT_TYPE_MOUSE: baseName =3D "virtio-mouse"; cap =3D QEMU_CAPS_VIRTIO_MOUSE; diff --git a/src/security/security_apparmor.c b/src/security/security_appar= mor.c index c05a2fbaac..7160ef99b8 100644 --- a/src/security/security_apparmor.c +++ b/src/security/security_apparmor.c @@ -712,7 +712,7 @@ AppArmorSetInputLabel(virSecurityManager *mgr, if (input =3D=3D NULL) return 0; =20 - switch ((virDomainInputType)input->type) { + switch (input->type) { case VIR_DOMAIN_INPUT_TYPE_PASSTHROUGH: case VIR_DOMAIN_INPUT_TYPE_EVDEV: if (input->source.evdev =3D=3D NULL) { diff --git a/src/security/security_dac.c b/src/security/security_dac.c index 211f5cf9a2..a74337fcf7 100644 --- a/src/security/security_dac.c +++ b/src/security/security_dac.c @@ -1792,7 +1792,7 @@ virSecurityDACSetInputLabel(virSecurityManager *mgr, if (seclabel && !seclabel->relabel) return 0; =20 - switch ((virDomainInputType)input->type) { + switch (input->type) { case VIR_DOMAIN_INPUT_TYPE_PASSTHROUGH: case VIR_DOMAIN_INPUT_TYPE_EVDEV: if (virSecurityDACGetIds(seclabel, priv, &user, &group, NULL, NULL= ) < 0) @@ -1821,7 +1821,7 @@ virSecurityDACRestoreInputLabel(virSecurityManager *m= gr, { int ret =3D -1; =20 - switch ((virDomainInputType)input->type) { + switch (input->type) { case VIR_DOMAIN_INPUT_TYPE_PASSTHROUGH: case VIR_DOMAIN_INPUT_TYPE_EVDEV: ret =3D virSecurityDACRestoreFileLabel(mgr, input->source.evdev); diff --git a/src/security/security_selinux.c b/src/security/security_selinu= x.c index 9d9e308a38..22747b667a 100644 --- a/src/security/security_selinux.c +++ b/src/security/security_selinux.c @@ -1512,7 +1512,7 @@ virSecuritySELinuxSetInputLabel(virSecurityManager *m= gr, if (seclabel =3D=3D NULL) return 0; =20 - switch ((virDomainInputType)input->type) { + switch (input->type) { case VIR_DOMAIN_INPUT_TYPE_PASSTHROUGH: case VIR_DOMAIN_INPUT_TYPE_EVDEV: if (virSecuritySELinuxSetFilecon(mgr, input->source.evdev, @@ -1543,7 +1543,7 @@ virSecuritySELinuxRestoreInputLabel(virSecurityManage= r *mgr, if (seclabel =3D=3D NULL) return 0; =20 - switch ((virDomainInputType)input->type) { + switch (input->type) { case VIR_DOMAIN_INPUT_TYPE_PASSTHROUGH: case VIR_DOMAIN_INPUT_TYPE_EVDEV: rc =3D virSecuritySELinuxRestoreFileLabel(mgr, input->source.evdev= , true); --=20 2.35.1 From nobody Fri May 10 19:14:05 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=1653311454; cv=none; d=zohomail.com; s=zohoarc; b=oIqxnj2wQN1s9qYg4ZXnhppdJrY4mQz3+Vz9eInGATkh/m2jOo7A2htmkD7NLsbKOvlobj3xwkZ6RzFRs1lWjljjwgskP+AgrO7pmbsEnj1no2TF9WKEuc78kj3Be3fSIYpAavLH5rpCv1fDzsZaeQnDNH2mJKBUJC0ohHdijLA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653311454; 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=OpsfBa9LsKYHuTfIkLXJaRYXiRYMw3C96I9cKClqt8A=; b=S7eOdYUujybZWFNi3VgasTwbsyYHCVQCHuAHmtHlTx3DAbFe3dSHtTghQyAebp3pNaTDKHn/HIYN4f4g6WGbqhhmcpvjhJ237sQs1XHPGh9oAxnP6eMA/jh5HS7awpRnoAc0lDIc/gSzKKiY9hcJVyoTEQjicZHtwTmBkW6JzRM= 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 1653311454244672.1116425558994; Mon, 23 May 2022 06:10:54 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-570-KPniDa2RMBmi8ZXWYiD3_Q-1; Mon, 23 May 2022 09:09:16 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id C112F382ECF2; Mon, 23 May 2022 13:09:09 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id A8C31112131E; Mon, 23 May 2022 13:09:09 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 3558B1947072; Mon, 23 May 2022 13:09:09 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 67EB6194705A for ; Mon, 23 May 2022 13:09:05 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 5A53740D2820; Mon, 23 May 2022 13:09:05 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id 013B040D2821 for ; Mon, 23 May 2022 13:09:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1653311453; 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=OpsfBa9LsKYHuTfIkLXJaRYXiRYMw3C96I9cKClqt8A=; b=a5OKZF2DzzjDUVQHFpdkrfwdTB/rSKcMu84eXl84yJGaF2TQF7/SgNCXdH1Eg3R+dcFf+7 HmlFev4iAAyxNORTM02dyypCn/4kpCW2tko7qaApVGvQMS9jkmvt4qYHwHwPTKQg+L/P2M 9xpXOwzitFvOjGqQvwdhjb8QePbOG0o= X-MC-Unique: KPniDa2RMBmi8ZXWYiD3_Q-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 16/17] virDomainHubDefParseXML: Switch to virXMLPropEnumDefault() Date: Mon, 23 May 2022 15:08:51 +0200 Message-Id: <8c3b70d425d79811e7a540cbdabddbbf7d2e6744.1653311262.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 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: 1653311455122100001 Content-Type: text/plain; charset="utf-8"; x-default="true" The virDomainHubDefParseXML() function uses old style of parsing XML (virXMLPropString + str2enum conversion). Use virXMLPropEnumDefault() which encapsulates those steps. Signed-off-by: Michal Privoznik Reviewed-by: Boris Fiuczynski --- src/conf/domain_conf.c | 17 ++++------------- src/conf/domain_conf.h | 14 +++++++------- 2 files changed, 11 insertions(+), 20 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 44ab79c1f0..52a34cd131 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -11934,23 +11934,14 @@ virDomainHubDefParseXML(virDomainXMLOption *xmlop= t, unsigned int flags) { virDomainHubDef *def; - g_autofree char *type =3D NULL; =20 def =3D g_new0(virDomainHubDef, 1); =20 - type =3D virXMLPropString(node, "type"); - - if (!type) { - virReportError(VIR_ERR_INTERNAL_ERROR, - "%s", _("missing hub device type")); + if (virXMLPropEnum(node, "type", + virDomainHubTypeFromString, + VIR_XML_PROP_REQUIRED, + &def->type) < 0) goto error; - } - - if ((def->type =3D virDomainHubTypeFromString(type)) < 0) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unknown hub device type '%s'"), type); - goto error; - } =20 if (virDomainDeviceInfoParseXML(xmlopt, node, ctxt, &def->info, flags)= < 0) goto error; diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index b3d51565e3..cad19a3d5d 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -1381,8 +1381,14 @@ struct _virDomainSmartcardDef { virDomainDeviceInfo info; }; =20 +typedef enum { + VIR_DOMAIN_HUB_TYPE_USB, + + VIR_DOMAIN_HUB_TYPE_LAST +} virDomainHubType; + struct _virDomainHubDef { - int type; + virDomainHubType type; virDomainDeviceInfo info; }; =20 @@ -1881,12 +1887,6 @@ typedef enum { VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_LAST } virDomainGraphicsListenType; =20 -typedef enum { - VIR_DOMAIN_HUB_TYPE_USB, - - VIR_DOMAIN_HUB_TYPE_LAST -} virDomainHubType; - struct _virDomainGraphicsListenDef { virDomainGraphicsListenType type; char *address; --=20 2.35.1 From nobody Fri May 10 19:14:05 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=1653311362; cv=none; d=zohomail.com; s=zohoarc; b=TYgAxZp2RHLesd2QHkrmVxthHYxYc6vCyIsfHsBxVz8FqDqnb0vTAPggPIH6AjWWpyUXcibOu855fr+o3ED8oIPH6G3AeARE0Yl45bbsvYmto5Q7ywDOLkrkEqCELzDhpiIJRFmfc1E2GreZ2Zjeq0LqpUv6lkxoXfR1e4ZRj7w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653311362; 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=nsXx0fWc6MUGAzaLxbK9Ma0o9pXc5dV4cHjIErg8om4=; b=l9E1/c1QvpYngmWsJgYW7SvcZ3SJM6ot3l2UYHX3gwm8HotADal+soEYV0aU+OeBMWfp/Wm47Ca4pFVQIbRTyI8flO2PU3U3aDFqi7pw3B6Ujo0WghRAKAQ91jWPQvdO7/2aNEDLtOOnXeJgdh6+QZ9aUK9xXnKcuWldocsP0WU= 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 165331136200652.085877127738854; Mon, 23 May 2022 06:09:22 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-122-QMxX9XysO06VwPtSNf2PqA-1; Mon, 23 May 2022 09:09:15 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id C169281B547; Mon, 23 May 2022 13:09:09 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id A81C8112131B; Mon, 23 May 2022 13:09:09 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 2E788194706F; Mon, 23 May 2022 13:09:09 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 03FD3194705A for ; Mon, 23 May 2022 13:09:06 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id ED36C40C1438; Mon, 23 May 2022 13:09:05 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9375E400E115 for ; Mon, 23 May 2022 13:09:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1653311360; 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=nsXx0fWc6MUGAzaLxbK9Ma0o9pXc5dV4cHjIErg8om4=; b=RugTZ+9YO/bt9gTRiJTKCVnJUbBML4De3BxVrI5jcdtC3tg51w1ZxpR0jLe8o0FGfCNek2 4dmhAPBmZ9HMRgKZ9Le7XKsV7gZLoF4C3R+JArS8EykDfjtnCpjyXG1OZwguReRvZGya3c abcE+TWkStZMW2EMEQs+o0MA20uX/qo= X-MC-Unique: QMxX9XysO06VwPtSNf2PqA-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 17/17] virDomainTimerDefParseXML: Switch to virXMLPropEnumDefault() Date: Mon, 23 May 2022 15:08:52 +0200 Message-Id: <06f122a92676516f119b0b12b94b9f46bdfe9565.1653311262.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 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: 1653311362673100011 Content-Type: text/plain; charset="utf-8"; x-default="true" The virDomainTimerDefParseXML() function uses old style of parsing XML (virXMLPropString + str2enum conversion). Use virXMLPropEnumDefault() which encapsulates those steps. Signed-off-by: Michal Privoznik --- src/conf/domain_conf.c | 105 +++++++++++++-------------------------- src/conf/domain_conf.h | 14 +++--- src/libxl/libxl_conf.c | 6 ++- src/libxl/xen_common.c | 6 ++- src/lxc/lxc_cgroup.c | 2 +- src/lxc/lxc_controller.c | 2 +- src/qemu/qemu_command.c | 11 +++- src/qemu/qemu_validate.c | 8 ++- 8 files changed, 69 insertions(+), 85 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 52a34cd131..27fe6c9fbf 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -11962,98 +11962,61 @@ virDomainTimerDefParseXML(xmlNodePtr node, virDomainTimerDef *def; VIR_XPATH_NODE_AUTORESTORE(ctxt) xmlNodePtr catchup; - int ret; - g_autofree char *name =3D NULL; - g_autofree char *tickpolicy =3D NULL; - g_autofree char *track =3D NULL; - g_autofree char *mode =3D NULL; =20 def =3D g_new0(virDomainTimerDef, 1); =20 ctxt->node =3D node; =20 - name =3D virXMLPropString(node, "name"); - if (name =3D=3D NULL) { - virReportError(VIR_ERR_INTERNAL_ERROR, - "%s", _("missing timer name")); + if (virXMLPropEnum(node, "name", + virDomainTimerNameTypeFromString, + VIR_XML_PROP_REQUIRED, + &def->name) < 0) goto error; - } - if ((def->name =3D virDomainTimerNameTypeFromString(name)) < 0) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unknown timer name '%s'"), name); - goto error; - } =20 if (virXMLPropTristateBool(node, "present", VIR_XML_PROP_NONE, &def->present) < 0) goto error; =20 - tickpolicy =3D virXMLPropString(node, "tickpolicy"); - if (tickpolicy !=3D NULL) { - if ((def->tickpolicy =3D virDomainTimerTickpolicyTypeFromString(ti= ckpolicy)) <=3D 0) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unknown timer tickpolicy '%s'"), tickpolicy); - goto error; - } - } + if (virXMLPropEnum(node, "tickpolicy", + virDomainTimerTickpolicyTypeFromString, + VIR_XML_PROP_NONZERO, + &def->tickpolicy) < 0) + goto error; =20 - track =3D virXMLPropString(node, "track"); - if (track !=3D NULL) { - if ((def->track =3D virDomainTimerTrackTypeFromString(track)) <=3D= 0) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unknown timer track '%s'"), track); - goto error; - } - } + if (virXMLPropEnum(node, "track", + virDomainTimerTrackTypeFromString, + VIR_XML_PROP_NONZERO, + &def->track) < 0) + goto error; =20 - ret =3D virXPathULongLong("string(./@frequency)", ctxt, &def->frequenc= y); - if (ret =3D=3D -1) { - def->frequency =3D 0; - } else if (ret < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, - "%s", _("invalid timer frequency")); + if (virXMLPropULongLong(node, "frequency", 10, + VIR_XML_PROP_NONE, + &def->frequency) < 0) goto error; - } =20 - mode =3D virXMLPropString(node, "mode"); - if (mode !=3D NULL) { - if ((def->mode =3D virDomainTimerModeTypeFromString(mode)) <=3D 0)= { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unknown timer mode '%s'"), mode); - goto error; - } - } + if (virXMLPropEnum(node, "mode", + virDomainTimerModeTypeFromString, + VIR_XML_PROP_NONZERO, + &def->mode) < 0) + goto error; =20 catchup =3D virXPathNode("./catchup", ctxt); if (catchup !=3D NULL) { - ret =3D virXPathULong("string(./catchup/@threshold)", ctxt, - &def->catchup.threshold); - if (ret =3D=3D -1) { - def->catchup.threshold =3D 0; - } else if (ret < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, - "%s", _("invalid catchup threshold")); + if (virXMLPropUInt(catchup, "threshold", 10, + VIR_XML_PROP_NONE, + &def->catchup.threshold) < 0) goto error; - } =20 - ret =3D virXPathULong("string(./catchup/@slew)", ctxt, &def->catch= up.slew); - if (ret =3D=3D -1) { - def->catchup.slew =3D 0; - } else if (ret < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, - "%s", _("invalid catchup slew")); + if (virXMLPropUInt(catchup, "slew", 10, + VIR_XML_PROP_NONE, + &def->catchup.slew) < 0) goto error; - } =20 - ret =3D virXPathULong("string(./catchup/@limit)", ctxt, &def->catc= hup.limit); - if (ret =3D=3D -1) { - def->catchup.limit =3D 0; - } else if (ret < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, - "%s", _("invalid catchup limit")); + if (virXMLPropUInt(catchup, "limit", 10, + VIR_XML_PROP_NONE, + &def->catchup.limit) < 0) goto error; - } } =20 return def; @@ -26197,11 +26160,11 @@ virDomainTimerDefFormat(virBuffer *buf, } =20 if (def->catchup.threshold > 0) - virBufferAsprintf(&catchupAttr, " threshold=3D'%lu'", def->catchup= .threshold); + virBufferAsprintf(&catchupAttr, " threshold=3D'%u'", def->catchup.= threshold); if (def->catchup.slew > 0) - virBufferAsprintf(&catchupAttr, " slew=3D'%lu'", def->catchup.slew= ); + virBufferAsprintf(&catchupAttr, " slew=3D'%u'", def->catchup.slew); if (def->catchup.limit > 0) - virBufferAsprintf(&catchupAttr, " limit=3D'%lu'", def->catchup.lim= it); + virBufferAsprintf(&catchupAttr, " limit=3D'%u'", def->catchup.limi= t); =20 virXMLFormatElement(&timerChld, "catchup", &catchupAttr, NULL); virXMLFormatElement(buf, "timer", &timerAttr, &timerChld); diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index cad19a3d5d..a6acffb4a4 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -2442,24 +2442,24 @@ struct _virDomainThreadSchedParam { }; =20 struct _virDomainTimerCatchupDef { - unsigned long threshold; - unsigned long slew; - unsigned long limit; + unsigned int threshold; + unsigned int slew; + unsigned int limit; }; =20 struct _virDomainTimerDef { - int name; + virDomainTimerNameType name; virTristateBool present; - int tickpolicy; /* enum virDomainTimerTickpolicyType */ + virDomainTimerTickpolicyType tickpolicy; =20 virDomainTimerCatchupDef catchup; =20 /* track is only valid for name=3D'platform|rtc' */ - int track; /* enum virDomainTimerTrackType */ + virDomainTimerTrackType track; =20 /* frequency & mode are only valid for name=3D'tsc' */ unsigned long long frequency; /* in Hz, unspecified =3D 0 */ - int mode; /* enum virDomainTimerModeType */ + virDomainTimerModeType mode; }; =20 typedef enum { diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c index 82af406e2d..6aba458281 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -406,7 +406,7 @@ libxlMakeDomBuildInfo(virDomainDef *def, } =20 for (i =3D 0; i < clock.ntimers; i++) { - switch ((virDomainTimerNameType) clock.timers[i]->name) { + switch (clock.timers[i]->name) { case VIR_DOMAIN_TIMER_NAME_TSC: switch (clock.timers[i]->mode) { case VIR_DOMAIN_TIMER_MODE_NATIVE: @@ -418,6 +418,10 @@ libxlMakeDomBuildInfo(virDomainDef *def, case VIR_DOMAIN_TIMER_MODE_EMULATE: b_info->tsc_mode =3D LIBXL_TSC_MODE_ALWAYS_EMULATE; break; + case VIR_DOMAIN_TIMER_MODE_NONE: + case VIR_DOMAIN_TIMER_MODE_AUTO: + case VIR_DOMAIN_TIMER_MODE_SMPSAFE: + case VIR_DOMAIN_TIMER_MODE_LAST: default: b_info->tsc_mode =3D LIBXL_TSC_MODE_DEFAULT; } diff --git a/src/libxl/xen_common.c b/src/libxl/xen_common.c index 6487cb63df..f8c63d5f92 100644 --- a/src/libxl/xen_common.c +++ b/src/libxl/xen_common.c @@ -2106,7 +2106,7 @@ xenFormatHypervisorFeatures(virConf *conf, virDomainD= ef *def) } =20 for (i =3D 0; i < def->clock.ntimers; i++) { - switch ((virDomainTimerNameType)def->clock.timers[i]->name) { + switch (def->clock.timers[i]->name) { case VIR_DOMAIN_TIMER_NAME_TSC: switch (def->clock.timers[i]->mode) { case VIR_DOMAIN_TIMER_MODE_NATIVE: @@ -2121,6 +2121,10 @@ xenFormatHypervisorFeatures(virConf *conf, virDomain= Def *def) if (xenConfigSetString(conf, "tsc_mode", "always_emulate")= < 0) return -1; break; + case VIR_DOMAIN_TIMER_MODE_NONE: + case VIR_DOMAIN_TIMER_MODE_AUTO: + case VIR_DOMAIN_TIMER_MODE_SMPSAFE: + case VIR_DOMAIN_TIMER_MODE_LAST: default: if (xenConfigSetString(conf, "tsc_mode", "default") < 0) return -1; diff --git a/src/lxc/lxc_cgroup.c b/src/lxc/lxc_cgroup.c index d31fff5f98..420ec07650 100644 --- a/src/lxc/lxc_cgroup.c +++ b/src/lxc/lxc_cgroup.c @@ -335,7 +335,7 @@ static int virLXCCgroupSetupDeviceACL(virDomainDef *def, if (timer->present =3D=3D VIR_TRISTATE_BOOL_NO) continue; =20 - switch ((virDomainTimerNameType)timer->name) { + switch (timer->name) { case VIR_DOMAIN_TIMER_NAME_PLATFORM: case VIR_DOMAIN_TIMER_NAME_TSC: case VIR_DOMAIN_TIMER_NAME_KVMCLOCK: diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c index d936f34793..42356eb1c9 100644 --- a/src/lxc/lxc_controller.c +++ b/src/lxc/lxc_controller.c @@ -1506,7 +1506,7 @@ virLXCControllerSetupTimers(virLXCController *ctrl) if (timer->present =3D=3D VIR_TRISTATE_BOOL_NO) continue; =20 - switch ((virDomainTimerNameType)timer->name) { + switch (timer->name) { case VIR_DOMAIN_TIMER_NAME_PLATFORM: case VIR_DOMAIN_TIMER_NAME_TSC: case VIR_DOMAIN_TIMER_NAME_KVMCLOCK: diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index b863fd1c32..6574c4c58b 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -6200,6 +6200,8 @@ qemuBuildClockArgStr(virDomainClockDef *def) case VIR_DOMAIN_TIMER_TRACK_REALTIME: virBufferAddLit(&buf, ",clock=3Drt"); break; + case VIR_DOMAIN_TIMER_TRACK_LAST: + break; } =20 switch (def->timers[i]->tickpolicy) { @@ -6215,6 +6217,8 @@ qemuBuildClockArgStr(virDomainClockDef *def) case VIR_DOMAIN_TIMER_TICKPOLICY_MERGE: case VIR_DOMAIN_TIMER_TICKPOLICY_DISCARD: return NULL; + case VIR_DOMAIN_TIMER_TICKPOLICY_LAST: + break; } break; /* no need to check other timers - there is only one rt= c */ } @@ -6246,7 +6250,7 @@ qemuBuildClockCommandLine(virCommand *cmd, } =20 for (i =3D 0; i < def->clock.ntimers; i++) { - switch ((virDomainTimerNameType)def->clock.timers[i]->name) { + switch (def->clock.timers[i]->name) { case VIR_DOMAIN_TIMER_NAME_PLATFORM: /* qemuDomainDefValidateClockTimers will handle this * error condition */ @@ -6286,6 +6290,8 @@ qemuBuildClockCommandLine(virCommand *cmd, case VIR_DOMAIN_TIMER_TICKPOLICY_MERGE: /* no way to support this mode for pit in qemu */ return -1; + case VIR_DOMAIN_TIMER_TICKPOLICY_LAST: + return -1; } break; =20 @@ -6640,7 +6646,7 @@ qemuBuildCpuCommandLine(virCommand *cmd, for (i =3D 0; i < def->clock.ntimers; i++) { virDomainTimerDef *timer =3D def->clock.timers[i]; =20 - switch ((virDomainTimerNameType)timer->name) { + switch (timer->name) { case VIR_DOMAIN_TIMER_NAME_KVMCLOCK: if (timer->present !=3D VIR_TRISTATE_BOOL_ABSENT) { /* QEMU expects on/off -> virTristateSwitch. */ @@ -6667,6 +6673,7 @@ qemuBuildCpuCommandLine(virCommand *cmd, case VIR_DOMAIN_TIMER_TICKPOLICY_NONE: case VIR_DOMAIN_TIMER_TICKPOLICY_CATCHUP: case VIR_DOMAIN_TIMER_TICKPOLICY_MERGE: + case VIR_DOMAIN_TIMER_TICKPOLICY_LAST: break; } break; diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index f54b4587c0..a48b81c9c6 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -393,7 +393,7 @@ qemuValidateDomainDefClockTimers(const virDomainDef *de= f, for (i =3D 0; i < def->clock.ntimers; i++) { virDomainTimerDef *timer =3D def->clock.timers[i]; =20 - switch ((virDomainTimerNameType)timer->name) { + switch (timer->name) { case VIR_DOMAIN_TIMER_NAME_PLATFORM: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("unsupported timer type (name) '%s'"), @@ -426,6 +426,7 @@ qemuValidateDomainDefClockTimers(const virDomainDef *de= f, case VIR_DOMAIN_TIMER_TRACK_REALTIME: break; case VIR_DOMAIN_TIMER_TRACK_BOOT: + case VIR_DOMAIN_TIMER_TRACK_LAST: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("unsupported rtc timer track '%s'"), virDomainTimerTrackTypeToString(timer->trac= k)); @@ -443,6 +444,7 @@ qemuValidateDomainDefClockTimers(const virDomainDef *de= f, break; case VIR_DOMAIN_TIMER_TICKPOLICY_MERGE: case VIR_DOMAIN_TIMER_TICKPOLICY_DISCARD: + case VIR_DOMAIN_TIMER_TICKPOLICY_LAST: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("unsupported rtc timer tickpolicy '%s'"), virDomainTimerTickpolicyTypeToString( @@ -474,6 +476,8 @@ qemuValidateDomainDefClockTimers(const virDomainDef *de= f, virDomainTimerTickpolicyTypeToString( timer->tickpolicy)); return -1; + case VIR_DOMAIN_TIMER_TICKPOLICY_LAST: + break; } break; =20 @@ -526,6 +530,8 @@ qemuValidateDomainDefClockTimers(const virDomainDef *de= f, virDomainTimerNameTypeToString(timer->name), virDomainTimerTickpolicyTypeToString(timer-= >tickpolicy)); return -1; + case VIR_DOMAIN_TIMER_TICKPOLICY_LAST: + break; } break; } --=20 2.35.1