]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Add support for explicit -sdl flag to QEMU
authorDaniel P. Berrange <berrange@redhat.com>
Mon, 21 Dec 2009 20:23:55 +0000 (20:23 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Mon, 18 Jan 2010 13:55:57 +0000 (13:55 +0000)
Not all QEMU builds default to SDL graphics for their display.
Newer QEMU now has an explicit -sdl flag, which we can use to
explicitly request SDL intead of relying on the default. This
protects libvirt against unexpected changes in graphics default

* src/qemu/qemu_conf.c, src/qemu/qemu_conf.h: Probe for -sdl
  flag and use it if it is found
* tests/qemuhelptest.c: Add SDL flag to tests

src/qemu/qemu_conf.c
src/qemu/qemu_conf.h
tests/qemuhelptest.c

index 316aa38d8c6471c96b5332041e24bcb5dc10cf19..b68a8a4c0eb928b84506e01929cc24ed04f4d691 100644 (file)
@@ -1117,6 +1117,8 @@ static unsigned int qemudComputeCmdFlags(const char *help,
         flags |= QEMUD_CMD_FLAG_BALLOON;
     if (strstr(help, "-device"))
         flags |= QEMUD_CMD_FLAG_DEVICE;
+    if (strstr(help, "-sdl"))
+        flags |= QEMUD_CMD_FLAG_SDL;
 
     if (version >= 9000)
         flags |= QEMUD_CMD_FLAG_VNC_COLON;
@@ -3426,6 +3428,12 @@ int qemudBuildCommandLine(virConnectPtr conn,
          */
         ADD_ENV_COPY("QEMU_AUDIO_DRV");
         ADD_ENV_COPY("SDL_AUDIODRIVER");
+
+        /* New QEMU has this flag to let us explicitly ask for
+         * SDL graphics. This is better than relying on the
+         * default, since the default changes :-( */
+        if (qemuCmdFlags & QEMUD_CMD_FLAG_SDL)
+            ADD_ARG_LIT("-sdl");
     }
 
     if (def->nvideos) {
index 40b3f1e020c325102c2c0b3f910b0eac798960d8..ed2d32bdea6d01e1f6357705e154378f35e2b61a 100644 (file)
@@ -79,6 +79,7 @@ enum qemud_cmd_flags {
     QEMUD_CMD_FLAG_MONITOR_JSON  = (1 << 24), /* JSON mode for monitor */
     QEMUD_CMD_FLAG_BALLOON       = (1 << 25), /* -balloon available */
     QEMUD_CMD_FLAG_DEVICE        = (1 << 26), /* Is the new -device arg available */
+    QEMUD_CMD_FLAG_SDL           = (1 << 27), /* Is the new -sdl arg available */
 };
 
 /* Main driver state */
index c2d7942c2906b2700749080a6dd66e5b6f0cdb12..5ae14a632dd833e2b0d535ed593d01456c0388d6 100644 (file)
@@ -140,7 +140,8 @@ mymain(int argc, char **argv)
             QEMUD_CMD_FLAG_DRIVE_SERIAL |
             QEMUD_CMD_FLAG_VGA |
             QEMUD_CMD_FLAG_0_10 |
-            QEMUD_CMD_FLAG_ENABLE_KVM,
+            QEMUD_CMD_FLAG_ENABLE_KVM |
+            QEMUD_CMD_FLAG_SDL,
             10005, 0,  0);
     DO_TEST("qemu-kvm-0.10.5",
             QEMUD_CMD_FLAG_VNC_COLON |
@@ -159,7 +160,8 @@ mymain(int argc, char **argv)
             QEMUD_CMD_FLAG_VGA |
             QEMUD_CMD_FLAG_0_10 |
             QEMUD_CMD_FLAG_PCIDEVICE |
-            QEMUD_CMD_FLAG_MEM_PATH,
+            QEMUD_CMD_FLAG_MEM_PATH |
+            QEMUD_CMD_FLAG_SDL,
             10005, 1,  0);
     DO_TEST("kvm-86",
             QEMUD_CMD_FLAG_VNC_COLON |
@@ -177,7 +179,8 @@ mymain(int argc, char **argv)
             QEMUD_CMD_FLAG_DRIVE_SERIAL |
             QEMUD_CMD_FLAG_VGA |
             QEMUD_CMD_FLAG_0_10 |
-            QEMUD_CMD_FLAG_PCIDEVICE,
+            QEMUD_CMD_FLAG_PCIDEVICE |
+            QEMUD_CMD_FLAG_SDL,
             10050, 1,  0);
     DO_TEST("qemu-kvm-0.11.0-rc2",
             QEMUD_CMD_FLAG_VNC_COLON |
@@ -198,7 +201,8 @@ mymain(int argc, char **argv)
             QEMUD_CMD_FLAG_PCIDEVICE |
             QEMUD_CMD_FLAG_MEM_PATH |
             QEMUD_CMD_FLAG_ENABLE_KVM |
-            QEMUD_CMD_FLAG_BALLOON,
+            QEMUD_CMD_FLAG_BALLOON |
+            QEMUD_CMD_FLAG_SDL,
             10092, 1,  0);
     DO_TEST("qemu-0.12.1",
             QEMUD_CMD_FLAG_VNC_COLON |
@@ -214,6 +218,7 @@ mymain(int argc, char **argv)
             QEMUD_CMD_FLAG_VGA |
             QEMUD_CMD_FLAG_0_10 |
             QEMUD_CMD_FLAG_ENABLE_KVM |
+            QEMUD_CMD_FLAG_SDL |
             QEMUD_CMD_FLAG_XEN_DOMID |
             QEMUD_CMD_FLAG_MIGRATE_QEMU_UNIX |
             QEMUD_CMD_FLAG_CHARDEV |