From: Peter Krempa <[email protected]> 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 <[email protected]> --- 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-domain.h index 16fac6b085..893359aaae 100644 --- a/include/libvirt/libvirt-domain.h +++ b/include/libvirt/libvirt-domain.h @@ -1702,14 +1702,95 @@ int virDomainRestoreParams (virConnectPtr 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 -- 2.52.0
