From nobody Fri Dec 12 14:08:55 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1765273978; cv=none; d=zohomail.com; s=zohoarc; b=Ulxn/AqlKaPpvsvMMuHr57ow0BuGbov1k8cMO/NlgTZMhJy6oaCShKwzDpUwhb48b9i0326SDUjTSp6PwzXmtUFutOpTMKnHi7skH5laNQDL7t7Y1Dq8I94zaBdGkSQB+rWLol96Jdb1ozn1e9tOPslQXEnqSI9kY4KKq0nU5Ek= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765273978; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=H7+P8Z5lpX5htQbiRp4qGGXWicJcVKz6jd80COcmiMQ=; b=THXl1C1cruFZ0GaJVi6KlBACJQvHW7xBwW570/MtC1rJNuwJK/vSGqx1U10qI8bkdQGIKvFDidxpMusZ545LI0KvaWusUYE2fqnICO/voqSAaysvS4UJYaDX1ePKfjinKAx1/JgOkHdUz7kBSdv0nck65CG5mbhizbvSspagRPw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1765273978403418.88249248437126; Tue, 9 Dec 2025 01:52:58 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id 4D62B41974; Tue, 9 Dec 2025 04:52:54 -0500 (EST) Received: from [172.19.199.80] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 4299E43E3F; Tue, 9 Dec 2025 04:47:47 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id E218643DD1; Tue, 9 Dec 2025 04:46:34 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 7C53B3F8EA for ; Tue, 9 Dec 2025 04:46:22 -0500 (EST) Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-197-46ZBemXEMwWtzfgFNh-0Fg-1; Tue, 09 Dec 2025 04:46:20 -0500 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 6EAB91956080 for ; Tue, 9 Dec 2025 09:46:18 +0000 (UTC) Received: from speedmetal.openshiftapps.com (unknown [10.44.22.4]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id B7A3E1956095 for ; Tue, 9 Dec 2025 09:46:17 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1765273581; h=from:from: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; bh=H7+P8Z5lpX5htQbiRp4qGGXWicJcVKz6jd80COcmiMQ=; b=jG5QXkq7HWKu9IlIL9Qk0v0dIKyr7JsBC4Fnjpd/iuh/EpB6w44uGOlXaUdavz1OUqwt7V 8tVv/3hS19B9mGobDxzP4ehiGBCiBZBiDFu/jsNG0wHEf7Tf1H6N6ZVycSjGTVDl5uxJtO fbHM1QNUgLpNm53A9bCAVxSX8UI35oc= X-MC-Unique: 46ZBemXEMwWtzfgFNh-0Fg-1 X-Mimecast-MFC-AGG-ID: 46ZBemXEMwWtzfgFNh-0Fg_1765273578 To: devel@lists.libvirt.org Subject: [PATCH 6/9] include: Create constants for save image format values Date: Tue, 9 Dec 2025 10:46:06 +0100 Message-ID: <2e53572c82860ab7400962fcbab0da30c2f38e0b.1765272832.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: 23l4o5qPV_iZ_qQ8TvecqKI7Ml-_Ttg1TWYkEZsgJXc_1765273578 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: NRA5DFNZU6A5P73773CZLSKWZ4MEUU7F X-Message-ID-Hash: NRA5DFNZU6A5P73773CZLSKWZ4MEUU7F X-MailFrom: pkrempa@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Peter Krempa via Devel Reply-To: Peter Krempa X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1765273979623158500 Content-Type: text/plain; charset="utf-8" From: Peter Krempa The 'VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT' typed parameter for 'virDomainSaveParams' is implemented as a string but really encodes an enumeration of supported types. We can't change the format any more but can export the corresponding types as constants. Additionally this also mentions the missing 'sparse' format. Signed-off-by: Peter Krempa --- include/libvirt/libvirt-domain.h | 87 ++++++++++++++++++++++++++++++-- src/qemu/qemu_saveimage.c | 14 ++--- 2 files changed, 91 insertions(+), 10 deletions(-) diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-dom= ain.h index 16fac6b085..893359aaae 100644 --- a/include/libvirt/libvirt-domain.h +++ b/include/libvirt/libvirt-domain.h @@ -1702,14 +1702,95 @@ int virDomainRestoreParams (vi= rConnectPtr conn, * VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT: * * an optional parameter used to specify the format of the save image. - * Valid formats are raw, zstd, lzop, gzip, bzip2, and xz. If not - * specified, the save_image_format setting in qemu.conf is used, which - * defaults to raw. As VIR_TYPED_PARAM_STRING. + * Valid format strings are represented by constants: + * - VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT_RAW + * - VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT_GZIP + * - VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT_BZIP2 + * - VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT_XZ + * - VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT_LZOP + * - VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT_ZSTD + * - VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT_SPARSE + * + * In the qemu driver, if not specified, the save_image_format setting in + * qemu.conf is used, which defaults to VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT= _RAW. + * + * As VIR_TYPED_PARAM_STRING. * * Since: 11.2.0 */ # define VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT "image_format" + +/** + * VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT_RAW: + * + * raw uncompressed format for the save image + * + * Since: 12.0.0 + */ +# define VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT_RAW "raw" + + +/** + * VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT_GZIP: + * + * gzip compressed format for the save image + * + * Since: 12.0.0 + */ +# define VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT_GZIP "gzip" + + +/** + * VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT_BZIP2: + * + * bzip2 compressed format for the save image + * + * Since: 12.0.0 + */ +# define VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT_BZIP2 "bzip2" + + +/** + * VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT_XZ: + * + * xz compressed format for the save image + * + * Since: 12.0.0 + */ +# define VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT_XZ "xz" + + +/** + * VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT_LZOP: + * + * lzop compressed format for the save image + * + * Since: 12.0.0 + */ +# define VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT_LZOP "lzop" + + +/** + * VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT_ZSTD: + * + * zstd compressed format for the save image + * + * Since: 12.0.0 + */ +# define VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT_ZSTD "zstd" + + +/** + * VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT_SPARSE: + * + * uncompressed sparse file format for the save image + * + * Since: 12.0.0 + */ +# define VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT_SPARSE "sparse" + + /* * VIR_DOMAIN_SAVE_PARAM_PARALLEL_CHANNELS: * diff --git a/src/qemu/qemu_saveimage.c b/src/qemu/qemu_saveimage.c index 48f8220dee..58a3f96575 100644 --- a/src/qemu/qemu_saveimage.c +++ b/src/qemu/qemu_saveimage.c @@ -39,13 +39,13 @@ VIR_LOG_INIT("qemu.qemu_saveimage"); VIR_ENUM_IMPL(qemuSaveFormat, QEMU_SAVE_FORMAT_LAST, - "raw", - "gzip", - "bzip2", - "xz", - "lzop", - "zstd", - "sparse", + VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT_RAW, + VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT_GZIP, + VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT_BZIP2, + VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT_XZ, + VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT_LZOP, + VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT_ZSTD, + VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT_SPARSE, ); static void --=20 2.52.0