+Thu May 15 12:11:08 EST 2008 Daniel P. Berrange <berrange@redhat.com>
+
+ * src/qemu_conf.c, src/qemu_conf.h: Pass the -name flag to QEMU
+ if available.
+ * tests/qemuxml2argvdata/qemuxml2argv-minimal.args,
+ tests/qemuxml2argvtest.c: Test for launching with -name flag
+
Thu May 15 12:08:08 EST 2008 Daniel P. Berrange <berrange@redhat.com>
Support paravirt framebuffer input configuration for xenner guests
- * src/qemu_drive.c, src/qemu_conf.c, src/qemu_conf.h: Add support
+ * src/qemu_driver.c, src/qemu_conf.c, src/qemu_conf.h: Add support
for 'xen' input device type for Xenner PVFB
* tests/qemuxml2argv-input-xen.{args,xml}: Test case data
files for xen input devices
*flags |= QEMUD_CMD_FLAG_KQEMU;
if (strstr(help, "-no-reboot"))
*flags |= QEMUD_CMD_FLAG_NO_REBOOT;
- if (strstr(help, "\n-drive"))
- *flags |= QEMUD_CMD_FLAG_DRIVE_OPT;
+ if (strstr(help, "-name"))
+ *flags |= QEMUD_CMD_FLAG_NAME;
+ if (strstr(help, "-drive"))
+ *flags |= QEMUD_CMD_FLAG_DRIVE;
if (strstr(help, "boot=on"))
- *flags |= QEMUD_CMD_FLAG_DRIVE_BOOT_OPT;
+ *flags |= QEMUD_CMD_FLAG_DRIVE_BOOT;
if (*version >= 9000)
*flags |= QEMUD_CMD_FLAG_VNC_COLON;
ret = 0;
len = 1 + /* qemu */
2 + /* machine type */
disableKQEMU + /* Disable kqemu */
+ (vm->qemuCmdFlags & QEMUD_CMD_FLAG_NAME ? 2 : 0) + /* -name XXX */
2 * vm->def->ndisks + /* disks*/
(vm->def->nnets > 0 ? (4 * vm->def->nnets) : 2) + /* networks */
1 + /* usb */
if (!((*argv)[++n] = strdup(vcpus)))
goto no_memory;
+ if (vm->qemuCmdFlags & QEMUD_CMD_FLAG_NAME) {
+ if (!((*argv)[++n] = strdup("-name")))
+ goto no_memory;
+ if (!((*argv)[++n] = strdup(vm->def->name)))
+ goto no_memory;
+ }
/*
* NB, -nographic *MUST* come before any serial, or monitor
* or parallel port flags due to QEMU craziness, where it
}
/* If QEMU supports -drive param instead of old -hda, -hdb, -cdrom .. */
- if (vm->qemuCmdFlags & QEMUD_CMD_FLAG_DRIVE_OPT) {
+ if (vm->qemuCmdFlags & QEMUD_CMD_FLAG_DRIVE) {
int bootCD = 0, bootFloppy = 0, bootDisk = 0;
/* If QEMU supports boot=on for -drive param... */
- if (vm->qemuCmdFlags & QEMUD_CMD_FLAG_DRIVE_BOOT_OPT) {
+ if (vm->qemuCmdFlags & QEMUD_CMD_FLAG_DRIVE_BOOT) {
for (i = 0 ; i < vm->def->os.nBootDevs ; i++) {
switch (vm->def->os.bootDevs[i]) {
case QEMUD_BOOT_CDROM:
QEMUD_CMD_FLAG_KQEMU = (1 << 0),
QEMUD_CMD_FLAG_VNC_COLON = (1 << 1),
QEMUD_CMD_FLAG_NO_REBOOT = (1 << 2),
- QEMUD_CMD_FLAG_DRIVE_OPT = (1 << 3),
- QEMUD_CMD_FLAG_DRIVE_BOOT_OPT = (1 << 4),
+ QEMUD_CMD_FLAG_DRIVE = (1 << 3),
+ QEMUD_CMD_FLAG_DRIVE_BOOT = (1 << 4),
+ QEMUD_CMD_FLAG_NAME = (1 << 5),
};
-/usr/bin/qemu -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none -usb
\ No newline at end of file
+/usr/bin/qemu -M pc -m 214 -smp 1 -name QEMUGuest1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none -usb
\ No newline at end of file
#define MAX_FILE 4096
-static int testCompareXMLToArgvFiles(const char *xml, const char *cmd, int driveFlag) {
+static int testCompareXMLToArgvFiles(const char *xml, const char *cmd, int extraFlags) {
char xmlData[MAX_FILE];
char argvData[MAX_FILE];
char *xmlPtr = &(xmlData[0]);
vm.qemuVersion = 0 * 1000 * 100 + (8 * 1000) + 1;
vm.qemuCmdFlags = QEMUD_CMD_FLAG_VNC_COLON |
QEMUD_CMD_FLAG_NO_REBOOT;
- if (driveFlag) {
- vm.qemuCmdFlags |= QEMUD_CMD_FLAG_DRIVE_OPT;
- vm.qemuCmdFlags |= QEMUD_CMD_FLAG_DRIVE_BOOT_OPT;
- }
+ vm.qemuCmdFlags |= extraFlags;
vm.migrateFrom[0] = '\0';
vmdef->vncActivePort = vmdef->vncPort;
struct testInfo {
const char *name;
- int driveFlag;
+ int extraFlags;
};
static int testCompareXMLToArgvHelper(const void *data) {
abs_srcdir, info->name);
snprintf(args, PATH_MAX, "%s/qemuxml2argvdata/qemuxml2argv-%s.args",
abs_srcdir, info->name);
- return testCompareXMLToArgvFiles(xml, args, info->driveFlag);
+ return testCompareXMLToArgvFiles(xml, args, info->extraFlags);
}
driver.caps = qemudCapsInit();
-#define DO_TEST(name, driveFlag) \
+#define DO_TEST(name, extraFlags) \
do { \
- struct testInfo info = { name, driveFlag }; \
+ struct testInfo info = { name, extraFlags }; \
if (virtTestRun("QEMU XML-2-ARGV " name, \
1, testCompareXMLToArgvHelper, &info) < 0) \
ret = -1; \
} while (0)
- DO_TEST("minimal", 0);
+ DO_TEST("minimal", QEMUD_CMD_FLAG_NAME);
DO_TEST("boot-cdrom", 0);
DO_TEST("boot-network", 0);
DO_TEST("boot-floppy", 0);
DO_TEST("disk-cdrom", 0);
DO_TEST("disk-floppy", 0);
DO_TEST("disk-many", 0);
- DO_TEST("disk-virtio", 1);
- DO_TEST("disk-xenvbd", 1);
+ DO_TEST("disk-virtio", QEMUD_CMD_FLAG_DRIVE |
+ QEMUD_CMD_FLAG_DRIVE_BOOT);
+ DO_TEST("disk-xenvbd", QEMUD_CMD_FLAG_DRIVE |
+ QEMUD_CMD_FLAG_DRIVE_BOOT);
DO_TEST("graphics-vnc", 0);
DO_TEST("graphics-sdl", 0);
DO_TEST("input-usbmouse", 0);