From nobody Thu May 9 21:32:16 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=1649405455; cv=none; d=zohomail.com; s=zohoarc; b=KexUMBYebGvxSbaKh9SHCpLh21KWEFtHm+R+qK1KU/K/L183hWi19sao5bWIAX0OHtu/nREw+pxF0q8ZdlYL3v33iz8KiGY+CyRBspgoJZl++HAjCydRTDK3+Vtmv2Ij1RSi982hRWF/prbFjEv76OUy2PCH8cnom1w+RKceXEU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1649405455; 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=U+9qMTC8SwBy0LqosTKbSMcuBROb3J3QDRx3DDlW+GI=; b=KOaPbP/Me8lY8d+X2df/rFK1x0Zq+/dMbc3hLkAwj1luIbIUhv4GezPzzJG/WYpy/YQZBk1Y0CaW0fBJOBpNwDGv+gU+SY/ZXgqg57st2lBj1rcLjn1Nq0OdElr1pRySMJaUUBDNOfVARpiAm1tmfBS0vNfi8pt8WZKkXR/ADDA= 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 164940545499722.59606742404378; Fri, 8 Apr 2022 01:10:54 -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-397-hnC8cVIFP--dghg9bbK8ow-1; Fri, 08 Apr 2022 04:10:51 -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 4264B801585; Fri, 8 Apr 2022 08:10:49 +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 2DACA40E80E0; Fri, 8 Apr 2022 08:10:49 +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 09CC01940341; Fri, 8 Apr 2022 08:10:49 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id D052E1940349 for ; Fri, 8 Apr 2022 08:10:47 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id BD8C854ACB0; Fri, 8 Apr 2022 08:10:47 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6543F54ACBF for ; Fri, 8 Apr 2022 08:10:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1649405454; 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=U+9qMTC8SwBy0LqosTKbSMcuBROb3J3QDRx3DDlW+GI=; b=FdLZkH9O3fUqBDm9KxHeJULQl3Z0NTdf9oqxI9bkSWcwtY9uhUduJkeT0wN08cyMe2ceoO VXd/6QFx5vwSbUmAhBrNKDuHd3+KH+/HMBsEvuG8wwJ/RSvsrZ3wFhS2FivNoopvLeD9c5 9hIFHzn9eSc21o8apyXcqTST/oHYnDE= X-MC-Unique: hnC8cVIFP--dghg9bbK8ow-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: Fri, 8 Apr 2022 10:08:40 +0200 Message-Id: <24fc4368ba1fbc583e90f01c1d549ac011897405.1649405100.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 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: 1649405456479100003 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 --- 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 33eace04dc..9bef0e6784 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -8623,7 +8623,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; @@ -23255,7 +23255,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 98f82abe7c..0be3217b5c 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 Thu May 9 21:32:16 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=1649405587; cv=none; d=zohomail.com; s=zohoarc; b=k3chi0EwKDsTrAZOhDE9RFFJYAbxnMsQIMdzW1J5aNrN8ZegLg2ue8s7ityZ5bOStF+TBrFwBwZEvu+YgtEgAjeofygDAdIxLPA3QDRielmHlwF9AsPVG0rgWQ3JTUVotC5DYRWk7K22xfJykk4t0kvaLsuuWiz08QkqJIMV2Bg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1649405587; 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=gph0tiiIHAezWqvfs2fBV8XH4q6WVitWqFB3AEahuG0=; b=YY6r9lRcyG/cYrY+u89Wv9RI2cPmKFPPCHYgS6YC93HBwKw1V9uNAZB4MIvExXENNG7YfYHR7uwY6g8/87EwHeVgESy5pO717h/Bx0hptzeJPTreIZcIAVvXJNtE/4rF8FPDyvVgwlj5APhLNobKb7562OweayZs4Nb+D84Zlzg= 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 1649405587057642.4371509139165; Fri, 8 Apr 2022 01:13:07 -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-353-mxYYEcWCNxC0LzlqstyY7w-1; Fri, 08 Apr 2022 04:10:53 -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 49B0A28EA6FE; Fri, 8 Apr 2022 08:10:50 +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 3193E40E80E1; Fri, 8 Apr 2022 08:10:50 +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 DF01B1940340; Fri, 8 Apr 2022 08:10:49 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 85B6C1940340 for ; Fri, 8 Apr 2022 08:10:48 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 76E2754ACB9; Fri, 8 Apr 2022 08:10:48 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0279354ACB0 for ; Fri, 8 Apr 2022 08:10:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1649405586; 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=gph0tiiIHAezWqvfs2fBV8XH4q6WVitWqFB3AEahuG0=; b=bSccfVfUCTsnPtiX3FqhIQOTUVQnG0Sx0i4Wg7Q+fphbSJYPGl+CjAaVaXznhh2UnvkR1P rcW1KQXJRq5eVNt/VWN7kvXkti2jh0tePdy77KmNy31geeQn3O/WuDh50QFZNfzT1Kb3vk afFsn+kg9NE7EA9voxaO/s7nBtl7iTg= X-MC-Unique: mxYYEcWCNxC0LzlqstyY7w-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: Fri, 8 Apr 2022 10:08:41 +0200 Message-Id: <18d279c70deacef4145a3473dacc3710bde74aff.1649405100.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 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: 1649405589099100001 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 --- 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 6398129195..a6a110e548 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -1066,7 +1066,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 dbe44f4ffc..6c16265e2e 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 87194ccbd1..c0edceeac7 100644 --- a/src/libxl/xen_xl.c +++ b/src/libxl/xen_xl.c @@ -1491,14 +1491,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 3d961c8b39..57bd7d25b2 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -1134,7 +1134,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; @@ -1151,7 +1151,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)) { @@ -2206,7 +2206,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; @@ -2605,12 +2605,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; @@ -2751,7 +2751,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 bb45954108..fa086666bb 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -1703,7 +1703,7 @@ qemuGetDriveSourceString(virStorageSource *src, qemuDomainSecretInfo *secinfo, char **source) { - int actualType =3D virStorageSourceGetActualType(src); + virStorageType actualType =3D virStorageSourceGetActualType(src); =20 *source =3D NULL; =20 @@ -1711,7 +1711,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: @@ -1806,7 +1806,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 && @@ -1882,7 +1882,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 a4334de158..8d40e1801b 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -4794,7 +4794,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) @@ -10967,7 +10967,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 8c0e36e9b2..7cc2278c65 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -14677,7 +14677,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 0be3217b5c..3efcc9fb7d 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 Thu May 9 21:32:16 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=1649405466; cv=none; d=zohomail.com; s=zohoarc; b=G8fipWqtbW/yZzIO2E4Z+hAzuHoXvF0kA7XHtJ1WlgXtjfmrW2AfS4MuR8lvJXOzupYOh5k2wFL+zuieawy81xE6g3xVk1nb+ntlOz2DmU9XgXQdKzqfX88sU3LQCZg0HbfQ80eBuscbqNOF4rZhwi51PASHBZfCDPJrIfhJCFs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1649405466; 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=FPyHxG1qNYG3gw0L+Kc24M+WwFVRTNOUH5vzgmfr2XLvVorGVKqGKP0N9hmr1aasPUnzrJQ4QP9SpYGwpwFk35O6gUldULvrV8Iy0Y3oIyXmSEl/tnpRXc4tTM4n9Bz72WOmHZkPAe8BBF32j0adUPlAS1NC6sqbw9ioasLCCr0= 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 1649405466984669.1742345873225; Fri, 8 Apr 2022 01:11:06 -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-503--aOIuJQjMUSR-HRhnSmP1w-1; Fri, 08 Apr 2022 04:10:53 -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 B8FC4180074F; Fri, 8 Apr 2022 08:10:50 +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 A28AF403365; Fri, 8 Apr 2022 08:10:50 +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 5BBA71940348; Fri, 8 Apr 2022 08:10:50 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 33765194034C for ; Fri, 8 Apr 2022 08:10:49 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 13E6A54ACB9; Fri, 8 Apr 2022 08:10:49 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id AFC1C40147F for ; Fri, 8 Apr 2022 08:10:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1649405465; 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=OlKv3UlvYGcP27wutrlQXKzbzpw4/cI72z/NVUmxlSFlPeduFJw4TQc8VxDwAKFZ9V3vw7 MwJTffCzBztciRfguFPPaNaabNt9LNNki0PslR3u2NUQ3CfWG7uNivty78fudd2SX29YzE zwdxN5E6clI3FqAdEUrsUOBjKKukd8Q= X-MC-Unique: -aOIuJQjMUSR-HRhnSmP1w-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: Fri, 8 Apr 2022 10:08:42 +0200 Message-Id: <34792aebff322d30181d62eb01850db34040703a.1649405100.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 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: 1649405468518100011 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 --- 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 Thu May 9 21:32:16 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=1649405465; cv=none; d=zohomail.com; s=zohoarc; b=j/MaV4EVHX+4AnXTyPb2SJ4uKDOLBVQOlGQ/NzQPD2Ebr1Hkzy566gIBg40GF/5ozo5y/K+AtAxZVwG4vNvVlRC2lxiTdEtbsfKBeCXAmXUJ0PNpBEi+GeK4QYTONBEJGpWQx/E62Ou/keRsl7b0DT63CZlABQP8IwTYaEofT1A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1649405465; 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=T/LNI+nQR5vRjfBJAEBiTiFjPb2P8ngqJhPdIsCUu/A=; b=WYfqkqIhCwSprb3tkipglypGBWFINUgJvcSF4isQNUJINTob8zueo9PGTP2RI2CJd3XWWv2zdLl51sI6rxVYH4nJyauzOm9yAqdsM64/XQ6F1CBHye1nE7fR1Jqt+7A+MUyNBKWv6y8teN/ZoKpcg3Z4Tp73Myz8xIOnAMLP6JU= 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 1649405465066968.4714279315406; Fri, 8 Apr 2022 01:11:05 -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-365-EtEiDZSLMGSvkA7xFVmNzg-1; Fri, 08 Apr 2022 04:10:54 -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 7A519804184; Fri, 8 Apr 2022 08:10:51 +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 65D18141512A; Fri, 8 Apr 2022 08:10:51 +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 A98001940353; Fri, 8 Apr 2022 08:10:50 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id C59D51940340 for ; Fri, 8 Apr 2022 08:10:49 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id A509F54ACBF; Fri, 8 Apr 2022 08:10:49 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4C8CF54ACB9 for ; Fri, 8 Apr 2022 08:10:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1649405464; 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=T/LNI+nQR5vRjfBJAEBiTiFjPb2P8ngqJhPdIsCUu/A=; b=Q2MpYYIMhCE41nphniKtQqlUVRTsdGjLJmY30DIkpxMDE8KLnq6ujwk8b1SiBwr6AQ4p8R v9YfaGmbmgNPcGnqxch5D1qMYA43YHanRdOIKvqXJo1aphnWlzwwPlsxn1i+OTG8FxrOKi H+eRB2BYy2jO7Vct9H8xnMWCmtNAYRw= X-MC-Unique: EtEiDZSLMGSvkA7xFVmNzg-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: Fri, 8 Apr 2022 10:08:43 +0200 Message-Id: <65cf32ec388734be0c7f610132e9309f8de71e71.1649405100.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 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: 1649405466555100008 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 9bef0e6784..e4d0ee1eb1 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -6500,7 +6500,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'= " @@ -6673,21 +6673,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; @@ -20563,7 +20555,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 d6869e8fd8..2aab8e8b40 100644 --- a/src/conf/domain_validate.c +++ b/src/conf/domain_validate.c @@ -2328,7 +2328,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 fa086666bb..ba2d6496f0 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -542,7 +542,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); @@ -981,7 +981,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 316cff5b9b..95a68d0654 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 96f5427678..37844c1874 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -1407,7 +1407,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 Thu May 9 21:32:16 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=1649405460; cv=none; d=zohomail.com; s=zohoarc; b=guaHbm0UmxbJgsRVXdyCw736WNGNFz1+4cPNCIdWcC5Pap+XbTlz0Otf8vbdBuZrLX7jquzrEn7UPPn2PIdrk6WITCFGiDkwu/Y3of6xsRFAmNd6hFiOZJpOMzBZWucEgdYUrv1A69s1Azw+IsfF4gz/rJSEeARCgsB/XZCwXPY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1649405460; 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=azLvAXD75jlkdZMixqdMJwV++f9FP9KyrvctJPDRGaQ=; b=m+psyQJG0K6efhj3cxKhWD+9tsWsdw3ca02gvGe4QSnwQ7upf0kIo90Du5BGBrrn1zvX/eTL9/BYJSZR/WEKZFgKm/X+JQvB1QcBuk3Qj+YQNsgyb/m9okpjMt+rMhiVWSYSUWULGKvYlXfkQaQsAoq15y7MrOnldXMGtGnRylE= 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 1649405460685746.0151676813109; Fri, 8 Apr 2022 01:11:00 -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-562-ArEtte_-OPCNKzKpOkroLA-1; Fri, 08 Apr 2022 04:10:55 -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 EE1BB808799; Fri, 8 Apr 2022 08:10:51 +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 DB77F401475; Fri, 8 Apr 2022 08:10:51 +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 4B6D81940341; Fri, 8 Apr 2022 08:10:51 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 4CB811940340 for ; Fri, 8 Apr 2022 08:10:50 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 41667482CCE; Fri, 8 Apr 2022 08:10:50 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id DDA2954ACB0 for ; Fri, 8 Apr 2022 08:10:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1649405459; 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=azLvAXD75jlkdZMixqdMJwV++f9FP9KyrvctJPDRGaQ=; b=QY4Lj5lZsIDtgc2urD5Bsbp6YXu16P5NFSSKsAS8oXpNTtERmPT+O2oR9YwaYKC0O0yuhi jCIuJo9LgVmFJxl/PI4YLGCr2b09ZkyqR4aGAek6J9Q6vKVHhhwfkPxUGJWRxzpOZZyn+k EJi4rgs0WvHYTm0gK44mkka4T40YlL0= X-MC-Unique: ArEtte_-OPCNKzKpOkroLA-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: Fri, 8 Apr 2022 10:08:44 +0200 Message-Id: <0f1038ed3e4a1384ca43e30e8d86eb86d2b1ddd2.1649405100.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 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: 1649405462815100001 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 --- 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 e4d0ee1eb1..451221624e 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -6970,22 +6970,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 @@ -7001,7 +6996,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 57bd7d25b2..61a6262213 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 ba2d6496f0..faf18fd6a8 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -1586,6 +1586,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 d5622bd6d9..bf3245f7e2 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -6529,7 +6529,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 Thu May 9 21:32:16 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=1649405523; cv=none; d=zohomail.com; s=zohoarc; b=BjsASYiWIeK5Qlvsq2DvbQBMMyPfVRdJ0nYypVKsEBvidKrWm/njR7WzB23vB8ehnweobIWhepPsfZaaHA5zgnuxUsd/+dN73NIUHukc+BAbfpYYcGgB3RMri1gJnJ1TLXfuc3oseaVZiF3YjfwS5/Y7H6fY+Dx71C/BNAFYeuU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1649405523; 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=MH0+eFuileO6BaaS+4EGEpiapQQgizKrJ/zdCl/3baQ=; b=nrFY4+rbBiYU9khsFSo/nNWrJhNI+UzzO22kBp5xi8EtWyIzjfjn2CH9CIODDUUBRlowsXVy3b+VlseLvHIUrQAisw2Tr7WxgaRVz6J2hpssqPGHhzcxrJqijr76FeWEsaGJCs5nMKllz0eWMAMQsK8YyGHRL/kcSZ+RXyQVY9E= 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 1649405523487117.79168412793649; Fri, 8 Apr 2022 01:12:03 -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-587-TfbzWempNBWte-_E6neJ3g-1; Fri, 08 Apr 2022 04:11:00 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id E55FF1C0B109; Fri, 8 Apr 2022 08:10:54 +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 CA12440CFD09; Fri, 8 Apr 2022 08:10:53 +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 636F71940341; Fri, 8 Apr 2022 08:10:53 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id F1A931940340 for ; Fri, 8 Apr 2022 08:10:50 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id D44A4401D25; Fri, 8 Apr 2022 08:10:50 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7CA9954ACBC for ; Fri, 8 Apr 2022 08:10:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1649405522; 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=MH0+eFuileO6BaaS+4EGEpiapQQgizKrJ/zdCl/3baQ=; b=CLTHEe6KSN4GBWGt4P3MB4zE0mxOyN2e0vTk5+1kqgMC3RLhFn7p6x/gYzlZ6ozpgt365t E1zLBtpT40HzqjGaIriWdAgYv6rihd95OR54FVNVMyJ7yWtUHBB9Sw0hUp7CjY7NX2orhk YZixBkrJW0Zd1s/rfXFw8Z9oXREqpoc= X-MC-Unique: TfbzWempNBWte-_E6neJ3g-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: Fri, 8 Apr 2022 10:08:45 +0200 Message-Id: <53781535ae799a36c8fc75b977b050841a48677d.1649405100.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 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.1 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: 1649405524971100001 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 --- 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 451221624e..f35fd080aa 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -7197,20 +7197,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 694491cd63..83bed11c29 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 faf18fd6a8..8eda740571 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -5293,7 +5293,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; @@ -5334,7 +5334,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 8d40e1801b..15f753b0fc 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -5724,7 +5724,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(); @@ -10996,7 +10996,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 7cc2278c65..76d2c52845 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -6162,7 +6162,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 995737ce86..8c19b812da 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -6310,7 +6310,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 ed41b7a7a2..7bf1379e76 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -424,7 +424,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 Thu May 9 21:32:16 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=1649405529; cv=none; d=zohomail.com; s=zohoarc; b=eu0B9nntA+y56FUtSdUUpdbNoCm/F3vYvdeJqu9ZEepSSYr/E5+dJICd+PD8mU1MGjPiK3cnLIFqQaxpxNFjD0Zn/+StVuM2NsbZVD5jqwnk0KVddd4maHx9CK9NMqaC/gltYhCyncXCwOXedKnpV1ffAG3qnVS4IIZtf9K3RLc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1649405529; 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=Y2DD8e8lFIi6+SzHbHA6Lpz9bFrgg1NtCucFJuYH1C4=; b=d4QxzRvauQ9Q0gkIRiSWpdQ4q+FhAxv402E5t1wnmao5gAuV24Rax6o36fMNRop6MATaitjR9HNR/xl8Db+tcVC8y9IVaKsuQmzqv+nvJqn4FSx1nn/sS9v+UBrP6FtFxIDEmwHS7frqMUrlBs3pM/ywlJBD2wru+UqsW+nJw18= 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 1649405529356701.5329806741038; Fri, 8 Apr 2022 01:12:09 -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-608-fosj9iEOPFy57tPilRmBBg-1; Fri, 08 Apr 2022 04:10:56 -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 F10263C14CE8; Fri, 8 Apr 2022 08:10:52 +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 D846EC4C7A0; Fri, 8 Apr 2022 08:10:52 +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 99A051940341; Fri, 8 Apr 2022 08:10:52 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 7E0061940357 for ; Fri, 8 Apr 2022 08:10:51 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 7199940147F; Fri, 8 Apr 2022 08:10:51 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id 18FC154ACB0 for ; Fri, 8 Apr 2022 08:10:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1649405528; 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=Y2DD8e8lFIi6+SzHbHA6Lpz9bFrgg1NtCucFJuYH1C4=; b=Cxv8i6DcFHP8PYTfjWaGMn7p+LzZ7nYNhNdgNnFFj2VkZegGeHuKzZjX3skl5FeGNZMRso l0Gt2bqKX8/w3MEi06MQMYIMGV6w9CpyHrA/9WQCE8A2Q8N5H39lbuxhmP6i/fp7x7dGGd g5jhqU5XiB+hOGzphpZnmWzNVE156wQ= X-MC-Unique: fosj9iEOPFy57tPilRmBBg-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: Fri, 8 Apr 2022 10:08:46 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 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: 1649405530806100004 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 --- 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 f35fd080aa..bdf0ae06a8 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -7226,24 +7226,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 83bed11c29..9173c98d42 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 Thu May 9 21:32:16 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=1649405464; cv=none; d=zohomail.com; s=zohoarc; b=HCxf0VfDEeEytQ0GhW2KeDFsJCoAEdySEYiYUb44tYciOISH5Cadw/3jw4H4bQ13bjr4qo+UzIQZALTKvZMtXo6dV+75tSWkRP1EeHZG0BKpBUiIHQGBR9xm5SzSBxd7iAxZa9o0qUoOUH5aI5I8X6csXuDXWnrKIeeAeZCi5uE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1649405464; 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=dTBiB3Xxtt6wzwAkQ9JjZ3bipI3FLfV3FEthhL5oSJw=; b=FofKYnirS40mBMsJm9u9ORJX8HF7KS1aCVYZq25DvP4iy8fWELmTRu7BuQ2bs06wfA1W1USAv5EvlAPG+5nP0xpzI4B2xUEhgAJYvnA29owTdgHXwLBDtDeWZLvLgyw02/1bnlnqS3buGwZ37XOItd8eJ6wssrIRJ1Khl6D9RdA= 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 1649405464112801.7599544550129; Fri, 8 Apr 2022 01:11: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-658-iEGwvZb5MfijNrMwGXGaUw-1; Fri, 08 Apr 2022 04:10:57 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 4CE108339A4; Fri, 8 Apr 2022 08:10:53 +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 31604407C943; Fri, 8 Apr 2022 08:10:53 +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 F26851940341; Fri, 8 Apr 2022 08:10:52 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 1BE8D1940340 for ; Fri, 8 Apr 2022 08:10:52 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 0DFB7401D25; Fri, 8 Apr 2022 08:10:52 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id AA0DC54ACBC for ; Fri, 8 Apr 2022 08:10:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1649405463; 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=dTBiB3Xxtt6wzwAkQ9JjZ3bipI3FLfV3FEthhL5oSJw=; b=SbU9xEunKHQivpUgG0dM9cAEX3CUhTbNj/Plcnot2b9gI16Juk0jtHxdI40Douq0VM8WAY 3qmFnWjMPhkS4DST53xygSl1E2FA4GAYQ5pUTbhDD+hHreW2VRz0fp7bic//2lU6chNqP8 Bf18I8FBAHwzyrS5LYb56I0H2adUZtw= X-MC-Unique: iEGwvZb5MfijNrMwGXGaUw-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: Fri, 8 Apr 2022 10:08:47 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 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.1 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: 1649405464549100003 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 --- 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 bdf0ae06a8..e348748062 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -8369,7 +8369,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); @@ -8387,18 +8386,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 Thu May 9 21:32:16 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=1649405465; cv=none; d=zohomail.com; s=zohoarc; b=DjnmYdB6ByIGTtDWghGqy0KDnHROidKqiBIEjK9HlljGVt6BqdrShauZ8DRW1rXgEpoJmfhfVCVf27iSvhCLNZiPAqt+q8DD63Ulv8ohyIPP6EDekLJmsf357resv3gwD7D8WBO2jG7B2m6icEhhrvMI3hj3jt6T7X9oeAWeJ34= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1649405465; 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=Z/pyg8jsoy9w3dI2D8vTeYtoAtjhayCCSsOzKeyBkOs=; b=VAYz5WEJLozcLykrmIgQhG6EcnFcoSnEkoZBQHiDxCyJzs5vwRWkbv4XP+ctT0BVpAmKg1AHa/JFARUdq1gmvImTP7gdCofbkUfyv84T0ix7Y9d/2gIE6HYL6/ksImoz1cTTgsTb7F9z2kZ6YrqRb4Ytz8CrwsTvgjyeia//6uU= 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 1649405465661882.5071948582369; Fri, 8 Apr 2022 01:11: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-604-gc9ySq1SOniHGbJ0YbRmZA-1; Fri, 08 Apr 2022 04:10:57 -0400 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 9E30328EA6FE; Fri, 8 Apr 2022 08:10:54 +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 8A21654ACB0; Fri, 8 Apr 2022 08:10:54 +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 AE97D194034E; Fri, 8 Apr 2022 08:10:53 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id BD455194034E for ; Fri, 8 Apr 2022 08:10:52 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 9FE1654ACBC; Fri, 8 Apr 2022 08:10:52 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id 481EE401D32 for ; Fri, 8 Apr 2022 08:10:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1649405464; 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=Z/pyg8jsoy9w3dI2D8vTeYtoAtjhayCCSsOzKeyBkOs=; b=eWqTD5hWDJCsuI2Sb1/ECOJqVU+nw9H+b2Uy6QIukgqSI+4xuQUQOUYPzedFL86DDXqOsr pTzn38jHJYpGL1rTM9HDJZiFfzUbhUeDtyU+kx3W30b1AwYb59cBp3uRLMULQP5cb7YKCx glG/uBsKO4gsN1C5Vj3f6C2qVa7RoRA= X-MC-Unique: gc9ySq1SOniHGbJ0YbRmZA-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: Fri, 8 Apr 2022 10:08:48 +0200 Message-Id: <33253cdb0c84cdb990cf7b6b215213b3b0af4506.1649405101.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 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.9 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: 1649405466526100007 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 --- 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 e348748062..cb4b43ea23 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -8808,21 +8808,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); @@ -8864,12 +8859,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 9173c98d42..f23444d768 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 8c19b812da..bb754ff8d6 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -8625,8 +8625,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 Thu May 9 21:32:16 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=1649405526; cv=none; d=zohomail.com; s=zohoarc; b=SPnirq9HB8vLfGUrw/bldIlDj7f4KVoj4Dy47i6BJ4MPvgIxbhMH/tH9wXFD6v4ziWQqHnSHF4WoD0nerX01eJ6CIBqGZZCX+ONRDatEmYDdG1+X3cqiCq5CSd2rMzmp08KGWy8X5FqTsk5y7/DFc9pDktdWPetuJZwz0v4j9/o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1649405526; 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=pCDSyI+Emzd3OHzpmybgziaajVLQonoe1ZiIfbRzqgY=; b=NyDLejRYOnsaxNm92RxSce+sOLbGIbOxY5zsNsrdd6uXsyTeznoC/krzjlZEMQvU/C3ZX2Qj8Qlg1D56F9f3uqjLIViYssaYSsnECDuS+MxRFTR8mRCJbrNn/2O+Ha0uO5OUJ9fH4uvchETBEDAR+sDoD9ufegxw10/VX7fAJ+g= 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 1649405526795339.3988905728678; Fri, 8 Apr 2022 01:12:06 -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-587-wEJqXIxCPs-ilb4vE4xcQg-1; Fri, 08 Apr 2022 04:10:57 -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 EBAF280418F; Fri, 8 Apr 2022 08:10:54 +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 CB5A0C4C7BD; Fri, 8 Apr 2022 08:10:54 +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 03EE21940357; Fri, 8 Apr 2022 08:10:54 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 499F11940341 for ; Fri, 8 Apr 2022 08:10:53 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 3D55154ACBC; Fri, 8 Apr 2022 08:10:53 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id D95ED54ACBF for ; Fri, 8 Apr 2022 08:10:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1649405525; 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=pCDSyI+Emzd3OHzpmybgziaajVLQonoe1ZiIfbRzqgY=; b=TOkdaPY/+EVFg6wxYGtAZj8RcmK4g+OSInRyiZL4Hbzqk8uOjdiLLunD6GvHF0vqwbQ4ZO jQw60mJpAmlArcATVYwOyfsI0o9pSvv0ASm1Gz8sJ0DilDp2ETZzB8L76CrGcdZR+cwT43 sPt9oft2iqzXNntXiF6kCfmSTA1fIC8= X-MC-Unique: wEJqXIxCPs-ilb4vE4xcQg-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: Fri, 8 Apr 2022 10:08:49 +0200 Message-Id: <5714b41d6ec9cc3640a472d8c824f2a0248925f3.1649405101.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 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: 1649405528771100001 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 --- 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 cb4b43ea23..3bbc5f2214 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -8157,7 +8157,6 @@ virDomainDiskSourcePoolDefParse(xmlNodePtr node, { virStorageSourcePoolDef *source; int ret =3D -1; - g_autofree char *mode =3D NULL; =20 *srcpool =3D NULL; =20 @@ -8165,7 +8164,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) { @@ -8180,13 +8178,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 Thu May 9 21:32:16 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=1649405534; cv=none; d=zohomail.com; s=zohoarc; b=YROPzwz4Au5jMdcZFLcP0FHbMN2xBOk62Kna+d+fZroIqpvgVIclLRkjI/lZdo7of6paExAZElIdDfMozfxD2eVARfLAoiTlfbHAYFXHyZ6gKbBT3QXwf7IBNQFVuafVwmFIVGqMIBdmsn3Bc+nADwFG36pdzUlG8tFwS4GuIYA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1649405534; 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=2j6oiso8I94F4bghlnnc+qKThxqHvk5jWvDbB7rLxcI=; b=ZlTRpb283eqw/KQ+zwLR6K7wQnh7DxX1DBv6vzeB29O1aMbMXbOW5Eey2DNMgQ7e2CIHE+lbiEE5dWAx1hkEMsN5LBE+/4dknz+05QDqBRkvV91sOcPBgkJlMTS7lU9t+CnKft63BXhPYGkZUTlh4OMbsfDRca6HnlOonx0M+Rg= 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 1649405534719353.9562437259765; Fri, 8 Apr 2022 01:12: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-401-5wz6RlOKO0StseYog8C_tQ-1; Fri, 08 Apr 2022 04:11:02 -0400 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 8B0F586B8AB; Fri, 8 Apr 2022 08:10: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 7483F54ACB0; Fri, 8 Apr 2022 08:10: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 A004A1940350; Fri, 8 Apr 2022 08:10:57 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id D93881940344 for ; Fri, 8 Apr 2022 08:10:53 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id CDDD1482CCE; Fri, 8 Apr 2022 08:10:53 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7649D54ACBC for ; Fri, 8 Apr 2022 08:10:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1649405533; 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=2j6oiso8I94F4bghlnnc+qKThxqHvk5jWvDbB7rLxcI=; b=CR2ISYhiOBxzNR4jV0nCCAyU4YbB/ouS/iKDEW0BgxnYu/LQLulqCo8+3imy9S9QUwjbog +4lT19Nd86J7SW2KLoFW1R2RPFdNmGqpO3WS6M7Ed3iDScoMYA6CXhwvzexOZi5/Rdli2K 3iCnhS5zZ5pH0bdUZrxwr1/sACwVMm4= X-MC-Unique: 5wz6RlOKO0StseYog8C_tQ-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: Fri, 8 Apr 2022 10:08:50 +0200 Message-Id: <248f0398fd941df1c9c81afddf26bb46863ff84c.1649405101.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 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.9 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: 1649405536815100001 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 --- 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 3bbc5f2214..97cf4f20eb 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -9043,15 +9043,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 Thu May 9 21:32:16 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=1649405464; cv=none; d=zohomail.com; s=zohoarc; b=jStbJRJVckuY7ySxL2teEdJdxtDP4ghxuT4D1fFe4fNaBmm6jdQiY5BQw6nqLWqQbQzlHuNGxFqPxZrJpx4oByhXxs0eFETqNBgqi+KHY7fRnMXD/cH5VyanBKwe/GGuwkGAvhPRt2/Ip2GaMuMDP+RpBC+j602lQ5yzYiMxxEI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1649405464; 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=py8YrVk0ag3UWU2bpQsrKlc1PkLqitLTDyLWC+ZD954=; b=bmbwW3YfzExCx+cCXLjQeZ008gIivH0NLB28jAEHtsOl5k2cynUg9VpwrucanTPHo6YuF3IkDY2n4R5+NtWGG1AXeFIpypQ+B3hKh2vqrmmwo/Nr18twOT1Bt0HaJuOWnnwsLzGpGriLXVksNFR1HeRjNCb+g4RL1v+2rm5BTD0= 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 1649405464089558.2608256148659; Fri, 8 Apr 2022 01:11: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-382-Yp2ePJMuNlCUfjDCRiusBQ-1; Fri, 08 Apr 2022 04:10:58 -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 9D7F91014A8B; Fri, 8 Apr 2022 08:10:55 +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 85E7840E80E0; Fri, 8 Apr 2022 08:10:55 +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 459DF1940341; Fri, 8 Apr 2022 08:10:55 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 936F91940342 for ; Fri, 8 Apr 2022 08:10:54 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 8845054ACBC; Fri, 8 Apr 2022 08:10:54 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1327954ACB0 for ; Fri, 8 Apr 2022 08:10:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1649405463; 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=py8YrVk0ag3UWU2bpQsrKlc1PkLqitLTDyLWC+ZD954=; b=CuCwn/u+lZomLbWQWG0Vpmc5LrArY9G1mspOAuqIUxwPR3lOK/ainBEp69yXOy61nbmZj8 3QFsrLsM2M4AhJ9IVJYxLJ98geHu6MaEgHgP+3z0XtcPBfkp6C4v1fmuYoQ1XzCo7hCOTz EwOsheLjqWvX6fyDXfcPQPwwpUitF30= X-MC-Unique: Yp2ePJMuNlCUfjDCRiusBQ-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: Fri, 8 Apr 2022 10:08:51 +0200 Message-Id: <95c2ade5e1aaf78cc63b4fd3bc68247054e26201.1649405101.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 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: 1649405464592100004 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 --- 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 | 24 ++++++++++ src/libxl/libxl_conf.c | 16 +++++++ src/libxl/xen_common.c | 19 +++++++- src/qemu/qemu_command.c | 6 +-- src/qemu/qemu_domain.c | 30 +++++++++++- 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 | 20 ++++++++ src/vmx/vmx.c | 22 +++++++++ tests/testutilsqemu.c | 2 +- 17 files changed, 172 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 97cf4f20eb..84a65076b9 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -2684,7 +2684,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: @@ -2745,6 +2745,13 @@ virDomainChrSourceDefClear(virDomainChrSourceDef *de= f) case VIR_DOMAIN_CHR_TYPE_SPICEPORT: VIR_FREE(def->data.spiceport.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_LAST: + break; } =20 VIR_FREE(def->logfile); @@ -2762,7 +2769,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: @@ -2850,7 +2857,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); @@ -11247,7 +11254,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; @@ -11444,7 +11451,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; @@ -11452,15 +11458,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) { @@ -11518,7 +11521,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) @@ -11564,23 +11566,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) @@ -13268,7 +13261,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 @@ -13324,22 +13316,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, @@ -14239,7 +14223,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 @@ -14257,18 +14240,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 */ @@ -24975,7 +24951,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 f23444d768..c500a78680 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -1272,7 +1272,7 @@ struct _virDomainChrSourceReconnectDef { /* 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 2aab8e8b40..9e64a96eb9 100644 --- a/src/conf/domain_validate.c +++ b/src/conf/domain_validate.c @@ -843,7 +843,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..7123229ede 100644 --- a/src/conf/virchrdev.c +++ b/src/conf/virchrdev.c @@ -339,6 +339,18 @@ 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_LAST: default: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Unsupported device type '%s'"), @@ -404,6 +416,18 @@ 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_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 a6a110e548..7a733cf30d 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -273,6 +273,10 @@ 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_LAST: default: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("unsupported chardev '%s'"), type); @@ -1970,6 +1974,18 @@ 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_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..1b22bc2787 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,16 @@ 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_LAST: + break; } =20 return def; @@ -1525,6 +1538,10 @@ 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_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 8eda740571..3ef062f2e5 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -1303,7 +1303,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; @@ -1458,7 +1458,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; @@ -8628,7 +8628,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 15f753b0fc..f8e67e5479 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -2309,10 +2309,26 @@ 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_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_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 bf3245f7e2..3cfd1cc161 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -6681,7 +6681,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 bb754ff8d6..5f70bd3115 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -6820,7 +6820,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 37844c1874..097e35a430 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -1975,7 +1975,7 @@ static int qemuValidateDomainChrSourceDef(const virDomainChrSourceDef *def, 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 8f7acba980..957c1a6357 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: @@ -1066,7 +1066,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 e9e316551e..183f291cc6 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, @@ -1596,7 +1596,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..099306b522 100644 --- a/src/security/security_selinux.c +++ b/src/security/security_selinux.c @@ -2570,6 +2570,16 @@ 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_LAST: default: ret =3D 0; break; @@ -2643,6 +2653,16 @@ 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_LAST: default: ret =3D 0; break; diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c index 8150bbfaa9..8f519e9302 100644 --- a/src/vmx/vmx.c +++ b/src/vmx/vmx.c @@ -4116,6 +4116,16 @@ 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_LAST: default: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Unsupported character device type '%s'"), @@ -4173,6 +4183,18 @@ 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: default: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Unsupported character device type '%s'"), diff --git a/tests/testutilsqemu.c b/tests/testutilsqemu.c index 105b41cbeb..c0c829fbd1 100644 --- a/tests/testutilsqemu.c +++ b/tests/testutilsqemu.c @@ -1031,7 +1031,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 Thu May 9 21:32:16 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=1649405594; cv=none; d=zohomail.com; s=zohoarc; b=RsGGnbrL39UMfwhlXyr/t2eP55HmXrsL9wgOSGYNJRkShia8UVKYz8vmbfrsPgz5G/3vfhU2VQvh2zCfSyCipyE8ooY1VOTjTFaA19ASwnfmRKA1Y3qAsIk9aeYGENv993ONGEu9ieS2XevITsZHkPOu8lY0R5ypM7ODHkDCZGU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1649405594; 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=JdmgWs2v81zUIogj5JhNWj5l10dIVaVWUBZYvcSM8wo=; b=K7YGTp4O5KDIL17aGg3kv5vaKqiRTxcNFSAqpS4f8xVp8nZ0NYQSC/1ef5BMnYic7y92iYuSzx8Q4c2Pmw+J7Psr1Edd/2SKsoP5LdnLa1C38Hsf56E5IMJ1UczPx62xaYLSXp0reulOxrfgqevGc9b4MGo11MSmNPTJmbgurm4= 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 16494055943432.5958880277856906; Fri, 8 Apr 2022 01:13: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-295-bkhPhjq4PjyDu1N-QGYgPw-1; Fri, 08 Apr 2022 04:11:02 -0400 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 50CB580B71C; Fri, 8 Apr 2022 08:10:57 +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 3A60754ACB9; Fri, 8 Apr 2022 08:10:57 +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 EAEB71940341; Fri, 8 Apr 2022 08:10:56 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 45FBD1940342 for ; Fri, 8 Apr 2022 08:10:55 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 2766754ACBC; Fri, 8 Apr 2022 08:10:55 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id C152B54ACB0 for ; Fri, 8 Apr 2022 08:10:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1649405593; 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=JdmgWs2v81zUIogj5JhNWj5l10dIVaVWUBZYvcSM8wo=; b=GqqFq1cY91OMdP738Hzm1+H5Vr1KSlEqWziunJIB+nEfmbm4iYLz2WayLlDYRMk+jYoHWE 2iISEEPBv7EVx22EX5XgOUWVI4XGNybeklcpKM2Ec/LXNEFX9w7KNRo5f03pLdXkFXCINO /g8Du6v10ylpsR3BFmtFkMgG6Xzi15I= X-MC-Unique: bkhPhjq4PjyDu1N-QGYgPw-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: Fri, 8 Apr 2022 10:08:52 +0200 Message-Id: <3d54931b58a35ba10a5e061fc136357dd4c0b3ed.1649405101.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 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.9 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: 1649405595145100001 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 --- 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 84a65076b9..1f18bab332 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -11644,9 +11644,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; @@ -11655,13 +11652,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 @@ -11680,30 +11675,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 c500a78680..9891a5e276 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -1407,10 +1407,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 3ef062f2e5..4dd803642a 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -9785,7 +9785,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 f8e67e5479..7a5433107a 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -11768,7 +11768,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 097e35a430..d30ffeb3ea 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -4676,6 +4676,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 Thu May 9 21:32:16 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=1649405529; cv=none; d=zohomail.com; s=zohoarc; b=RnJuADmZh7rRExaZMWHNzM52NMRrteXK7u9I5UIZ3s942uDN/hnUSNNwi2D26B0CIAtFbbF8cIh7uSmjw2GnSRP9w1UZ6SVT44Thu6ycD89Qub6neiHoAGbizvNfWIWztfYSclHsQhIq2whbfih4IP6xmIxceqrVXySudvT095M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1649405529; 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=y8RSt7iYauscycAGWfpajIOYGLCinC7ul6XtEcI0fO0=; b=QCUZgQtip9ktWQ+XcEnURMawS7a3SWuvUGFfut8Al5qCtRNHSgrE15noTJR67H9E0Ywjn0i7kyT9X5JGVCSw404d2yCp9VQnXCjrn9oiYyk1LsCnxvcDdcADnZNquhwzkIVYeGTP3+1jsBzoAUxSBxfvCljywcINTk59ePGYXz0= 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 1649405529309527.0397917436164; Fri, 8 Apr 2022 01:12: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-88-AoXD_4d-N-KqMJgl-dm_Wg-1; Fri, 08 Apr 2022 04:11:02 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id B77251014A86; Fri, 8 Apr 2022 08:10:57 +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 9C2344066C9F; Fri, 8 Apr 2022 08:10:57 +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 3A51C1940354; Fri, 8 Apr 2022 08:10:57 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id D28DE1940341 for ; Fri, 8 Apr 2022 08:10:55 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id B6FEB54ACBF; Fri, 8 Apr 2022 08:10:55 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5EADB54ACB0 for ; Fri, 8 Apr 2022 08:10:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1649405528; 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=y8RSt7iYauscycAGWfpajIOYGLCinC7ul6XtEcI0fO0=; b=Z+7eXx0t4txR4TUnS99eIiF0dp50A1aN8eFIJvFohFSKjy8vLh8Ex6RAAq7qbPZ5SAdLus rldLTrG6hm7T9O6pIVK20D4zBHOs28PdYuEc95mmfJ0Tz72vCSaJNrJXS7nvH8bHLyV/2z ldLPV8i33OFPoe4SpGFJNLPVMgV04SI= X-MC-Unique: AoXD_4d-N-KqMJgl-dm_Wg-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: Fri, 8 Apr 2022 10:08:53 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 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.1 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: 1649405530790100003 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 --- 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 1f18bab332..678b9265c7 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -11755,7 +11755,6 @@ virDomainPanicDefParseXML(virDomainXMLOption *xmlop= t, unsigned int flags) { virDomainPanicDef *panic; - g_autofree char *model =3D NULL; =20 panic =3D g_new0(virDomainPanicDef, 1); =20 @@ -11763,13 +11762,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 9891a5e276..9a0b962ec8 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -2596,7 +2596,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 4dd803642a..72bca45dc4 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -9976,7 +9976,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 d30ffeb3ea..d4f0ea03e8 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -935,7 +935,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 Thu May 9 21:32:16 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=1649405591; cv=none; d=zohomail.com; s=zohoarc; b=LLa7IE1Gpi4wEs08XpazsNfxdZZzVR6sgPI34uFH2I8VQKbjJ9/ilGf77/CFFbXfc6PtrHtca85Shc3MNXt4dWLRWxUtfObkbvDTGg+BwE8ZO4edB8utsFUTp1fPQCeVu8QIIM4kU/OdATlxT+vJ3Nq64bP99P8NuY2+jWDScrU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1649405591; 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=Z28I1XS4uhLZtHHRh1vV/Gg2p22ff0o6E5WR6pFX6dw=; b=BvWVNbQer5H2iQRMhvlYiC7n41w4VSHIy7OYGHk8Fw6Sry7vrGE/OQpB+fPPdG4s3CG5rtZk1ogYwMMK19kiCxZMYFORHb10qesQ4iToCbDEBiJ4chgXG11qQlg5vSrT8rOmk8vsXjO9A24giJLiO3giWNpnM4ZRkc1sdaJghwc= 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 164940559125738.84731500303906; Fri, 8 Apr 2022 01:13: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-266-VynSKFukMeOi3VCikTp4WA-1; Fri, 08 Apr 2022 04:11:03 -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 0226280C8FB; Fri, 8 Apr 2022 08:10: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 DBBDBC4C7A8; Fri, 8 Apr 2022 08:10: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 98C131940342; Fri, 8 Apr 2022 08:10:58 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 760511940340 for ; Fri, 8 Apr 2022 08:10:56 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 54AF654ACB0; Fri, 8 Apr 2022 08:10:56 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id F08D854ACB9 for ; Fri, 8 Apr 2022 08:10:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1649405590; 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=Z28I1XS4uhLZtHHRh1vV/Gg2p22ff0o6E5WR6pFX6dw=; b=QOwyyKfUhD3lnIXB7RAubE5kvNKOa9VuCpSdpGqlK0YOpSQjW1msGK4mwC8DV51F8upyE2 G6XXZRBWJ84mCj9BffL4phd4hfQF9130ydWqQokHQLp92zdm9FWEWWQaZt0LQBJ3jzy2Rr 4yZr6EilCtPWZINvPMfPVwy1sItc9VQ= X-MC-Unique: VynSKFukMeOi3VCikTp4WA-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: Fri, 8 Apr 2022 10:08:54 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 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: 1649405593049100001 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 --- 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 678b9265c7..0cb8de8b1f 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -1932,7 +1932,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: @@ -11785,70 +11785,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 9a0b962ec8..836f518f9c 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -1477,9 +1477,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 9e64a96eb9..fd04add5d2 100644 --- a/src/conf/domain_validate.c +++ b/src/conf/domain_validate.c @@ -2177,7 +2177,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 7a733cf30d..e3924e8b43 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -722,6 +722,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 c0edceeac7..36d6e1156d 100644 --- a/src/libxl/xen_xl.c +++ b/src/libxl/xen_xl.c @@ -1759,6 +1759,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 72bca45dc4..5cfcdc3699 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -872,7 +872,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; @@ -4515,7 +4515,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: @@ -4564,6 +4564,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, @@ -4628,7 +4632,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 274f47c25d..bc38ee0a11 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -3236,7 +3236,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; @@ -5978,7 +5978,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 d4f0ea03e8..65b5fe7bc6 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -4734,7 +4734,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, @@ -4752,7 +4752,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 957c1a6357..e74045f563 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 183f291cc6..e2ff861fd5 100644 --- a/src/security/security_dac.c +++ b/src/security/security_dac.c @@ -1788,7 +1788,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) @@ -1817,7 +1817,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 099306b522..6cdbd963e7 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 Thu May 9 21:32:16 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=1649405532; cv=none; d=zohomail.com; s=zohoarc; b=OTllo49vwBTxFaIKQD+gUIz1ghm5i6+qhsAVbiq23zegd6hc2qAo2sc6U74CjLmA2zfJS08wTsIsZvmpwm335mU5QHNMKUdDJ+O3nB3tao/J7+Lo4JN8ph5ktAiEUcN9VagzxhSoy3i9x64FbD/3zPfbdwWMIAhDDMrfyABf2fo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1649405532; 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=OKEUZ00XSDt7OpeBD3IfZBtMy88oef/fkZmZEhE5ZfQ=; b=TFu9yrOUrT5zM9Ok7KW5ycOIddd4UwZU+iqEjXYFot6VpMSQS0kdbWGMj4W0DPh5HIHwHVetv7H8e5tumomn753SCdWHh9mGpPIHsWFiq9TdD9dBlv4LKfEGW9rGLbIO9fhWgBwm1BQthPoTyh3dKdblxXpTLSVor3aWF/zaA28= 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 1649405532231690.4756439642731; Fri, 8 Apr 2022 01:12:12 -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-624-BrKFmiw9MMa8eU6KUPElDg-1; Fri, 08 Apr 2022 04:11:03 -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 7F4D4833974; Fri, 8 Apr 2022 08:11: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 6B044145B989; Fri, 8 Apr 2022 08:11: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 430C41940341; Fri, 8 Apr 2022 08:11:00 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 0291B1940348 for ; Fri, 8 Apr 2022 08:10:57 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id E5E7654ACB9; Fri, 8 Apr 2022 08:10:56 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8D80454ACB0 for ; Fri, 8 Apr 2022 08:10:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1649405531; 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=OKEUZ00XSDt7OpeBD3IfZBtMy88oef/fkZmZEhE5ZfQ=; b=Ds/jnMF4ZOBdwqesS+ry6an1wyyTfcjb1ZKcQLpgcUJQk96JXZ6C6s8ry3NhZdRRf8WNbN nlAHcTJnlu8J1nTxhlC2gFKVXEckT5E7lBLm4Z8i/1CFhs6iFkEiXtgHQeceTDHscFi16O UCZ6iQSlVEYa8stKIV1cvGYdIsJeYGQ= X-MC-Unique: BrKFmiw9MMa8eU6KUPElDg-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: Fri, 8 Apr 2022 10:08:55 +0200 Message-Id: <3aa0825673f55d050a927c569cf94171a147929a.1649405102.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 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: 1649405532798100007 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 --- 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 0cb8de8b1f..26acc56dc3 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -11901,23 +11901,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 836f518f9c..5c85d3e334 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -1365,8 +1365,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 @@ -1871,12 +1877,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 Thu May 9 21:32:16 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=1649405466; cv=none; d=zohomail.com; s=zohoarc; b=AwuATZ1HfxEnG9SssVpgKadG1Bz7g1EuX2l3P8SCodwrvoWE1pnAid3HbnfWei5CtWKZsOiISR45RPPkqMGWGK5JGhDWxqSQubsaA7ATLpn/Ofxgf5DI86CFwexyY6dEJd2tjICVgiJ6zPVfNXV5kRuxvJf0uRZyEYkD8I9vOsc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1649405466; 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=bpenaWGu7t75rAb+IfrZzLodsmX1xilXOgrf0Ko3T04=; b=fmrY4cetDOL7VwwRdOOPn8b62mY9DPYWzSI6PH3/CSprkal+3oeqTrfo9ZuX/t875g2xhKFSDqV4y7QIe1kiPM1I4dmA8BP7tP8L45o/TE3i7BDUOnZCxgev/YYzeB8RyNwPSB5awKSHCFF18oVwqh+mMP70tY2SzUXz+Zp21l4= 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 1649405466444297.36710100390167; Fri, 8 Apr 2022 01:11:06 -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-304-6_RpQ4Q-PkCEd8vVNnS55Q-1; Fri, 08 Apr 2022 04:11:03 -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 5D4A63C161A9; Fri, 8 Apr 2022 08:10: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 47F0EC50944; Fri, 8 Apr 2022 08:10: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 E93BA1940341; Fri, 8 Apr 2022 08:10:58 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id A1988194036B for ; Fri, 8 Apr 2022 08:10:57 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 83AE554ACBC; Fri, 8 Apr 2022 08:10:57 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2BC2B54ACB0 for ; Fri, 8 Apr 2022 08:10:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1649405465; 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=bpenaWGu7t75rAb+IfrZzLodsmX1xilXOgrf0Ko3T04=; b=RJCEl7YtWUQYUhWgKuZOf4nwsFNggFXVzcgS1Uk+V5yO8v7nYY0yXrEm8WC26cxGmO/jl0 BCu2dR3Fi2Qx4wNnVCbyktz4kyQZI9ifu6Ts37cXyfC8vNC/QZU5v6WDAoUeAAxLwTKEnT co86N8HkhXvr5AlZl4RhKciavf9GxvU= X-MC-Unique: 6_RpQ4Q-PkCEd8vVNnS55Q-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: Fri, 8 Apr 2022 10:08:56 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 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: 1649405468582100012 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 26acc56dc3..d8c491ea9e 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -11929,98 +11929,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; @@ -26080,11 +26043,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 5c85d3e334..6d4113b1d1 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -2423,24 +2423,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 e3924e8b43..eb9b4036c1 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -403,7 +403,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: @@ -415,6 +415,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 1b22bc2787..57bf38deb1 100644 --- a/src/libxl/xen_common.c +++ b/src/libxl/xen_common.c @@ -2102,7 +2102,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: @@ -2117,6 +2117,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 5cfcdc3699..03c4b4e059 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -6201,6 +6201,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) { @@ -6216,6 +6218,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 */ } @@ -6247,7 +6251,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 */ @@ -6287,6 +6291,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 @@ -6646,7 +6652,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. */ @@ -6673,6 +6679,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 65b5fe7bc6..0b7cde9eea 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -401,7 +401,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'"), @@ -434,6 +434,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)); @@ -451,6 +452,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( @@ -482,6 +484,8 @@ qemuValidateDomainDefClockTimers(const virDomainDef *de= f, virDomainTimerTickpolicyTypeToString( timer->tickpolicy)); return -1; + case VIR_DOMAIN_TIMER_TICKPOLICY_LAST: + break; } break; =20 @@ -534,6 +538,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