we now read the extension on open and write it on update, but
do not yet use it.
Signed-off-by: Peter Lieven <address@hidden>
---
block/qcow2.c | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++--------
block/qcow2.h | 23 +++++++++++---
2 files changed, 104 insertions(+), 19 deletions(-)
diff --git a/block/qcow2.c b/block/qcow2.c
index 308121a..39a8afc 100644
--- a/block/qcow2.c
+++ b/block/qcow2.c
@@ -63,6 +63,7 @@ typedef struct {
#define QCOW2_EXT_MAGIC_END 0
#define QCOW2_EXT_MAGIC_BACKING_FORMAT 0xE2792ACA
#define QCOW2_EXT_MAGIC_FEATURE_TABLE 0x6803f857
+#define QCOW2_EXT_MAGIC_COMPRESS_FORMAT 0xC03183A3
static int qcow2_probe(const uint8_t *buf, int buf_size, const char *filename)
{
@@ -76,6 +77,26 @@ static int qcow2_probe(const uint8_t *buf, int buf_size,
const char *filename)
return 0;
}
+static int qcow2_compress_format_from_name(char *fmt)
+{
+ if (!fmt || !fmt[0]) {
+ return QCOW2_COMPRESS_ZLIB_COMPAT;
+ } else if (g_str_equal(fmt, "zlib")) {
+ return QCOW2_COMPRESS_ZLIB;
+ } else {
+ return -EINVAL;
+ }
+}