Add basic support for VDI images

QEMU is fully capable of handling VDI images and we just refuse to
work with them.  As qemu-img knows and supports this, there should be
no problem with this addition.

This is of course, just basic functionality, without searching for any
backing files, etc.
This commit is contained in:
Martin Kletzander 2013-02-04 20:18:22 +01:00
parent a0f98229ba
commit 027bf2ea37
2 changed files with 9 additions and 2 deletions

View File

@ -51,7 +51,7 @@ VIR_ENUM_IMPL(virStorageFileFormat,
"raw", "dir", "bochs", "raw", "dir", "bochs",
"cloop", "cow", "dmg", "iso", "cloop", "cow", "dmg", "iso",
"qcow", "qcow2", "qed", "vmdk", "vpc", "qcow", "qcow2", "qed", "vmdk", "vpc",
"fat", "vhd") "fat", "vhd", "vdi")
enum lv_endian { enum lv_endian {
LV_LITTLE_ENDIAN = 1, /* 1234 */ LV_LITTLE_ENDIAN = 1, /* 1234 */
@ -194,6 +194,12 @@ static struct FileTypeInfo const fileTypeInfo[] = {
LV_BIG_ENDIAN, 12, 0x10000, LV_BIG_ENDIAN, 12, 0x10000,
8 + 4 + 4 + 8 + 4 + 4 + 2 + 2 + 4, 8, 1, -1, NULL 8 + 4 + 4 + 8 + 4 + 4 + 2 + 2 + 4, 8, 1, -1, NULL
}, },
/* TODO: add getBackingStore function */
[VIR_STORAGE_FILE_VDI] = {
64, "\x7f\x10\xda\xbe", ".vdi",
LV_LITTLE_ENDIAN, 68, 0x00010001,
68 + 5 * 4 + 256 + 7 * 4, 8, 1, -1, NULL},
/* Not direct file formats, but used for various drivers */ /* Not direct file formats, but used for various drivers */
[VIR_STORAGE_FILE_FAT] = { 0, NULL, NULL, LV_LITTLE_ENDIAN, [VIR_STORAGE_FILE_FAT] = { 0, NULL, NULL, LV_LITTLE_ENDIAN,
-1, 0, 0, 0, 0, 0, NULL }, -1, 0, 0, 0, 0, 0, NULL },

View File

@ -1,7 +1,7 @@
/* /*
* virstoragefile.h: file utility functions for FS storage backend * virstoragefile.h: file utility functions for FS storage backend
* *
* Copyright (C) 2007-2009, 2012 Red Hat, Inc. * Copyright (C) 2007-2009, 2012-2013 Red Hat, Inc.
* Copyright (C) 2007-2008 Daniel P. Berrange * Copyright (C) 2007-2008 Daniel P. Berrange
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
@ -44,6 +44,7 @@ enum virStorageFileFormat {
VIR_STORAGE_FILE_VPC, VIR_STORAGE_FILE_VPC,
VIR_STORAGE_FILE_FAT, VIR_STORAGE_FILE_FAT,
VIR_STORAGE_FILE_VHD, VIR_STORAGE_FILE_VHD,
VIR_STORAGE_FILE_VDI,
VIR_STORAGE_FILE_LAST, VIR_STORAGE_FILE_LAST,
}; };