[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH 7 of 13] fix console switch



Import some console switch improvements and fixes from qemu mainstream.

Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>

---

diff -r db86b9f0df7c console.c
--- a/console.c Mon Feb 16 12:18:33 2009 +0000
+++ b/console.c Mon Feb 16 16:36:58 2009 +0000
@@ -1190,7 +1190,7 @@
     } else {
         /* HACK: Put graphical consoles before text consoles.  */
         for (i = nb_consoles; i > 0; i--) {
-            if (!consoles[i - 1]->console_type == GRAPHIC_CONSOLE)
+            if (consoles[i - 1]->console_type == GRAPHIC_CONSOLE)
                 break;
             consoles[i] = consoles[i - 1];
         }
@@ -1258,6 +1258,8 @@
 static void text_console_do_init(CharDriverState *chr, DisplayState *ds, const 
char *p)
 {
     TextConsole *s;
+    unsigned width;
+    unsigned height;
     static int color_inited;
 
     s = new_console(ds, (p == 0) ? TEXT_CONSOLE : TEXT_CONSOLE_FIXED_SIZE);
@@ -1277,15 +1279,36 @@
 
     if (!color_inited) {
         color_inited = 1;
-        console_color_init(ds);
+        console_color_init(s->ds);
     }
     s->y_displayed = 0;
     s->y_base = 0;
     s->total_height = DEFAULT_BACKSCROLL;
     s->x = 0;
     s->y = 0;
-    s->g_width = ds_get_width(s->ds);
-    s->g_height = ds_get_height(s->ds);
+    width = ds_get_width(s->ds);
+    height = ds_get_height(s->ds);
+    if (p != 0) {
+        width = strtoul(p, (char **)&p, 10);
+        if (*p == 'C') {
+            p++;
+            width *= FONT_WIDTH;
+        }
+        if (*p == 'x') {
+            p++;
+            height = strtoul(p, (char **)&p, 10);
+            if (*p == 'C') {
+                p++;
+                height *= FONT_HEIGHT;
+            }
+        }
+    }
+    s->g_width = width;
+    s->g_height = height;
+
+    s->hw_invalidate = text_console_invalidate;
+    s->hw_text_update = text_console_update;
+    s->hw = s;
 
     /* Set text attribute defaults */
     s->t_attrib_default.bold = 0;

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.