Skip to contentSkip to conversation

provide vhd support to qemu

PATCH In review Ben Guthro 1 participant 1 message Jun 19, 2007

lore
Share & tools
lore

Ben Guthro

author
#0 lore raw

PATCH 1/4 provide vhd support to qemu

[PATCH 1/4] provide vhd support to qemu qemu-vhd-support.patch
Provides integration of vdisk library, and implementation of block-vhd into qemu.

tools/ioemu/Makefile.target +3 -0
diff -r 356588dda4bc tools/ioemu/Makefile.target
@@ -18,6 +18,7 @@ CPPFLAGS=-I. -I.. -I$(TARGET_PATH) -I$(S
 CPPFLAGS=-I. -I.. -I$(TARGET_PATH) -I$(SRC_PATH)
 CPPFLAGS+= -I$(XEN_ROOT)/tools/libxc
 CPPFLAGS+= -I$(XEN_ROOT)/tools/xenstore
+CPPFLAGS+= -I$(XEN_ROOT)/tools/vdisk -I$(XEN_ROOT)/tools/libaio/src
 ifdef CONFIG_DARWIN_USER
 VPATH+=:$(SRC_PATH)/darwin-user
 CPPFLAGS+=-I$(SRC_PATH)/darwin-user -I$(SRC_PATH)/darwin-user/$(TARGET_ARCH)
@@ -198,6 +199,7 @@ LIBS+=-L../../libxc -lxenctrl -lxenguest
 LIBS+=-L../../libxc -lxenctrl -lxenguest
 LIBS+=-L../../xenstore -lxenstore
 LIBS+=-lpthread
+LIBS+=-L$(XEN_ROOT)/tools/vdisk -lvdisk -L$(XEN_ROOT)/tools/libaio/src -laio -ldl
 ifndef CONFIG_USER_ONLY
 LIBS+=-lz
 endif
@@ -345,6 +347,7 @@ VL_OBJS+=cutils.o
 VL_OBJS+=cutils.o
 VL_OBJS+=block.o block-raw.o
 VL_OBJS+=block-cow.o block-qcow.o aes.o block-vmdk.o block-cloop.o block-dmg.o block-bochs.o block-vpc.o block-vvfat.o block-qcow2.o
+VL_OBJS+=block-vhd.o
 ifdef CONFIG_WIN32
 VL_OBJS+=tap-win32.o
 endif
tools/ioemu/block-vhd.c new file +182 -0

182 lines not on this page · raw message

tools/ioemu/block.c +1 -0
diff -r 356588dda4bc tools/ioemu/block.c
@@ -1246,6 +1246,7 @@ void bdrv_init(void)
     bdrv_register(&bdrv_vpc);
     bdrv_register(&bdrv_vvfat);
     bdrv_register(&bdrv_qcow2);
+    bdrv_register(&bdrv_vhd);
 }
 
 void *qemu_aio_get(BlockDriverState *bs, BlockDriverCompletionFunc *cb,
tools/ioemu/vl.c +17 -8
diff -r 356588dda4bc tools/ioemu/vl.c
@@ -7211,14 +7211,23 @@ int main(int argc, char **argv)
             case QEMU_OPTION_hdb:
             case QEMU_OPTION_hdc:
             case QEMU_OPTION_hdd:
-                {
-                    int hd_index;
-                    hd_index = popt->index - QEMU_OPTION_hda;
-                    hd_filename[hd_index] = optarg;
-                    if (hd_index == cdrom_index)
-                        cdrom_index = -1;
-                }
-                break;
+	    {
+		int hd_index;
+		char *fname;
+		
+		fname = strchr(optarg, ':');
+		if (fname == NULL)
+		    fname = optarg;
+		else
+		    fname++;
+		
+		hd_index = popt->index - QEMU_OPTION_hda;
+		hd_filename[hd_index] = fname;
+		if (hd_index == cdrom_index)
+		    cdrom_index = -1;
+	    }
+	    
+	    break;
 #endif /* !CONFIG_DM */
             case QEMU_OPTION_snapshot:
                 snapshot = 1;
tools/ioemu/vl.h +1 -0
diff -r 356588dda4bc tools/ioemu/vl.h
@@ -589,6 +589,7 @@ extern BlockDriver bdrv_vpc;
 extern BlockDriver bdrv_vpc;
 extern BlockDriver bdrv_vvfat;
 extern BlockDriver bdrv_qcow2;
+extern BlockDriver bdrv_vhd;
 
 typedef struct BlockDriverInfo {
     /* in bytes, 0 if irrelevant */

_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel