From: Peter Krempa <[email protected]> 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 <[email protected]> --- 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
