From: Peter Krempa <pkrempa@redhat.com>
Extract the definition of the enum into a separate header file and
convert the config struct to use the proper types.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
---
src/qemu/qemu_conf.c | 48 ++++++++++++++++++++++----------
src/qemu/qemu_conf.h | 7 +++--
src/qemu/qemu_saveimage.h | 20 ++-----------
src/qemu/qemu_saveimage_format.h | 25 +++++++++++++++++
4 files changed, 64 insertions(+), 36 deletions(-)
create mode 100644 src/qemu/qemu_saveimage_format.h
diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
index 242955200a..de6e51177a 100644
--- a/src/qemu/qemu_conf.c
+++ b/src/qemu/qemu_conf.c
@@ -686,29 +686,47 @@ virQEMUDriverConfigLoadSaveEntry(virQEMUDriverConfig *cfg,
if (virConfGetValueString(conf, "save_image_format", &savestr) < 0)
return -1;
- if (savestr && (cfg->saveImageFormat = qemuSaveFormatTypeFromString(savestr)) < 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- _("Invalid save_image_format '%1$s'"),
- savestr);
- return -1;
+ if (savestr) {
+ int formatVal;
+
+ if ((formatVal = qemuSaveFormatTypeFromString(savestr)) < 0) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("Invalid save_image_format '%1$s'"),
+ savestr);
+ return -1;
+ }
+
+ cfg->saveImageFormat = formatVal;
}
if (virConfGetValueString(conf, "dump_image_format", &dumpstr) < 0)
return -1;
- if (dumpstr && (cfg->dumpImageFormat = qemuSaveFormatTypeFromString(dumpstr)) < 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- _("Invalid dump_image_format '%1$s'"),
- dumpstr);
- return -1;
+ if (dumpstr) {
+ int formatVal;
+
+ if ((formatVal = qemuSaveFormatTypeFromString(dumpstr)) < 0) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("Invalid dump_image_format '%1$s'"),
+ dumpstr);
+ return -1;
+ }
+
+ cfg->dumpImageFormat = formatVal;
}
if (virConfGetValueString(conf, "snapshot_image_format", &snapstr) < 0)
return -1;
- if (snapstr && (cfg->snapshotImageFormat = qemuSaveFormatTypeFromString(snapstr)) < 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- _("Invalid snapshot_image_format '%1$s'"),
- snapstr);
- return -1;
+ if (snapstr) {
+ int formatVal;
+
+ if ((formatVal = qemuSaveFormatTypeFromString(snapstr)) < 0) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("Invalid snapshot_image_format '%1$s'"),
+ snapstr);
+ return -1;
+ }
+
+ cfg->snapshotImageFormat = formatVal;
}
if (virConfGetValueString(conf, "auto_dump_path", &cfg->autoDumpPath) < 0)
diff --git a/src/qemu/qemu_conf.h b/src/qemu/qemu_conf.h
index edb65c99f4..c284e108a1 100644
--- a/src/qemu/qemu_conf.h
+++ b/src/qemu/qemu_conf.h
@@ -37,6 +37,7 @@
#include "locking/lock_manager.h"
#include "qemu_capabilities.h"
#include "qemu_nbdkit.h"
+#include "qemu_saveimage_format.h"
#include "virclosecallbacks.h"
#include "virhostdev.h"
#include "virfile.h"
@@ -216,9 +217,9 @@ struct _virQEMUDriverConfig {
bool securityDefaultConfined;
bool securityRequireConfined;
- int saveImageFormat;
- int dumpImageFormat;
- int snapshotImageFormat;
+ virQEMUSaveFormat saveImageFormat;
+ virQEMUSaveFormat dumpImageFormat;
+ virQEMUSaveFormat snapshotImageFormat;
char *autoDumpPath;
bool autoDumpBypassCache;
diff --git a/src/qemu/qemu_saveimage.h b/src/qemu/qemu_saveimage.h
index 0a22ee5f05..1fd96751a2 100644
--- a/src/qemu/qemu_saveimage.h
+++ b/src/qemu/qemu_saveimage.h
@@ -21,6 +21,7 @@
#include "virconftypes.h"
#include "qemu_domain.h"
+#include "qemu_saveimage_format.h"
/* It would be nice to replace 'Qemud' with 'Qemu' but
* this magic string is ABI, so it can't be changed
@@ -31,24 +32,7 @@
G_STATIC_ASSERT(sizeof(QEMU_SAVE_MAGIC) == sizeof(QEMU_SAVE_PARTIAL));
-typedef enum {
- QEMU_SAVE_FORMAT_RAW = 0,
- QEMU_SAVE_FORMAT_GZIP = 1,
- QEMU_SAVE_FORMAT_BZIP2 = 2,
- /*
- * Deprecated by xz and never used as part of a release
- * QEMU_SAVE_FORMAT_LZMA
- */
- QEMU_SAVE_FORMAT_XZ = 3,
- QEMU_SAVE_FORMAT_LZOP = 4,
- QEMU_SAVE_FORMAT_ZSTD = 5,
- QEMU_SAVE_FORMAT_SPARSE = 6,
- /* Note: add new members only at the end.
- These values are used in the on-disk format.
- Do not change or re-use numbers. */
-
- QEMU_SAVE_FORMAT_LAST
-} virQEMUSaveFormat;
+/* enum virQEMUSaveFormat is declared in qemu_saveimage_format.h */
VIR_ENUM_DECL(qemuSaveFormat);
typedef struct _virQEMUSaveHeader virQEMUSaveHeader;
diff --git a/src/qemu/qemu_saveimage_format.h b/src/qemu/qemu_saveimage_format.h
new file mode 100644
index 0000000000..53756f9fff
--- /dev/null
+++ b/src/qemu/qemu_saveimage_format.h
@@ -0,0 +1,25 @@
+/*
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ */
+
+#pragma once
+
+/* This enum resides in a separate file to allow inclusion into qemu_conf.h */
+typedef enum {
+ QEMU_SAVE_FORMAT_RAW = 0,
+ QEMU_SAVE_FORMAT_GZIP = 1,
+ QEMU_SAVE_FORMAT_BZIP2 = 2,
+ /*
+ * Deprecated by xz and never used as part of a release
+ * QEMU_SAVE_FORMAT_LZMA
+ */
+ QEMU_SAVE_FORMAT_XZ = 3,
+ QEMU_SAVE_FORMAT_LZOP = 4,
+ QEMU_SAVE_FORMAT_ZSTD = 5,
+ QEMU_SAVE_FORMAT_SPARSE = 6,
+ /* Note: add new members only at the end.
+ These values are used in the on-disk format.
+ Do not change or re-use numbers. */
+
+ QEMU_SAVE_FORMAT_LAST
+} virQEMUSaveFormat;
--
2.52.0